Compare commits

..

1305 Commits

Author SHA1 Message Date
jeffvli f02307ff2a move search button to top right of LibraryHeader 2026-02-11 21:32:43 -08:00
jeffvli 2647c36326 add compact styling to LibraryHeader 2026-02-11 21:31:17 -08:00
jeffvli 16a9d6e702 update client side song ordering to include album order 2026-02-11 20:01:00 -08:00
jeffvli 0a4d789f08 maintain song order in album view 2026-02-11 20:00:46 -08:00
jeffvli 7f5742119b refactor playlist route state 2026-02-11 18:43:28 -08:00
jeffvli 04d8e013e1 add initial playlist album view 2026-02-11 14:22:47 -08: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
jeffvli 4d57faa197 update to v1.0.1 2025-12-28 18:13:41 -08:00
Hosted Weblate 4129a8f56e Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 69.2% (752 of 1086 strings)

Translated using Weblate (Polish)

Currently translated at 99.6% (1082 of 1086 strings)

Translated using Weblate (Polish)

Currently translated at 93.6% (1017 of 1086 strings)

Translated using Weblate (Polish)

Currently translated at 88.0% (955 of 1084 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (1084 of 1084 strings)

Translated using Weblate (Polish)

Currently translated at 87.8% (952 of 1084 strings)

Translated using Weblate (Czech)

Currently translated at 88.7% (961 of 1083 strings)

Translated using Weblate (Spanish)

Currently translated at 87.4% (947 of 1083 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 87.6% (948 of 1082 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (951 of 951 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (951 of 951 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Hungarian)

Currently translated at 100.0% (939 of 939 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (939 of 939 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (939 of 939 strings)

Translated using Weblate (Turkish)

Currently translated at 74.8% (701 of 936 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (936 of 936 strings)

Translated using Weblate (Korean)

Currently translated at 45.9% (430 of 936 strings)

Translated using Weblate (German)

Currently translated at 94.8% (888 of 936 strings)

Translated using Weblate (Swedish)

Currently translated at 41.1% (385 of 936 strings)

Translated using Weblate (German)

Currently translated at 94.8% (888 of 936 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (936 of 936 strings)

Translated using Weblate (Dutch)

Currently translated at 52.4% (491 of 936 strings)

Translated using Weblate (Swedish)

Currently translated at 39.6% (371 of 936 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (936 of 936 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (936 of 936 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (932 of 932 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (932 of 932 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (927 of 932 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (927 of 932 strings)

Translated using Weblate (French)

Currently translated at 99.8% (927 of 928 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (927 of 927 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (927 of 927 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (926 of 926 strings)

Translated using Weblate (French)

Currently translated at 100.0% (926 of 926 strings)

Co-authored-by: Dylan MONTIGAUD <dylanmontigaud17@gmail.com>
Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Fredrik Wastring <fredrik.was@gmail.com>
Co-authored-by: Guanjun Shi <yzsgjcdd@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Mücahit Kaya <kaya-mucahit@outlook.com>
Co-authored-by: Naim V <naimverboom@gmail.com>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Co-authored-by: Soderes Sanyi <kennex@protonmail.com>
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: wonkwan lee <gorathkr@gmail.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/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ko/
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/sv/
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
2025-12-29 03:12:30 +01:00
jeffvli 1aa91fe2f5 add defaults to main settings to sync with renderer 2025-12-28 18:12:14 -08:00
jeffvli 5c399f7117 add timeout to prevent too many lyrics fetch on song change 2025-12-28 17:49:39 -08:00
jeffvli 3c07f03651 fix custom gradients in audiomotion visualizer 2025-12-28 17:45:21 -08:00
jeffvli b26b6eab09 move server selector inline with other collapsed sidebar items 2025-12-28 17:27:01 -08:00
jeffvli b2579c031d pin album/song list filters by default 2025-12-28 17:19:38 -08:00
jeffvli 98e2458a03 enable lyrics/visualizer in sidebar by default 2025-12-28 17:19:38 -08:00
jeffvli b30e26ae7e adjust app default columns 2025-12-28 17:19:32 -08:00
jeffvli fd158b956a reorganize album metadata tags 2025-12-28 16:27:27 -08:00
jeffvli 109788ebbb update multiselect styles 2025-12-28 15:07:57 -08:00
jeffvli ffdef596ad auto follow queue when autodj is triggered 2025-12-28 14:34:38 -08:00
jeffvli 0a54f7c44c remove similarSongs from autodj when music folder is selected (#1451)
- Similar songs queries for both Subsonic/Jellyfin do not support querying by musicFolderId
2025-12-28 14:09:22 -08:00
jeffvli d5d995de5f fix missing musicFolderId on search (#1451) 2025-12-28 13:34:26 -08:00
jeffvli 304c38db1e fix infinite loader potentially refetching count multiple times on query change 2025-12-28 06:55:58 -08:00
jeffvli ef631d12cc support multiselect for nd album artist_id filter 2025-12-28 06:44:31 -08:00
jeffvli 4006980b29 adjust artist page suspense fetching 2025-12-28 06:36:14 -08:00
jeffvli f9c3c107bd adjust featured genres breakpoints 2025-12-28 06:04:54 -08:00
jeffvli 7106b100ce set default playerbar type to Slider 2025-12-28 06:04:41 -08:00
jeffvli e2d56c70b1 add optimistic update for top songs list (#1414) 2025-12-28 03:47:01 -08:00
jeffvli 1a930021b6 handle favorite/update in similarArtists 2025-12-28 03:43:59 -08:00
jeffvli 66699b9572 fix regression on round ItemCard 2025-12-28 03:23:57 -08:00
jeffvli 99be12e648 improve list loading indicator 2025-12-28 03:05:20 -08:00
jeffvli dde4e1b33c improve image placeholders and loading 2025-12-28 02:43:31 -08:00
jeffvli 88711eac2f fix Jellyfin imageId normalization 2025-12-28 02:26:27 -08:00
jeffvli f21ca83179 force single line on feature carousel artist 2025-12-28 02:03:20 -08:00
jeffvli f43950874d use "album" releasetype as default artist album fallback 2025-12-28 02:03:05 -08:00
jeffvli a3794158f0 increase default sidebar image res to 400 2025-12-28 01:34:18 -08:00
jeffvli 7f52b31b40 use multiselect for navidrome song tag filters 2025-12-28 01:26:36 -08:00
jeffvli 18a864a049 use multiselect for navidrome tag filters (#1420) 2025-12-28 01:24:54 -08:00
jeffvli 4eac6457ea add MPRIS volume handler (#1415) 2025-12-28 01:15:38 -08:00
Leonardo Salgueiro df0d4b7032 feat: adding setting to show/hide user ratings (#1426)
* adding show/hide user ratings setting
2025-12-28 01:04:50 -08:00
jeffvli f0942c7795 revert spinner icon 2025-12-28 01:04:11 -08:00
jeffvli 396325f397 refactor artist album grid to use flex layout 2025-12-28 00:51:20 -08:00
BatteredBunny 63015195b0 feat: Add DISABLE_AUTO_UPDATES env variable for disabling updates in the application entirely (#1446) 2025-12-28 00:50:55 -08:00
jeffvli e821397e6c add horizontal scroll to feature carousel (#1123) 2025-12-27 18:29:10 -08:00
jeffvli aae68853ef kill butterchurn visualizer if player is idle 2025-12-27 18:18:06 -08:00
jeffvli f904aafd4a add isEnabled property for playback filters 2025-12-27 18:12:14 -08:00
jeffvli 38b2508de6 unrender sidebar play queue when fullscreen player is open 2025-12-27 17:50:42 -08:00
jeffvli 8fee57157a fix lyrics settings button variant 2025-12-27 17:44:41 -08:00
jeffvli 6207cea9f1 support animated artist images 2025-12-27 17:29:26 -08:00
jeffvli c299752e44 Revert "enable autoHideSuspend on all overlayscrollbars instances"
This reverts commit b9a0d9b847.
2025-12-27 17:06:09 -08:00
jeffvli 82e4f832eb fix queue panels size persistence 2025-12-27 16:59:30 -08:00
jeffvli c8221c07ef fix layout shift caused by sidebar panel divider 2025-12-27 16:22:19 -08:00
jeffvli 710fc16f62 adjust artist album grid span 2025-12-27 16:22:02 -08:00
jeffvli 331cddcabb allow query preview when query editor is closed 2025-12-27 15:57:43 -08:00
jeffvli b9a0d9b847 enable autoHideSuspend on all overlayscrollbars instances 2025-12-27 15:48:50 -08:00
jeffvli 9c59a38f7a improve performance on page ScrollArea by throttling scroll callback 2025-12-27 15:48:29 -08:00
jeffvli b573999d33 add titles translations for secondary release types 2025-12-27 15:44:27 -08:00
jeffvli 35d8698ca0 add broadcast and other release type groupings 2025-12-27 15:23:42 -08:00
jeffvli 23e4574667 add configuration to show secondary release types 2025-12-27 15:19:00 -08:00
jeffvli 7db15c7c72 separate EP and Single in artist releasetypes 2025-12-27 15:03:38 -08:00
jeffvli d94b220319 fix playlist image urls 2025-12-27 14:58:57 -08:00
jeffvli acfc106f40 fix artist page initial fetch 2025-12-27 14:57:58 -08:00
jeffvli 856400048b fix image on context menu preview 2025-12-27 14:25:57 -08:00
jeffvli a7c2a92f16 set fixed height for play queue controls 2025-12-27 02:46:21 -08:00
jeffvli fc3d700a57 fix styling of transparent variant button disabled state 2025-12-27 02:44:09 -08:00
jeffvli a60973ffee adjust page animation transition 2025-12-27 02:42:41 -08:00
jeffvli a1114235d6 add layout animation for artist album cards 2025-12-27 02:25:13 -08:00
jeffvli 928b0b6f4d add a limit of 20 albums per section 2025-12-27 02:15:13 -08:00
jeffvli 60d6d49eaa fix height of sidebar panel handles 2025-12-27 02:07:03 -08:00
jeffvli 804a670bf1 default artistBackground to true 2025-12-27 02:04:00 -08:00
jeffvli e51bb05564 add play controls to artist album sections 2025-12-27 02:03:53 -08:00
jeffvli a21ee21652 add album section count badge 2025-12-27 01:55:34 -08:00
jeffvli 8b2d162733 adjust grid column counts based on new breakpoint configuration 2025-12-27 01:43:48 -08:00
jeffvli cc76c9f31e update name of Single section to Single EP 2025-12-27 01:33:29 -08:00
jeffvli aa7a5037fa add opacity configuration for visualizers 2025-12-27 01:33:05 -08:00
jeffvli 0acb1f54fc lint files 2025-12-27 01:27:10 -08:00
jeffvli 403ed8cae6 move artist radio button to page content 2025-12-27 01:19:56 -08:00
jeffvli 3db229ef68 re-add similar artists carousel to artist page 2025-12-27 01:13:28 -08:00
jeffvli f0d22267c3 replace react-resizable-panels with react-split-pane
- react-resizable-panels was causing an issue with browser navigation
2025-12-27 00:55:38 -08:00
jeffvli 796e511626 redesign artist page (#416) (#447) 2025-12-26 21:13:04 -08:00
jeffvli 06e757d3b2 decrease default lyric font/gap size 2025-12-26 18:40:30 -08:00
jeffvli 0c8032d097 adjust default audiomotion visualizer styles 2025-12-26 15:31:26 -08:00
jeffvli 7cd86d1301 default enable lyrics/visualizer in sidebar 2025-12-26 15:31:17 -08:00
jeffvli 781df3ab06 remove accordion from table/grid config 2025-12-26 15:16:51 -08:00
jeffvli 88b9124185 replace themes scrollbar with neutral colors 2025-12-26 15:14:01 -08:00
jeffvli 48724f816c fix compact item card styling for light mode 2025-12-26 15:09:43 -08:00
jeffvli 1a184a73de revert behavior for queue add by id 2025-12-26 14:55:53 -08:00
jeffvli e4b5cf36e1 fix duplicate PLAYER_PLAY event causing race condition in mpv 2025-12-26 14:49:06 -08:00
jeffvli dff182cbc5 use correct id for runtime images in useItemImageUrl 2025-12-26 14:04:48 -08:00
jeffvli fb8245539f fix missing normalizations for subsonic imageId (#1449) 2025-12-26 14:04:04 -08:00
jeffvli bb3cb4a6ad fix mpv volume on initial startup 2025-12-26 05:24:44 -08:00
jeffvli fb2e30c484 remove padding from sidebar visualizer 2025-12-26 02:32:10 -08:00
jeffvli 73c5292cc1 move the visualizer settings out of error boundary 2025-12-26 02:24:20 -08:00
jeffvli 800074dced add ignored presets for butterchurn 2025-12-25 17:19:56 -08:00
farfromrefuge f78a572a3c fix:music filtering subsonic (#1442)
* Add musicFolderId filtering for tracks in Subsonic API

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-12-25 14:22:23 -08:00
jeffvli 97b20cec19 persist queue sidebar panel sizing 2025-12-25 13:13:32 -08:00
jeffvli fd833f683b fix lyric alignment select on fullscreen player config (#1390) 2025-12-25 01:49:59 -08:00
jeffvli 076d9b3083 re-add pause / unpause events to Jellyfin scrobble (#1413) 2025-12-25 01:47:04 -08:00
jeffvli 3a2a1b0dc8 prevent sidebar item conflict with server selector 2025-12-25 01:39:33 -08:00
jeffvli 20c19cac6f add server selector to collapsed sidebar (#1401) 2025-12-25 01:37:07 -08:00
jeffvli 8205eeed22 split lyrics settings by key (#1389) 2025-12-25 01:29:31 -08:00
jeffvli 5eb2cff6e9 add additional configuration to player sidebar
- allow reordering of panels
- allow separation between lyrics and visualizer panels
- allow resize of panels
2025-12-24 23:20:00 -08:00
jeffvli d822d9cd29 increase default table image res to 80px 2025-12-24 19:25:44 -08:00
jeffvli 4142132ebc removal modal opacity on visualizer settings modal 2025-12-24 19:21:28 -08:00
jeffvli fb2746323b fix missing radial spin speed setting 2025-12-24 19:19:02 -08:00
Jeff d9172efae9 Add visualizer configuration (#1443)
* add visualizer configuration

* add visualizer presets

* add butterchurn visualizer

* wrap visualizers in error boundary
2025-12-24 18:12:13 -08:00
jeffvli 8e04f98e26 fix expand button on compact ItemCard 2025-12-24 03:17:39 -08:00
jeffvli 51587fbb6b add grid item card size presets 2025-12-23 21:59:52 -08:00
jeffvli cf06d69822 add sidebar visualizer / lyrics toggle in player config 2025-12-23 21:41:33 -08:00
jeffvli 22751de2f6 fix image url generation on album detail header 2025-12-23 21:30:26 -08:00
Kendall Garner 04fbf5d3d2 Export lyrics (#1383)
* add export button to the lyrics actions

* add export button to the lyrics search modal

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-23 21:27:47 -08:00
jeffvli 936ba73fe4 remove refresh buttons from grid carousel by default 2025-12-23 21:27:12 -08:00
jeffvli 05efd0f318 temporarily remove item list selection dialog 2025-12-23 21:05:50 -08:00
jeffvli ce570eddd2 improve auto dj to trigger on remaining songs change 2025-12-23 21:05:40 -08:00
jeffvli 5b1f269344 update radio permission to allow normal users to create 2025-12-23 20:58:58 -08:00
jeffvli 0806d9852a fix sidebar playlist image url generation 2025-12-23 20:53:14 -08:00
jeffvli c3e38d7133 fix drag preview image url generation 2025-12-23 20:53:07 -08:00
farfromrefuge a322717e0e feat: add artist radio and track radio (in context menu) (#1437)
* Add API support for artist radio and track radio features

* Add translation strings and settings UI for artist radio count

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-23 20:46:19 -08:00
jeffvli dcb84dd442 only run PR build on src changes 2025-12-23 20:26:24 -08:00
jeffvli ac257a9dc1 update PR publish to wait for lint success 2025-12-23 20:23:53 -08:00
Jeff 25bfb65b6d Add image URL generation at runtime to allow for dynamic image sizes (#1439)
* add getImageUrl to domain endpoints

* add new ItemImage component and hooks to generate image url

* add configuration for image resolution based on types
2025-12-23 20:18:52 -08:00
jeffvli 96f38e597c fix SegmentedControl indicator bugged position 2025-12-23 18:19:52 -08:00
Kendall Garner 383b728ddc chore(readmee): more accurate docker compose (2) 2025-12-23 17:39:11 -05:00
Kendall Garner 003cfbdd6c chore(readmer): more accurate docker compose 2025-12-23 17:38:13 -05:00
jeffvli a67ae50d16 fix links in album description 2025-12-22 20:43:26 -08:00
jeffvli ac3dcb5e17 fix releaseDate behavior on navidrome song normalization 2025-12-22 20:15:37 -08:00
Fleeym 833f82edff improve network error detection (#1436) 2025-12-22 20:15:06 -08:00
Fleeym 76f55111ec improve network error route (#1435) 2025-12-22 20:03:06 -08:00
Tiberiu (ELECTRO) Lazăr f418bbfd2f Fix API parameter for Jellyfin 10.12 and up (#1429)
* Fix API parameter for Jellyfin 10.11 and up

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-22 19:51:06 -08:00
Fleeym b02eba510d set minimum ServerRequired list size to 1 (#1434)
The server list in ServerRequired was expecting at least 2 items before it was shown, meaning that if you are on the login screen, you couldn't select your configured server and had to add another one.
2025-12-22 19:45:40 -08:00
Benjamin 7a77b9bfe7 feat: show record label copyright at bottom of track listing (#1421)
* show record label copyright at bottom of track listing

* add recordLabels support for Jellyfin

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-22 19:08:35 -08:00
Exceen c34b6774b9 fixed favorite tracks/albums/artists selection (#1418) 2025-12-22 18:43:16 -08:00
Kendall Garner f3fe5b013a fix(subsonic): support favoriting/unfavoriting artist 2025-12-19 21:35:26 -05:00
jeffvli 37be2cc8fa lint files 2025-12-16 21:10:55 -08:00
jeffvli e3c26aa5fa remove selection dialog from certain list views 2025-12-16 21:06:56 -08:00
jeffvli e21f538aa4 add item list selection dialog 2025-12-16 20:24:46 -08:00
jeffvli c9cd87bae5 remove release_channel from settings sync 2025-12-15 23:17:47 -08:00
jeffvli 9a8cb45510 Revert "prevent autoupdater from setting release channel (#1396)"
This reverts commit 614761efd7.
2025-12-15 23:06:25 -08:00
jeffvli 68b6a58ac5 handle text overflow on sidebar playlist duration 2025-12-15 21:37:58 -08:00
jeffvli 5b5cdbfb7f prevent action bar icons from being squished on resize (fix) 2025-12-15 21:37:17 -08:00
jeffvli cf4e505743 prevent action bar icons from being squished on resize 2025-12-15 21:36:27 -08:00
jeffvli 8464ed439e use success notification instead of warn on 0 playlist entries added (#1393) 2025-12-15 21:15:20 -08:00
jeffvli 9e49a45db9 fix initial list order on artist discography (#1378) 2025-12-15 21:07:24 -08:00
jeffvli 8dc5f2a580 add page view tracker 2025-12-15 20:50:58 -08:00
jeffvli 6bb848a675 remove analytics properties for based on desktop-only settings 2025-12-15 20:31:15 -08:00
jeffvli 8edf61f9e7 localize dates (#1237) 2025-12-15 20:20:32 -08:00
jeffvli 96d2699a2d add migration to clear all original store settings (#1396) 2025-12-15 19:07:12 -08:00
jeffvli 614761efd7 prevent autoupdater from setting release channel (#1396) 2025-12-15 18:12:16 -08:00
jeffvli 154f0180e1 fix potential infinite updater loop due to stale settings sync state 2025-12-15 11:27:17 -08:00
jeffvli 593ad7ad12 allow custom message on restart toast 2025-12-15 11:27:17 -08:00
Hosted Weblate 2372f1890c Translated using Weblate (Hungarian)
Currently translated at 97.7% (905 of 926 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (921 of 926 strings)

Translated using Weblate (French)

Currently translated at 99.5% (922 of 926 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (926 of 926 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (926 of 926 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (926 of 926 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (924 of 924 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (924 of 924 strings)

Translated using Weblate (Polish)

Currently translated at 99.3% (918 of 924 strings)

Translated using Weblate (Swedish)

Currently translated at 35.1% (325 of 924 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (913 of 913 strings)

Translated using Weblate (Swedish)

Currently translated at 35.1% (321 of 913 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (913 of 913 strings)

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Fredrik Wastring <fredrik.was@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Soderes Sanyi <kennex@protonmail.com>
Co-authored-by: Vincent <clawd31@yahoo.fr>
Co-authored-by: linger <linger0517@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/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/sv/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2025-12-15 09:45:14 +00:00
jeffvli ad5485506d include select settings values in analytics 2025-12-15 01:44:31 -08:00
jeffvli ea7399541f revert to using custom window bar styles 2025-12-15 01:14:39 -08:00
jeffvli 455452bf77 revert padding of sidebar filters 2025-12-15 01:14:19 -08:00
jeffvli b2941b67d6 fix bg color / padding of sidebar panel 2025-12-15 01:12:11 -08:00
jeffvli bc898d6097 properly set mpv volume on init 2025-12-15 01:01:00 -08:00
jeffvli 88b27fa378 more small adjustments to light mode 2025-12-15 00:55:13 -08:00
jeffvli 3c2af4bd1a more minor theme adjustments 2025-12-14 19:33:03 -08:00
Kendall Garner f5d6c4983c remove rating from item card if using jellyfin 2025-12-14 16:45:54 -08:00
jeffvli 08a8f7f500 add utility to wait for detail bg color before page render 2025-12-14 16:35:38 -08:00
jeffvli f92754c2ac fix release notes modal showing even if no new version 2025-12-14 16:27:06 -08:00
jeffvli d4e39ca12d improve page header readability on all themes 2025-12-14 16:23:45 -08:00
jeffvli 868c64dda5 adjust SegmentedControl to use theme color 2025-12-14 16:11:45 -08:00
jeffvli 09dfc1ff1d adjust network request waterfall to force authentication first, add fallback for no network (#1028) 2025-12-14 16:00:05 -08:00
jeffvli 303eba87ca add a hook to sync main settings with renderer 2025-12-14 15:13:57 -08:00
jeffvli d8c46ba7ef adjust surface color for some themes 2025-12-14 14:55:38 -08:00
jeffvli 649f541077 reorder theme settings to the top of general 2025-12-14 14:55:10 -08:00
jeffvli 858678ea93 adjust custom window bar titles
- fix overflow
- fix positioning
- decrease text size
2025-12-14 06:47:26 -08:00
jeffvli 48bba76c74 fix window bar position on mobile layout 2025-12-14 06:40:33 -08:00
jeffvli 3f32e6cd2f decrease settings modal width 2025-12-14 06:36:02 -08:00
jeffvli 253a78b236 increase padding on list filters 2025-12-14 06:12:56 -08:00
jeffvli 69de9a98f0 add new app themes 2025-12-14 06:06:27 -08:00
jeffvli 0f4534c34c fix padding on server selector when radio is enabled 2025-12-14 05:18:32 -08:00
jeffvli a9476a98b1 adjust padding on sidebar items 2025-12-14 05:12:24 -08:00
jeffvli e56d885007 increase font size of sidebar playlist metadata 2025-12-14 04:58:40 -08:00
jeffvli b6e7bfb9bc remove drag area from page header when using custom window bars 2025-12-14 04:55:38 -08:00
jeffvli a377e3d3bb add privacy / owner to sidebar playlist metadata 2025-12-14 04:49:56 -08:00
jeffvli 752b191ad7 optimize playlist edit modal (#1234)
- remove user list fetch if not admin
- move to context modal to allow dynamic content
2025-12-14 04:43:48 -08:00
jeffvli b19e752314 fix loading state on queue restoration button 2025-12-14 04:29:12 -08:00
jeffvli 1e8e1789cd remove artist song list fetch post-processing
- the post-processing sort breaks the correct order returned by the API
2025-12-14 04:26:39 -08:00
jeffvli 1bc1f619ff fix mpv exiting on radio stop 2025-12-14 02:50:20 -08:00
jeffvli b4b106222e optimize library headers (#1374) 2025-12-14 02:33:19 -08:00
jeffvli 4cc51c3700 fix formatting in playlist duration (#1382) 2025-12-14 01:31:40 -08:00
jeffvli 8b0632495b fix debounce on onScrollEnd callback on ItemGridList 2025-12-14 01:07:26 -08:00
Jeff 7ed847fecb Add internet radio (#1384) 2025-12-13 21:26:33 -08:00
jeffvli f61d34c340 fix missing remote event handlers (#1344) 2025-12-13 20:58:12 -08:00
jeffvli 5c8d18d1c9 add validation for Subsonic releaseDate 2025-12-13 19:47:07 -08:00
jeffvli 401d0e5c19 remove duplicate mpv autoNext listener 2025-12-13 13:51:26 -08:00
Hosted Weblate e7bdb2d4ed Translated using Weblate (Polish)
Currently translated at 100.0% (913 of 913 strings)

Translated using Weblate (French)

Currently translated at 100.0% (908 of 908 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (903 of 908 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (908 of 908 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (908 of 908 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (908 of 908 strings)

Added translation using Weblate (Ukrainian)

Translated using Weblate (Polish)

Currently translated at 100.0% (908 of 908 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: Soderes Sanyi <kennex@protonmail.com>
Co-authored-by: Vincent <clawd31@yahoo.fr>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: russssl <deniskalicen@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/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2025-12-13 11:04:09 +01:00
jeffvli f9ce076a1a lint files 2025-12-13 02:04:00 -08:00
jeffvli a14e5f08ee allow user to unpin list sidebar 2025-12-13 02:03:04 -08:00
jeffvli ab1176d4f6 add improved play button group on list headers 2025-12-13 00:52:23 -08:00
jeffvli eb100351a6 add proper labels to ND tag filters 2025-12-13 00:20:43 -08:00
jeffvli a546a4d57b handle player stop on queue clear 2025-12-13 00:15:20 -08:00
jeffvli 1ac267fa99 fix context menu not triggering on sidebar playlist 2025-12-12 21:25:46 -08:00
jeffvli 2a36fa932c increase font weight of sidebar playlist name 2025-12-12 21:23:18 -08:00
jeffvli 8f1141b6e0 disable sidebar lyrics fetcher if panel is closed 2025-12-12 21:21:41 -08:00
Kendall Garner ed5d590a6b feat: sync play queue for navidrome/subsonic (#1335)
---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-12 21:05:00 -08:00
jeffvli 13afd3d9c4 fix window bar background color for light mode 2025-12-12 19:49:01 -08:00
jeffvli d821e0a1f8 make create playlist form implementation consistent 2025-12-12 19:32:19 -08:00
jeffvli f850c52f5d add new spinner icon 2025-12-12 19:32:19 -08:00
Damien Erambert 22dd20884d Light mode fixes (#1379)
* Fix color of text in text buttons in light mode

* fix border color of search input in light mode

* fix carousel text colors in light mode

* fix scroll shadows colors in light mode
2025-12-12 19:30:30 -08:00
jeffvli 578083d994 fix mpv autoNext and next song replacement behavior (part 2) 2025-12-12 18:44:14 -08:00
jeffvli 29a5fa3f74 fix mpv autoNext and next song replacement behavior 2025-12-12 18:25:06 -08:00
jeffvli 1bcc23862c fix authentication query for Subsonic/ND 2025-12-12 11:10:29 -08:00
jeffvli 4103ed7221 redesign sidebar playlist item 2025-12-12 01:08:03 -08:00
jeffvli ce6155fe47 more feature carousel optimizations
- decrease title size
- only show first artist
2025-12-12 00:54:29 -08:00
jeffvli e147a78ee0 replace Jellyfin raw streamUrl with /download endpoint 2025-12-12 00:43:39 -08:00
jeffvli 4b66c86fd6 prevent mpv from reinitializing on volume, speed, and transcoding 2025-12-11 21:39:49 -08:00
jeffvli aa435bbfc4 redesign feature carousel to be more compact 2025-12-11 21:25:35 -08:00
jeffvli a4dbeff5ea fix missing emitters from onPlayerPlay 2025-12-11 21:00:00 -08:00
jeffvli 61e70342a4 fix mpv player queue behavior to handle gapless playback 2025-12-11 20:36:47 -08:00
Hosted Weblate f7d488ba84 Translated using Weblate (German)
Currently translated at 91.4% (829 of 907 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (Hungarian)

Currently translated at 97.3% (883 of 907 strings)

Translated using Weblate (French)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 82.6% (750 of 907 strings)

Translated using Weblate (Czech)

Currently translated at 98.5% (894 of 907 strings)

Translated using Weblate (German)

Currently translated at 90.2% (819 of 907 strings)

Translated using Weblate (German)

Currently translated at 86.7% (787 of 907 strings)

Translated using Weblate (Hungarian)

Currently translated at 95.3% (865 of 907 strings)

Translated using Weblate (French)

Currently translated at 98.2% (891 of 907 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 82.0% (744 of 907 strings)

Translated using Weblate (French)

Currently translated at 95.0% (862 of 907 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (Catalan)

Currently translated at 100.0% (907 of 907 strings)

Translated using Weblate (German)

Currently translated at 86.3% (783 of 907 strings)

Translated using Weblate (Chinese (Simplified Han script))

Currently translated at 80.2% (728 of 907 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (902 of 907 strings)

Co-authored-by: Dylan MONTIGAUD <dylanmontigaud17@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: Sebin Nyshkim <sebin.nyshkim@icloud.com>
Co-authored-by: Soderes Sanyi <kennex@protonmail.com>
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org>
Co-authored-by: linger <linger0517@gmail.com>
Co-authored-by: skajmer <skajmer@protonmail.com>
Co-authored-by: 無情天 <kofzhanganguo@126.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/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/hu/
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-11 09:51:43 +01:00
jeffvli 01a95f5445 fix broken remote (#1344) 2025-12-11 00:51:32 -08:00
jeffvli bdce8ecafe add time validation to lyric seek (#1280) 2025-12-10 22:40:17 -08:00
lindenkron bb55fc2278 Add Lyrics button to right-controls. (#1363)
* Add Microphone icon to right-controls to show/hide lyrics.
2025-12-10 22:37:44 -08:00
jeffvli a778f4c715 add header to playlist page 2025-12-10 22:36:57 -08:00
jeffvli bea5bd7857 add activeRowId styles to song list table 2025-12-10 21:58:30 -08:00
jeffvli 10aec7bcac always set start song index to 0 when adding to queue in shuffle mode 2025-12-10 19:34:59 -08:00
jeffvli c1ea39aa14 normalize dates to UTC, remove year to date conversions 2025-12-10 17:40:32 -08:00
jeffvli 5da119e065 use absolute date for release date column (#1364) 2025-12-10 17:36:03 -08:00
jeffvli 27eebe474e fix username param on subsonic getUser (#1362) 2025-12-10 10:18:11 -08:00
jeffvli 16d656f010 force table displayType on folder list 2025-12-10 01:54:23 -08:00
Jeff eeb0a786fd potential fix for mpv clear (#1360) 2025-12-10 01:49:45 -08:00
jeffvli 32062d7c0f fix auto dj not triggering on single song queue (#1359) 2025-12-10 01:06:16 -08:00
jeffvli b627f4e489 revert mediaStop back to 0.x.x behavior 2025-12-10 00:48:02 -08:00
jeffvli 389dfd08f7 render login page on SERVER_LOCK (#1172) 2025-12-09 19:58:24 -08:00
jeffvli 8a681a7e95 fix missing server add form from server required (#1350) 2025-12-09 19:32:33 -08:00
jeffvli 6eba434c3e add new player handlers to command palette items (#1356) 2025-12-09 18:41:22 -08:00
jeffvli 816df56ef1 attempt to improve mpv exit handlers (#1348) 2025-12-09 18:07:54 -08:00
jeffvli a02fc28785 fix preserve pitch on player start, add to player config (#1349) 2025-12-09 17:57:56 -08:00
jeffvli 753f35f81b remove truncation from path column (#1351) 2025-12-09 17:38:16 -08:00
jeffvli fcfe39aa2b support alternate row colors on sidebar (#1354) 2025-12-09 17:32:29 -08:00
jeffvli d5799af44e remove drag bar from carousel - add vertical scroll 2025-12-09 00:09:03 -08:00
jeffvli 3d07290231 use album icon for unloaded image (#1136) 2025-12-08 22:31:30 -08:00
jeffvli a19a6815e9 remove unused refs from list/grid components 2025-12-08 22:00:34 -08:00
jeffvli 628b0184de fix web player crossfade transition state causing stutter on playerData change 2025-12-08 21:46:13 -08:00
jeffvli 38b06fdd06 fix table configuration on now playing route (#1346) 2025-12-08 20:04:26 -08:00
jeffvli 498a0f4b5d add constraints to volume updates by hotkey, throttle to 50ms (#1345) 2025-12-08 20:00:37 -08:00
jeffvli a96ea6c5ac remove unused filter button on genre list (#1340) 2025-12-08 19:56:19 -08:00
jeffvli b6ac954910 use correct list key for related songs on fullscreen player (#1343) 2025-12-08 19:53:48 -08:00
jeffvli 76b59921f1 fix descending song list id sort 2025-12-08 19:38:19 -08:00
jeffvli 507bf66f47 remove background from sidebar image 2025-12-08 19:26:58 -08:00
jeffvli d3191611c6 add user agent header to lrclib fetch 2025-12-08 09:41:23 -08:00
jeffvli 7f540472da use client-side shuffle for listquery random playback (#1247) 2025-12-07 21:24:17 -08:00
jeffvli cd2d8ae3c9 lint 2025-12-07 20:08:57 -08:00
Hosted Weblate 01a412efd0 Translated using Weblate (German)
Currently translated at 83.8% (752 of 897 strings)

Translated using Weblate (German)

Currently translated at 82.5% (741 of 898 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/de/
Translation: feishin/Translation
2025-12-08 03:57:23 +00:00
jeffvli 2929603565 check authentication for all servers on initialization and update permission roles 2025-12-08 03:57:23 +00:00
jeffvli e4b5158fe3 adjust some settings defaults 2025-12-07 19:57:10 -08:00
jeffvli 4f4300042b add bitDepth, sampleRate columns to table (#1205) 2025-12-07 19:41:03 -08:00
jeffvli bd8503b25d add client side sort to album song list 2025-12-07 19:15:34 -08:00
jeffvli 3c8054c93b Revert "split settings store to multiple localstorage keys"
This reverts commit 4862a65b21.
2025-12-07 18:28:17 -08:00
jeffvli 20aa65f16a restrict playlist actions by permission 2025-12-07 18:28:17 -08:00
jeffvli c82762a3fc check authentication for all servers on initialization and update permission roles 2025-12-07 18:28:12 -08:00
jeffvli 4ddada1fe3 add isAdmin to auth state 2025-12-07 17:21:46 -08:00
jeffvli 2f2dbbde3e fix play / add to playlist from playlist ctx menu 2025-12-07 16:48:47 -08:00
jeffvli adbcca00de fix sidebar playlist handlers (#1318) 2025-12-07 16:48:22 -08:00
jeffvli 65a7c3440b add player autodj (#7) 2025-12-07 15:04:39 -08:00
jeffvli 4862a65b21 split settings store to multiple localstorage keys 2025-12-07 14:00:00 -08:00
jeffvli 68fa8ac058 fix os form post typo 2025-12-07 12:58:32 -08:00
jeffvli d8b190c2b7 add skip to duplicates to playlist ctx menu - persist value 2025-12-07 12:39:28 -08:00
jeffvli 20a6fcbeb7 fix linting issues 2025-12-07 03:29:29 -08:00
dependabot[bot] 2fb40fd050 Bump js-yaml in the npm_and_yarn group across 1 directory (#1261)
Bumps the npm_and_yarn group with 1 update in the / directory: [js-yaml](https://github.com/nodeca/js-yaml).


Updates `js-yaml` from 4.1.0 to 4.1.1
- [Changelog](https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/nodeca/js-yaml/compare/4.1.0...4.1.1)

---
updated-dependencies:
- dependency-name: js-yaml
  dependency-version: 4.1.1
  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>
2025-12-07 03:29:01 -08:00
Kendall Garner 9634d7c50d feat(subsonic): support form post (#1333)
* feat(subsonic): support form post

---------

Co-authored-by: jeffvli <jeffvictorli@gmail.com>
2025-12-07 03:28:49 -08:00
jeffvli 9dbee39d34 fix fetch confirmation to only show on list query 2025-12-07 03:14:38 -08:00
jeffvli 56098c6617 fix fullscreen player transition 2025-12-07 03:08:19 -08:00
jeffvli 9c81487f98 decrease z-index on LoadingOverlay to prevent conflicts 2025-12-07 02:28:18 -08:00
jeffvli 8841781e6b fix the loading state on listquery add to queue 2025-12-07 02:28:16 -08:00
Hosted Weblate ce7e5ad7ad Translated using Weblate (German)
Currently translated at 81.0% (728 of 898 strings)

Translated using Weblate (German)

Currently translated at 81.1% (723 of 891 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (885 of 885 strings)

Translated using Weblate (German)

Currently translated at 78.3% (693 of 885 strings)

Translated using Weblate (German)

Currently translated at 74.8% (662 of 885 strings)

Translated using Weblate (French)

Currently translated at 95.5% (846 of 885 strings)

Translated using Weblate (German)

Currently translated at 72.5% (642 of 885 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.4% (880 of 885 strings)

Translated using Weblate (Polish)

Currently translated at 99.8% (884 of 885 strings)

Translated using Weblate (Spanish)

Currently translated at 100.0% (885 of 885 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: KosmoMoustache <kosmomoustache@users.noreply.hosted.weblate.org>
Co-authored-by: Sebin Nyshkim <sebin.nyshkim@icloud.com>
Co-authored-by: Zarakkas <kaz@users.noreply.hosted.weblate.org>
Co-authored-by: linger <linger0517@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/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/pl/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2025-12-07 11:23:20 +01:00
jeffvli 512a769742 add log level setting 2025-12-07 00:50:09 -08:00
jeffvli 1507aff8e6 remove redundant discord rpc log 2025-12-07 00:43:50 -08:00
jeffvli a74ed3e4c7 add fallback to album artist if no artists in Jellyfin response (#1329) 2025-12-07 00:42:01 -08:00
jeffvli 1d6019c9d2 add go to page selector for list pagination 2025-12-07 00:36:58 -08:00
jeffvli 9385c25ea9 fix drag styles on playlist reorder 2025-12-07 00:20:27 -08:00
jeffvli e84d5eca8f fix missing drag "add" operation to playlist song items 2025-12-06 18:30:54 -08:00
jeffvli 84621474c0 use CommunityRating for jellyfin top songs (#1268) 2025-12-06 18:22:31 -08:00
jeffvli 42fca271ce remove stale start event on song change for jellyfin scrobble (#1332) 2025-12-06 18:12:15 -08:00
Kendall Garner 766756f64a add to playlist context menu for playlist songs 2025-12-06 17:55:12 -08:00
jeffvli 0a7029f7bc add support for full playlist re-order (#1327) 2025-12-06 17:41:13 -08:00
Kendall Garner 126b5ed67d notify when song added to playlist by context menu 2025-12-06 17:11:01 -08:00
jeffvli 4531f88e71 fix scroll persistence on folder list table 2025-12-05 19:03:12 -08:00
jeffvli dace0259aa move settings page back into modal 2025-12-05 18:54:36 -08:00
jeffvli 2d5671323f revert waveform playerbar changes 2025-12-05 11:31:02 -08:00
jeffvli 7db3eab38c improve scrobble conditions 2025-12-05 11:28:41 -08:00
jeffvli c7b0759ff0 fix discord rpc not triggering on song change 2025-12-05 10:24:38 -08:00
Kendall Garner 202c5da350 don't set dangerouslySetInnerHtml for spoiler component 2025-12-05 07:01:31 -08:00
jeffvli 8bb46d78aa fix settings reset to default functionality 2025-12-05 02:15:40 -08:00
jeffvli 64a67cf169 fix server lock route to login page 2025-12-05 02:15:10 -08:00
jeffvli 83886ed4ba add new spoiler component 2025-12-05 01:35:54 -08:00
jeffvli 40af5fb945 enable mediasession by default on web 2025-12-05 01:10:54 -08:00
jeffvli 3554572dc2 add interval update and update on discord initalization (#1317) 2025-12-05 01:08:47 -08:00
jeffvli 999976645d properly recalculate current index when adding to shuffled queue 2025-12-04 22:24:55 -08:00
jeffvli 458ede252a fix linting issues 2025-12-04 22:24:32 -08:00
jeffvli 1438f42616 decouple genre/artist album and song list page sorts 2025-12-04 22:11:12 -08:00
jeffvli b72af98a1b maintain defined order on reorder configurations (#1322) 2025-12-04 21:43:08 -08:00
jeffvli d463030271 improve transition on fullscreen player images 2025-12-04 21:33:10 -08:00
jeffvli de86f687ea fix shuffle order in usePlayerData 2025-12-04 21:33:10 -08:00
jeffvli 566d938b6c adjust jellyfin scrobble conditions, remove status change event (#1274) 2025-12-04 21:33:10 -08:00
jeffvli 7ac47377f1 maintain playlist order on header play (#1318) 2025-12-04 21:33:10 -08:00
Jeff c27a9bf95b Merge pull request #1321 from chenqimiao/feature/readme
Explain that SERVE_TYPE supports the parameter subsonic in readme
2025-12-04 21:21:30 -08:00
jeffvli 9004485aa9 fix music folder selection for jellyfin (#1319) 2025-12-04 18:45:58 -08:00
jeffvli 845b678e18 prevent infinite mutation retries (#1315) 2025-12-04 18:28:28 -08:00
jeffvli ab9da5207c fix album tags always showing compilation (#1313) 2025-12-04 18:23:44 -08:00
jeffvli e37c76301d fix playerbar waveform potentially disappearing 2025-12-04 18:19:06 -08:00
jeffvli 8c545f6d21 add missing play button onto title combined image 2025-12-04 18:03:26 -08:00
Qimiao Chen 286b6d1a11 Explain that SERVE_TYPE supports the parameter subsonic 2025-12-05 10:01:26 +08:00
jeffvli b66530f8fd fix table not re-rendering on column configuration change 2025-12-04 04:07:24 -08:00
jeffvli 7c5dc5bb39 attempt to optimize waveform fetch to avoid race condition for playback 2025-12-04 02:02:22 -08:00
Hosted Weblate 19a0529b42 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.5% (858 of 862 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.6% (855 of 858 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 99.6% (854 of 857 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 98.4% (844 of 857 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 96.3% (826 of 857 strings)

Translated using Weblate (Chinese (Traditional Han script))

Currently translated at 86.3% (738 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (French)

Currently translated at 98.7% (846 of 857 strings)

Translated using Weblate (French)

Currently translated at 88.6% (760 of 857 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Spanish)

Currently translated at 100.0% (857 of 857 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Dutch)

Currently translated at 56.3% (483 of 857 strings)

Translated using Weblate (Dutch)

Currently translated at 52.7% (451 of 855 strings)

Translated using Weblate (Dutch)

Currently translated at 51.6% (442 of 855 strings)

Translated using Weblate (Dutch)

Currently translated at 40.7% (348 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Polish)

Currently translated at 100.0% (855 of 855 strings)

Translated using Weblate (Polish)

Currently translated at 100.0% (855 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Hungarian)

Currently translated at 100.0% (855 of 855 strings)

Translated using Weblate (Hungarian)

Currently translated at 100.0% (855 of 855 strings)

Translated using Weblate (Hungarian)

Currently translated at 90.7% (776 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Czech)

Currently translated at 100.0% (857 of 857 strings)

Translated using Weblate (Czech)

Currently translated at 100.0% (855 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Japanese)

Currently translated at 87.9% (754 of 857 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (German)

Currently translated at 73.4% (628 of 855 strings)

Translated using Weblate (German)

Currently translated at 73.3% (627 of 855 strings)

Translated using Weblate (German)

Currently translated at 73.3% (627 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

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: Naim V <naimverboom@gmail.com>
Co-authored-by: Sebin Nyshkim <sebin.nyshkim@icloud.com>
Co-authored-by: Soderes Sanyi <kennex@protonmail.com>
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/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/fr/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
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/zh_Hant/
Translation: feishin/Translation
2025-12-04 09:48:11 +00:00
jeffvli 424c269c22 fix styling on release notes modal 2025-12-04 01:45:34 -08:00
jeffvli 376c09d1ea allow clear button to remove searched/override lyrics 2025-12-04 01:38:38 -08:00
jeffvli c14877916a add hotkey to album search input 2025-12-04 01:36:04 -08:00
jeffvli 4d626377ef fix mediasession controls 2025-12-04 01:31:57 -08:00
jeffvli 69fa5bc733 fix playlist refresh 2025-12-03 22:29:26 -08:00
jeffvli 20830cb979 fix playlist song list context menu showing remove item 2025-12-03 22:25:41 -08:00
jeffvli ccdd16292a add player filters to omit songs from queue based on criteria 2025-12-03 22:11:18 -08:00
jeffvli 5540ca4e32 improve handlers for artist / sidebar configuration 2025-12-03 20:51:10 -08:00
jeffvli a5372313c4 add some additional folder browsing qol
- automatically scroll to current folder
- fix tooltip offset on initial render
2025-12-03 20:39:26 -08:00
jeffvli 091625d7d9 decouple folder list sort from song list sort 2025-12-03 20:27:57 -08:00
jeffvli a27ddfe746 add genres to home route configuration 2025-12-03 20:22:49 -08:00
jeffvli 5ea7798c52 fix shuffle mode playback index (#1297) 2025-12-03 20:22:46 -08:00
jeffvli ee5d2b12c1 add setting to follow current song on playqueue 2025-12-03 20:11:38 -08:00
jeffvli 06e502c63d enable crossfade player for non-electron 2025-12-03 20:00:20 -08:00
jeffvli 92682c62dc fix featured genres refresh on query reset 2025-12-03 19:55:59 -08:00
jeffvli d8df70eddd fix error on album/albumartist header image (#1299) 2025-12-03 19:01:23 -08:00
jeffvli cb2581252b remove _custom query usage for playlists 2025-12-03 18:31:42 -08:00
jeffvli a47f94ebb2 add refresh button to album / artist carousels 2025-12-03 18:05:15 -08:00
jeffvli 9d498d4ca2 add default delay to tooltip group 2025-12-03 17:53:49 -08:00
jeffvli 85c0d8503b adjust grid carousel breakpoints 2025-12-03 17:48:58 -08:00
jeffvli d604074d82 remove maxWidth from now playing route 2025-12-03 17:48:46 -08:00
jeffvli d511b58c8f hide pagination controls on playqueue config 2025-12-03 16:54:40 -08:00
jeffvli 49ce670281 add network disclaimer for waveform playerbar 2025-12-03 16:25:37 -08:00
jeffvli 55ebc7d74a improve image column play handler to support long press 2025-12-03 16:25:28 -08:00
jeffvli a7e6a75c68 normalize tooltips 2025-12-03 16:00:41 -08:00
jeffvli c738725d94 remove duplicate divider from app menu 2025-12-03 15:14:24 -08:00
jeffvli b87d63ced9 add command palette to app menu 2025-12-03 14:55:22 -08:00
jeffvli 75ef5995ea use removeQueries instead of resetQueries on music folder change 2025-12-03 14:55:22 -08:00
jeffvli 16971aaa9c add manage servers item to app menu 2025-12-03 14:55:22 -08:00
jeffvli 0b5b554eec fix compact image sizing 2025-12-03 14:55:22 -08:00
jeffvli 917bf91583 add folder browsing support (#315) 2025-12-03 14:55:16 -08:00
jeffvli 355257104d reorganize external link settings 2025-12-02 20:25:42 -08:00
jeffvli 47d44851f0 fix tagList controller rename 2025-12-02 18:53:13 -08:00
jeffvli f84506ce01 use tags list for Navidrome genres to support counts 2025-12-02 18:38:08 -08:00
jeffvli 854a26e3f4 make page header padding consistent with filter bar 2025-12-02 18:38:08 -08:00
jeffvli ddb6447165 fix table image aspect ratio 2025-12-02 18:38:08 -08:00
jeffvli 4d2721db50 fix table scrollsync on column change 2025-12-02 18:38:02 -08:00
jeffvli d22b24d98f fix potential stale state on list config reorder, slight redesign 2025-12-02 17:40:00 -08:00
jeffvli 7701ea0a8c support multiple items in item details modal 2025-12-02 17:23:18 -08:00
jeffvli a35577444b add in-app release notes 2025-12-02 17:14:58 -08:00
jeffvli cab16b0893 add configuration for audio status fade 2025-12-02 16:59:36 -08:00
Kendall Garner bc5d0cf994 fix(player): restore preserving html audio pitch 2025-12-02 07:52:21 -08:00
Hosted Weblate f2b59d531b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate 9699092d9f Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate 7d9cd39d85 Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 85.3% (730 of 855 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: linger <linger0517@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/zh_Hant/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate bbd6457341 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate 9f957c2197 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate 248b71311d Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:12 +01:00
Hosted Weblate 578a373248 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 59ae291e1f Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 0472e6711b Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate d9c8e5ccba Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 080258dc49 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 7237b4d136 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate a58b3394e9 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate d5144d0dd4 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 677c41efb9 Translated using Weblate (Hungarian)
Currently translated at 87.7% (749 of 854 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Hungarian)

Currently translated at 100.0% (756 of 756 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Soderes Sanyi <kennex@protonmail.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/hu/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 765f96254e Translated using Weblate (Czech)
Currently translated at 91.4% (781 of 854 strings)

Translated using Weblate (Czech)

Currently translated at 87.9% (751 of 854 strings)

Update translation files

Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Czech)

Currently translated at 100.0% (756 of 756 strings)

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/cs/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate dd8bf8db35 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Catalan)

Currently translated at 100.0% (756 of 756 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Ondo <SparkyOndo@proton.me>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ca/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate e0a12bc859 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translated using Weblate (Japanese)

Currently translated at 98.9% (748 of 756 strings)

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: karigane <169052233+karigane-cha@users.noreply.github.com>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/ja/
Translation: feishin/Translation
2025-12-02 10:37:11 +01:00
Hosted Weblate 1d2eda4175 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
Hosted Weblate e4b648a99c Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
Hosted Weblate 533d22b050 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
Hosted Weblate 2b9cb196d0 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
Hosted Weblate 517dfcf2a7 Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
Hosted Weblate b715bd178f Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/feishin/translation/
Translation: feishin/Translation
2025-12-02 10:37:10 +01:00
jeffvli 97af90c004 re-add play button to image column 2025-12-02 01:35:19 -08:00
jeffvli 8d53358d33 make query editor button easier to click 2025-12-02 01:35:18 -08:00
jeffvli 2c026837e8 add better handler for large fetch confirmation for songs 2025-12-02 01:35:18 -08:00
jeffvli 6d8947fe74 add double click play handler to song lists 2025-12-02 01:35:18 -08:00
jeffvli 65f24c2c03 more fixes to list filters 2025-12-02 01:35:18 -08:00
farfromrefuge 4889f2b51a fix: bring back linux deb (#1304)
* Restore deb package building for Linux with auto-update support

Co-authored-by: farfromrefug <655344+farfromrefug@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
2025-12-02 01:33:45 -08:00
Jeff 2b2dd34c60 Merge pull request #1303 from Soderes/hu-fix
Update README.md
2025-12-02 01:31:57 -08:00
jeffvli 07523f82ce suspend infinite loader on fetch 2025-12-02 00:28:45 -08:00
jeffvli aff7a61bca fix list filters 2025-12-02 00:11:42 -08:00
Soderes 542dd573f2 Update README.md
Fix typos and grammar issues in README.md
2025-12-02 08:07:46 +01:00
jeffvli 4abfbd1973 fix missing sidebar active icon 2025-12-01 20:04:51 -08:00
jeffvli 93d4536ba6 improve favorite / rating display on item card 2025-12-01 20:04:40 -08:00
jeffvli 72e7006cc3 hide display type toggle if only one available 2025-12-01 19:01:31 -08:00
jeffvli 94ed91f95c update default grid item gap to sm 2025-12-01 18:36:39 -08:00
jeffvli baf40ba50e add display type toggle to list headers 2025-12-01 18:36:02 -08:00
jeffvli 51c546fa5d slight redesign to list config menu 2025-12-01 18:35:51 -08:00
jeffvli 84b464090c optimize list content pages with sidebar to prevent extra rerender on config change 2025-12-01 17:52:49 -08:00
jeffvli 7db0b59895 make modal overlay consistent 2025-12-01 17:52:23 -08:00
jeffvli 94b9a3a4dc replace genre with user rating for default album detail columns 2025-12-01 17:34:33 -08:00
jeffvli 1c5bbb8fa0 fix album list blank on first render 2025-12-01 17:27:25 -08:00
jeffvli 994d8bac71 fix list table autosize on row count change 2025-12-01 13:30:58 -08:00
Jeff bfac1524a8 Merge pull request #1288 from jeffvli/feat/new-lists
1.0.0
2025-11-30 19:36:44 -08:00
jeffvli 2ceca9c034 add cancellation to player status fade 2025-11-30 19:25:30 -08:00
jeffvli 02144db221 suppress error on invalid server in stream url 2025-11-30 19:22:14 -08:00
jeffvli 8d0eb55691 handle visualizer opacity when no lyrics 2025-11-30 18:53:33 -08:00
jeffvli 5442107405 set visualizer in sidebar initial true 2025-11-30 18:49:13 -08:00
jeffvli fe493d1dab increase initial right sidebar width 2025-11-30 18:48:49 -08:00
jeffvli 0afbfb12cd handle scroll reset on grid page change 2025-11-30 18:47:46 -08:00
jeffvli b5780094e7 update list defaults 2025-11-30 18:41:43 -08:00
jeffvli 0fd6032bfc add default server name to add server form 2025-11-30 18:31:03 -08:00
jeffvli 65c54655ff reset all stores, remove old ones 2025-11-30 18:30:57 -08:00
jeffvli 286651c1b3 remove settings from analytics 2025-11-30 18:19:00 -08:00
jeffvli c7bf0d8fb8 add visualizer to sidebar 2025-11-30 18:14:05 -08:00
jeffvli 0b8ae55150 persist lyrics offset per song 2025-11-30 17:55:12 -08:00
jeffvli b99bc62065 re-add lrclib as default lyric source 2025-11-30 17:54:53 -08:00
jeffvli 615280e01b reverse the lyrics offset behavior to standard convention 2025-11-30 17:47:19 -08:00
jeffvli 72ef6da243 allow timeout before sync lyrics scroll after manual scrolling 2025-11-30 17:39:32 -08:00
jeffvli 5cab727b2d properly persist searched lyrics to cache 2025-11-30 17:36:25 -08:00
jeffvli b9b39caf86 add play controls to expanded album list item 2025-11-30 17:33:49 -08:00
jeffvli 96acf759ff fix subsonic / jellyfin filters 2025-11-30 17:25:44 -08:00
jeffvli c5c2b24a9d fix song list filters 2025-11-30 15:58:49 -08:00
jeffvli 6d87da2474 fix album list filters 2025-11-30 15:32:18 -08:00
jeffvli d75d1687a4 fade out no lyrics message 2025-11-30 13:38:09 -08:00
jeffvli f425e6ba63 add component error boundary 2025-11-30 13:37:33 -08:00
jeffvli fd2023e9d6 properly handle list refetch on query change 2025-11-30 13:24:27 -08:00
jeffvli e8db28e112 redesign lyrics search form 2025-11-30 13:16:40 -08:00
jeffvli 78fcc5c1c7 add context menu to left controls 2025-11-30 13:16:40 -08:00
Kendall Garner 08e8c65a18 add action.downloadStarted key 2025-11-30 07:53:04 -08:00
Kendall Garner dd3d05c813 add web audio, replaygain, visualizer (#1289)
* add web audio, replaygain, visualizer

* remove volume multiplication in gain

---------

Co-authored-by: Jeff <42182408+jeffvli@users.noreply.github.com>
2025-11-30 03:25:12 -08:00
jeffvli 8777da9491 revert settings to route instead of modal 2025-11-30 01:15:11 -08:00
jeffvli cb3c0fe0d4 add favorites list 2025-11-30 01:12:29 -08:00
jeffvli 1c0cbafa3e lint 2025-11-29 22:42:26 -08:00
jeffvli c5112e5031 use consistent width on settings modal 2025-11-29 22:25:09 -08:00
jeffvli 196289edb3 handle rating in context menu 2025-11-29 22:22:57 -08:00
jeffvli aab19b289b reimplement playback hotkeys 2025-11-29 22:04:10 -08:00
jeffvli 801e2cdcf4 use % height for settings modal 2025-11-29 21:45:38 -08:00
jeffvli 0b70ed158b fix mpris 2025-11-29 21:35:09 -08:00
jeffvli de3c7de7e5 update get info modal design 2025-11-29 20:31:21 -08:00
jeffvli cba7cbfdfa add edit playlist to context menu 2025-11-29 20:18:55 -08:00
jeffvli f5ab1d8e8a hide grid from certain list configs 2025-11-29 20:16:41 -08:00
jeffvli 7744f58c8c more types fixes on playlist detail 2025-11-29 20:14:34 -08:00
jeffvli 981e250d8c make layout borders more pronunced 2025-11-29 20:14:13 -08:00
jeffvli 297db71850 fix types on playlist songs table 2025-11-29 20:09:22 -08:00
jeffvli 24846fbae4 refactor playlist route component organization 2025-11-29 20:05:08 -08:00
jeffvli ad198ea047 remove animations and various smart playlist adjustments 2025-11-29 19:55:22 -08:00
jeffvli 526ba338a8 remove shadow from drag preview 2025-11-29 19:53:19 -08:00
jeffvli cfb289f906 adjust item card for light theme 2025-11-29 19:48:37 -08:00
jeffvli 8d829b2886 reimplement top songs list 2025-11-29 19:33:42 -08:00
jeffvli bdc52ece9d more jellyfin api fixes 2025-11-29 19:33:42 -08:00
jeffvli 224fcf94b8 handle limit -1 for jellyfin genres 2025-11-29 19:33:42 -08:00
jeffvli 3f704f1f35 add 12 hour cache for list count queries 2025-11-29 19:33:42 -08:00
jeffvli 8611bb9755 fix subsonic / jellyfin issues 2025-11-29 19:33:42 -08:00
jeffvli 108ba53be2 lint all files 2025-11-29 19:33:42 -08:00
jeffvli 96e9d54f4e add sidebar panel lyrics 2025-11-29 19:33:41 -08:00
jeffvli 7f95c520b2 fix mobile playerbar layout to prevent overflow 2025-11-29 19:33:41 -08:00
jeffvli b097d67d71 properly handle switch between genre display states without filter clobber 2025-11-29 19:33:41 -08:00
jeffvli 3a5eb96410 adjust default table columns 2025-11-29 19:33:41 -08:00
jeffvli 576d14dca0 remove motion wrapper 2025-11-29 19:33:41 -08:00
jeffvli a6945bc1f3 add date picker operators to smart playlist 2025-11-29 19:33:41 -08:00
jeffvli 6094a520e2 support custom smart playlist tags 2025-11-29 19:33:41 -08:00
jeffvli d22fee887c add wrapper for mantine useForm 2025-11-29 19:33:41 -08:00
jeffvli 83bd83b629 revert track number to use 'track' value 2025-11-29 19:33:41 -08:00
jeffvli abd2f9485c update JsonPreview to use Code component 2025-11-29 19:33:41 -08:00
jeffvli f448572e0a adjust settings modal sizing 2025-11-29 19:33:41 -08:00
jeffvli 2fa6c9de94 support playlist sidebar drag to queue 2025-11-29 19:33:41 -08:00
jeffvli 5e12a666e3 optimize query builder 2025-11-29 19:33:41 -08:00
jeffvli bb1705a774 redesign smart playlist, add multisort 2025-11-29 19:33:41 -08:00
jeffvli 974e96c7b4 fix playlist count badge loader 2025-11-29 19:33:41 -08:00
jeffvli 4e3b4c0118 revert theme bg 2025-11-29 19:33:41 -08:00
jeffvli e69d0c8922 add popver playqueue 2025-11-29 19:33:41 -08:00
jeffvli 5e8d17f144 increase popover default padding 2025-11-29 19:33:41 -08:00
jeffvli 774495262e add infinite loader for feature carousel 2025-11-29 19:33:41 -08:00
jeffvli a708162b15 adjust feature carousel design 2025-11-29 19:33:41 -08:00
jeffvli 61bfca90d1 increase tooltip readability 2025-11-29 19:33:41 -08:00
jeffvli c4bf3da5d4 slightly increase default dark bg color 2025-11-29 19:33:41 -08:00
jeffvli 93ba99e36f redesign PlayButtonGroup to match card styles 2025-11-29 19:33:41 -08:00
jeffvli a99a02c94c adjust default modal styles 2025-11-29 19:33:41 -08:00
jeffvli 998eb02621 add album artist, year to album header 2025-11-29 19:33:40 -08:00
jeffvli a18d2ee305 update album artist page 2025-11-29 19:33:40 -08:00
jeffvli 663fdd426f fix missing label style on multiselect 2025-11-29 19:33:40 -08:00
jeffvli 72e2e6daca update fields and add multiselect to smart playlist sort 2025-11-29 19:33:40 -08:00
jeffvli 9b17d3513a handle context menu on playlist songs 2025-11-29 19:33:40 -08:00
jeffvli 06d0c715af reimplement smart playlists 2025-11-29 19:33:40 -08:00
jeffvli 9d3c44ef15 increase stack gap on home page 2025-11-29 19:33:40 -08:00
jeffvli 8f06b177b5 redesign featured genres 2025-11-29 19:33:40 -08:00
jeffvli 9e1cdcc93e remove max width from list pages 2025-11-29 19:33:40 -08:00
jeffvli 2101b2e1c7 fix sidebar image animate out 2025-11-29 19:33:40 -08:00
jeffvli c376f3add3 add localization to drag/ctx preview 2025-11-29 19:33:40 -08:00
jeffvli 503dfd6a55 use consistent sizing for drag preview 2025-11-29 19:33:40 -08:00
jeffvli 4fc036f4ea add context menu selection preview 2025-11-29 19:33:40 -08:00
jeffvli dbad1088ea make list drop position indicator more consistent 2025-11-29 19:33:40 -08:00
jeffvli b7c413c96a increase library headerbar title size 2025-11-29 19:33:40 -08:00
jeffvli 1c65ca4a5a add drag preview 2025-11-29 19:33:40 -08:00
jeffvli 5d0124369e fix internalState on expanded album item 2025-11-29 19:33:40 -08:00
jeffvli 3f8a3a5e03 fix override query behavior on list pages 2025-11-29 19:33:40 -08:00
jeffvli 60d8d18a0f add mediasession 2025-11-29 19:33:40 -08:00
jeffvli 212d9e9f55 add mpris 2025-11-29 19:33:40 -08:00
jeffvli f0c35be21f add logs to discord rpc events 2025-11-29 19:33:40 -08:00
jeffvli 2f32534cf9 add logs to scrobble events 2025-11-29 19:33:40 -08:00
jeffvli 7016446be7 add scrollbar to right-pinned table container if exists 2025-11-29 19:33:40 -08:00
jeffvli 0927ff0e5e temp 2025-11-29 19:33:40 -08:00
jeffvli 4ef2956eb1 add delete hotkey to playqueue 2025-11-29 19:33:40 -08:00
jeffvli a893b063de fix genre route link on album badges 2025-11-29 19:33:40 -08:00
jeffvli 7cc7086dbb add select all hotkey to lists 2025-11-29 19:33:40 -08:00
jeffvli 092a9c3f19 add initial playlist reimplementation 2025-11-29 19:33:40 -08:00
jeffvli ac5de29c71 reimplement artist discog / tracks routes 2025-11-29 19:33:39 -08:00
jeffvli 6b307b3bd4 properly handle adding list queries from song list to queue 2025-11-29 19:33:39 -08:00
jeffvli 9e0c4d4b2a add additional checks on wavesurfer to prevent playback 2025-11-29 19:33:39 -08:00
jeffvli d66b1c1bbb add error handler to web player 2025-11-29 19:33:39 -08:00
jeffvli 3a2c5f7b11 handle cleaner switch between mpv/web 2025-11-29 19:33:39 -08:00
jeffvli 411f661174 bump react-player to 2.16.0 2025-11-29 19:33:39 -08:00
jeffvli a238927749 refactor list internal state to target rerenders on change 2025-11-29 19:33:39 -08:00
jeffvli 10c9bec2cf disable fullscreen from settings modal 2025-11-29 19:33:39 -08:00
jeffvli ffa9d165f2 refactor shuffle all modal for styles and loading state 2025-11-29 19:33:39 -08:00
jeffvli 6a8e55ce15 refactor button to use default loader 2025-11-29 19:33:39 -08:00
jeffvli 2c9ea6d19c refactor play button for reusability 2025-11-29 19:33:39 -08:00
jeffvli 902ac91b95 add new spinner icon 2025-11-29 19:33:39 -08:00
jeffvli 60cdea6787 large performance refactor 2025-11-29 19:33:39 -08:00
jeffvli 948f428546 attempt to prevent thread blocking from fac 2025-11-29 19:33:39 -08:00
jeffvli 94a7829882 add debug logs for player actions 2025-11-29 19:33:39 -08:00
jeffvli 4b3fda18d4 update logger colors for readability 2025-11-29 19:33:39 -08:00
jeffvli 778d878349 add umami analytics integration 2025-11-29 19:33:39 -08:00
jeffvli c77d38fca0 fix player shuffle 2025-11-29 19:33:39 -08:00
jeffvli 042047d7c1 clean up player repeat behavior 2025-11-29 19:33:39 -08:00
jeffvli 6f132f745b fix useCurrentServerId hook to always return a string 2025-11-29 19:33:39 -08:00
jeffvli 2264fa0d29 extract play button from item card and add long press animation 2025-11-29 19:33:39 -08:00
jeffvli 8ad5e26c2f move remote settings to window tab 2025-11-29 19:33:39 -08:00
jeffvli 22fae938c4 refactor item grid sizer handling to prevent blanks on resize 2025-11-29 19:33:39 -08:00
jeffvli 359e442947 optimize excessive layout re-rendering due to react-router 2025-11-29 19:33:39 -08:00
jeffvli 0a6b9a1040 rename import/export string 2025-11-29 19:33:39 -08:00
jeffvli 8d72596a33 attempt to fix playqueue initial height issue 2025-11-29 19:33:39 -08:00
jeffvli e78a46ab24 optimize list refresh functions 2025-11-29 19:33:38 -08:00
jeffvli d3132ad570 reimplement genre detail route 2025-11-29 19:33:38 -08:00
jeffvli eba485034a fix align on certain table columns 2025-11-29 19:33:38 -08:00
jeffvli 1b8afe3134 add image unloader to sidebar image when no image available 2025-11-29 19:33:38 -08:00
jeffvli 04c2bec58f fix paginated loader query return value to be consistent with domain types 2025-11-29 19:33:38 -08:00
jeffvli 6dc110e776 remove unused font declaration 2025-11-29 19:33:38 -08:00
jeffvli a4f53e5273 add better type safety for favorite/rating update 2025-11-29 19:33:38 -08:00
jeffvli 5e5b4f1536 remove queue drawer hover button 2025-11-29 19:33:38 -08:00
jeffvli a2926ef47e reorganize and redesign settings 2025-11-29 19:33:38 -08:00
jeffvli 7cc5ccd2c5 fix item card control navigation again 2025-11-29 19:33:38 -08:00
Kendall Garner 80419a1edf Remove stream url, cleanup old audio player (#1269)
* Remove stream url, cleanup old audio player

* remove unused api in playerbar waveform

* make jellyfin transcoding work?
2025-11-29 19:33:38 -08:00
jeffvli db110733a4 add long press to card controls for shuffle 2025-11-29 19:33:38 -08:00
jeffvli 1763f666b5 add more shuffle play modes 2025-11-29 19:33:38 -08:00
jeffvli 16c703fe31 remove scrobble log 2025-11-29 19:33:38 -08:00
jeffvli bbcee3f461 fix album column styling to fit link to width of text 2025-11-29 19:33:38 -08:00
jeffvli 56162b650c handle title combined column on compact sizing 2025-11-29 19:33:38 -08:00
jeffvli af7e52295a reimplement player scrobble 2025-11-29 19:33:38 -08:00
jeffvli c23e459b89 move queue favorite event listener to an app global scope 2025-11-29 19:33:38 -08:00
jeffvli 70cffda3f9 update build again for sourcemap and minify 2025-11-29 19:33:38 -08:00
jeffvli 7c71f1058d null songCount and albumCount in genre type 2025-11-29 19:33:38 -08:00
jeffvli a32f76720a refactor app error boundaries 2025-11-29 19:33:38 -08:00
jeffvli 84419820b8 add optimistic update for favorite/ratings mutations 2025-11-29 19:33:38 -08:00
jeffvli 0bc3ea51ec update grid carousel breakpoints 2025-11-29 19:33:38 -08:00
jeffvli f3b7d776e8 add compact image column styling 2025-11-29 19:33:37 -08:00
jeffvli cfb1f63567 force aspect ratio on default Image 2025-11-29 19:33:37 -08:00
jeffvli 54a8c8c3a4 move settings page to modal instead of route 2025-11-29 19:33:37 -08:00
jeffvli 6d0f80f06a remove link from artist on feature carousel 2025-11-29 19:33:37 -08:00
jeffvli 4b2708e1e4 fix activeRowId styles for title columns 2025-11-29 19:33:37 -08:00
jeffvli 80b4730749 set favorite color to primary on header menu 2025-11-29 19:33:37 -08:00
jeffvli 00371ef09e set enableNavigation to true on ItemCard 2025-11-29 19:33:37 -08:00
jeffvli 646eb4a3b0 add double click play to album detail
- add mediaPlayByIndex
- add index property to item list controls args
- add overrides to item list controls
2025-11-29 19:33:37 -08:00
jeffvli 0aee428aaf remove right sidebar animation 2025-11-29 19:33:37 -08:00
jeffvli 6a003c9035 remove select from grid carousel titles 2025-11-29 19:33:37 -08:00
jeffvli 7fd084bb0c remove top/bottom padding from feature carousel 2025-11-29 19:33:37 -08:00
jeffvli 1747395b3e add feature genres component to home route 2025-11-29 19:33:37 -08:00
jeffvli b24faa1e08 update feature carousel animation 2025-11-29 19:33:37 -08:00
jeffvli 0a25df39ca re-add menu button to sidebar 2025-11-29 19:33:37 -08:00
jeffvli c0f18d7a10 add new transitions to popover/dropdown 2025-11-29 19:33:37 -08:00
jeffvli 8225803ec0 add minification to renderer build 2025-11-29 19:33:37 -08:00
jeffvli 42e90734b2 random cleanup 2025-11-29 19:33:37 -08:00
jeffvli 06481118ad add background back to home route pageheader 2025-11-29 19:33:37 -08:00
jeffvli 875e178c0b move player back above router 2025-11-29 19:33:37 -08:00
jeffvli c5c3c596a0 wrap all page routes in LibraryContainer 2025-11-29 19:33:37 -08:00
jeffvli a5fa5727d3 increase default content max-width to 1800px 2025-11-29 19:33:37 -08:00
jeffvli 59cdc66355 remove default bg from PageHeader 2025-11-29 19:33:37 -08:00
jeffvli 73551847fb prevent item card from using default rows if none specified 2025-11-29 19:33:37 -08:00
jeffvli 2269eee8cc adjust default title styling on grid carousel 2025-11-29 19:33:37 -08:00
jeffvli 958ded6988 add more breakpoints to carousel 2025-11-29 19:33:37 -08:00
jeffvli 2b70adc1f6 move container max-width configuration to theme 2025-11-29 19:33:37 -08:00
jeffvli 6a0b36cfa6 redesign feature carousel 2025-11-29 19:33:37 -08:00
jeffvli e80fc1a513 remove transition on page header visibility 2025-11-29 19:33:37 -08:00
jeffvli 19a51d82be fix unneccesary navigation on grid card control click 2025-11-29 19:33:37 -08:00
jeffvli 9801337c61 add primary color highlight to sidebar nav 2025-11-29 19:33:36 -08:00
jeffvli 6978516f79 remove stroke from item card svg 2025-11-29 19:33:36 -08:00
jeffvli ee4a1f762e Revert "use new favorite color for icons"
This reverts commit 23c81d3bdc.
2025-11-29 19:33:36 -08:00
jeffvli ab49735268 adjust sidebar styles 2025-11-29 19:33:36 -08:00
jeffvli 1c5212d756 update page header render to use css instead of state 2025-11-29 19:33:36 -08:00
jeffvli b159dd4452 remove indeterminate state from album disc groups 2025-11-29 19:33:36 -08:00
jeffvli e137e727f6 remove calculated width from group row
- prevents overflow when pinned right columns
2025-11-29 19:33:36 -08:00
jeffvli 606aaa0d56 handle more rating/favorite mutation cases 2025-11-29 19:33:36 -08:00
jeffvli ca78149ba3 move player context and audioplayers inside of router 2025-11-29 19:33:36 -08:00
jeffvli 70a6ca5d77 use new favorite color for icons 2025-11-29 19:33:36 -08:00
jeffvli d83d1f3e5a add album column to table 2025-11-29 19:33:36 -08:00
jeffvli ae954b00cb add custom library header title sizer 2025-11-29 19:33:36 -08:00
jeffvli d3634d2c8a remove auto-text-size package 2025-11-29 19:33:36 -08:00
jeffvli 41a394367b add ignored colors to both hook and function 2025-11-29 19:33:36 -08:00
jeffvli 676f963e19 fix favorite/rating handlers on detail page 2025-11-29 19:33:36 -08:00
jeffvli b6e4302087 fix detail query keys with no query provided 2025-11-29 19:33:36 -08:00
jeffvli 75bf33fbba add favorite icon color 2025-11-29 19:33:36 -08:00
jeffvli c76ac7b249 adjust library header title sizing 2025-11-29 19:33:36 -08:00
jeffvli 57779e960b fix grid position of album content 2025-11-29 19:33:36 -08:00
jeffvli da863956b3 adjust various font sizes, weights around the app 2025-11-29 19:33:36 -08:00
jeffvli d6a40a7bc9 increase md, sm, xs font sizes 2025-11-29 19:33:36 -08:00
jeffvli 233c35647d remove most built-in fonts, adjust NotoSans weight 2025-11-29 19:33:36 -08:00
jeffvli 43eb6607ba fix padding on rating component 2025-11-29 19:33:36 -08:00
jeffvli 3212a35efb add LibraryContainer for max-width and background overlay 2025-11-29 19:33:36 -08:00
jeffvli c4f94495a8 support scroll sync on sticky table header and groups 2025-11-29 19:33:36 -08:00
jeffvli 948fc40b3e add motion animation on list to handle scrollbar sizing shift 2025-11-29 19:33:36 -08:00
jeffvli 427cfe0796 move suspense wrapper on carousels in album detail 2025-11-29 19:33:36 -08:00
jeffvli 4b135d7586 decrease react-query gcTime to match staleTime 2025-11-29 19:33:36 -08:00
jeffvli f86b00eced optimize player state for large queues 2025-11-29 19:33:36 -08:00
jeffvli 7fb0dffc40 redesign album detail page 2025-11-29 19:33:35 -08:00
jeffvli da82581eb0 allow autoheight of library header 2025-11-29 19:33:35 -08:00
jeffvli ece82d813c pass state from list navigation 2025-11-29 19:33:35 -08:00
jeffvli eb8dcfa053 fix expanded album title color again 2025-11-29 19:33:35 -08:00
jeffvli 82e1ce4d7a handle conditional item card expansion 2025-11-29 19:33:35 -08:00
jeffvli c25c339feb make item card navigation conditional on list state 2025-11-29 19:33:35 -08:00
jeffvli 1a4c909cc3 add favorite badge to card 2025-11-29 19:33:35 -08:00
jeffvli ff776293a6 add item card navigation 2025-11-29 19:33:35 -08:00
jeffvli 8ac0a27f33 fix drag to collapse sidebar 2025-11-29 19:33:35 -08:00
jeffvli f2680bb1de fix title alignment on mobile player 2025-11-29 19:33:35 -08:00
jeffvli bbaf305129 fix title color on expanded album list 2025-11-29 19:33:35 -08:00
jeffvli c21e2f4a1e optimize library header bar render 2025-11-29 19:33:35 -08:00
jeffvli c763824803 add basic mobile responsive layout 2025-11-29 19:33:35 -08:00
jeffvli 485fe8085c handle manual grid rows on paginated lists 2025-11-29 19:33:35 -08:00
jeffvli c691c349dd handle table row index values on paginated lists 2025-11-29 19:33:35 -08:00
jeffvli 0dff13c43f crossfade player enhancements, reorganize settings 2025-11-29 19:33:35 -08:00
jeffvli 725e44f048 adjust genre display and gap in header 2025-11-29 19:33:35 -08:00
jeffvli 12e916fd0d add PillLink component 2025-11-29 19:33:35 -08:00
jeffvli 05da8c0456 adjust rating component to match theme sizes 2025-11-29 19:33:35 -08:00
jeffvli 1735b64d76 move genre buttons to album detail header 2025-11-29 19:33:35 -08:00
jeffvli 1785e5c3a6 adjust library header metadata alignment 2025-11-29 19:33:35 -08:00
jeffvli ab5eb5c34c updating rating button styles to more closely resemble icons 2025-11-29 19:33:35 -08:00
jeffvli 94f15d0f4f add search input to album detail table 2025-11-29 19:33:35 -08:00
jeffvli 4fc346ac90 add fuse search utils 2025-11-29 19:33:35 -08:00
jeffvli ec135e30ed readd base mantine css import 2025-11-29 19:33:35 -08:00
jeffvli dff3d0b04c add play handlers to all remaining library headers 2025-11-29 19:33:34 -08:00
jeffvli aba8896ecf reimplement fullscreen player 2025-11-29 19:33:34 -08:00
jeffvli a386a1baad fix missing container on image without src 2025-11-29 19:33:34 -08:00
jeffvli cf50132870 improve responsive styling on library header 2025-11-29 19:33:34 -08:00
jeffvli 62ace421e6 fix image component height 2025-11-29 19:33:34 -08:00
jeffvli dde2e4e780 match drag behavior on waveform playerbar to original 2025-11-29 19:33:34 -08:00
jeffvli 6c785c7ea2 optimize playerbar slider component 2025-11-29 19:33:34 -08:00
jeffvli d977407766 cleanup small issues 2025-11-29 19:33:34 -08:00
jeffvli 71bea66ab7 add play buttons for each list page header 2025-11-29 19:33:34 -08:00
jeffvli bc13c7b176 add new play behavior to libraryheader play button 2025-11-29 19:33:34 -08:00
jeffvli 9f5ec9113c set confirm modal to focus confirm button 2025-11-29 19:33:34 -08:00
jeffvli 00565cccb9 add option to hide fetch confirmation 2025-11-29 19:33:34 -08:00
jeffvli 8e1cdac3a2 optimize playqueue performance for active song styles 2025-11-29 19:33:34 -08:00
jeffvli 46c0a309da add list query fetcher 2025-11-29 19:33:34 -08:00
jeffvli 70242c4044 add login page for locked server 2025-11-29 19:33:34 -08:00
jeffvli 92d4681a23 fix unauthenticated flow 2025-11-29 19:33:34 -08:00
jeffvli 781582c043 fix queue add above current index in priority queue again 2025-11-29 19:33:34 -08:00
jeffvli e986557d87 replace remaining legacy playqueue add functions 2025-11-29 19:33:34 -08:00
jeffvli ef78196d1e update import order of overlayscrollbars styles 2025-11-29 19:33:34 -08:00
jeffvli d8e6aec93d add missing combox style import 2025-11-29 19:33:34 -08:00
jeffvli 1acde80d61 clean up unused files 2025-11-29 19:33:34 -08:00
jeffvli 808c0167f1 use new icon for player config button 2025-11-29 19:33:34 -08:00
jeffvli 69f7f5c236 handle favorite/rating events for all tables 2025-11-29 19:33:34 -08:00
jeffvli 63e6df0481 add gcTime to rq mutation 2025-11-29 19:33:34 -08:00
jeffvli ea95a7bbd1 remove expansion from song table 2025-11-29 19:33:34 -08:00
jeffvli c77ba121a6 optimize various components 2025-11-29 19:33:34 -08:00
jeffvli fe60d2e26f add more aggressive react-query garbage collection 2025-11-29 19:33:34 -08:00
jeffvli dfb01ce165 show disabled slider when no waveform available 2025-11-29 19:33:33 -08:00
jeffvli e3402a1e44 bundle size optimizations 2025-11-29 19:33:33 -08:00
jeffvli e45c126a3f fix lyrics components 2025-11-29 19:33:33 -08:00
jeffvli 7b9007c699 add waveform playerbar slider 2025-11-29 19:33:33 -08:00
jeffvli 142a6d6512 add default playaction to play context menu click 2025-11-29 19:33:33 -08:00
jeffvli 18a7875504 fix priority queue reorder above current song 2025-11-29 19:33:33 -08:00
jeffvli f3bb4187d7 wrap all instances of mantine hooks used in renderer 2025-11-29 19:33:33 -08:00
jeffvli d349cc3e8d remove automatic import for @mantine/hooks 2025-11-29 19:33:33 -08:00
jeffvli f6ad67693e remove user select from server selector 2025-11-29 19:33:33 -08:00
jeffvli 43d409b0d7 remove wrong styles from group rows 2025-11-29 19:33:33 -08:00
jeffvli 09a9498d0d refactor playqueue with css modules 2025-11-29 19:33:33 -08:00
jeffvli 05deafdffb disable bugged react-hooks rules 2025-11-29 19:33:33 -08:00
jeffvli bd5f2b8f68 fix priority queue reordering index recalculation 2025-11-29 19:33:33 -08:00
jeffvli fd85f1f51a handle table row indexing with group rows 2025-11-29 19:33:33 -08:00
jeffvli 8433ce7f3e handle priority queue on playqueue table 2025-11-29 19:33:33 -08:00
jeffvli 94c128ea3d handle row groups with pinned table columns 2025-11-29 19:33:33 -08:00
jeffvli a4a0a1d227 force row height on group rows 2025-11-29 19:33:33 -08:00
jeffvli 47e47e3cc3 fix appmenu keys again 2025-11-29 19:33:33 -08:00
jeffvli eb1443a45b handle non-list items contextmenu in controls 2025-11-29 19:33:33 -08:00
jeffvli 5892d62391 add server selector to layout animation 2025-11-29 19:33:33 -08:00
jeffvli 9113756923 add new player config popover 2025-11-29 19:33:33 -08:00
jeffvli 60c7a4a9a1 use alternate bg for right sidebar 2025-11-29 19:33:33 -08:00
jeffvli 79af774569 adjust default theme colors 2025-11-29 19:33:33 -08:00
jeffvli 001ad7490c fix missing AnimatePresence on ItemCard 2025-11-29 19:33:33 -08:00
jeffvli c6ab0e7b8a fix appmenu keys 2025-11-29 19:33:33 -08:00
jeffvli 1b0ea06c6b rework root error boundary 2025-11-29 19:33:32 -08:00
jeffvli a92a829ca7 add global music folder selector 2025-11-29 19:33:32 -08:00
jeffvli 199a67fdf3 add error boundary to the app root 2025-11-29 19:33:32 -08:00
jeffvli 4451389b6a move player timestamp to separate store
- for performance related issue
2025-11-29 19:33:32 -08:00
jeffvli 243d29f7a7 remove throttle from main layout resize 2025-11-29 19:33:32 -08:00
jeffvli 0fd55a3f7c downgrade typescript version 2025-11-29 19:33:32 -08:00
jeffvli a78d917fd2 move timestamp update to separate effect 2025-11-29 19:33:32 -08:00
jeffvli 6842da1d68 fix scrollbar z-index 2025-11-29 19:33:32 -08:00
jeffvli 21081edfa3 hide sticky table group after scrolling past 2025-11-29 19:33:32 -08:00
jeffvli 2bdb5a52c4 fix various issues on home page 2025-11-29 19:33:32 -08:00
jeffvli e0b326c565 fix type 2025-11-29 19:33:32 -08:00
jeffvli 9490bf29cc re-add react-window v1 types 2025-11-29 19:33:32 -08:00
jeffvli 30377ab84e adjust column picker again 2025-11-29 19:33:32 -08:00
jeffvli 99dea8891e allow auto height on grid carousel 2025-11-29 19:33:32 -08:00
jeffvli 820a4efc76 add modularity to the ListConfigMenu 2025-11-29 19:33:32 -08:00
jeffvli 2f6ef7906f handle song selection in context menu play action 2025-11-29 19:33:32 -08:00
jeffvli dc15ede3dc refactor table column picker util to reset pinned/align to default values 2025-11-29 19:33:32 -08:00
jeffvli f52bcd2415 add sticky disc group rows for album detail 2025-11-29 19:33:32 -08:00
jeffvli f366b50550 add new table to album detail 2025-11-29 19:33:32 -08:00
jeffvli 31d9ab048d fix container ref instances 2025-11-29 19:33:32 -08:00
jeffvli 4ba7306855 migrate contextModal props 2025-11-29 19:32:26 -08:00
jeffvli 3adfb3711f revert original react-window package back to v1 2025-11-29 19:32:26 -08:00
jeffvli 4e9a1839eb update and cleanup packages 2025-11-29 19:32:25 -08:00
jeffvli 0de8035ca9 remove ag-grid 2025-11-29 19:32:25 -08:00
jeffvli b5eadb64a1 various cleanup 2025-11-29 19:32:25 -08:00
jeffvli f2b629fe6d use default cursor on list hover 2025-11-29 19:32:25 -08:00
jeffvli 2fc14ecd0e add new grid carousels 2025-11-29 19:32:25 -08:00
jeffvli 60cc564743 refactor double click handler to add quicker single click 2025-11-29 19:32:24 -08:00
jeffvli 81d3d2e620 fix Song domain type year value 2025-11-29 19:32:24 -08:00
jeffvli 48feb9f656 reimplement search page 2025-11-29 19:32:24 -08:00
jeffvli e246e4c0b7 adjust searchInput to match button width 2025-11-29 19:32:24 -08:00
jeffvli 2c9edc47e1 decrease context menu width 2025-11-29 19:32:24 -08:00
jeffvli 00a012df78 add overrideQuery to all list views 2025-11-29 19:32:24 -08:00
jeffvli 6d50454e72 reimplement now playing route 2025-11-29 19:32:24 -08:00
jeffvli 8eb90ebf06 add new context menu implementation 2025-11-29 19:32:24 -08:00
jeffvli ec0590c79a rename player context hook 2025-11-29 19:32:23 -08:00
jeffvli 9c2ed36b5c add new playlist list 2025-11-29 19:32:23 -08:00
jeffvli f48c26915f optimize sidebar resizing for performance 2025-11-29 19:32:23 -08:00
jeffvli 1ab9012446 fix mpv queue initialization running multiple times 2025-11-29 19:32:23 -08:00
jeffvli d25b62f7d9 set queue on mpv initialization if available 2025-11-29 19:32:23 -08:00
jeffvli cccb5d7785 add drag to add to playlist 2025-11-29 19:32:23 -08:00
jeffvli 06d9245778 add new play controls to sidebar playlist list 2025-11-29 19:32:23 -08:00
jeffvli 3d4f35e881 re-implement shuffle play type 2025-11-29 19:32:23 -08:00
jeffvli b6c3200419 implement item list grid card row customization 2025-11-29 19:32:23 -08:00
jeffvli 56d0669510 add grid card row config 2025-11-29 19:32:22 -08:00
jeffvli 05c4fd37cc fix list paginated loader hook 2025-11-29 19:32:22 -08:00
jeffvli af00110973 enforce data order in list selection 2025-11-29 19:32:22 -08:00
jeffvli da691fa978 fix some table drop conditions 2025-11-29 19:32:22 -08:00
jeffvli 3f4148258f add shadow to table header 2025-11-29 19:32:22 -08:00
jeffvli a03ea3b4d8 add draggable table column reorder 2025-11-29 19:32:22 -08:00
jeffvli 4c92da9ab5 add draggable table column resize 2025-11-29 19:32:22 -08:00
jeffvli 31a2fdbcb6 update drag handle styles on table config 2025-11-29 19:32:22 -08:00
jeffvli 7921f1e548 improve visiblity of close button on expanded item 2025-11-29 19:32:21 -08:00
jeffvli 8ac3f2a6f7 use throttle for item loader, simplify implementation 2025-11-29 19:32:21 -08:00
jeffvli 2da6894ee5 add dynamic card selection style based on gap 2025-11-29 19:32:21 -08:00
jeffvli 9265bc86bc set playqueue scroll to center 2025-11-29 19:32:21 -08:00
jeffvli c5cd71c8c3 add scrollToIndex alignment to lists 2025-11-29 19:32:21 -08:00
jeffvli 3ecf59c32a auto follow current song in queue 2025-11-29 19:32:21 -08:00
jeffvli da2109b310 refactor grid list to support index offset 2025-11-29 19:32:21 -08:00
jeffvli 6d6caa0406 optimize table config 2025-11-29 19:32:21 -08:00
jeffvli e82c1d3a20 add drag/drop to column reordering 2025-11-29 19:32:20 -08:00
jeffvli 500947eb1f refactor ListConfigMenu as modal 2025-11-29 19:32:20 -08:00
jeffvli fe51b671c7 refactor Modal component styles to match provider 2025-11-29 19:32:20 -08:00
jeffvli 65b72298df add double click navigation to lists 2025-11-29 19:32:20 -08:00
jeffvli ba66b246d2 fix overflow on table header 2025-11-29 19:32:20 -08:00
jeffvli 0c6a993f29 refactor filter persistence to one key 2025-11-29 19:32:20 -08:00
jeffvli 8a8de4a1b6 add new artist list 2025-11-29 19:32:20 -08:00
jeffvli 164332d752 refactor domain types to rename itemType 2025-11-29 19:32:20 -08:00
jeffvli 173e00af3d refactor Genre domain type to include serverType and serverId 2025-11-29 19:32:20 -08:00
jeffvli 4f1d39d3c4 add new genre list 2025-11-29 19:32:20 -08:00
jeffvli 72f20ddd11 add new album artist list 2025-11-29 19:32:19 -08:00
jeffvli 0ba481a7a6 fix double click handler on ItemCard 2025-11-29 19:32:19 -08:00
jeffvli 31b64b317b add item selection to double click handler 2025-11-29 19:32:19 -08:00
jeffvli 302107ed64 slightly increase double click latency 2025-11-29 19:32:19 -08:00
jeffvli ef7d3f1c52 remove non-functional playqueue sizing workaround 2025-11-29 19:32:19 -08:00
jeffvli dffd3efd36 implement queue double click handler 2025-11-29 19:32:19 -08:00
jeffvli a75f64d204 implement double click handler on default controls 2025-11-29 19:32:19 -08:00
jeffvli c5e11cca58 debounce playqueue search 2025-11-29 19:32:19 -08:00
jeffvli 744780861f reimplement playqueue list controls 2025-11-29 19:32:19 -08:00
jeffvli 498abf3c3d update player shuffleAll to keep current song index in place 2025-11-29 19:32:18 -08:00
jeffvli 5e45897b8e update search input styling 2025-11-29 19:32:18 -08:00
jeffvli c7dc2d4969 adjust column autoFit to round to integer values 2025-11-29 19:32:18 -08:00
jeffvli 8c163be070 remove table borders from last row / column 2025-11-29 19:32:18 -08:00
jeffvli 75de4bd305 add table header icons for discNumber and trackNumber, refactor sizing 2025-11-29 19:32:18 -08:00
jeffvli b8fc0fb668 enforce fetch order for addToQueue 2025-11-29 19:32:18 -08:00
jeffvli 2c7b134931 add player store v2 migration 2025-11-29 19:32:18 -08:00
jeffvli 1eb60f93e6 update various player actions to reset timestamp to 0 2025-11-29 19:32:18 -08:00
jeffvli d2e6658c36 add current song styles to rowIndex and title columns 2025-11-29 19:32:18 -08:00
jeffvli a24b870faa add close button to expanded list item 2025-11-29 19:32:18 -08:00
jeffvli af480e8283 remove logs on idb storage 2025-11-29 19:32:17 -08:00
jeffvli a786e4f40c add selection and drag from expanded album 2025-11-29 19:32:17 -08:00
jeffvli f6b65fe0fe add uniqueId rowId for playqueue 2025-11-29 19:32:17 -08:00
jeffvli 1b80d7fd27 reduce default scrollbar size 2025-11-29 19:32:17 -08:00
jeffvli 7d5be53c4d link savePlayQueue setting to player store persist 2025-11-29 19:32:17 -08:00
jeffvli a566509f5b remove preexisting save/restore playqueue handlers 2025-11-29 19:32:17 -08:00
jeffvli 528205f113 add idb storage for player store 2025-11-29 19:32:17 -08:00
jeffvli 9fda3cd49a add indexeddb storage for zustand 2025-11-29 19:32:17 -08:00
jeffvli a484628e13 add custom rowId support to lists 2025-11-29 19:32:17 -08:00
jeffvli 595d92efd9 fix onExpand control on row index column 2025-11-29 19:32:17 -08:00
jeffvli f06dbdec56 remove deprected row click handler 2025-11-29 19:32:16 -08:00
jeffvli 9f5f77cbf9 adjust drag over styles 2025-11-29 19:32:16 -08:00
jeffvli dcc1ef311c remove defer from list scrollbars 2025-11-29 19:32:16 -08:00
jeffvli f2d655d25a cleanup log 2025-11-29 19:32:16 -08:00
jeffvli 8d1e78485c add enum for table item size 2025-11-29 19:32:16 -08:00
jeffvli 10085f9bd9 fix table column css ordering 2025-11-29 19:32:16 -08:00
jeffvli 219c650585 fix playqueue flex sizing 2025-11-29 19:32:16 -08:00
jeffvli ee1803448c add autoFitColumns config to tables 2025-11-29 19:32:16 -08:00
jeffvli dee73d5632 set sane default for sideQueue column config 2025-11-29 19:32:16 -08:00
jeffvli 6bde14be49 improve pickTableColumns util to handle more properties 2025-11-29 19:32:16 -08:00
jeffvli 27e84ce518 add autoFitColumns for item table 2025-11-29 19:32:15 -08:00
jeffvli 9dbe3d8d0f fix types 2025-11-29 19:32:15 -08:00
jeffvli e6dd302be2 add missing table configs 2025-11-29 19:32:15 -08:00
jeffvli 57dbe85ec7 fix title column to not take up full width 2025-11-29 19:32:15 -08:00
jeffvli 7a36360c4a add padding to item grid to account for scrollbar 2025-11-29 19:32:15 -08:00
jeffvli a2eb0bf8d3 add dropzone to empty play queue 2025-11-29 19:32:15 -08:00
jeffvli 4360906883 refactor item grid to resolve overlayscrollbars 2025-11-29 19:32:15 -08:00
jeffvli 6541a6d583 fix conflicting style on drag over and selection 2025-11-29 19:32:15 -08:00
jeffvli 0baae9cf5a add drop operations for all item types 2025-11-29 19:32:15 -08:00
jeffvli 1a16b74f98 add loading overlay to playqueue on fetching 2025-11-29 19:32:15 -08:00
jeffvli 17c4d3e5fb add LoadingOverlay component 2025-11-29 19:32:14 -08:00
jeffvli fda7165580 bump react-window-v2 to latest 2025-11-29 19:32:14 -08:00
jeffvli 489daa6353 add drag/drop from lists into queue 2025-11-29 19:32:14 -08:00
jeffvli d7e2ec0860 add drag state to item table 2025-11-29 19:32:14 -08:00
jeffvli ad409fecfa add drag state to item grid 2025-11-29 19:32:14 -08:00
jeffvli 7d4a17e89c add keyboard navigation and selection to lists 2025-11-29 19:32:14 -08:00
jeffvli a87d5ef8d8 implement list multiselection 2025-11-29 19:32:14 -08:00
jeffvli 7a4326f98d initial implementation of play queue for new list 2025-11-29 19:32:14 -08:00
jeffvli 3c996407d5 normalize controls onto lists 2025-11-29 19:32:14 -08:00
jeffvli fb75717ae0 update rating / favorite columns 2025-11-29 19:32:13 -08:00
jeffvli 9fafb4f397 add rating / favorite to player context and events 2025-11-29 19:32:13 -08:00
jeffvli b4558491e7 add queue fetcher cancellation and loading state 2025-11-29 19:32:13 -08:00
jeffvli 0cfa07bfbc fix merge 2025-11-29 19:32:13 -08:00
jeffvli cb232ab5af fix filters 2025-11-29 19:32:13 -08:00
jeffvli 71bd124088 fix image column container 2025-11-29 19:32:13 -08:00
jeffvli c615f63673 disable all skeleton animations 2025-11-29 19:32:13 -08:00
jeffvli c644224072 add dynamic cell skeleton sizing 2025-11-29 19:32:13 -08:00
jeffvli 0e9f9f2fe1 debounce table loader 2025-11-29 19:32:13 -08:00
jeffvli 5f0309d12b prevent render null items in grid 2025-11-29 19:32:12 -08:00
jeffvli 1368c2bd50 debounce grid loader 2025-11-29 19:32:12 -08:00
jeffvli 64e84b092f adjust infinite loader fetcher range thresholds 2025-11-29 19:32:12 -08:00
jeffvli e5cafab9c2 update lockfile 2025-11-29 19:32:12 -08:00
jeffvli 0b56524b7d migrate item grid back to react-window v1 2025-11-29 19:32:12 -08:00
jeffvli 62127df4f4 more grid list optimizations 2025-11-29 19:32:12 -08:00
jeffvli 62b0ea6616 memoize and reset scrollEnd handler on grid list 2025-11-29 19:32:12 -08:00
jeffvli 34dc917271 reset scroll position on list page change 2025-11-29 19:32:12 -08:00
jeffvli dae04e2aeb add table item selection 2025-11-29 19:32:12 -08:00
jeffvli 17f5c5cd99 revert to HashRouter, add nuqs hash adapter 2025-11-29 19:32:11 -08:00
jeffvli bf75dec0ce migrate to react-router v7 and BrowserRouter 2025-11-29 19:32:11 -08:00
jeffvli 2504c0ec10 fix list loader query keys 2025-11-29 19:32:11 -08:00
jeffvli 08ab0715bd remove unused demo component 2025-11-29 19:32:11 -08:00
jeffvli 17e4c5cbb3 list component optimizations 2025-11-29 19:32:11 -08:00
jeffvli fe0813502d another temp commit 2025-11-29 19:32:11 -08:00
jeffvli 6ff5affb58 temp commit for breaking changes 2025-11-29 19:32:11 -08:00
jeffvli 56907436a3 add remaining song filter changes 2025-11-29 19:32:11 -08:00
jeffvli 33735c1314 implement new lists for songs 2025-11-29 19:32:10 -08:00
jeffvli 872543b5aa update query persistence to hooks 2025-11-29 19:32:10 -08:00
jeffvli 1a5b771ae0 add ListSearchInput component 2025-11-29 19:32:10 -08:00
jeffvli 26d635791a update settings store for album/song lists 2025-11-29 19:32:10 -08:00
jeffvli 7701135e67 enforce default value on sortOrder filter 2025-11-29 19:32:10 -08:00
jeffvli cdf783f2a6 enforce default value on sortBy filter 2025-11-29 19:32:10 -08:00
jeffvli af89def3f9 implement new lists for albums 2025-11-29 19:32:10 -08:00
jeffvli cd578db53a update shared filter components 2025-11-29 19:32:09 -08:00
jeffvli f6a7af2b12 remove typed _custom query 2025-11-29 19:30:51 -08:00
jeffvli d8877befeb add itemType to infinite loader query to prevent duplicate key 2025-11-29 19:30:51 -08:00
jeffvli fcdd543616 add list scroll persistence 2025-11-29 19:30:51 -08:00
jeffvli 86b680cd41 update list types 2025-11-29 19:30:51 -08:00
jeffvli 51b1945957 add itemCount to list context 2025-11-29 19:30:51 -08:00
jeffvli f90a11e9cf wrap disclosure hook 2025-11-29 19:30:51 -08:00
jeffvli 4d4e88fb66 update search input styles 2025-11-29 19:30:50 -08:00
jeffvli dffa8e710a wrap localstorage hook 2025-11-29 19:30:50 -08:00
jeffvli e53b434dfe add keys, pagination types 2025-11-29 19:30:50 -08:00
jeffvli bc4edb9bde add nuqs adapter to app outlet 2025-11-29 19:30:50 -08:00
jeffvli aaff54c490 add filter keys 2025-11-29 19:30:50 -08:00
jeffvli ae0a6497cb refactor list pagination to use nuqs 2025-11-29 19:30:50 -08:00
jeffvli 3a30f536d4 refactor infinite loader to use query state 2025-11-29 19:30:50 -08:00
jeffvli 34bd9d93ad update title columns to use links 2025-11-29 19:30:50 -08:00
jeffvli f7f1d5f54d use searchparams, localstorage for list filters 2025-11-29 19:30:50 -08:00
jeffvli ac625a9032 remove deprecated virtual grid 2025-11-29 19:30:50 -08:00
jeffvli 804d8c766f update packages
- add nuqs
- add mantine contextmenu
- remove react-window
2025-11-29 19:30:50 -08:00
jeffvli f19da36005 fix favorite column 2025-11-29 19:30:50 -08:00
jeffvli dddc38af4c fix table item count offset due to header 2025-11-29 19:30:50 -08:00
jeffvli 241e265e02 handle favorite/rating column mutations 2025-11-29 19:30:50 -08:00
jeffvli b2dd3ed699 add new default columns 2025-11-29 19:30:50 -08:00
jeffvli e67a1a6a1b add global event emitter 2025-11-29 19:30:50 -08:00
jeffvli dd0586df6d add column search to tabel config 2025-11-29 19:30:50 -08:00
jeffvli 24f9753bc0 add PLAYLIST_SONG, QUEUE_SONG item types 2025-11-29 19:30:50 -08:00
jeffvli c56baf65e3 add border to table pagination container 2025-11-29 19:30:50 -08:00
jeffvli 4dba1e3d94 update card controls animation back to slide up 2025-11-29 19:30:50 -08:00
jeffvli 1172152018 update ListConfigMenu to work with new lists 2025-11-29 19:30:50 -08:00
jeffvli 943b26dfea add large table size 2025-11-29 19:30:50 -08:00
jeffvli c2715a2d7e add more grid configuration
- gap
- manual items per row
2025-11-29 19:30:50 -08:00
jeffvli 33b0cda2a0 add more table configuration
- alternate row colors
- row hover highlight
- vertical borders
- horizontal borders
2025-11-29 19:30:50 -08:00
jeffvli c5c9311d00 add remaining table columns 2025-11-29 19:30:50 -08:00
jeffvli 076710672c forward switch ref 2025-11-29 19:30:50 -08:00
jeffvli 53daa90bff update popover/dropdown bg styles 2025-11-29 19:30:50 -08:00
jeffvli 3b4a667f61 add alignment icons 2025-11-29 19:30:50 -08:00
jeffvli b6e38815e3 center align checkbox label by default 2025-11-29 19:30:50 -08:00
jeffvli 6471114c28 export ButtonGroup components 2025-11-29 19:30:50 -08:00
jeffvli 667aacc6c8 add prop configuration for X,Y scroll on ScrollArea 2025-11-29 19:30:49 -08:00
jeffvli e9300825dc add autoWidth column config 2025-11-29 19:30:49 -08:00
jeffvli c4f937b4da normalize user action columns 2025-11-29 19:30:49 -08:00
jeffvli 4600e56b94 extract list expansion container to separate component 2025-11-29 19:30:49 -08:00
jeffvli a068b9ca3d add item list controls to centralized export 2025-11-29 19:30:49 -08:00
jeffvli dafd914696 add hover only columns 2025-11-29 19:30:49 -08:00
jeffvli e4189e92d0 improve tooltip readability 2025-11-29 19:30:49 -08:00
jeffvli 361569ee3f fix image column container component 2025-11-29 19:30:49 -08:00
jeffvli c08deb980b set max genres displayed on genre column 2025-11-29 19:30:49 -08:00
jeffvli b9f600409e add tooltip for date column values 2025-11-29 19:30:49 -08:00
jeffvli f09a8e3306 improve overflow for album artist column 2025-11-29 19:30:49 -08:00
jeffvli d9e8625b15 remove item callbacks from list - move to item component 2025-11-29 19:30:49 -08:00
jeffvli 545ea25e43 implement table list callbacks 2025-11-29 19:30:49 -08:00
jeffvli 02d9e8328f disable default skeleton animation 2025-11-29 19:30:49 -08:00
jeffvli 42a0530777 remove user select from genre / album artists columns 2025-11-29 19:30:49 -08:00
jeffvli 3ce6a6fe95 add table row hover effect 2025-11-29 19:30:49 -08:00
jeffvli 9d1b2a7c72 add table row separator support 2025-11-29 19:30:49 -08:00
jeffvli 06a3686739 add links to genre / album artists columns 2025-11-29 19:30:49 -08:00
jeffvli 3c2f186891 fix Navidrome normalized types for userFavorite, userRating 2025-11-29 19:30:49 -08:00
jeffvli 15c27c164f handle table column order based on pinned column config 2025-11-29 19:30:49 -08:00
jeffvli ae8ca54a07 add initial table columns 2025-11-29 19:30:49 -08:00
jeffvli c27c05ac5d use derived column props, add table header styles 2025-11-29 19:30:49 -08:00
jeffvli 3e0e3f9984 support both left and right column pinning 2025-11-29 19:30:49 -08:00
jeffvli 00e7b4a9d5 fix styling props on Text component 2025-11-29 19:30:49 -08:00
jeffvli f610489a61 update pagination itemcount wording to be language agnostic 2025-11-29 19:30:49 -08:00
jeffvli 9d15e8d0a4 move list pagination padding to separate container 2025-11-29 19:30:49 -08:00
jeffvli 6ae103850b progress on table columns 2025-11-29 19:30:49 -08:00
jeffvli f1f3223922 more table list progress
- scroll shadow
- header shadow
- remove sticky row count - only allow sticky header
- support table expansion
2025-11-29 19:30:49 -08:00
jeffvli 8e392a9bff fix queryKey on infinite loader 2025-11-29 19:30:49 -08:00
jeffvli e89cf9dbb4 fix sticky column autoscroll 2025-11-29 19:30:49 -08:00
jeffvli f8af307159 progress 2025-11-29 19:30:49 -08:00
jeffvli 74473427df move item table list 2025-11-29 19:30:49 -08:00
jeffvli 18f448c733 first iteration of table 2025-11-29 19:30:49 -08:00
jeffvli 0a591a3f09 rename list components 2025-11-29 19:30:48 -08:00
jeffvli 8dcc28376c rename expanded container classname 2025-11-29 19:30:48 -08:00
jeffvli 3f3a02ba8c add initial item detail list design 2025-11-29 19:30:48 -08:00
jeffvli d4b8b12687 add color utilities 2025-11-29 19:30:48 -08:00
jeffvli 9cfe396d0f add GRID_PAGINATED to ListDisplayType 2025-11-29 19:30:48 -08:00
jeffvli 85d8ad09c6 clean up log 2025-11-29 19:30:48 -08:00
jeffvli 3fc2583470 properly handle weight prop on Text and TextTitle 2025-11-29 19:30:48 -08:00
jeffvli df9e039fce add paginated album grid component 2025-11-29 19:30:48 -08:00
jeffvli 3efa54b68a add additional list pagination helpers and components 2025-11-29 19:30:48 -08:00
jeffvli 90e7541bc1 rename infinite loader hook file 2025-11-29 19:30:48 -08:00
jeffvli 91deb9b7c1 add paginated list loader hook 2025-11-29 19:30:48 -08:00
jeffvli 66c5424549 fix z-index of expanded item title 2025-11-29 19:30:48 -08:00
jeffvli c43751d2dc finalize infinite album list 2025-11-29 19:30:48 -08:00
jeffvli 80baa6798b finalize infinite loader hook 2025-11-29 19:30:48 -08:00
jeffvli 85407f3e11 remove uniqueId property from all entities except QueueSong 2025-11-29 19:30:48 -08:00
jeffvli 789512b10a add initial infinite album list component 2025-11-29 19:30:48 -08:00
jeffvli 820d8da7d5 add initial infinite loader helpers 2025-11-29 19:30:48 -08:00
jeffvli 9db7830726 update ItemGrid to use react-window v2 2025-11-29 19:30:48 -08:00
jeffvli ff83ce5254 add react-window v2 deps 2025-11-29 19:30:48 -08:00
jeffvli 69d16edfc1 add loading state to fastaveragecolor hook 2025-11-29 19:30:48 -08:00
jeffvli 77bd483ce4 add 2xl, 3xl to container query hook 2025-11-29 19:30:48 -08:00
jeffvli 5ff9efb7d6 add expanded list item component 2025-11-29 19:30:48 -08:00
jeffvli e4574b0260 add item card skeleton 2025-11-29 19:30:48 -08:00
jeffvli 126ab38475 add placeholder expanded list item 2025-11-29 19:30:48 -08:00
jeffvli 18390443ff add additional props to ItemGrid 2025-11-29 19:30:48 -08:00
jeffvli 71e280061c add serverId to list state selection 2025-11-29 19:30:48 -08:00
jeffvli 7c50ee814d return isDark, isLight from color 2025-11-29 19:30:48 -08:00
jeffvli 3ed6d4b2f7 add utils to handle list multiselect / expand states 2025-11-29 19:30:47 -08:00
jeffvli 7a2af3d013 plain item grid 2025-11-29 19:30:47 -08:00
jeffvli 1108cb7e9a add new card component 2025-11-29 19:30:47 -08:00
jeffvli c0317aca58 upgrade and refactor for react-query v5 2025-11-29 19:30:47 -08:00
jeffvli 015d5a4d65 add react-virtuoso package 2025-11-29 19:30:47 -08:00
jeffvli ea646a5723 add breakpoints postcss 2025-11-29 19:30:47 -08:00
jeffvli 9e508f0a02 fix crossfade settings to update player store 2025-11-29 19:30:47 -08:00
jeffvli 070bf7c0f9 move mpv initialization into player implementation 2025-11-29 19:30:47 -08:00
jeffvli 7224255775 re-add conditional render to ReactPlayer components which causes crossfade error 2025-11-29 19:30:47 -08:00
jeffvli 6ff535c406 move remote init into hook 2025-11-29 19:30:47 -08:00
jeffvli 02e721ce17 lint 2025-11-29 19:30:47 -08:00
jeffvli e0256dd535 fix ipc in remote hook 2025-11-29 19:30:47 -08:00
jeffvli 328015bce7 add useRemote to playerbar 2025-11-29 19:30:47 -08:00
jeffvli b03a33f534 add new player remote hook 2025-11-29 19:30:47 -08:00
jeffvli 7cd012de70 add subscribers for player repeat and shuffle 2025-11-29 19:30:47 -08:00
jeffvli 6ced14d0e8 support offset for player skip 2025-11-29 19:30:47 -08:00
jeffvli 9fd4abec25 re-implement mpv with new player 2025-11-29 19:30:47 -08:00
jeffvli a452495c22 add volume wheel 2025-11-29 19:30:47 -08:00
jeffvli 3c93167abb refactor windowbar to prevent unnecessary renders 2025-11-29 19:30:47 -08:00
jeffvli 7717bff367 re-implement playerbar controls 2025-11-29 19:30:47 -08:00
jeffvli be6db801ee add usePlayer hook 2025-11-29 19:30:47 -08:00
jeffvli 427f808180 rename internal types in domain models 2025-11-29 19:30:47 -08:00
jeffvli 76bf4ae825 begin implementing player context 2025-11-29 19:30:47 -08:00
jeffvli e02a518583 reorganize 2025-11-29 19:30:47 -08:00
jeffvli 79ddd122a4 fix table row styles listener 2025-11-29 19:30:46 -08:00
jeffvli b1fa7e4e09 rework player events to use properties object instead of flat value 2025-11-29 19:30:46 -08:00
jeffvli 015c3004f5 add new web player implementation 2025-11-29 19:30:46 -08:00
jeffvli 550ba4f768 temporarily remove old player implementations to prevent broken app 2025-11-29 19:30:46 -08:00
jeffvli 1d4069d4fa rework player store and add global player context 2025-11-29 19:30:46 -08:00
1000 changed files with 122961 additions and 34100 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
+15
View File
@@ -4,9 +4,24 @@ on:
pull_request:
branches:
- development
paths:
- 'src/**'
jobs:
wait-for-lint:
runs-on: ubuntu-latest
steps:
- name: Wait for Test workflow to complete
uses: lewagon/wait-on-check-action@v1.4.1
with:
ref: ${{ github.event.pull_request.head.sha }}
check-name: 'lint'
repo-token: ${{ secrets.GITHUB_TOKEN }}
wait-interval: 10
allowed-conclusions: success
publish:
needs: wait-for-lint
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 }}
+5 -4
View File
@@ -14,9 +14,7 @@
".eslintignore": "ignore"
},
"eslint.validate": ["typescript", "typescriptreact"],
"eslint.workingDirectories": [
{ "directory": "./", "changeProcessCWD": true },
],
"eslint.workingDirectories": [{ "directory": "./", "changeProcessCWD": true }],
"typescript.tsserver.experimental.enableProjectDiagnostics": false,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit",
@@ -50,7 +48,10 @@
"typescript.preferences.autoImportFileExcludePatterns": [
"@mantine/core",
"@mantine/modals",
"@mantine/dates"
"@mantine/dates",
"@mantine/hooks",
"@mantine/form",
"@radix-ui/react-context-menu"
],
"[typescriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": true,
+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=""
ENV LEGACY_AUTHENTICATION="" ANALYTICS_DISABLED="" PUBLIC_PATH="/"
EXPOSE 9180
CMD ["nginx", "-g", "daemon off;"]
+16 -12
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
@@ -98,25 +101,24 @@ docker run --name feishin -p 9180:9180 feishin
#### Docker Compose
To install via Docker Compose use the following snippit. This also works on Portainer.
To install via Docker Compose, use the following snippet. This also works on Portainer.
```yaml
services:
feishin:
container_name: feishin
image: 'ghcr.io/jeffvli/feishin:latest'
restart: unless-stopped
environment:
- SERVER_NAME=jellyfin # pre defined server name
- 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_TYPE=jellyfin # navidrome also works
- SERVER_URL= # http://address:port
- PUID=1000
- PGID=1000
- UMASK=002
- TZ=America/Los_Angeles
- SERVER_TYPE=jellyfin # the allowed types are: jellyfin, navidrome, subsonic. These values are case insensitive
- SERVER_URL= # http://address:port or https://address:port
- 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
restart: unless-stopped
# Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190
```
### Configuration
@@ -126,11 +128,13 @@ services:
2. After restarting the app, you will be prompted to select a server. Click the `Open menu` button and select `Manage servers`. Click the `Add server` button in the popup and fill out all applicable details. You will need to enter the full URL to your server, including the protocol and port if applicable (e.g. `https://navidrome.my-server.com` or `http://192.168.0.1:4533`).
- **Navidrome** - For the best experience, select "Save password" when creating the server and configure the `SessionTimeout` setting in your Navidrome config to a larger value (e.g. 72h).
- **Linux users** - The default password store uses `libsecret`. `kwallet4/5/6` are also supported, but must be explicitly set in Settings > Window > Passwords/secret score.
- **Linux users** - The default password store uses `libsecret`. `kwallet4/5/6` are also supported, but must be explicitly set in Settings > Window > Passwords/secret store.
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`), `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_ - 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.
## FAQ
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
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: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.6 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: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

Binary file not shown.
+9 -7
View File
@@ -1,13 +1,15 @@
version: '3.5'
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=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://localhost:8096 # http://address:port or https://address:port
- 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
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_TYPE=jellyfin # navidrome also works
- SERVER_URL= # http://address:port
# Alternatively, to restrict to only localhost, - 127.0.0.1:9180:8190
+65
View File
@@ -0,0 +1,65 @@
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: default
arch:
- arm64
- x64
icon: assets/icons/icon.icns
type: distribution
hardenedRuntime: true
entitlements: assets/entitlements.mac.plist
entitlementsInherit: assets/entitlements.mac.plist
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}
npmRebuild: false
publish:
provider: s3
bucket: feishin-nightly
channel: alpha
endpoint: https://065f090c64de2dc707dd70ac72db9669.r2.cloudflarestorage.com
+11 -4
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
@@ -44,6 +50,7 @@ dmg:
linux:
target:
- AppImage
- deb
- tar.xz
category: AudioVideo;Audio;Player
icon: assets/icons/icon.png
+11 -4
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
@@ -44,6 +50,7 @@ dmg:
linux:
target:
- AppImage
- deb
- tar.xz
category: AudioVideo;Audio;Player
icon: assets/icons/icon.png
+13
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: {
@@ -45,6 +49,15 @@ const config: UserConfig = {
},
},
renderer: {
build: {
cssMinify: 'esbuild',
minify: 'esbuild',
modulePreload: {
polyfill: false,
},
sourcemap: true,
target: electronRendererTarget,
},
css: {
modules: {
generateScopedName: 'fs-[name]-[local]',
+2
View File
@@ -43,6 +43,8 @@ export default tseslint.config(
'no-unused-vars': 'off',
'no-use-before-define': 'off',
quotes: ['error', 'single'],
'react-hooks/refs': 'off',
'react-hooks/set-state-in-effect': 'off',
'react-refresh/only-export-components': 'off',
'react/display-name': 'off',
semi: ['error', 'always'],
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.

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

+18321
View File
File diff suppressed because it is too large Load Diff
+87 -80
View File
@@ -1,6 +1,6 @@
{
"name": "feishin",
"version": "0.22.0",
"version": "1.5.0",
"description": "A modern self-hosted music player.",
"keywords": [
"subsonic",
@@ -16,11 +16,12 @@
"license": "GPL-3.0",
"author": {
"name": "jeffvli",
"email": "feishin@users.noreply.github.com",
"url": "https://github.com/jeffvli/"
},
"main": "./out/main/index.js",
"scripts": {
"build": "pnpm run typecheck && pnpm run build:electron && pnpm run build:remote",
"build": "pnpm run build:electron && pnpm run build:remote",
"build:electron": "electron-vite build",
"build:remote": "vite build --config remote.vite.config.ts",
"build:web": "vite build --config web.vite.config.ts",
@@ -29,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}'",
@@ -43,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",
@@ -60,75 +69,74 @@
"postversion": "node ./scripts/update-app-stream.mjs"
},
"dependencies": {
"@ag-grid-community/client-side-row-model": "^28.2.1",
"@ag-grid-community/core": "^28.2.1",
"@ag-grid-community/infinite-row-model": "^28.2.1",
"@ag-grid-community/react": "^28.2.1",
"@ag-grid-community/styles": "^28.2.1",
"@atlaskit/pragmatic-drag-and-drop": "1.4.0",
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.0",
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.0.3",
"@atlaskit/pragmatic-drag-and-drop": "1.7.7",
"@atlaskit/pragmatic-drag-and-drop-auto-scroll": "^2.1.2",
"@atlaskit/pragmatic-drag-and-drop-hitbox": "^1.1.0",
"@electron-toolkit/preload": "^3.0.1",
"@electron-toolkit/utils": "^4.0.0",
"@mantine/colors-generator": "^8.2.8",
"@mantine/core": "^8.2.8",
"@mantine/dates": "^8.2.8",
"@mantine/form": "^8.2.8",
"@mantine/hooks": "^8.2.8",
"@mantine/modals": "^8.2.8",
"@mantine/notifications": "^8.2.8",
"@tanstack/react-query": "^5.89.0",
"@tanstack/react-query-devtools": "^5.89.0",
"@tanstack/react-query-persist-client": "^5.89.0",
"@ts-rest/core": "^3.23.0",
"@mantine/colors-generator": "^8.3.8",
"@mantine/core": "^8.3.8",
"@mantine/dates": "^8.3.8",
"@mantine/form": "^8.3.8",
"@mantine/hooks": "^8.3.8",
"@mantine/modals": "^8.3.8",
"@mantine/notifications": "^8.3.8",
"@radix-ui/react-context-menu": "^2.2.16",
"@tanstack/react-query": "^5.90.9",
"@tanstack/react-query-devtools": "^5.90.2",
"@tanstack/react-query-persist-client": "^5.90.11",
"@ts-rest/core": "^3.52.1",
"@wavesurfer/react": "^1.0.11",
"@xhayper/discord-rpc": "^1.3.0",
"audiomotion-analyzer": "^4.5.0",
"auto-text-size": "^0.2.3",
"axios": "^1.12.0",
"cheerio": "^1.0.0",
"clsx": "^2.0.0",
"cmdk": "^0.2.0",
"dayjs": "^1.11.6",
"dompurify": "^3.1.6",
"audiomotion-analyzer": "^4.5.1",
"axios": "^1.13.2",
"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",
"dayjs": "^1.11.19",
"dompurify": "^3.3.0",
"electron-debug": "^3.2.0",
"electron-localshortcut": "^3.2.1",
"electron-log": "^5.1.1",
"electron-store": "^8.1.0",
"electron-updater": "^6.3.9",
"fast-average-color": "^9.3.0",
"fast-xml-parser": "^5.3.0",
"format-duration": "^2.0.0",
"fuse.js": "^6.6.2",
"i18next": "^21.10.0",
"idb-keyval": "^6.2.1",
"immer": "^9.0.21",
"electron-log": "^5.4.3",
"electron-store": "^8.2.0",
"electron-updater": "^6.6.2",
"fast-average-color": "^9.5.0",
"fast-xml-parser": "^5.3.2",
"format-duration": "^3.0.2",
"fuse.js": "^7.1.0",
"i18next": "^25.6.2",
"icecast-metadata-stats": "^0.1.12",
"idb-keyval": "^6.2.2",
"immer": "^10.2.0",
"is-electron": "^2.2.2",
"lodash": "^4.17.21",
"md5": "^2.3.0",
"memoize-one": "^6.0.0",
"motion": "^12.18.1",
"motion": "^12.23.24",
"mpris-service": "^2.1.2",
"nanoid": "^3.3.3",
"nanoid": "^3.3.11",
"node-mpv": "github:jeffvli/Node-MPV#32b4d64395289ad710c41d481d2707a7acfc228f",
"nuqs": "^2.7.1",
"overlayscrollbars": "^2.11.1",
"overlayscrollbars-react": "^0.5.6",
"qs": "^6.14.0",
"qs": "^6.14.1",
"react": "^19.1.0",
"react-call": "^1.8.1",
"react-dom": "^19.1.0",
"react-error-boundary": "^3.1.4",
"react-i18next": "^11.18.6",
"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.11.0",
"react-router": "^6.16.0",
"react-router-dom": "^6.16.0",
"react-virtualized-auto-sizer": "^1.0.17",
"react-window": "^1.8.9",
"react-window-infinite-loader": "^1.0.9",
"react-player": "^2.16.0",
"react-router": "^7.9.6",
"react-split-pane": "^3.0.4",
"react-virtualized-auto-sizer": "^1.0.26",
"react-window": "1.8.11",
"react-window-v2": "npm:react-window@^2.2.3",
"semver": "^7.5.4",
"swiper": "^9.3.1",
"use-sync-external-store": "^1.5.0",
"string-to-color": "^2.2.2",
"wavesurfer.js": "^7.11.1",
"ws": "^8.18.2",
"zod": "^3.22.3",
"zustand": "^5.0.5"
@@ -136,45 +144,44 @@
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.0.0",
"@electron-toolkit/tsconfig": "^1.0.1",
"@electron-toolkit/tsconfig": "^2.0.0",
"@types/electron-localshortcut": "^3.1.0",
"@types/lodash": "^4.17.18",
"@types/md5": "^2.3.5",
"@types/node": "^22.15.32",
"@types/react": "^18.3.23",
"@types/react-dom": "^18.3.7",
"@types/react-window": "^1.8.5",
"@types/react-window-infinite-loader": "^1.0.6",
"@types/node": "^24.10.1",
"@types/react": "^19.2.5",
"@types/react-dom": "^19.2.3",
"@types/react-window": "^1.8.8",
"@types/source-map-support": "^0.5.10",
"@types/ws": "^8.18.1",
"@vitejs/plugin-react": "^4.3.4",
"concurrently": "^7.1.0",
"cross-env": "^7.0.3",
"electron": "^38.5.0",
"@vitejs/plugin-react": "^5.1.1",
"concurrently": "^9.2.1",
"cross-env": "^10.1.0",
"electron": "^39.4.0",
"electron-builder": "^26.0.12",
"electron-devtools-installer": "^3.2.0",
"electron-vite": "^3.1.0",
"electron-devtools-installer": "^4.0.0",
"electron-vite": "^4.0.1",
"eslint": "^9.24.0",
"eslint-plugin-perfectionist": "^4.13.0",
"eslint-plugin-prettier": "^5.4.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.19",
"i18next-parser": "^9.0.2",
"postcss-preset-mantine": "^1.17.0",
"prettier": "^3.5.3",
"prettier-plugin-packagejson": "^2.5.14",
"sass-embedded": "^1.89.0",
"stylelint": "^16.14.1",
"stylelint-config-css-modules": "^4.4.0",
"stylelint-config-recess-order": "^7.1.0",
"stylelint-config-standard": "^38.0.0",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"i18next-parser": "^9.3.0",
"postcss-preset-mantine": "^1.18.0",
"postcss-simple-vars": "^7.0.1",
"prettier": "^3.6.2",
"prettier-plugin-packagejson": "^2.5.19",
"stylelint": "^16.25.0",
"stylelint-config-css-modules": "^4.5.1",
"stylelint-config-recess-order": "^7.4.0",
"stylelint-config-standard": "^39.0.1",
"typescript": "^5.8.3",
"vite": "^6.4.1",
"vite": "^7.2.2",
"vite-plugin-conditional-import": "^0.1.7",
"vite-plugin-dynamic-import": "^1.6.0",
"vite-plugin-ejs": "^1.7.0",
"vite-plugin-pwa": "^1.0.3"
"vite-plugin-pwa": "^1.1.0"
},
"pnpm": {
"onlyBuiltDependencies": [
+1893 -1611
View File
File diff suppressed because it is too large Load Diff
+11
View File
@@ -1,5 +1,16 @@
module.exports = {
plugins: {
'postcss-preset-mantine': {},
'postcss-simple-vars': {
variables: {
'mantine-breakpoint-2xl': '120em',
'mantine-breakpoint-3xl': '160em',
'mantine-breakpoint-lg': '75em',
'mantine-breakpoint-md': '62em',
'mantine-breakpoint-sm': '48em',
'mantine-breakpoint-xl': '88em',
'mantine-breakpoint-xs': '36em',
},
},
},
};
+3
View File
@@ -7,7 +7,9 @@ import { version } from './package.json';
export default defineConfig({
build: {
cssMinify: 'esbuild',
emptyOutDir: true,
minify: 'esbuild',
outDir: path.resolve(__dirname, './out/remote'),
rollupOptions: {
input: {
@@ -21,6 +23,7 @@ export default defineConfig({
assetFileNames: '[name].[ext]',
chunkFileNames: '[name].js',
entryFileNames: '[name].js',
sourcemapExcludeSources: false,
},
},
sourcemap: true,
+1 -1
View File
@@ -1 +1 @@
"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.SERVER_NAME="${SERVER_NAME}";window.SERVER_TYPE="${SERVER_TYPE}";window.SERVER_LOCK="${SERVER_LOCK}";window.LEGACY_AUTHENTICATION="${LEGACY_AUTHENTICATION}";window.ANALYTICS_DISABLED="${ANALYTICS_DISABLED}";
+7 -2
View File
@@ -1,4 +1,4 @@
import { PostProcessorModule, StringMap, TOptions } from 'i18next';
import { PostProcessorModule, TOptions } from 'i18next';
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
@@ -207,7 +207,12 @@ const ignoreSentenceCaseLanguages = ['de'];
const sentenceCasePostProcessor: PostProcessorModule = {
name: 'sentenceCase',
process: (value: string, _key: string, _options: TOptions<StringMap>, translator: any) => {
process: (
value: string,
_key: string,
_options: TOptions<Record<string, string>>,
translator: any,
) => {
const sentences = value.split('. ');
return sentences
+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": "الترتيب",
+527 -104
View File
@@ -2,46 +2,51 @@
"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)",
"settings": "$t(common.setting, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"nowPlaying": "ara sona",
"shared": "$t(entity.playlist_other) compartida"
"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"
},
"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",
@@ -51,7 +56,11 @@
"version": "versió {{version}}",
"openBrowserDevtools": "obre les eines de desenvolupament del navegador",
"privateModeOff": "desactiva el mode privat",
"privateModeOn": "activa el mode privat"
"privateModeOn": "activa el mode privat",
"commandPalette": "obre la paleta d'ordres",
"selectMusicFolder": "selecciona una carpeta de música",
"noMusicFolder": "no s'ha seleccionat cap carpeta de música",
"multipleMusicFolders": "{{count}} carpetes de música seleccionades"
},
"contextMenu": {
"addFavorite": "$t(action.addToFavorites)",
@@ -76,13 +85,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)",
@@ -90,15 +101,16 @@
"newlyAdded": "afegits recentment",
"mostPlayed": "els més reproduïts",
"recentlyPlayed": "reproduït recentment",
"recentlyReleased": "estrenat fa poc"
"recentlyReleased": "estrenat fa poc",
"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",
@@ -136,7 +148,25 @@
"generalTab": "general",
"hotkeysTab": "tecles d'accés ràpid",
"playbackTab": "reproducció",
"windowTab": "finestra"
"windowTab": "finestra",
"analytics": "analítiques",
"updates": "actualitza",
"cache": "memòria cau",
"application": "aplicació",
"queryBuilder": "constructor de consultes",
"theme": "tema",
"controls": "controls",
"sidebar": "barra lateral",
"remote": "remot",
"exportImport": "importa/exporta",
"scrobble": "scrobble",
"audio": "àudio",
"lyrics": "lletra",
"transcoding": "transcodificació",
"discord": "discord",
"logger": "registres",
"playerFilters": "filtres de reproducció",
"lyricsDisplay": "mostra la lletra"
},
"globalSearch": {
"commands": {
@@ -153,6 +183,23 @@
},
"playlist": {
"reorder": "el reordenament només s'activa quan s'ordena per id"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"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ó"
}
},
"common": {
@@ -224,9 +271,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",
@@ -250,7 +297,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",
@@ -260,7 +309,24 @@
"private": "privat",
"public": "públic",
"recordLabel": "segell discogràfic",
"releaseType": "tipus de llançament"
"releaseType": "tipus de llançament",
"doNotShowAgain": "no tornis a mostrar això",
"view": "mostra",
"externalLinks": "enllaços externs",
"faster": "més ràpid",
"noFilters": "cap filtre configurat",
"slower": "més lent",
"sort": "ordre",
"gridRows": "files de la quadrícula",
"tableColumns": "columnes de la taula",
"itemsMore": "{{count}} més",
"countSelected": "{{count}} seleccionats",
"retry": "reintenta",
"example": "exemple",
"mood": "estat d'ànim",
"filter_single": "senzill",
"filter_multiple": "multi",
"rename": "reanomena"
},
"entity": {
"album_one": "àlbum",
@@ -287,7 +353,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",
@@ -314,37 +380,44 @@
"song_other": "cançons",
"favorite_one": "preferit",
"favorite_many": "preferits",
"favorite_other": "preferits"
"favorite_other": "preferits",
"radioStation_one": "emissora de ràdio",
"radioStation_many": "emissores de ràdio",
"radioStation_other": "emissores de ràdio",
"radioStationWithCount_one": "{{count}} emissora de ràdio",
"radioStationWithCount_many": "{{count}} emissores de ràdio",
"radioStationWithCount_other": "{{count}} emissores de ràdio"
},
"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 tipus per crear-ne un de nou"
"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)",
"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"
"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"
},
@@ -361,7 +434,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ó",
@@ -378,24 +454,58 @@
"queryEditor": {
"title": "editor de consultes",
"input_optionMatchAll": "coincidències totals",
"input_optionMatchAny": "coincidències parcials"
"input_optionMatchAny": "coincidències parcials",
"addRuleGroup": "afegeix el grup de regles",
"removeRuleGroup": "elimina el grup de regles",
"resetToDefault": "reestableix als valors predeterminats",
"clearFilters": "neteja els filtres"
},
"privateMode": {
"enabled": "mode privat actiu; l'estat de reproducció ara està ocult d'integracions externes",
"disabled": "mode privat inactiu; l'estat de reproducció ara és visible per les integracions externes",
"title": "mode privat"
},
"largeFetchConfirmation": {
"title": "afegeix elements a la cua",
"description": "Aquesta acció afegirà tots els elements a la vista filtrada actual"
},
"shuffleAll": {
"title": "reprodueix a l'atzar",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "quantes cançons?",
"input_minYear": "de l'any",
"input_maxYear": "fins a l'any",
"input_played": "reprodueix el filtre",
"input_played_optionAll": "totes les pistes",
"input_played_optionUnplayed": "només les pistes sense reproduir",
"input_played_optionPlayed": "només les pistes reproduïdes"
},
"createRadioStation": {
"success": "emissora de ràdio creada amb èxit",
"title": "crea una emissora de ràdio",
"input_homepageUrl": "URL de la pàgina d'inici",
"input_name": "nom",
"input_streamUrl": "URL de transmissió"
},
"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": "afegir als $t(entity.favorite_other)",
"addToPlaylist": "afegir a $t(entity.playlist_one)",
"createPlaylist": "crear $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)",
"clearQueue": "buidar la cua",
"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",
"openIn": {
@@ -403,12 +513,28 @@
"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",
"setRating": "Qualifica",
"toggleSmartPlaylistEditor": "canvia l'editor $t(entity.smartPlaylist)"
"toggleSmartPlaylistEditor": "canvia l'editor $t(entity.smartPlaylist)",
"downloadStarted": "s'ha iniciat la descàrrega de {{count}} elements",
"moveUp": "mou amunt",
"moveDown": "mou avall",
"holdToMoveToTop": "mantingueu premut per moure al capdamunt",
"holdToMoveToBottom": "mantingueu premut per moure al capdavall",
"moveItems": "mou elements",
"shuffle": "mescla",
"shuffleAll": "mescla-ho tot",
"shuffleSelected": "mescla els seleccionats",
"viewMore": "mostra'n més",
"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",
"openApplicationDirectory": "obre el directori de l'aplicació"
},
"setting": {
"language_description": "estableix l'idioma de l'aplicació ($t(common.restartRequired))",
@@ -416,15 +542,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",
@@ -490,14 +615,10 @@
"discordServeImage": "serveix imatges de {{discord}} des del servidor",
"discordServeImage_description": "comparteix la caràtula per l'estat d'activitat de {{discord}} des del servidor; només disponible per Jellyfin i Navidrome. {{discord}} fa ser un bot per trobar les imatges, de manera que el vostre servidor ha de ser visible per l'internet públic",
"discordUpdateInterval": "interval d'actualització de l'estat d'activitat de {{discord}}",
"doubleClickBehavior": "posa en cua totes les pistes cercades en fer doble clic",
"doubleClickBehavior_description": "si està actiu, totes les pistes coincidents en una cerca de pistes es posaran a la cua. altrament, només la que seleccioneu s'afegirà a la cua",
"externalLinks": "mostra enllaços externs",
"externalLinks_description": "permet mostrar enllaços externs (Last.fm, MusicBrainz) a les pàgines d'artista/àlbum",
"exitToTray": "surt a la safata",
"exitToTray_description": "en sortir de l'aplicació, minimitza-la a la safa del sistema",
"floatingQueueArea": "mostra la zona flotant de la cua",
"floatingQueueArea_description": "mostra una icona flotant al costat dret de la pantalla per veure la cua de reproducció",
"followLyric": "segueix la lletra actual",
"followLyric_description": "desplaça la lletra a la posició de reproducció actual",
"preferLocalLyrics": "prefereix les lletres locals",
@@ -507,8 +628,6 @@
"gaplessAudio": "àudio sense pauses",
"gaplessAudio_description": "estableix la configuració d'àudio sense pauses per mpv",
"gaplessAudio_optionWeak": "feble (recomanat)",
"genreBehavior": "comportament predeterminat per les pàgines de gènere",
"genreBehavior_description": "determina si clicar sobre un gènere obre per defecte la llista de pistes o d'àlbums",
"globalMediaHotkeys": "tecles de drecera globals",
"globalMediaHotkeys_description": "activa o desactiva l'ús de les tecles multimèdia del sistema per controlar la reproducció",
"homeConfiguration_description": "configura quins objectes es mostren, i en quin ordre, a la pàgina d'inici",
@@ -554,7 +673,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",
@@ -578,8 +697,6 @@
"playbackStyle_optionNormal": "normal",
"playButtonBehavior": "comportament del botó de reproducció",
"playButtonBehavior_description": "estableix el comportament predeterminat del botó de reproducció quan s'afegeixen cançons a la cua",
"playerAlbumArtResolution": "resolució de la caràtula de l'àlbum al reproductor",
"playerAlbumArtResolution_description": "la resolució de la previsualització gran de la caràtula al reproductor. si és més alta, serà més nítida, però es carregarà més lent. el valor predeterminat 0 vol dir automàtic",
"playerbarOpenDrawer": "activa el reproductor en pantalla completa",
"playerbarOpenDrawer_description": "permet fer clic a la barra de reproducció per obrir el reproductor de pantalla completa",
"remotePassword": "contrasenya del servidor de control remot",
@@ -664,7 +781,7 @@
"releaseChannel": "canal de versions",
"releaseChannel_description": "tria entre versions estables i versions beta 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",
@@ -679,17 +796,99 @@
"exportImportSettings_importSuccess": "la configuració s'ha importat correctament!",
"exportImportSettings_notValidJSON": "el fitxer que heu seleccionat no és un JSON vàlid",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" és incorrecte: {{reason}}",
"language": "llengua"
"language": "llengua",
"notify": "activa les notificacions de cançons",
"notify_description": "mostra notificacions quan la cançó actual canviï",
"transcode": "activa la transcodificació",
"autoDJ": "DJ automàtic",
"autoDJ_description": "afegeix cançons similars a la cua automàticament",
"autoDJ_itemCount": "número d'elements",
"autoDJ_itemCount_description": "el nombre d'elements que s'intenten afegir a la cua quan el DJ automàtic està activat",
"autoDJ_timing": "temps",
"autoDJ_timing_description": "el nombre de cançons que han de quedar a la cua per activar el DJ automàtic",
"analyticsDisable": "Desactiva les analítiques basades en l'ús",
"analyticsDisable_description": "S'envien dades d'ús anonimitzades al desenvolupador per ajudar a millorar l'aplicació",
"followCurrentSong_description": "desplaça automàticament la cua de reproducció a la cançó en reproducció",
"followCurrentSong": "segueix la cançó actual",
"logLevel": "nivell de registre",
"logLevel_description": "estableix el nivell mínim de registre que s'ha de mostrar. debug mostra tots els missatges, error mostra només els errors",
"logLevel_optionDebug": "debug",
"logLevel_optionError": "error",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "avís",
"playerFilters": "filtra les cançons de la cua",
"playerFilters_description": "evita afegir cançons a la cua segons els següents criteris",
"playerbarSlider": "barra lliscadora de reproducció",
"playerbarSlider_description": "la forma d'ona no es recomana si utilitzeu una connexió d'internet lenta o mesurada",
"playerbarSliderType_optionSlider": "lliscador",
"playerbarSliderType_optionWaveform": "forma d'ona",
"playerbarWaveformAlign": "alineament de la forma d'ona",
"playerbarWaveformAlign_optionTop": "superior",
"playerbarWaveformAlign_optionCenter": "centrat",
"playerbarWaveformAlign_optionBottom": "inferior",
"playerbarWaveformBarWidth": "amplada de la forma d'ona",
"playerbarWaveformGap": "buits de la forma d'ona",
"playerbarWaveformRadius": "radi de la forma d'ona",
"showLyricsInSidebar_description": "s'afegirà un tauler a la cua de reproducció que mostra la lletra",
"showLyricsInSidebar": "mostra la lletra a la barra lateral del reproductor",
"showVisualizerInSidebar_description": "s'afegirà un tauler a la barra lateral de reproducció que mostra el visualitzador",
"showVisualizerInSidebar": "mostra el visualitzador a la barra laterla de reproducció",
"audioFadeOnStatusChange": "fosa d'àudio en canviar d'estat",
"audioFadeOnStatusChange_description": "activa la fosa de sortida i entrada en reproduir o pausar",
"queryBuilder": "constructor de consultes",
"queryBuilderCustomFields_inputLabel": "discogràfica",
"queryBuilderCustomFields_inputTag": "etiqueta",
"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",
"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"
},
"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",
@@ -706,7 +905,10 @@
"lastPlayed": "última reproducció",
"path": "ruta",
"rating": "qualificació",
"title": "títol"
"title": "títol",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
"owner": "propietari"
},
"config": {
"general": {
@@ -717,27 +919,49 @@
"displayType": "tipus de visualització",
"itemGap": "espai entre elements (px)",
"itemSize": "mida dels elements (px)",
"tableColumns": "columnes de la taula"
"tableColumns": "columnes de la taula",
"advancedSettings": "opcions avançades",
"autosize": "dimensions automàtiques",
"moveUp": "mou amunt",
"moveDown": "mou avall",
"pinToLeft": "ancora a l'esquerra",
"pinToRight": "ancora a la dreta",
"alignLeft": "alinea a l'esquerra",
"alignCenter": "alinea al centre",
"alignRight": "alinea a la dreta",
"itemsPerRow": "elements per fila",
"size_default": "predeterminat",
"size_compact": "compacte",
"size_large": "gran",
"pagination": "paginació",
"pagination_itemsPerPage": "elements per pàgina",
"pagination_infinite": "infinita",
"pagination_paginate": "paginada",
"alternateRowColors": "colors de fila alternants",
"horizontalBorders": "vores de fila",
"rowHoverHighlight": "ressalta en passar el cursor per la fila",
"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",
@@ -747,14 +971,19 @@
"discNumber": "número de disc",
"lastPlayed": "última reproducció",
"rowIndex": "índex de files",
"titleCombined": "$t(common.title) (combinat)"
"titleCombined": "$t(common.title) (combinat)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insígnies)",
"image": "imatge",
"sampleRate": "$t(common.sampleRate)",
"composer": "compositor",
"titleArtist": "$t(common.title) (artista)"
},
"view": {
"table": "taula",
"card": "targeta",
"grid": "quadrícula",
"list": "llista",
"poster": "pòster"
"list": "llista"
}
}
},
@@ -762,17 +991,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",
@@ -791,7 +1020,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",
@@ -801,7 +1030,8 @@
"lastPlayed": "última reproducció",
"path": "ruta",
"songCount": "nombre de cançons",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "ordena per nom"
},
"player": {
"muted": "silenciat",
@@ -816,10 +1046,10 @@
"playSimilarSongs": "reproduir cançons similars",
"repeat_off": "repetició desactivada",
"repeat_all": "repetició",
"shuffle": "reproducció aleatòria",
"shuffle": "reprodueix (mesclat)",
"shuffle_off": "reproducció aleatòria desactivada",
"addLast": "afegeix al final",
"addNext": "afegeix a continuació",
"addLast": "al final",
"addNext": "a continuació",
"favorite": "marcar com a preferida",
"mute": "silencia",
"next": "següent",
@@ -834,7 +1064,15 @@
"skip_forward": "salta endavant",
"toggleFullscreenPlayer": "activa el reproductor de pantalla completa",
"unfavorite": "elimina de preferits",
"pause": "pausa"
"pause": "pausa",
"addLastShuffled": "al final (mesclat)",
"addNextShuffled": "a continuació (mesclat)",
"holdToShuffle": "mantén premut per mesclar",
"lyrics": "lletra",
"restoreQueueFromServer": "restaura la cua del servidor",
"saveQueueToServer": "desa la cua al servidor",
"artistRadio": "ràdio de l'artista",
"trackRadio": "ràdio de la pista"
},
"error": {
"credentialsRequired": "credencials requerides",
@@ -860,11 +1098,16 @@
"notificationDenied": "s'han negat els permisos per enviar notificacions. aquesta opció no té cap efecte",
"playbackError": "hi ha hagut un error en intentar reproduir el mitjà",
"remoteDisableError": "hi ha hagut un error en intentar $t(common.disable) el servidor remot",
"endpointNotImplementedError": "el punt final {{endpoint}} no està implementat per {{serverType}}"
"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",
"noNetwork": "servidor no disponible",
"noNetworkDescription": "no s'ha pogut connectar amb el servidor"
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "emissió",
"ep": "EP",
"other": "altres",
@@ -889,5 +1132,185 @@
"error_oneFileOnly": "Seleccioneu un sol fitxer",
"error_readingFile": "hi ha hagut un error en llegir el fitxer: {{errorMessage}}",
"mainText": "deixeu anar un fitxer aquí"
},
"filterOperator": {
"after": "és posterior",
"afterDate": "és posterior a (data)",
"before": "és anterior",
"beforeDate": "és anterior a (data)",
"contains": "conté",
"endsWith": "acaba en",
"inPlaylist": "és a",
"inTheLast": "és a l'últim",
"inTheRange": "és entre",
"inTheRangeDate": "és entre (data)",
"is": "és",
"isNot": "no és",
"isGreaterThan": "és més gran que",
"isLessThan": "és més petit que",
"matchesRegex": "coincideix amb l'expressió regular",
"notContains": "no conté",
"notInPlaylist": "no és a",
"notInTheLast": "no és a l'últim",
"startsWith": "comença amb"
},
"queryBuilder": {
"standardTags": "etiquetes estàndard",
"customTags": "etiquetes personalitzades"
},
"datetime": {
"minuteShort": "min",
"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í..."
}
}
+544 -112
View File
@@ -11,10 +11,10 @@
"skip_back": "přeskočit dozadu",
"favorite": "oblíbené",
"next": "další",
"shuffle": "přehrát náhodně",
"shuffle": "přehrát (náhodně)",
"playbackFetchNoResults": "nenalezeny žádné skladby",
"playbackFetchInProgress": "načítání skladeb…",
"addNext": "přidat další",
"addNext": "další",
"playbackSpeed": "rychlost přehrávání",
"playbackFetchCancel": "chvíli to trvá… zavřete oznámení pro zrušení akce",
"play": "přehrát",
@@ -26,11 +26,19 @@
"queue_moveToTop": "přesunout vybrané dolů",
"queue_moveToBottom": "přesunout vybrané nahoru",
"shuffle_off": "náhodně zakázáno",
"addLast": "přidat poslední",
"addLast": "poslední",
"mute": "ztlumit",
"skip_forward": "přeskočit dopředu",
"playSimilarSongs": "přehrát podobné skladby",
"viewQueue": "zobrazit frontu"
"viewQueue": "zobrazit frontu",
"addLastShuffled": "poslední (náhodně)",
"addNextShuffled": "další (náhodně)",
"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"
},
"setting": {
"crossfadeStyle_description": "vyberte způsob prolnutí u přehrávače zvuku",
@@ -90,11 +98,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",
@@ -106,7 +113,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",
@@ -144,7 +151,6 @@
"replayGainMode": "režim {{ReplayGain}}",
"playbackStyle_optionNormal": "normální",
"windowBarStyle": "styl záhlaví okna",
"floatingQueueArea": "zobrazit plovoucí oblast přejetí nad frontou",
"replayGainFallback_description": "zesílení v db k použití, když nemá soubor žádné značky {{ReplayGain}}",
"replayGainPreamp_description": "úprava předběžného zesílení použitého na hodnoty {{ReplayGain}}",
"hotkey_toggleRepeat": "přepnutí opakování",
@@ -157,7 +163,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",
@@ -170,7 +176,6 @@
"hotkey_rate0": "vymazání hodnocení",
"discordApplicationId": "id aplikace pro {{discord}}",
"applicationHotkeys_description": "nastavení klávesových zkratek aplikace. přepněte pole pro nastavení jako globální zkratku (pouze na počítači)",
"floatingQueueArea_description": "zobrazit ikonu přejetí myší na pravé straně obrazovky pro zobrazení fronty",
"hotkey_volumeMute": "ztlumení",
"hotkey_toggleCurrentSongFavorite": "přepnutí oblíbení u $t(common.currentSong)",
"remoteUsername": "uživatelské jméno serveru vzdáleného ovládání",
@@ -200,11 +205,7 @@
"passwordStore": "ukládání hesel / tajných klíčů",
"mpvExtraParameters_help": "jeden na řádek",
"homeConfiguration": "nastavení domovské stránky",
"playerAlbumArtResolution_description": "rozlišení náhledu obalu alba ve velkém přehrávači. větší hodnota znamená kvalitnější obrázek, ale může se déle načítat. výchozí hodnota je 0, což znamená automatické rozlišení",
"playerAlbumArtResolution": "rozlišení obalu alba v přehrávači",
"genreBehavior": "výchozí chování stránky žánrů",
"externalLinks_description": "zapne zobrazování externích odkazů (Last.fm, MusicBrainz) na stránce umělce/alba",
"genreBehavior_description": "určuje, zda kliknutí na žánr otevře seznam skladeb nebo alb",
"clearCacheSuccess": "mezipaměť úspěšně vymazána",
"externalLinks": "zobrazit externí odkazy",
"startMinimized_description": "spustit aplikaci do systémové lišty",
@@ -213,19 +214,17 @@
"homeFeature_description": "ovládá, zda se má zobrazovat velký carousel s doporučenými alby na domovské stránce",
"imageAspectRatio": "použít nativní poměr stran obalů alb",
"imageAspectRatio_description": "pokud je povoleno, budou obaly alb zobrazeny s jejich nativním poměrem stran. u obalů, které nemají poměr 1:1, bude zbývající místo prázdné",
"doubleClickBehavior": "dvojitým kliknutím zařadit všechny vyhledané skladby do fronty",
"doubleClickBehavior_description": "pokud je zapnuto, budou všechny odpovídající skladby ve vyhledávání zařazeny do fronty. v opačném případě bude zařazena pouze ta, na kterou kliknete",
"volumeWidth": "šířka posuvníku hlasitosti",
"volumeWidth_description": "horizontální velikost posuvníku hlasitosti",
"discordListening": "zobrazit stav jako „Poslouchá“",
"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ů",
@@ -284,9 +283,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í",
@@ -304,31 +303,129 @@
"language": "jazyk",
"notify": "povolit oznámení o skladbách",
"notify_description": "zobrazit oznámení při změně aktuální skladby",
"transcode": "povolit překódování"
"transcode": "povolit překódování",
"analyticsDisable": "Odhlásit se z analytiky používání aplikace",
"analyticsDisable_description": "Pro zlepšení aplikace jsou vývojáři odesílána anonymizovaná data o používání",
"playerbarSlider": "posuvník lišty přehrávače",
"playerbarSliderType_optionSlider": "posuvník",
"playerbarSliderType_optionWaveform": "vlnová křivka",
"playerbarWaveformAlign": "pozice vlnové křivky",
"playerbarWaveformAlign_optionTop": "nahoře",
"playerbarWaveformAlign_optionCenter": "uprostřed",
"playerbarWaveformAlign_optionBottom": "dole",
"playerbarWaveformBarWidth": "šířka sloupců vlnové křivky",
"playerbarWaveformGap": "mezera vlnové křivky",
"playerbarWaveformRadius": "poloměr vlnové křivky",
"showLyricsInSidebar_description": "do připojené fronty přehrávání bude přidán panel, který zobrazuje texty",
"showLyricsInSidebar": "zobrazit texty v postranní liště přehrávače",
"showVisualizerInSidebar_description": "do postranní lišty přehrávače bude přidán panel, který zobrazuje vizualizér",
"showVisualizerInSidebar": "zobrazit vizualizér v postranní liště přehrávače",
"queryBuilder": "sestavení dotazu",
"queryBuilderCustomFields_inputLabel": "štítek",
"queryBuilderCustomFields_inputTag": "značka",
"queryBuilderCustomFields": "vlastní pole",
"queryBuilderCustomFields_description": "přidat vlasntí pole k použití při sestavování dotazů",
"audioFadeOnStatusChange": "zeslabení zvuku při změně stavu",
"audioFadeOnStatusChange_description": "povolí postupné zeslabení a zesílení zvuku při změně stavu přehrávání/pozastavení",
"followCurrentSong_description": "automaticky posouvat frontu přehrávání na právě hrající skladbu",
"followCurrentSong": "následovat aktuální skladbu",
"playerFilters": "Filtrovat skladby z fronty",
"playerFilters_description": "vynechat skladby z přidání do fronty na základě následujících kritérií",
"playerbarSlider_description": "vlnová křivka není doporučena, pokud se nacházíte na pomalém nebo měřeném internetovém připojení",
"autoDJ": "automatický DJ",
"autoDJ_description": "automaticky přidávat podobné skladby do fronty",
"autoDJ_itemCount": "počet položek",
"autoDJ_itemCount_description": "počet položek, které se pokusíme přidat do fronty po povolení automatického DJ",
"autoDJ_timing": "časování",
"autoDJ_timing_description": "počet skladeb zbývajících ve frontě před spuštěním automatického DJ",
"logLevel": "úroveň protokolu",
"logLevel_description": "nastaví minimální úroveň protokolu k zobrazení. ladění zobrazuje vše, možnost chyba zobrazí pouze chyby",
"logLevel_optionDebug": "ladění",
"logLevel_optionError": "chyba",
"logLevel_optionInfo": "informace",
"logLevel_optionWarn": "varování",
"useThemeAccentColor": "použít barvu motivu",
"useThemeAccentColor_description": "použít primární barvu definovanou ve zvoleném motivu namísto vlastní barvy rozhraní",
"artistRadioCount_description": "nastaví počet skladeb, které načíst pro rádio umělce a rádio skladby",
"artistRadioCount": "počet skladeb pro rádio umělce/skladby",
"imageResolution": "rozlišení obrázků",
"imageResolution_description": "rozlišení obrázků používaných napříč aplikací. nastavení hodnoty 0 použije nativní rozlišení obrázku",
"imageResolution_optionTable": "tabulka",
"imageResolution_optionItemCard": "karta položky",
"imageResolution_optionSidebar": "postranní lišta",
"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",
"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í)"
},
"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"
},
"moveToNext": "přesunout na další"
"moveToNext": "přesunout na další",
"downloadStarted": "spuštěno stahování {{count}} položek",
"moveItems": "přesunout položky",
"shuffle": "náhodně",
"shuffleAll": "vše náhodně",
"shuffleSelected": "vybrané náhodně",
"viewMore": "zobrazit více",
"moveUp": "posunout nahoru",
"moveDown": "posunout dolů",
"holdToMoveToTop": "podržte pro přesunutí nahoru",
"holdToMoveToBottom": "podržte pro přesunutí dolů",
"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"
},
"common": {
"backward": "zpátky",
@@ -343,7 +440,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ě",
@@ -373,7 +470,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",
@@ -400,7 +499,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",
@@ -435,14 +534,29 @@
"private": "soukromý",
"public": "veřejný",
"recordLabel": "vydavatelství",
"releaseType": "typ vydání"
"releaseType": "typ vydání",
"doNotShowAgain": "již nezobrazovat",
"externalLinks": "externí odkazy",
"faster": "rychlejší",
"slower": "pomalejší",
"sort": "seřadit",
"gridRows": "řádky mřížky",
"tableColumns": "sloupce tabulky",
"itemsMore": "{{count}} dalších",
"noFilters": "nejsou nastaveny žádné filtry",
"view": "zobrazit",
"countSelected": "vybráno {{count}}",
"retry": "zkusit znovu",
"mood": "nálada",
"example": "příklad",
"filter_single": "jeden",
"filter_multiple": "několik",
"rename": "přejmenovat"
},
"table": {
"config": {
"view": {
"card": "karta",
"table": "tabulka",
"poster": "plakát",
"list": "seznam",
"grid": "mřížka"
},
@@ -454,7 +568,29 @@
"size": "$t(common.size)",
"itemGap": "mezera mezi položkami (px)",
"itemSize": "velikost položek (px)",
"followCurrentSong": "následovat aktuální skladbu"
"followCurrentSong": "následovat aktuální skladbu",
"advancedSettings": "pokročilá nastavení",
"autosize": "automatická velikost",
"moveUp": "posunout nahoru",
"moveDown": "posunout dolů",
"pinToLeft": "připnout doleva",
"pinToRight": "připnout doprava",
"alignLeft": "zarovnat doleva",
"alignCenter": "zarovnat doprostřed",
"alignRight": "zarovat doprava",
"itemsPerRow": "položky na řádek",
"size_default": "výchozí",
"size_compact": "kompaktní",
"size_large": "velký",
"pagination": "stránkování",
"pagination_itemsPerPage": "položky na stránku",
"pagination_infinite": "nekonečno",
"pagination_paginate": "stránkované",
"alternateRowColors": "střídat barvy řádků",
"horizontalBorders": "okraje řádků",
"rowHoverHighlight": "zvýraznění řádku při přejetí myší",
"verticalBorders": "okraje sloupců",
"showHeader": "zobrazit záhlaví"
},
"label": {
"releaseDate": "datum vydání",
@@ -468,23 +604,30 @@
"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)"
"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)",
"composer": "skladatel",
"titleArtist": "$t(common.title) (umělec)"
}
},
"column": {
@@ -493,7 +636,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",
@@ -502,16 +645,19 @@
"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)"
"codec": "$t(common.codec)",
"owner": "majitel",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"error": {
@@ -538,14 +684,19 @@
"networkError": "vyskytla se chyba sítě",
"openError": "nepodařilo se otevřít soubor",
"badValue": "neplatná možnost „{{value}}“. tato možnost již neexistuje",
"notificationDenied": "oprávnění k posílání oznámení byla zamítnuta. toto nastavení nemá žádný vliv"
"notificationDenied": "oprávnění k posílání oznámení byla zamítnuta. toto nastavení nemá žádný vliv",
"multipleServerSaveQueueError": "fronta přehrávání má jednu nebo více skladeb, které nejsou z aktuálního serveru. tato funkce není podporována",
"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"
},
"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",
@@ -554,17 +705,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",
@@ -573,7 +724,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ě",
@@ -581,25 +732,29 @@
"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í"
},
"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",
"myLibrary": "moje knihovna"
"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, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "sbírky"
},
"fullscreenPlayer": {
"config": {
@@ -627,7 +782,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",
@@ -636,7 +791,11 @@
"goBack": "přejít zpět",
"goForward": "přejít vpřed",
"privateModeOff": "vypnout soukromý režim",
"privateModeOn": "zapnout soukromý režim"
"privateModeOn": "zapnout soukromý režim",
"selectMusicFolder": "vybrat složku s hudbou",
"noMusicFolder": "není vybrána žádná složka s hudbou",
"multipleMusicFolders": "Vybráno {{count}} složek s hudbou",
"commandPalette": "otevřít paletu příkazů"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -661,8 +820,10 @@
"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"
},
"home": {
"mostPlayed": "nejpřehrávanější",
@@ -670,10 +831,11 @@
"title": "$t(common.home)",
"explore": "procházet z vaší knihovny",
"recentlyPlayed": "nedávno přehráno",
"recentlyReleased": "nedávno vydáno"
"recentlyReleased": "nedávno vydáno",
"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"
},
@@ -682,20 +844,38 @@
"generalTab": "obecné",
"hotkeysTab": "klávesové zkratky",
"windowTab": "okno",
"advanced": "pokročilé"
"advanced": "pokročilé",
"analytics": "analytika",
"updates": "aktualizace",
"cache": "mezipaměť",
"application": "aplikace",
"queryBuilder": "sestavení dotazu",
"theme": "motiv",
"controls": "ovládání",
"sidebar": "postranní lišta",
"remote": "vzdálené",
"exportImport": "import/export",
"scrobble": "scrobblování",
"audio": "zvuk",
"lyrics": "texty",
"transcoding": "překódování",
"discord": "discord",
"playerFilters": "filtry přehrávače",
"logger": "protokol",
"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": {
@@ -706,12 +886,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",
@@ -720,9 +900,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",
@@ -739,20 +925,42 @@
"removeServer": "odstranit server",
"serverDetails": "podrobnosti o serveru",
"title": "správa serverů"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"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": {
@@ -764,19 +972,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",
@@ -785,17 +996,22 @@
"queryEditor": {
"input_optionMatchAll": "shoda všeho",
"input_optionMatchAny": "shoda libovolného",
"title": "editor dotazů"
"title": "editor dotazů",
"addRuleGroup": "přidat skupinu pravidel",
"removeRuleGroup": "odstranit skupinu pravidel",
"resetToDefault": "resetovat na výchozí",
"clearFilters": "vymazat filtry"
},
"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",
"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"
"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?"
},
"shareItem": {
"allowDownloading": "umožnit stahování",
@@ -809,6 +1025,36 @@
"enabled": "soukromý režim povolen, stav přehrávání je nyní skryt před externími integracemi",
"disabled": "soukromý režim povolen, stav přehrávání je nyní viditelný pro externími integrace",
"title": "soukromý režim"
},
"largeFetchConfirmation": {
"title": "přidat položky do fronty",
"description": "Tato akce přidá všechny položky v aktuálně filtrovaném zobrazení"
},
"shuffleAll": {
"title": "přehrát náhodně",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "kolik skladeb?",
"input_minYear": "od roku",
"input_maxYear": "do roku",
"input_played": "přehrát filtr",
"input_played_optionAll": "všechny skladby",
"input_played_optionUnplayed": "pouze nepřehrané skladby",
"input_played_optionPlayed": "pouze přehrané skladby"
},
"saveQueue": {
"success": "fronta přehrávání uložena na server"
},
"createRadioStation": {
"success": "stanice rádia úspěšně vytvořena",
"title": "vytvořit stanici rádia",
"input_homepageUrl": "adresa domovské stránky",
"input_name": "název",
"input_streamUrl": "adresa streamu"
},
"lyricsExport": {
"export": "exportovat texty",
"input_synced": "exportovat synchronizované texty",
"input_offset": "$t(setting.lyricOffset)"
}
},
"entity": {
@@ -839,16 +1085,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",
@@ -863,7 +1109,13 @@
"play_other": "{{count}} přehrání",
"song_one": "píseň",
"song_few": "písničky",
"song_other": "písní"
"song_other": "písní",
"radioStation_one": "stanice rádia",
"radioStation_few": "stanice rádia",
"radioStation_other": "stanice rádia",
"radioStationWithCount_one": "{{count}} stanice rádia",
"radioStationWithCount_few": "{{count}} stanice rádia",
"radioStationWithCount_other": "{{count}} stanic rádia"
},
"dragDropZone": {
"error_oneFileOnly": "Vyberte prosím pouze 1 soubor",
@@ -872,7 +1124,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "vysílání",
"ep": "ep",
"other": "jiné",
@@ -892,5 +1144,185 @@
"soundtrack": "soundtrack",
"spokenWord": "mluvené slovo"
}
},
"queryBuilder": {
"standardTags": "standardní značky",
"customTags": "vlastní značky"
},
"filterOperator": {
"after": "je po",
"afterDate": "je po (datum)",
"before": "je před",
"beforeDate": "je před (datum)",
"contains": "obsahuje",
"endsWith": "končí na",
"inPlaylist": "je v",
"inTheLast": "je v posledním",
"inTheRange": "je v rozsahu",
"inTheRangeDate": "je v rozsahu (datum)",
"is": "je",
"isNot": "není",
"isGreaterThan": "je větší než",
"isLessThan": "je menší než",
"matchesRegex": "odpovídá regulárnímu výrazu",
"notContains": "neobsahuje",
"notInPlaylist": "není v",
"notInTheLast": "není v posledním",
"startsWith": "začíná na"
},
"datetime": {
"minuteShort": "min.",
"secondShort": "s",
"hourShort": "h.",
"dayShort": "d."
},
"visualizer": {
"visualizerType": "Typ vizualizéru",
"cyclePresets": "Cyklicky procházet předvolby",
"cycleTime": "Čas cyklování (sekundy)",
"includeAllPresets": "Zahrnout všechny předvolby",
"ignoredPresets": "Ignorované předvolby",
"selectedPresets": "Vybrané předvolby",
"randomizeNextPreset": "Náhodně vybrat další předvolbu",
"blendTime": "Čas prolnutí",
"presets": "Předvolby",
"selectPreset": "Vybrat předvolbu",
"applyPreset": "Použít předvolbu",
"saveAsPreset": "Uložit jako předvolbu",
"updatePreset": "Aktualizovat předvolbu",
"copyConfiguration": "Kopírovat konfiguraci",
"pasteConfiguration": "Vložit konfiguraci",
"pasteConfigurationPlaceholder": "Sem vložte konfiguraci JSON…",
"pasteFromClipboard": "Vložit ze schránky",
"applyConfiguration": "Použít konfiguraci",
"configCopied": "Konfigurace zkopírována do schránky",
"configCopyFailed": "Nepodařilo se zkopírovat konfiguraci",
"configPasted": "Konfigurace úspěšně použita",
"configPasteFailed": "Nepodařilo se použít konfiguraci. Zkontrolujte prosím formát.",
"configPasteReadFailed": "Nepodařilo se přečíst schránku",
"presetName": "Název předvolby",
"presetNamePlaceholder": "Zadejte název předvolby",
"general": "Obecné",
"mode": "Režim",
"mode1To8": "Režim 18",
"mode10": "Režim 10",
"barSpace": "Mezera mezi sloupci",
"lineWidth": "Šířka linky",
"fillAlpha": "Vyplnit alfu",
"channelLayout": "Rozložení kanálů",
"maxFPS": "Max. počet snímků za sekundu",
"opacity": "Neprůhlednost",
"customGradients": "Vlastní přechody",
"addCustomGradient": "Přidat vlastní přechod",
"gradientName": "Název přechodu",
"gradientNamePlaceholder": "Název přechodu",
"vertical": "Vertikální",
"horizontal": "Horizontální",
"colorStops": "Ukončení barev",
"addColor": "Přidat barvu",
"position": "Pozice",
"level": "Úroveň",
"remove": "Odstranit",
"custom": "Vlastní",
"builtIn": "Vestavěné",
"colors": "Barvy",
"colorMode": "Režim barev",
"gradient": "Přechod",
"gradientLeft": "Přechod zleva",
"gradientRight": "Přechod zprava",
"fft": "FFT",
"fftSize": "Velikost FFT",
"smoothing": "Vyhlazování",
"frequencyRangeAndScaling": "Rozsah a škálování frekvencí",
"minimumFrequency": "Minimální frekvence",
"maximumFrequency": "Maximální frekvence",
"frequencyScale": "Škála frekvence",
"sensitivity": "Citlivost",
"weightingFilter": "Filtr váhy",
"minimumDecibels": "Minimální decibely",
"maximumDecibels": "Maximální decibely",
"linearAmplitude": "Lineární amplituda",
"linearBoost": "Lineární zesílení",
"peakBehavior": "Chování ve špičce",
"showPeaks": "Zobrazit špičky",
"fadePeaks": "Prolnout špičky",
"peakLine": "Linka špiček",
"gravity": "Gravitace",
"peakFadeTime": "Čas pádu ze špičky (ms)",
"peakHoldTime": "Čas udržení na špičce (ms)",
"radialSpectrum": "Kruhové spektrum",
"radial": "Kruhové",
"radialInvert": "Kruhové invertované",
"spinSpeed": "Rychlost rotace",
"radius": "Poloměr",
"reflexMirror": "Reflexní zrcadlení",
"reflexFit": "Reflexní vyplnění",
"reflexRatio": "Reflexní poměr",
"reflexAlpha": "Reflexní alfa",
"reflexBrightness": "Reflexní jas",
"mirror": "Zrcadlení",
"miscellaneousSettings": "Různá nastavení",
"alphaBars": "Alfa sloupce",
"ansiBands": "ANSI sloupce",
"ledBars": "LED sloupce",
"trueLeds": "Pravé LED",
"lumiBars": "Lumi sloupce",
"outlineBars": "Obrysové sloupce",
"roundBars": "Zaoblené sloupce",
"lowResolution": "Nízké rozlišení",
"splitGradient": "Přechod rozdělení",
"showFPS": "Zobrazit FPS",
"showScaleX": "Zobrazit osu X",
"noteLabels": "Štítky not",
"showScaleY": "Zobrazit osu Y",
"options": {
"colorMode": {
"gradient": "Přechod",
"barIndex": "Index sloupce",
"barLevel": "Úroveň sloupce"
},
"gradient": {
"classic": "Klasický",
"prism": "Prism",
"rainbow": "Duha",
"steelblue": "Ocelově modrá",
"orangered": "Oranžová"
},
"channelLayout": {
"single": "Jeden",
"dualCombined": "Duální kombinované",
"dualHorizontal": "Duální horizontální",
"dualVertical": "Duální vertikální"
},
"frequencyScale": {
"bark": "Barkova stupnice",
"linear": "Lineární stupnice",
"log": "Logaritmická stupnice",
"mel": "Melová stupnice",
"none": "Žádný"
},
"weightingFilter": {
"none": "Žádný",
"a": "A",
"b": "B",
"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
+475 -159
View File
@@ -1,30 +1,43 @@
{
"action": {
"editPlaylist": "bearbeiten $t(entity.playlist_one)",
"clearQueue": "Warteschlange löschen",
"addToFavorites": "hinzufügen zu $t(entity.favorite_other)",
"addToPlaylist": "hinzufügen zu $t(entity.playlist_one)",
"createPlaylist": "erstelle $t(entity.playlist_one)",
"deletePlaylist": "löschen $t(entity.playlist_one)",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) bearbeiten",
"clearQueue": "Wiedergabeliste leeren",
"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": "Gehe zur Seite",
"moveToTop": "Nach oben",
"moveToBottom": "Nach unten",
"removeFromPlaylist": "Entfernen von $t(entity.playlist_one)",
"viewPlaylists": "Ansicht $t(entity.playlist_other)",
"goToPage": "Zu Seite gehen",
"moveToTop": "Als erstes",
"moveToBottom": "Als letztes",
"removeFromPlaylist": "Aus $t(entity.playlist, {\"count\": 1}) entfernen",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) anzeigen",
"refresh": "$t(common.refresh)",
"removeFromQueue": "Von Warteschlange entfernen",
"setRating": "Bewertung festlegen",
"toggleSmartPlaylistEditor": "Editor $t(entity.smartPlaylist) umschalten",
"removeFromFavorites": "Entfernen von $t(entity.favorite_other)",
"removeFromQueue": "Aus Wiedergabeliste entfernen",
"setRating": "Bewerten",
"toggleSmartPlaylistEditor": "Editor für $t(entity.smartPlaylist) ein-/ausblenden",
"removeFromFavorites": "Aus $t(entity.favorite, {\"count\": 2}) entfernen",
"openIn": {
"lastfm": "In Last.fm öffnen",
"musicbrainz": "In MusicBrainz öffnen"
"lastfm": "Auf Last.fm öffnen",
"musicbrainz": "Auf MusicBrainz öffnen"
},
"moveToNext": "nach unten verschieben"
"moveToNext": "Als nächstes",
"downloadStarted": "Download von {{count}} Elementen gestartet",
"moveItems": "Elemente verschieben",
"shuffle": "Zufällig wiedergeben",
"shuffleAll": "Alle zufällig wiedergeben",
"shuffleSelected": "Ausgewählte zufällig wiedergeben",
"viewMore": "Mehr zeigen",
"moveUp": "Nach oben bewegen",
"moveDown": "Nach unten bewegen",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) erstellen",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) löschen",
"selectAll": "alle auswählen",
"openApplicationDirectory": "Anwendungsverzeichnis öffnen",
"addOrRemoveFromSelection": "Zur Auswahl hinzufügen oder entfernen"
},
"common": {
"backward": "rückwärts",
"backward": "zurück",
"increase": "erhöhen",
"rating": "Wertung",
"bpm": "bpm",
@@ -33,11 +46,11 @@
"areYouSure": "Bist Du sicher?",
"edit": "Bearbeiten",
"favorite": "Favorit",
"left": "links",
"left": "Linksbündig",
"save": "Speichern",
"right": "rechts",
"currentSong": "momentaner $t(entity.track_one)",
"collapse": "Zusammenklappen",
"right": "Rechtsbündig",
"currentSong": "Aktueller $t(entity.track, {\"count\": 1})",
"collapse": "Verkleinern",
"trackNumber": "Track",
"descending": "absteigend",
"add": "Hinzufügen",
@@ -57,11 +70,11 @@
"description": "Beschreibung",
"configure": "Konfigurieren",
"path": "Pfad",
"center": "Zentrieren",
"center": "Zentriert",
"no": "Nein",
"owner": "Eigentümer",
"enable": "Aktivieren",
"clear": "Bereinigen",
"clear": "Leeren",
"forward": "vorwärts",
"delete": "Löschen",
"cancel": "Abbrechen",
@@ -92,13 +105,13 @@
"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": "expandieren",
"expand": "Vergrößern",
"search": "Suchen",
"saveAs": "Speichern unter",
"disc": "Disk",
"disc": "CD",
"yes": "Ja",
"random": "zufällig",
"size": "Größe",
@@ -110,17 +123,36 @@
"close": "schließen",
"share": "Teilen",
"translation": "Übersetzung",
"trackGain": "Track-Pegelverstärkung",
"trackPeak": "Track-Spitzenpegel",
"trackGain": "Track Gain",
"trackPeak": "Track Peak",
"codec": "Codec",
"albumPeak": "Album-Spitzenpegel",
"albumGain": "Album-Pegelverstärkung",
"albumGain": "Album Gain",
"tags": "tags",
"viewReleaseNotes": "release notes anzeigen",
"viewReleaseNotes": "Veröffentlichungsnotizen anzeigen",
"newVersion": "eine neue Version wurde installiert ({{version}})",
"bitDepth": "Bittiefe",
"sampleRate": "Abtastrate",
"additionalParticipants": "weitere Beteiligte"
"additionalParticipants": "weitere Beteiligte",
"explicitStatus": "Anstößig-Status",
"doNotShowAgain": "Nicht wieder zeigen",
"explicit": "Anstößig",
"gridRows": "Rasterzeilen",
"tableColumns": "Tabellenspalten",
"itemsMore": "{{count}} weitere",
"externalLinks": "externe Links",
"faster": "schneller",
"noFilters": "Keine Filter konfiguriert",
"private": "privat",
"public": "öffentlich",
"sort": "sortieren",
"clean": "Jugendfrei",
"recordLabel": "Plattenlabel",
"slower": "langsamer",
"releaseType": "Veröffentlichungsformat",
"view": "Betrachten",
"countSelected": "{{count}} ausgewählt",
"mood": "Stimmung"
},
"error": {
"remotePortWarning": "Starten Sie den Server neu, um den neuen Port anzuwenden",
@@ -142,11 +174,15 @@
"audioDeviceFetchError": "Beim Versuch, Audiogeräte abzurufen, ist ein Fehler aufgetreten",
"invalidServer": "Ungültiger Server",
"loginRateError": "Zu viele Anmeldeversuche, bitte versuche es in einigen Sekunden erneut",
"badAlbum": "sie sehen diese Seite, weil dieses Lied nicht Teil eines Albums ist. Wahrscheinlich sehen Sie dieses Problem, wenn Sie einen Song in Ihrem Musikordner auf oberster Ebene haben. Jellyfin gruppiert nur Songs, wenn sie sich in einem Ordner befinden",
"badAlbum": "sie sehen diese Seite, weil dieses Lied nicht Teil eines Albums ist. Dieses Problem tritt meist auf, wenn sich ein Lied im Überordner befindet. Jellyfin gruppiert Tracks nur, wenn diese sich innerhalb eines Ordners befinden",
"networkError": "ein Netzwerkfehler ist aufgetreten",
"openError": "datei kann nicht geöffnet werden",
"badValue": "ungültige option \"{{value}}\". Dieser Wert existiert nicht mehr",
"notificationDenied": "Berechtigungen über Benachrichtigungen wurden verweigert. Diese Einstellung hat keinen Effekt"
"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",
"noNetwork": "Server nicht verfügbar",
"noNetworkDescription": "Verbindung zum Server konnte nicht hergestellt werden"
},
"filter": {
"mostPlayed": "Meistgespielt",
@@ -165,11 +201,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",
@@ -185,24 +221,25 @@
"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)"
"genre": "$t(entity.genre, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)"
},
"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)"
},
@@ -211,19 +248,23 @@
"input_username": "Benutzername",
"input_url": "URL",
"input_password": "Passwort",
"input_legacyAuthentication": "Aktivieren der Legacy-Authentifizierung",
"input_name": "Server Name",
"input_legacyAuthentication": "Alte Authentifizierung verwenden",
"input_name": "Servername",
"success": "Server erfolgreich hinzugefügt",
"input_savePassword": "Passwort speichern",
"ignoreSsl": "ignoriere ssl $t(common.restartRequired)",
"ignoreCors": "ignoriere cors $t(common.restartRequired)",
"error_savePassword": "Beim Versuch, das Passwort zu speichern, ist ein Fehler aufgetreten"
"ignoreSsl": "SSL ignorieren $t(common.restartRequired)",
"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"
},
"addToPlaylist": {
"success": "{{message}} $t(entity.track_other) zu {{numOfPlaylists}} $t(entity.playlist_other) hinzugefügt",
"title": "Zu $t(entity.playlist_one) hinzufügen",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) zu $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) hinzugefügt",
"title": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
"input_skipDuplicates": "Duplikate überspringen",
"input_playlists": "$t(entity.playlist_other)"
"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",
@@ -232,30 +273,63 @@
"queryEditor": {
"input_optionMatchAll": "Treffer Alle",
"input_optionMatchAny": "Treffer Einige",
"title": "query bearbeiten"
"title": "query bearbeiten",
"clearFilters": "Filter löschen",
"addRuleGroup": "Regelgruppe hinzufügen",
"removeRuleGroup": "Regelgruppe entfernen",
"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 Playlist ö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",
"setExpiration": "Ablaufdatum setzen",
"expireInvalid": "Ablaufdatum muss in der Zukunft liegen",
"allowDownloading": "Herunterladen zulassen",
"success": "Link in die Zwischenablage kopiert (oder hier klicken um zu öffnen)",
"success": "Link in die Zwischenablage kopiert (oder hier klicken, um zu öffnen)",
"createFailed": "fehler beim Teilen (Ist Teilen aktiviert?)"
},
"privateMode": {
"enabled": "Privatmodus aktiviert, Wiedergabe-Status wird externen Quellen nicht preisgegeben",
"disabled": "Privatmodus deaktiviert, Wiedergabe-Status wird externen Quellen preisgegeben",
"title": "Privatmodus"
},
"largeFetchConfirmation": {
"title": "Elemente der Wiedergabeliste hinzufügen",
"description": "Diese Aktion fügt alle Elemente in der aktuell gefilterten Ansicht hinzu"
},
"shuffleAll": {
"title": "Zufallswiedergabe",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Wie viele Songs?",
"input_minYear": "ab Jahr",
"input_maxYear": "bis Jahr",
"input_played_optionAll": "alle Tracks",
"input_played_optionUnplayed": "nur nicht gespielte Tracks",
"input_played_optionPlayed": "nur gespielte Tracks",
"input_played": "Wiedergabefilter"
},
"saveQueue": {
"success": "Wiedergabeliste auf Server gespeichert"
},
"createRadioStation": {
"success": "Radiosender erfolgreich erstellt",
"title": "Radiosender erstellen",
"input_homepageUrl": "Homepage URL",
"input_name": "Name",
"input_streamUrl": "Stream URL"
},
"lyricsExport": {
"input_offset": "$t(setting.lyricOffset)"
}
},
"entity": {
@@ -289,25 +363,41 @@
"genreWithCount_other": "{{count}} Genres",
"trackWithCount_one": "{{count}} Track",
"trackWithCount_other": "{{count}} Tracks",
"smartPlaylist": "Smart $t(entity.playlist_one)",
"smartPlaylist": "Intelligente $t(entity.playlist, {\"count\": 1})",
"play_one": "{{count}} Wiedergabe",
"play_other": "{{count}} Wiedergaben",
"song_one": "Lied",
"song_other": "Lieder"
"song_other": "Lieder",
"radioStation_one": "Radiosender",
"radioStation_other": "Radiosender",
"radioStationWithCount_one": "{{count}} Radiosender",
"radioStationWithCount_other": "{{count}} Radiosender"
},
"table": {
"config": {
"view": {
"table": "Tabelle",
"card": "Karte",
"poster": "Poster"
"grid": "Raster",
"list": "Liste"
},
"general": {
"tableColumns": "Tabellenspalten",
"gap": "$t(common.gap)",
"size": "$t(common.size)",
"displayType": "Anzeigestil",
"autoFitColumns": "automatisch Spalten einpassen"
"autoFitColumns": "automatisch Spalten einpassen",
"size_default": "Standard",
"followCurrentSong": "aktuellem Titel folgen",
"advancedSettings": "erweiterte Einstellungen",
"autosize": "automatische Größe",
"alignLeft": "linksbündig",
"alignCenter": "mittig",
"alignRight": "rechtsbündig",
"size_compact": "kompakt",
"size_large": "groß",
"pagination": "Seitenzahlen",
"pagination_itemsPerPage": "Elemente pro Seite",
"pagination_infinite": "unendlich"
},
"label": {
"dateAdded": "Hinzugefügt am",
@@ -316,12 +406,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)",
@@ -335,7 +425,14 @@
"title": "$t(common.title)",
"year": "$t(common.year)",
"discNumber": "disk-Nummer",
"playCount": "anzahl abgespielt"
"playCount": "Wiedergaben",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"codec": "$t(common.codec)",
"image": "Bild",
"sampleRate": "$t(common.sampleRate)",
"songCount": "$t(entity.track, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (Abzeichen)"
}
},
"column": {
@@ -351,17 +448,21 @@
"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)"
"size": "$t(common.size)",
"bitDepth": "$t(common.bitDepth)",
"codec": "$t(common.codec)",
"sampleRate": "$t(common.sampleRate)",
"owner": "Besitzer"
}
},
"page": {
@@ -380,12 +481,12 @@
"lyricGap": "Songtext-Lücke",
"dynamicIsImage": "Hintergrundbild aktivieren",
"dynamicImageBlur": "Größe der Bildunschärfe",
"lyricOffset": "Zeitversetzung des Liedtexts (ms)"
"lyricOffset": "Zeitversatz des Songtextes (ms)"
},
"upNext": "als nächstes",
"lyrics": "Songtexte",
"related": "Ähnliche",
"noLyrics": "Keine Liedtexte gefunden",
"noLyrics": "Songtext nicht gefunden",
"visualizer": "visualizer"
},
"appMenu": {
@@ -397,10 +498,14 @@
"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"
"privateModeOn": "Privatmodus aktivieren",
"commandPalette": "Kommandopalette öffnen",
"selectMusicFolder": "Musikordner wählen",
"noMusicFolder": "kein Musikordner gewählt",
"multipleMusicFolders": "{{count}} Musikordner ausgewählt"
},
"home": {
"mostPlayed": "Meistgespielt",
@@ -408,10 +513,11 @@
"explore": "Entdecke deine Bibliothek",
"recentlyPlayed": "Kürzlich gespielt",
"title": "$t(common.home)",
"recentlyReleased": "kürzlich veröffentlicht"
"recentlyReleased": "kürzlich veröffentlicht",
"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"
},
@@ -446,62 +552,88 @@
"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",
"myLibrary": "meine bibliothek"
"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, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "Sammlungen"
},
"setting": {
"playbackTab": "Wiedergabe",
"generalTab": "Allgemein",
"hotkeysTab": "Kurzbefehle",
"windowTab": "Fenster",
"advanced": "Erweitert"
"advanced": "Erweitert",
"discord": "Discord",
"exportImport": "Importieren/Exportieren",
"analytics": "Analyse",
"updates": "Update",
"cache": "Cache",
"application": "App",
"queryBuilder": "Abfrage-Editor",
"theme": "Erscheinungsbild",
"controls": "Steuerelemente",
"sidebar": "Seitenleiste",
"scrobble": "Scrobbeln",
"audio": "Audio",
"lyrics": "Songtexte",
"transcoding": "Transcoding",
"logger": "Logger",
"playerFilters": "Player-Filter",
"remote": "Fernsteuerung"
},
"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}}"
},
"manageServers": {
"title": "Servers verwalten",
@@ -515,14 +647,33 @@
"copyPath": "Pfad in Zwischenablage kopieren",
"copiedPath": "Pfad erfolgreich kopiert",
"openFile": "Track im Dateiexplorer anzeigen"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"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"
}
},
"player": {
"next": "nächster",
"addNext": "Als nächstes spielen",
"addNext": "als Nächstes",
"play": "Abspielen",
"muted": "stummgeschaltet",
"addLast": "ans ende einzufügen",
"addLast": "als Letztes",
"mute": "Stumm",
"playRandom": "Zufällige Wiedergabe",
"previous": "Vorheriger",
@@ -531,11 +682,11 @@
"playbackFetchInProgress": "lieder werden geladen…",
"playbackSpeed": "Wiedergabegeschwindigkeit",
"playbackFetchCancel": "Das dauert eine Weile. Schließen Sie die Benachrichtigung, um den Vorgang abzubrechen",
"queue_clear": "Bereinige Warteschlange",
"queue_clear": "Wiedergabeliste bereinigen",
"repeat_all": "Alle wiederholen",
"repeat": "Wiederholen",
"queue_remove": "Ausgewählte entfernen",
"shuffle": "zufallswiedergabe",
"shuffle": "Wiedergabe (zufällig)",
"repeat_off": "nicht wiederholen",
"queue_moveToTop": "Ausgewählte nach unten verschieben",
"queue_moveToBottom": "Ausgewählte nach oben verschieben",
@@ -548,7 +699,13 @@
"skip_forward": "vorspulen",
"skip": "Überspringen",
"playSimilarSongs": "Ähnliche Lieder abspielen",
"viewQueue": "Warteschlange anzeigen"
"viewQueue": "Wiedergabeliste anzeigen",
"addLastShuffled": "als Letztes (zufällige Wiedergabe)",
"addNextShuffled": "als Nächstes (zufällige Wiedergabe)",
"holdToShuffle": "Halten für Zufallswiedergabe",
"restoreQueueFromServer": "Wiedergabeliste von Server wiederherstellen",
"saveQueueToServer": "Wiedergabeliste auf Server speichern",
"lyrics": "Songtexte"
},
"setting": {
"audioDevice_description": "wählen Sie das Audiogerät aus, das für die Wiedergabe verwendet werden soll (nur Webplayer)",
@@ -559,12 +716,11 @@
"applicationHotkeys": "anwendungs Kurzbefehle",
"applicationHotkeys_description": "konfiguriere die Tastenkombinationen der Anwendung. Setze einen Haken, um die Tastenkombination global zu verwenden (nur für die Desktopanwendung)",
"crossfadeStyle_description": "Wählen Sie Art des Überblendungseffekts aus, welcher für den Audioplayer verwendet werden soll",
"discordIdleStatus_description": "wenn aktiviert wird der rich presence status aktiviert, wenn sich der Player im Leerlauf befindet",
"discordIdleStatus_description": "Status aktualisieren, während die Wiedergabe pausiert ist",
"audioExclusiveMode_description": "Aktivieren Sie den exklusiven Ausgabemodus. In diesem Modus ist das System normalerweise gesperrt und nur MPV ist in der Lage Audio ausgeben",
"disableLibraryUpdateOnStartup": "beim Start nicht nach neuen Versionen suchen",
"discordApplicationId_description": "die Application-ID für {{discord}} rich presence (Standard: {{defaultId}})",
"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",
@@ -575,26 +731,26 @@
"remotePort_description": "Legt den Port des Fernsteuerungsserver fest",
"hotkey_skipBackward": "rückwärts springen",
"replayGainMode_description": "Passen Sie die Lautstärkeverstärkung entsprechend den in den Dateimetadaten gespeicherten {{ReplayGain}}-Werten an",
"volumeWheelStep_description": "die Lautstärke, die beim Scrollen des Mausrads auf dem Lautstärkeregler geändert werden soll",
"theme_description": "Legt das für die Anwendung zu verwendende Thema fest",
"volumeWheelStep_description": "Die Lautstärkeänderung beim Scrollen mit dem Mausrad auf dem Lautstärkeregler",
"theme_description": "Legt das für die Anwendung zu verwendende Erscheinungsbild fest",
"hotkey_playbackPause": "Pause",
"sidebarCollapsedNavigation_description": "Zeigt die Navigation in der minimierten Seitenleiste an oder verbirgt sie",
"hotkey_volumeUp": "Lauter",
"skipDuration": "Sprungdauer",
"showSkipButtons": "Schaltflächen zum Überspringen anzeigen",
"playButtonBehavior_optionPlay": "$t(player.play)",
"minimumScrobblePercentage": "minimale Scrobble-Dauer (Prozentsatz)",
"minimumScrobblePercentage": "Minimum Scrobble-Dauer (Prozentsatz)",
"lyricFetch": "Songtexte aus dem Internet abrufen",
"scrobble": "Scrobbeln",
"scrobble": "scrobbel",
"skipDuration_description": "Legt die zu überspringende Dauer fest, wenn die Überspringen-Schaltflächen in der Player-Leiste verwendet werden",
"mpvExecutablePath_description": "Legt den Pfad zur ausführbaren MPV-Datei fest. Wenn leer gelassen, wird der Standard-Pfad verwendet",
"mpvExecutablePath_description": "Legt den Pfad zur ausführbaren MPV-Datei fest. Wenn leer gelassen, wird der Standardpfad verwendet",
"replayGainClipping_description": "Verhindern Sie durch {{ReplayGain}} verursachtes Clipping, indem Sie die Verstärkung automatisch verringern",
"replayGainPreamp": "{{ReplayGain}} Vorverstärker (db)",
"hotkey_favoriteCurrentSong": "Favorit $t(common.currentSong)",
"sampleRate": "Abtastrate",
"sidePlayQueueStyle_optionAttached": "angefügt",
"sidebarConfiguration": "Seitenleistenkonfiguration",
"sampleRate_description": "Wähle die auszugebende Abtastrate aus, wenn sich die ausgewählte Abtastfrequenz von der des aktuellen Mediums unterscheidet. Ein Wert unter 8000 wird die Standard-Frequenz verwenden",
"sampleRate_description": "Wähle die auszugebende Abtastrate aus, wenn sich die ausgewählte Abtastfrequenz von der des aktuellen Mediums unterscheidet. Ein Wert unter 8000 wird die Standardfrequenz verwenden",
"replayGainMode_optionNone": "$t(common.none)",
"hotkey_zoomIn": "Hineinzoomen",
"scrobble_description": "Scrobble wird auf Ihrem Medienserver abgespielt",
@@ -612,52 +768,53 @@
"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)",
"lyricOffset": "Liedtext-Versatz (ms)",
"themeDark_description": "Legt das dunkle Design fest, das für die Anwendung verwendet werden soll",
"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",
"lyricFetchProvider": "Anbieter, von denen Liedtexte abgerufen werden können",
"lyricFetchProvider": "Anbieter, von denen Songtexte abgerufen werden können",
"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)",
"themeLight_description": "Legt das helle Thema fest, das für die Anwendung verwendet werden soll",
"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",
"hotkey_toggleQueue": "Warteschlange umschalten",
"remotePassword_description": "Legt das Passwort für den Fernsteuerungsserver fest. Diese Anmeldeinformationen werden standardmäßig unsicher übertragen, daher sollten Sie ein eindeutiges Passwort verwenden, das Ihnen egal ist",
"hotkey_toggleQueue": "Wiedergabeliste umschalten",
"remotePassword_description": "Legt das Passwort für den Fernsteuerungsserver fest. Diese Anmeldeinformationen werden standardmäßig unsicher übertragen, daher sollten Sie ein Passwort verwenden, das Ihnen egal ist",
"hotkey_rate5": "Bewertung 5 Sterne",
"hotkey_playbackPrevious": "Vorheriger Track",
"showSkipButtons_description": "Ein- oder Ausblenden der Überspringen-Schaltflächen in der Player-Leiste",
"playbackStyle": "Wiedergabestil",
"hotkey_toggleShuffle": "Zufallswiedergabe umschalten",
"theme": "Thema",
"theme": "Erscheinungsbild",
"playbackStyle_description": "Wählen Sie den Wiedergabestil aus, der für den Audioplayer verwendet werden soll",
"mpvExecutablePath": "Pfad der ausführbaren MPV-Datei",
"hotkey_rate2": "Bewertung 2 Sterne",
"playButtonBehavior_description": "Legt das Standardverhalten der Wiedergabeschaltfläche fest, wenn Songs zur Warteschlange hinzugefügt werden",
"minimumScrobblePercentage_description": "Der Mindestprozentsatz des Songs, der gespielt werden muss, bevor er gescrobbelt wird",
"playButtonBehavior_description": "legt das Standardverhalten des Wiedergabe-Buttons fest, wenn Lieder zur Wiedergabeliste hinzugefügt werden",
"minimumScrobblePercentage_description": "die Mindestdauer in Prozent, welche das Lied gespielt werden muss, bevor dieses gescrobbelt wird",
"hotkey_rate4": "Bewertung 4 Sterne",
"showSkipButton_description": "Ein- oder Ausblenden der Überspringen-Schaltflächen in der Player-Leiste",
"savePlayQueue": "Wiedergabe-Warteschlange speichern",
"minimumScrobbleSeconds_description": "die Mindestdauer in Sekunden, die das Lied abspielen muss, bevor es gescrobbelt wird",
"skipPlaylistPage_description": "Gehen Sie beim Navigieren zu einer Wiedergabeliste zur Titelseite der Wiedergabeliste und nicht zur Standardseite",
"savePlayQueue": "Wiedergabeliste speichern",
"minimumScrobbleSeconds_description": "die Mindestdauer in Sekunden, welche das Lied gespielt werden muss, bevor dieses gescrobbelt wird",
"skipPlaylistPage_description": "Gehe beim Navigieren zu einer Wiedergabeliste zu deren Titelseite und nicht zur Standardseite",
"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ärkeregler Stufe",
"volumeWheelStep": "Lautstärkeänderung mit Mausrad",
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
"sidePlayQueueStyle_description": "Legt den Stil der Wiedergabewarteliste in der Seitenleiste fest",
"sidebarPlaylistSorting_description": "sortiere Playlists 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",
"windowBarStyle": "Fensterleistenstil",
"replayGainFallback_description": "Verstärkung in db, die angewendet werden soll, wenn die Datei keine {{ReplayGain}}-Tags hat",
"replayGainPreamp_description": "Passen Sie die Vorverstärkerverstärkung an, die auf die {{ReplayGain}}-Werte angewendet wird",
"hotkey_toggleRepeat": "Wiederholung umschalten",
"lyricOffset_description": "Versetzen Sie den Liedtext um die angegebene Anzahl von Millisekunden",
"lyricOffset_description": "Versetzen Sie den Songtext um die angegebene Anzahl von Millisekunden",
"sidebarConfiguration_description": "Wählen Sie die Elemente und die Reihenfolge aus, in der sie in der Seitenleiste angezeigt werden",
"remotePort": "Port des Fernsteuerungsserver",
"hotkey_playbackNext": "Nächster Track",
"useSystemTheme_description": "der systemdefinierten Hell- oder Dunkelpräferenz folgen",
"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",
@@ -670,69 +827,228 @@
"hotkey_browserBack": "Browser zurück",
"showSkipButton": "Schaltflächen zum Überspringen anzeigen",
"sidebarPlaylistList": "Seitenleiste Playlisten-Liste",
"sidebarPlaylistSorting": "Playlist-Sortierung in der Seitenleiste",
"minimizeToTray": "Zur Taskleiste minimieren",
"skipPlaylistPage": "Playlisten-Seite überspringen",
"themeDark": "Thema (dunkel)",
"themeDark": "Erscheinungsbild (dunkel)",
"sidebarCollapsedNavigation": "Navigation in der Seitenleiste (komprimiert)",
"gaplessAudio_optionWeak": "schwach (empfohlen)",
"minimumScrobbleSeconds": "minimales Scrobble (Sekunden)",
"minimumScrobbleSeconds": "Minimum Scrobble-Dauer (Sekunden)",
"hotkey_playbackStop": "Stoppen",
"savePlayQueue_description": "Speichert Wiedergabewarteschlange, wenn die Anwendung geschlossen wird, und stellt sie wieder her, wenn die Anwendung geöffnet wird",
"useSystemTheme": "Systemdesign verwenden",
"enableRemote_description": "aktiviere den eingebauten Webserver, um die Anwendung von anderen Geräten aus zu steuern",
"savePlayQueue_description": "speichert die Wiedergabeliste beim Schließen der Anwendung, und stellt diese wieder her, wenn die Anwendung geöffnet wird",
"useSystemTheme": "Nach Erscheinungsbild des Systems richten",
"enableRemote_description": "Aktiviert den Server für die Fernsteuerung, damit andere Geräte die Anwendung steuern können",
"fontType_optionSystem": "System Schriftart",
"discordUpdateInterval": "{{discord}} rich presence Aktualisierungsintervall",
"discordUpdateInterval": "{{discord}} Rich Presence Aktualisierungsintervall",
"fontType_optionBuiltIn": "eingebaute Schriftart",
"gaplessAudio": "unterbrechungsfreie Wiedergabe",
"exitToTray_description": "die Anwendung beim Schließen in die Taskleiste minimieren",
"followLyric_description": "der Songtext scrollt automatisch mir der Wiedergabe",
"discordUpdateInterval_description": "zeit in Sekunden zwischen den Statusupdates (Minimum: 15s)",
"followLyric_description": "der Songtext bewegt sich mit der Wiedergabeposition",
"discordUpdateInterval_description": "Zeit in Sekunden zwischen Aktualisierungen (min. 15 Sekunden)",
"fontType_optionCustom": "benutzerdefinierte Schriftart",
"font": "Schriftart",
"exitToTray": "In die Taskleiste minimieren",
"enableRemote": "server für Fernzugriff aktivieren",
"floatingQueueArea": "Beim Darüberfahren schwebende Warteschlange anzeigen",
"enableRemote": "Server für Fernsteuerung aktivieren",
"fontType": "schriftartenquelle",
"followLyric": "songtext synchronisieren",
"floatingQueueArea_description": "zeige ein Icon auf der rechten Seite, um beim Darüberfahren die Wartschlange anzuzeigen",
"followLyric": "aktuellen songtext synchronisieren",
"font_description": "wähle die Schriftart für die Anwendung",
"themeLight": "Thema (hell)",
"themeLight": "Erscheinungsbild (hell)",
"sidePlayQueueStyle_optionDetached": "lösgelöst",
"windowBarStyle_description": "Wähle den Stil der Windows-Leiste",
"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",
"discordRichPresence_description": "zeige deinen Wiedergabe-Status in {{discord}} als rich presence an. Angezeigte Bilder sind: {{icon}}, {{playing}}, und {{paused}}",
"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",
"clearCache_description": "Hartes Zurücksetzen. Neben feishins Zwischenspeicher wird auch der des Browsers gelöscht (Bilder und andere Daten). Zugangsinformationen und Einstellungen werden behalten",
"sidePlayQueueStyle": "Wiedergabelistenstil in der Seitenleiste",
"sidePlayQueueStyle": "Stil der Wiedergabeliste in der Seitenleiste",
"zoom_description": "Setzt den Zoom (in %) für das Programm",
"zoom": "Zoom",
"albumBackground": "Album Hintergrund",
"customCss": "Benutzerdefiniert css",
"customCss": "Benutzerdefiniertes CSS",
"homeConfiguration": "Startseite Konfiguration",
"lastfmApiKey": "{{lastfm}} API-Schlüssel",
"lastfmApiKey_description": "Der API-Schlüssel für {{lastfm}}. wird für benötigt",
"lastfmApiKey_description": "Der API-Schlüssel für {{lastfm}}. wird für Albumcover benötigt",
"discordListening": "Status als hört zu anzeigen",
"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",
"customCssEnable": "aktiviere Benutzerdefinierte css",
"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",
"albumBackgroundBlur_description": "passt die Stärke der Unschärfe an, welche auf das Hintergrundbild des Albums angewandt wird",
"clearCacheSuccess": "Cache erfolgreich geleert",
"contextMenu": "Kontextmenü-Einstellungen (Rechtsklick)",
"customCssEnable_description": "ermöglicht das Schreiben benutzerdefinierten CSS",
"doubleClickBehavior": "bei Doppelklick alle gesuchten Tracks zur Warteschlange hinzufügen",
"customCssEnable_description": "erlaubt das Hinzufügen von benutzerdefiniertem CSS",
"artistBackground": "Künstler Hintergrundbild",
"artistBackground_description": "fügt ein Hintergrundbild für die Künstlerseite hinzu",
"artistConfiguration": "künstler Albumseite Konfiguration",
"buttonSize": "spielerleisten-Knopfgröße",
"buttonSize_description": "die Größe der Spieler-Knöpfe",
"hotkey_togglePreviousSongFavorite": "wähle $t(common.previousSong) als Favorit aus",
"replayGainFallback": "{{ReplayGain}} Rückgriff",
"replayGainClipping": "{{ReplayGain}} Clipping"
"replayGainFallback": "{{ReplayGain}} Alternative",
"replayGainClipping": "{{ReplayGain}} Clipping",
"exportImportSettings_control_description": "Einstellungen mit JSON exportieren und importieren",
"exportImportSettings_control_exportText": "Einstellungen exportieren",
"exportImportSettings_control_importText": "Einstellungen importieren",
"exportImportSettings_control_title": "Einstellungen importieren / exportieren",
"exportImportSettings_importBtn": "Einstellungen importieren",
"exportImportSettings_importModalTitle": "Feishin Einstellungen importieren",
"exportImportSettings_importSuccess": "Einstellungen wurden erfolgreich importiert!",
"exportImportSettings_notValidJSON": "Die Datei ist kein gültiges JSON",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" ist falsch - {{reason}}",
"language": "Sprache",
"imageAspectRatio": "Original Seitenverhältnis des Albumcovers verwenden",
"analyticsDisable": "Keine nutzungsbasierte Analyse",
"analyticsDisable_description": "Anonymisierte Nutzungsdaten werden an den Entwickler geschickt, um die Anwendung zu verbessern",
"logLevel_optionDebug": "Debug",
"logLevel_description": "legt die Protokollstufe fest. \"Debug\" zeigt alle Protokollierungen an. \"Fehler\" zeigt nur Fehler an",
"logLevel": "Protokolllevel",
"logLevel_optionError": "Fehler",
"logLevel_optionInfo": "Info",
"logLevel_optionWarn": "Warnung",
"autoDJ_description": "füge automatisch ähnliche Lieder der Wiedergabeliste hinzu",
"autoDJ": "Auto DJ",
"autoDJ_itemCount": "Anzahl",
"autoDJ_itemCount_description": "die Anzahl der Lieder, die bei aktiviertem Auto DJ zur Wiedergabeliste hinzugefügt werden sollen",
"autoDJ_timing_description": "die Anzahl der Lieder, die sich noch in der Wiedergabeliste befinden, bevor Auto DJ ausgelöst wird",
"autoDJ_timing": "Timing",
"discordDisplayType": "{{discord}} Presence Darstellungsart",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} mit {{lastfm}} als Ersatz",
"discordLinkType_none": "$t(common.none)",
"discordLinkType": "{{discord}} Presence Links",
"discordPausedStatus_description": "Wenn aktiviert, wird der Status auch angezeigt, falls die Wiedergabe pausiert",
"discordPausedStatus": "Zeige Rich Presence bei Pause",
"discordRichPresence": "{{discord}} Rich Presence",
"discordServeImage": "Bilder für {{discord}} vom Server beziehen",
"discordServeImage_description": "Bezieht die Coverbilder für {{discord}} Rich Presence vom Server selbst. Nur verfügbar für Jellyfin und Navidrome. Damit der Bot von {{discord}} die Coverbilder abrufen kann, muss der Server öffentlich erreichbar sein",
"enableAutoTranslation": "Automatische Übersetzung aktivieren",
"externalLinks": "Externe Links anzeigen",
"externalLinks_description": "Aktiviert die Anzeige externer Links (Last.fm, MusicBrainz) auf Artist/Album Seiten",
"musicbrainz_description": "Zeige Links zu MusicBrainz auf Artist/Album Seite, falls MusicBrainz ID vorhanden",
"neteaseTranslation_description": "Wenn aktiviert, werden Songtextübersetzungen von NetEase abgerufen und angezeigt, sofern verfügbar",
"neteaseTranslation": "NetEase Übersetzungen aktivieren",
"notify": "Benachrichtigungen aktivieren",
"notify_description": "Zeigt Benachrichtigungen beim Titelwechsel",
"playerFilters": "Lieder der Wiedergabeliste filtern",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"volumeWidth_description": "Die Breite des Lautstärkereglers",
"volumeWidth": "Lautstärkereglerbreite",
"webAudio_description": "Web-Audio verwenden. Dies ermöglicht erweiterte Funktionen wie ReplayGain. Deaktiviere die Option, falls bei der Wiedergabe Probleme auftreten",
"webAudio": "Web-Audio verwenden",
"trayEnabled": "Info-Symbol anzeigen",
"transcode": "Transkodierung aktivieren",
"transcode_description": "Aktiviert die Umwandlung in verschiedene Formate",
"transcodeBitrate_description": "Legt die Bitrate für die Umwandlung fest. Bei 0 wird die Wahl dem Server überlassen",
"transcodeBitrate": "Bitrate für Umwandlung",
"transcodeFormat_description": "Legt das Format für die Umwandlung fest. Leer lassen, um den Server entscheiden zu lassen",
"transcodeFormat": "Format für Umwandlung",
"startMinimized_description": "Startet die Anwendung im Info-Bereich",
"startMinimized": "Im Info-Bereich starten",
"mediaSession_description": "Aktiviert die Windows Media Session-Integration, zeigt Mediensteuerelemente und Metadaten im Systemlautstärke-Overlay und auf dem Sperrbildschirm an (nur Windows)",
"mediaSession": "Media Session aktivieren",
"artistBackgroundBlur": "Unschärfegrad für Künstlerhintergründe",
"artistBackgroundBlur_description": "Legt den Grad der Unschärfe fest, der auf das Hintergrundbild des Künstlers angewendet wird",
"artistConfiguration_description": "Legt fest, welche Elemente auf der Albumkünstlerseite angezeigt werden und in welcher Reihenfolge",
"contextMenu_description": "Legt die Einträge fest, die im Rechtsklick-Menü angezeigt werden sollen. Abgewählte Einträge werden ausgeblendet",
"crossfadeStyle": "Art der Überblende",
"customCss_description": "Benutzerdefinierter CSS-Inhalt. Hinweis: Inhalte und Remote-URLs sind nicht zulässige Eigenschaften. Unten siehst du eine Vorschau deines Inhalts. Aufgrund von Bereinigung werden womöglich zusätzliche, nicht von dir definierte Felder angezeigt",
"customCssNotice": "Warnung: Obwohl eine gewisse Bereinigung erfolgt (url() und content: sind nicht zulässig), kann die Verwendung von benutzerdefiniertem CSS dennoch Risiken mit sich bringen, da dadurch die Benutzeroberfläche verändert wird",
"releaseChannel_optionBeta": "Beta",
"releaseChannel_optionLatest": "Stabil",
"releaseChannel": "Veröffentlichungskanal",
"releaseChannel_description": "Zwischen stabilen und beta Veröffentlichungen für automatische Aktualisierungen wählen",
"discordDisplayType_artistname": "Künstlername(n)",
"discordDisplayType_description": "Ändert den aktuellen Titel im Zuhör-Status",
"discordDisplayType_songname": "Songtitel",
"discordLinkType_description": "Fügt externe Links zu {{lastfm}} oder {{musicbrainz}} zu Song- und Künstlerfeldern in {{discord}} Rich Presence hinzu. {{musicbrainz}} ist am genauesten, erfordert jedoch Tags und bietet keine Künstlerlinks, während {{lastfm}} immer einen Link bereitstellen sollte. Verursacht keine zusätzlichen Netzwerkabfragen",
"enableAutoTranslation_description": "Automatische Übersetzung von Songtexten aktivieren",
"exportImportSettings_destructiveWarning": "Das Importieren von Einstellungen ist irreversibel. Bitte lies die Hinweise oben sorgfältig durch, bevor du auf \"Importieren\" klickst!",
"followCurrentSong": "aktuellem Titel folgen",
"followCurrentSong_description": "die Wiedergabeliste scrollt automatisch zum aktuellen Titel",
"playerFilters_description": "verhindert, dass Titel anhand der folgenden Kriterien zur Wiedergabeliste hinzugefügt werden",
"preferLocalLyrics_description": "lokale Songtexte gegenüber externen Quellen bevorzugen (sofern verfügbar)",
"preferLocalLyrics": "Priorisiere lokale Songtexte",
"showLyricsInSidebar_description": "ein Bereich, in dem Songtexte angezeigt werden, wird der Wiedergabeliste hinzugefügt",
"showLyricsInSidebar": "zeige Songtexte in der Player-Seitenleiste",
"homeFeature_description": "steuert, ob das große Featured-Karussell auf der Startseite angezeigt wird",
"homeFeature": "Feature-Karussell",
"playerbarWaveformAlign_optionTop": "Oben",
"playerbarWaveformAlign_optionCenter": "Mitte",
"playerbarWaveformAlign_optionBottom": "Unten",
"translationApiKey_description": "API-Schlüssel für Übersetzungen (nur globale Service-Endpunkte)",
"translationApiKey": "API-Schlüssel für Übersetzungen",
"translationApiProvider_description": "API-Anbieter für Übersetzungen",
"translationApiProvider": "API-Anbieter für Übersetzungen",
"hotkey_navigateHome": "zurück zur Startseite",
"translationTargetLanguage_description": "die gewünschte Sprache der Übersetzung",
"translationTargetLanguage": "Zielsprache der Übersetzung",
"queryBuilderCustomFields": "benutzerdefiniertes Feld",
"queryBuilderCustomFields_inputTag": "Tag",
"homeFeatureStyle_optionMultiple": "mehrere",
"imageResolution": "Bildauflösung",
"imageResolution_optionTable": "Tabelle",
"imageResolution_optionSidebar": "Seitenleiste",
"preservePitch": "Tonhöhe erhalten"
},
"dragDropZone": {
"error_oneFileOnly": "Bitte wähle nur 1 Datei",
"error_readingFile": "Beim Lesen der Datei trat ein Fehler auf: {{errorMessage}}",
"mainText": "Datei hier ablegen"
},
"filterOperator": {
"contains": "enthält",
"endsWith": "endet mit",
"inPlaylist": "ist in",
"inTheLast": "ist in den letzten",
"is": "ist",
"isNot": "ist nicht",
"isGreaterThan": "ist größer als",
"isLessThan": "ist kleiner als",
"notContains": "enthält nicht",
"notInPlaylist": "ist nicht in",
"notInTheLast": "ist nicht in den letzten",
"startsWith": "beginnt mit",
"after": "ist nach",
"afterDate": "ist nach (Datum)",
"before": "ist vor",
"beforeDate": "ist vor (Datum)",
"inTheRange": "ist im Bereich",
"inTheRangeDate": "ist im Bereich (Datum)",
"matchesRegex": "entspricht Regex"
},
"queryBuilder": {
"standardTags": "Standardtags",
"customTags": "benutzerdefinierte Tags"
},
"releaseType": {
"primary": {
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Broadcast",
"ep": "EP",
"other": "andere",
"single": "Single"
},
"secondary": {
"audiobook": "Hörbuch",
"audioDrama": "Hörspiel",
"compilation": "Compilation",
"djMix": "DJ Mix",
"demo": "Demo",
"fieldRecording": "Außenaufnahme",
"interview": "Interview",
"live": "Live",
"mixtape": "Mixtape",
"remix": "Remix",
"soundtrack": "Soundtrack",
"spokenWord": "Gesprochenes Wort"
}
},
"datetime": {
"minuteShort": "Min",
"secondShort": "Sek",
"hourShort": "Std",
"dayShort": "Tag"
}
}
Regular → Executable
+535 -94
View File
File diff suppressed because it is too large Load Diff
+540 -108
View File
@@ -11,10 +11,10 @@
"skip_back": "retroceder",
"favorite": "favorito",
"next": "siguiente",
"shuffle": "Reproducir aleatoriamente",
"shuffle": "Reproducir (mezclado)",
"playbackFetchNoResults": "ninguna canción encontrada",
"playbackFetchInProgress": "cargando canciones…",
"addNext": "añadir siguiente",
"addNext": "Siguiente",
"playbackSpeed": "velocidad de reproducción",
"playbackFetchCancel": "esto está tomando un tiempo... cierra la notificación para cancelar",
"play": "reproducir",
@@ -25,12 +25,20 @@
"queue_moveToTop": "mover seleccionado al final",
"queue_moveToBottom": "mover seleccionado al principio",
"shuffle_off": "mezclar desactivado",
"addLast": "añadir último",
"addLast": "Al final",
"mute": "silencio",
"skip_forward": "saltar hacia delante",
"pause": "pausa",
"playSimilarSongs": "Reproducir canciones similares",
"viewQueue": "ver cola"
"viewQueue": "ver cola",
"addLastShuffled": "Al final (mezclado)",
"addNextShuffled": "Al 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"
},
"setting": {
"crossfadeStyle_description": "selecciona el estilo de crossfade a usar por el reproductor de audio",
@@ -41,7 +49,7 @@
"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",
@@ -87,11 +95,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",
@@ -103,7 +110,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",
@@ -111,7 +118,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",
@@ -126,16 +133,15 @@
"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",
"floatingQueueArea": "mostrar área flotante de cola",
"replayGainFallback_description": "ganancia en db a aplicar si el archivo no tiene etiquetas de {{ReplayGain}}",
"replayGainPreamp_description": "ajusta la ganancia del preamplificador aplicada a los valores de {{ReplayGain}}",
"hotkey_toggleRepeat": "alterna repetir",
@@ -148,7 +154,7 @@
"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",
@@ -161,7 +167,6 @@
"hotkey_rate0": "Limpiar calificación",
"discordApplicationId": "id de aplicación {{discord}}",
"applicationHotkeys_description": "configura las teclas de acceso rápido de la aplicación. marca la casilla para establecerlas como teclas de acceso rápido globales (solo escritorio)",
"floatingQueueArea_description": "muestra un icono flotante en el lado derecho de la pantalla para ver la cola de reproducción",
"hotkey_volumeMute": "silenciar volumen",
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) cambia a favorita",
"remoteUsername": "nombre de usuario del control remoto del servidor",
@@ -199,13 +204,9 @@
"startMinimized_description": "inicia la aplicación en la bandeja del sistema",
"startMinimized": "iniciar minimizado",
"passwordStore": "contraseñas/almacenamiento secreto",
"playerAlbumArtResolution_description": "la resolución para la vista previa de la carátula del álbum del reproductor grande. más grande hace que parezca más nítido, pero puede ralentizar la carga. El valor predeterminado es 0, lo que significa automático",
"playerAlbumArtResolution": "resolución de la carátula del álbum del reproductor",
"homeConfiguration": "Configuración de la página de inicio",
"mpvExtraParameters_help": "Uno por línea",
"genreBehavior": "Comportamiento predeterminado de la página de géneros",
"externalLinks_description": "Permite mostrar enlaces externos (Last.fm, MusicBrainz) en las páginas del artista/álbum",
"genreBehavior_description": "Determina si al hacer clic en un género se abre por defecto la lista de pistas o de álbumes",
"homeConfiguration_description": "Configura qué elementos son mostrados y en qué orden en la página de inicio",
"clearCacheSuccess": "Caché limpiada correctamente",
"externalLinks": "Mostrar enlaces externos",
@@ -213,14 +214,12 @@
"homeFeature_description": "Controla si se muestra el gran carrusel destacado en la página de inicio",
"imageAspectRatio_description": "Si está habilitado, la portada será mostrada usando su relación de aspecto nativa. Para arte que no es 1:1, el espacio restante estará vacío",
"imageAspectRatio": "Usar relación de aspecto nativa de portada",
"doubleClickBehavior": "poner en cola todas las pistas buscadas al hacer doble clic",
"doubleClickBehavior_description": "si está activado, se pondrán en cola todas las pistas que coincidan en una búsqueda de pistas. De lo contrario, solo se pondrán en cola las pistas seleccionadas",
"volumeWidth": "Ancho del deslizador de volumen",
"volumeWidth_description": "La anchura del deslizador de volumen",
"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",
@@ -283,10 +282,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",
@@ -304,31 +303,129 @@
"language": "Idioma",
"notify": "Activar notificaciones de canciones",
"notify_description": "Muestra notificaciones cuando se cambia la canción actual",
"transcode": "Activar transcodificación"
"transcode": "Activar transcodificación",
"analyticsDisable": "Exclusión voluntaria de analíticas basadas en el uso",
"analyticsDisable_description": "Se envía el uso de datos anónimos al desarrollador para ayudar a mejorar la aplicación",
"playerbarSlider": "Barra de reproducción deslizante",
"playerbarSliderType_optionWaveform": "Forma de onda",
"playerbarWaveformAlign": "Alineación de la forma de onda",
"playerbarSliderType_optionSlider": "Deslizador",
"playerbarWaveformAlign_optionTop": "Superior",
"playerbarWaveformAlign_optionCenter": "Centrado",
"playerbarWaveformAlign_optionBottom": "Inferior",
"playerbarWaveformBarWidth": "Ancho de barra de la forma de onda",
"playerbarWaveformGap": "Brecha de la forma de onda",
"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",
"queryBuilder": "Generador de consultas",
"queryBuilderCustomFields_inputTag": "Etiqueta",
"queryBuilderCustomFields": "Campos personalizados",
"queryBuilderCustomFields_description": "Añade campos personalizados a usar en los generadores de consultas",
"queryBuilderCustomFields_inputLabel": "Rótulo",
"audioFadeOnStatusChange": "Fundido del audio al cambiar de estado",
"audioFadeOnStatusChange_description": "Activa el fundido de salida y el de entrada cuando cambia el estado al reproducir/pausar",
"followCurrentSong_description": "Desplaza automáticamente la cola de reproducción a la canción en reproducción actual",
"followCurrentSong": "Seguir la canción actual",
"playerFilters": "Filtrar las canciones de la cola",
"playerFilters_description": "Omite la adición de canciones a la cola basado en los siguientes criterios",
"playerbarSlider_description": "La forma de onda no es recomendable en una conexión a Internet lenta o medida",
"autoDJ": "DJ automático",
"autoDJ_description": "Añade canciones similares a las de la cola automáticamente",
"autoDJ_itemCount": "Recuento de elementos",
"autoDJ_itemCount_description": "El número de elementos que se ha intentado añadir a la cola cuando DJ automático está activado",
"autoDJ_timing_description": "El número de canciones restantes en la cola antes de que DJ automático se dispare",
"autoDJ_timing": "Tiempo",
"logLevel": "Nivel de registro",
"logLevel_description": "Establece el mínimo nivel de registro a mostrar. Depuración muestra todos los registros, error solo muestra errores",
"logLevel_optionDebug": "Depuración",
"logLevel_optionError": "Error",
"logLevel_optionInfo": "Información",
"logLevel_optionWarn": "Advertencia",
"useThemeAccentColor": "Usar color de acentuación de tema",
"useThemeAccentColor_description": "Usa el color principal definido en el tema seleccionado en lugar del color de acentuación personalizado",
"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_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)"
},
"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"
},
"moveToNext": "pasar al siguiente"
"moveToNext": "pasar al siguiente",
"downloadStarted": "Iniciada descarga de {{count}} elementos",
"moveItems": "Mover elementos",
"shuffle": "Mezclar",
"shuffleAll": "Mezclar todo",
"shuffleSelected": "Mezclar seleccionados",
"viewMore": "Ver más",
"holdToMoveToBottom": "Mantener pulsado para desplazar hacia abajo",
"holdToMoveToTop": "Mantener pulsado para desplazar hacia arriba",
"moveUp": "Desplazar hacia arriba",
"moveDown": "Desplazar hacia abajo",
"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"
},
"common": {
"backward": "hacia atrás",
@@ -343,7 +440,7 @@
"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",
@@ -372,7 +469,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": "configuraciones",
"setting_other": "configuraciones",
"version": "versión",
"title": "título",
"filters": "filtros",
@@ -390,7 +489,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",
@@ -435,7 +534,24 @@
"private": "Privado",
"public": "Público",
"recordLabel": "Sello discográfico",
"releaseType": "Tipo de lanzamiento"
"releaseType": "Tipo de lanzamiento",
"doNotShowAgain": "No mostrar esto de nuevo",
"externalLinks": "Enlaces externos",
"faster": "Más rápido",
"slower": "Más lento",
"sort": "Ordenar",
"gridRows": "Filas de la cuadrícula",
"tableColumns": "Columnas de la tabla",
"itemsMore": "{{count}} más",
"noFilters": "Ningún filtro configurado",
"view": "Vista",
"countSelected": "{{count}} seleccionados",
"retry": "Reintentar",
"mood": "Estado de ánimo",
"example": "Ejemplo",
"filter_single": "simple",
"filter_multiple": "multi",
"rename": "Renombrar"
},
"error": {
"remotePortWarning": "reiniciar el servidor para aplicar el nuevo puerto",
@@ -461,7 +577,12 @@
"networkError": "Ocurrió un error de red",
"openError": "No se pudo abrir el archivo",
"badValue": "Opción inválida \"{{value}}\". Este valor ya no existe",
"notificationDenied": "Se denegaron los permisos para notificaciones. Esta configuración no tiene efecto"
"notificationDenied": "Se denegaron los permisos para notificaciones. Esta configuración no tiene efecto",
"saveQueueFailed": "Error al guardar la cola",
"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"
},
"filter": {
"mostPlayed": "más reproducido",
@@ -480,14 +601,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",
"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",
@@ -498,36 +619,40 @@
"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",
"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": "Contar $t(entity.album, {\"count\": 2})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "Ordenar por nombre"
},
"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)",
"myLibrary": "Mi biblioteca"
"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, {\"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",
@@ -536,7 +661,11 @@
"goBack": "retroceder",
"goForward": "avanzar",
"privateModeOff": "Desactivar modo privado",
"privateModeOn": "Activar modo privado"
"privateModeOn": "Activar modo privado",
"selectMusicFolder": "Seleccionar carpeta de música",
"noMusicFolder": "Ninguna carpeta de música seleccionada",
"multipleMusicFolders": "{{count}} carpetas de música seleccionadas",
"commandPalette": "Abrir paleta de comandos"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -561,8 +690,10 @@
"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"
},
"home": {
"mostPlayed": "más reproducidos",
@@ -570,7 +701,8 @@
"title": "$t(common.home)",
"explore": "explora desde tu biblioteca",
"recentlyPlayed": "reproducidos recientemente",
"recentlyReleased": "Lanzado recientemente"
"recentlyReleased": "Lanzado recientemente",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"fullscreenPlayer": {
"upNext": "siguiente",
@@ -596,7 +728,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"
},
@@ -605,19 +737,37 @@
"generalTab": "general",
"hotkeysTab": "teclas de acceso rápido",
"windowTab": "ventana",
"advanced": "Avanzado"
"advanced": "Avanzado",
"analytics": "Analíticas",
"updates": "Actualización",
"cache": "Caché",
"application": "Aplicación",
"queryBuilder": "Generador de consultas",
"theme": "Tema",
"controls": "Controles",
"remote": "Remoto",
"exportImport": "Importar/Exportar",
"scrobble": "Scrobble",
"audio": "Audio",
"lyrics": "Letras",
"transcoding": "Transcodificación",
"discord": "Discord",
"sidebar": "Barra lateral",
"playerFilters": "Filtros del reproductor",
"logger": "Registrador",
"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": {
@@ -629,23 +779,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",
@@ -662,20 +818,42 @@
"username": "nombre de usuario",
"editServerDetailsTooltip": "editar detalles del servidor",
"url": "URL"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"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": {
@@ -691,15 +869,18 @@
"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",
@@ -707,18 +888,23 @@
},
"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",
"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"
"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?"
},
"queryEditor": {
"input_optionMatchAll": "coincidir todos",
"input_optionMatchAny": "coincidir cualquiera",
"title": "Editor de consultas"
"title": "Editor de consultas",
"addRuleGroup": "Añadir regla de grupo",
"removeRuleGroup": "Eliminar regla de grupo",
"resetToDefault": "Restablecer al valor predeterminado",
"clearFilters": "Limpiar filtros"
},
"shareItem": {
"createFailed": "No se pudo crear el recurso compartido (¿está habilitado el uso compartido?)",
@@ -732,6 +918,36 @@
"enabled": "Modo privado activado, el estado de reproducción ahora está oculto de integraciones externas",
"disabled": "Modo privado desactivado, el estado de reproducción ahora es visible a las integraciones externas habilitadas",
"title": "Modo privado"
},
"largeFetchConfirmation": {
"title": "Añadir elementos a la cola",
"description": "Esta acción agregará todos los elementos en la vista filtrada actual"
},
"shuffleAll": {
"title": "Reproducir aleatorio",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "¿Cuántas canciones?",
"input_minYear": "Del año",
"input_maxYear": "Hasta el año",
"input_played": "Reproducir filtro",
"input_played_optionAll": "Todas las pistas",
"input_played_optionUnplayed": "Solo las pistas sin reproducir",
"input_played_optionPlayed": "Solo las pistas reproducidas"
},
"saveQueue": {
"success": "Cola de reproducción guardada en el servidor"
},
"createRadioStation": {
"success": "Estación de radio creada con éxito",
"title": "Crear estación de radio",
"input_homepageUrl": "URL de la página de inicio",
"input_name": "Nombre",
"input_streamUrl": "URL de la transmisión"
},
"lyricsExport": {
"export": "Exportar letras",
"input_synced": "Exportar letras sincronizadas",
"input_offset": "$t(setting.lyricOffset)"
}
},
"table": {
@@ -741,7 +957,7 @@
"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",
@@ -750,16 +966,19 @@
"title": "título",
"bpm": "lpm",
"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)"
"codec": "$t(common.codec)",
"owner": "Propietario",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
},
"config": {
"label": {
@@ -767,13 +986,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)",
@@ -786,11 +1005,18 @@
"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)"
"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)",
"titleArtist": "$t(common.title) (artista)",
"composer": "Compositor"
},
"general": {
"gap": "$t(common.gap)",
@@ -800,19 +1026,39 @@
"displayType": "tipo de visualización",
"itemGap": "espacio entre elementos (px)",
"itemSize": "tamaño del elemento (px)",
"followCurrentSong": "seguir la canción actual"
"followCurrentSong": "seguir la canción actual",
"advancedSettings": "Opciones avanzadas",
"autosize": "Autodimensionar",
"moveUp": "Ascender",
"moveDown": "Descender",
"pinToLeft": "Anclar a la izquierda",
"pinToRight": "Anclar a la derecha",
"alignLeft": "Alinear a la izquierda",
"alignCenter": "Alinear al centro",
"alignRight": "Alinear a la derecha",
"itemsPerRow": "Elementos por fila",
"size_default": "Predeterminado",
"size_compact": "Compacto",
"size_large": "Grande",
"pagination": "Paginación",
"pagination_itemsPerPage": "Elementos por página",
"pagination_infinite": "Infinita",
"pagination_paginate": "Paginada",
"alternateRowColors": "Colores de fila alternativos",
"horizontalBorders": "Bordes de fila",
"verticalBorders": "Bordes de columna",
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila",
"showHeader": "Mostrar cabecera"
},
"view": {
"card": "tarjeta",
"table": "tabla",
"poster": "cartel",
"list": "Lista",
"grid": "Cuadrícula"
}
}
},
"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",
@@ -863,7 +1109,13 @@
"play_other": "{{count}} reproducciones",
"song_one": "canción",
"song_many": "canciones",
"song_other": "canciones"
"song_other": "canciones",
"radioStation_one": "Estación de radio",
"radioStation_many": "Estaciones de radio",
"radioStation_other": "Estaciones de radio",
"radioStationWithCount_one": "{{count}} estación de radio",
"radioStationWithCount_many": "{{count}} estaciones de radio",
"radioStationWithCount_other": "{{count}} estaciones de radio"
},
"dragDropZone": {
"error_oneFileOnly": "Por favor selecciona un solo archivo",
@@ -872,7 +1124,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Emisión",
"ep": "EP",
"other": "Otro",
@@ -892,5 +1144,185 @@
"spokenWord": "Palabra hablada",
"demo": "Maqueta"
}
},
"queryBuilder": {
"standardTags": "Etiquetas estándar",
"customTags": "Etiquetas personalizadas"
},
"filterOperator": {
"after": "es después",
"afterDate": "es después (fecha)",
"before": "es antes",
"beforeDate": "es antes (fecha)",
"contains": "contiene",
"endsWith": "termina con",
"inPlaylist": "está en",
"inTheLast": "está en el último",
"inTheRange": "está en el rango",
"inTheRangeDate": "está en el rango (fecha)",
"is": "es",
"isNot": "no es",
"isGreaterThan": "es mayor que",
"isLessThan": "es menor que",
"notContains": "no contiene",
"notInPlaylist": "no está en",
"notInTheLast": "no está en el último",
"startsWith": "empieza con",
"matchesRegex": "coincide con expresión regular"
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"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"
}
}
+408 -92
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,35 +177,53 @@
"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": {
"view": {
"table": "taula",
"list": "zerrenda",
"card": "txartela",
"grid": "sareta",
"poster": "kartela"
"grid": "sareta"
},
"general": {
"gap": "$t(common.gap)",
"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)",
@@ -187,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)",
@@ -201,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",
@@ -228,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": {
@@ -260,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",
@@ -292,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",
@@ -306,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",
@@ -345,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",
@@ -360,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",
@@ -448,7 +506,6 @@
"discordDisplayType_description": "zure egoeran entzuten ari zarena aldatzen du",
"discordLinkType": "{{discord}} egoera estekak",
"fontType_description": "barneko letra-tipoa feishinek eskaintzen dituen letra-tipoetako bat aukeratzen du. sistemaren letra-tipoa zure sistema eragileak eskaintzen duen edozein letra-tipo hautatzeko aukera ematen dizu. pertsonalizatua zure letra-tipoa eskaintzeko aukera ematen dizu",
"genreBehavior": "genero orriaren portaera lehenetsia",
"homeConfiguration_description": "konfiguratu zein elementu erakusten diren hasierako orrian eta zein ordenatan",
"homeFeature": "etxeko karrusela nabarmendua",
"homeFeature_description": "hasierako orrian karrusel nabarmen handia erakutsi behar den ala ez kontrolatzen du",
@@ -496,7 +553,6 @@
"accentColor": "azentu-kolorea",
"clearCache_description": "feishinen 'garbiketa gogorra'. feishinen katxea garbitzeaz gain, hustu nabigatzailearen katxea (gordetako irudiak eta bestelako aktiboak). zerbitzari-kredentzialak eta ezarpenak gorde egiten dira",
"clearQueryCache_description": "feishinen 'garbiketa ahula'. honek erreprodukzio-zerrendak eta pisten metadatuak freskatuko ditu eta gordetako letrak berrezarriko ditu. ezarpenak, zerbitzari-kredentzialak eta katxetutako irudiak gorde egiten dira",
"doubleClickBehavior": "jarri ilaran bilatutako pista guztiak klik bikoitza egitean",
"exitToTray_description": "irten aplikaziotik sistemaren erretilura",
"followLyric_description": "mugitu letra uneko erreprodukzio-posiziora",
"preferLocalLyrics": "nahiago izan letra lokalak",
@@ -523,10 +579,8 @@
"playbackStyle_description": "aukeratu audio erreproduzitzailearentzat erabiliko den erreprodukzio estiloa",
"playButtonBehavior": "erreprodukzio botoiaren portaera",
"playButtonBehavior_description": "ezartzen du erreprodukzio botoiaren portaera lehenetsia abestiak ilaran gehitzean",
"playerAlbumArtResolution": "erreproduzitzailearen albumaren arte-azalaren erresoluzioa",
"gaplessAudio": "hutsune gabeko audioa",
"gaplessAudio_description": "ezartzen du hutsunik gabeko audio ezarpena mpv-rako",
"genreBehavior_description": "genero batean klik egiteak abestien edo albumen zerrendan lehenespenez irekitzen den zehazten du",
"passwordStore": "pasahitzak/biltegi sekretua",
"playerbarOpenDrawer": "txandakatu erreproduzitzailearen barra pantaila osora",
"playerbarOpenDrawer_description": "aukera ematen du erreproduzitzailearen barran klik egiteak pantaila osoko erreproduzitzailea irekitzeko",
@@ -534,7 +588,6 @@
"customCss_description": "css eduki pertsonalizatua. Oharra: edukia eta urruneko URLak debekatutako propietateak dira. Zure edukiaren aurrebista erakusten da behean. Ezarri ez dituzun eremu gehigarriak daude garbiketa dela eta",
"enableRemote": "gaitu urruneko kontrol zerbitzaria",
"enableRemote_description": "urruneko kontrol zerbitzariari beste gailu batzuei aplikazioa kontrolatzeko aukera ematen dio",
"doubleClickBehavior_description": "egia bada, bilaketa batean bat datozen pista guztiak ilaran jarriko dira. bestela, klikatutakoak bakarrik jarriko dira ilaran",
"imageAspectRatio_description": "gaituta badago, azaleko artea jatorrizko aspektu-erlazioa erabiliz erakutsiko da. 1:1 ez den arterako, gainerako espazioa hutsik egongo da",
"crossfadeStyle": "crossfade estiloa",
"discordRichPresence": "{{discord}}-en jarduera-egoera",
@@ -543,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": {
@@ -559,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"
},
@@ -591,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",
@@ -613,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",
@@ -641,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",
@@ -673,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": {
@@ -701,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",
@@ -719,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",
@@ -769,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 -58
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": "امتیاز",
@@ -608,9 +608,6 @@
"gap": "$t(common.gap)",
"itemGap": "فاصله‌ی آیتم (px)"
},
"view": {
"card": "کارت"
},
"label": {
"playCount": "تعداد پخش",
"dateAdded": "تاریخ افزوده شدن",
+66 -76
View File
@@ -3,7 +3,8 @@
"size": "koko",
"search": "etsi",
"sortOrder": "järjestys",
"setting": "asetus",
"setting_one": "asetus",
"setting_other": "",
"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",
@@ -130,7 +131,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",
@@ -142,11 +143,11 @@
},
"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ä"
@@ -154,13 +155,13 @@
"goToPage": "mene sivulle",
"moveToBottom": "siirry pohjalle",
"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"
},
@@ -191,9 +192,9 @@
"notificationDenied": "luvat ilmouilmoituksia varten evättiin. tällä asetuksella ei ole vaikutusta"
},
"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)",
@@ -213,12 +214,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",
@@ -255,34 +256,34 @@
"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)",
"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"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "sanojen haku"
},
@@ -341,7 +342,6 @@
"homeConfiguration": "koti sivun muokkaus",
"homeConfiguration_description": "määritä mitä osioita näkyy, ja missä järjestyksessä, koti sivulla",
"gaplessAudio_optionWeak": "heikko (suositus)",
"genreBehavior_description": "määrittää avautuuko generä painettaessa oletuksena ääniraita vaiko albumi listassa",
"hotkey_browserBack": "selain takaisin",
"hotkey_playbackPlay": "toista",
"hotkey_playbackPlayPause": "toista / tauko",
@@ -375,17 +375,14 @@
"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ä",
"doubleClickBehavior": "lisää kaikki haetut kappaleet soittojonoon tuplaklikkauksella",
"discordUpdateInterval_description": "päivitysväli sekunnteina (vähintään 15 sekunttia)",
"discordRichPresence_description": "ota toiston tila käyttöön {{discord}}n rich presence-toiminnossa. Kuvakkeiden avaimet ovat {{icon}}, {{playing}} ja {{paused}}",
"discordUpdateInterval": "{{discord}} rich presencen päivitysväli",
"enableRemote": "aktivoi etäohjauspalvelin",
"externalLinks_description": "ottaa ulkoiset linkit (Last.fm, MusicBrainz) artistien/albumien sivuilla",
"exitToTray": "sulje tehtäväpalkkiin",
"doubleClickBehavior_description": "jos päällä, kaikki hakutuloksissa olevat kappaleet lisätään soittojonoon. muuten vain napsautettu kappale lisätään jonoon",
"discordApplicationId_description": "{{discord}}n ohjelma-ID rich presenceä varten (oletuksena {{defaultId}})",
"enableRemote_description": "aktivoi etäohjauspalvelimen, jolla muut laitteet voivat ohjata sovellusta",
"externalLinks": "näytä ulkoiset linkit",
@@ -396,7 +393,6 @@
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lastfmApiKey_description": "API-avain {{lastfm}}:lle. tarvitaan kansikuvia varten",
"passwordStore_description": "mitä salasanojen/avaimien tallennusta käytetään. muuta tätä, jos sinulla on ongelmia salasanojen tallennuksessa",
"floatingQueueArea_description": "näyttää ikonin ikkunan oikealla reunalla jonon katselua varten",
"homeFeature_description": "ohjaa näytetäänkö suuri esittelykaruselli kotisivulla",
"hotkey_rate0": "arvostelun tyhjennys",
"hotkey_togglePreviousSongFavorite": "vaihda $t(common.previousSong) suosikkiasetus",
@@ -409,7 +405,6 @@
"mpvExecutablePath_description": "asettaa mpv:n suoritettavan tiedoston polun. ollessa tyhjä, käytetään oletuspolkua",
"mpvExtraParameters_help": "yksi per rivi",
"playButtonBehavior_optionPlay": "$t(player.play)",
"genreBehavior": "genre-sivun oletustoiminta",
"globalMediaHotkeys": "globaalit median pikanäppäimet",
"globalMediaHotkeys_description": "ota käyttöön tai poista käytöstä järjestelmän median pikanäppäinten käyttö toiston hallintaa",
"hotkey_toggleCurrentSongFavorite": "vaihda $t(common.currentSong) suosikkiasetus",
@@ -436,14 +431,13 @@
"minimizeToTray_description": "pienennä sovellus ilmaisinalueelle",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"hotkey_zoomOut": "loitonna",
"floatingQueueArea": "näytä kelluvan jonon avausalue",
"homeFeature": "kodin esittelykaruselli",
"hotkey_toggleFullScreenPlayer": "vaihda kokonäytön toistin",
"hotkey_toggleRepeat": "vaihda kertaus",
"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",
@@ -480,8 +474,7 @@
"replayGainClipping": "{{ReplayGain}} leikkaus",
"replayGainClipping_description": "Estää {{ReplayGain}}n aiheuttaman leikkauksen laskemalla vahvistusta automaatisesti",
"replayGainFallback": "{{ReplayGain}} palautus",
"playerAlbumArtResolution_description": "suurien kansikuvien resoluutio soittimen esikatselussa. suurempi tekee niistä terävempiä, mutta voi hidastaa latausta. oletuksena on 0, joka tarkoittaa automaattista",
"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",
@@ -496,7 +489,6 @@
"sidebarConfiguration": "sivupalkin asetukset",
"sidebarConfiguration_description": "valitse kohteet ja niiden järjestys sivupalkissa",
"volumeWidth_description": "äänenvoimakkuuden säätimen leveys",
"playerAlbumArtResolution": "soittimen kansikuvien resoluutio",
"playerbarOpenDrawer": "toistipalkin kokoruudun kytkin",
"playerbarOpenDrawer_description": "sallii toistopalkin klikkaamisen avaamaan kokonäytön soittimen",
"replayGainFallback_description": "asetettava vahvistus desibelinä (dB), jos tiedostolla ei ole {{ReplayGain}} tageja",
@@ -557,24 +549,24 @@
"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",
@@ -606,21 +598,21 @@
"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})"
},
"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"
},
@@ -655,9 +647,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": {
@@ -678,16 +670,16 @@
"albumArtistDetail": {
"about": "{{artist}}{sta/stä",
"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})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"manageServers": {
"title": "hallitse palvelimia",
@@ -702,8 +694,8 @@
},
"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})"
}
},
"player": {
@@ -754,14 +746,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)",
@@ -772,19 +764,17 @@
"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)"
},
"view": {
"table": "taulukko",
"card": "kortti",
"poster": "juliste",
"grid": "ruudukko",
"list": "lista"
}
@@ -792,7 +782,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",
@@ -800,17 +790,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ä"
@@ -818,7 +808,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "lähetys",
"ep": "EP",
"other": "muu",
+413 -105
View File
@@ -11,10 +11,10 @@
"skip_back": "reculer",
"favorite": "favori",
"next": "suivant",
"shuffle": "lecture aléatoire",
"shuffle": "lecture (mélangé)",
"playbackFetchNoResults": "aucun titre trouvé",
"playbackFetchInProgress": "chargement des titres…",
"addNext": "ajouter ensuite",
"addNext": "prochain",
"playbackSpeed": "vitesse de lecture",
"playbackFetchCancel": "cela prend du temps… fermez la notification pour annuler",
"play": "lecture",
@@ -24,37 +24,61 @@
"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",
"addLast": "ajouter en dernier",
"addLast": "dernier",
"mute": "muet",
"skip_forward": "avancer",
"pause": "pause",
"unfavorite": "retirer des favoris",
"playSimilarSongs": "jouer des titres similaires",
"viewQueue": "voir la file d'attente"
"viewQueue": "voir la file d'attente",
"addLastShuffled": "dernier (mélangé)",
"addNextShuffled": "prochain (mélangé)",
"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",
"artistRadio": "radio de l'artiste",
"trackRadio": "radio du titre"
},
"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"
},
"moveToNext": "passer au suivant"
"moveToNext": "passer au suivant",
"downloadStarted": "téléchargement de {{count}} éléments en cours",
"moveItems": "déplacer les entrées",
"shuffle": "mélanger",
"shuffleAll": "mélanger tout",
"shuffleSelected": "mélanger la sélection",
"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, {\"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",
@@ -69,7 +93,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",
@@ -101,7 +125,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",
@@ -129,7 +153,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",
@@ -164,7 +188,23 @@
"private": "privé",
"public": "publique",
"recordLabel": "label de discographie",
"releaseType": "type de sortie"
"releaseType": "type de sortie",
"doNotShowAgain": "ne plus afficher",
"externalLinks": "liens externe",
"faster": "plus rapide",
"slower": "ralentir",
"sort": "trier",
"gridRows": "lignes de la grille",
"tableColumns": "colonnes du tableau",
"itemsMore": "plus {{count}}",
"view": "vue",
"noFilters": "aucun filtre configuré",
"countSelected": "{{count}} sélectionnée",
"example": "exemple",
"mood": "humeur",
"retry": "réessayer",
"filter_single": "unique",
"filter_multiple": "multiple"
},
"error": {
"remotePortWarning": "redémarrer le serveur pour appliquer le nouveau port",
@@ -190,7 +230,12 @@
"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",
"notificationDenied": "les autorisations pour les notifications ont été refusées. ce paramètre n'a aucun effet"
"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",
"noNetwork": "serveur indisponible",
"noNetworkDescription": "impossible de se connecter à ce serveur"
},
"filter": {
"mostPlayed": "plus joués",
@@ -224,34 +269,36 @@
"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)",
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)"
},
"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)",
"myLibrary": "Bibliothèque"
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "partagé $t(entity.playlist, {\"count\": 2})",
"myLibrary": "Bibliothèque",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -285,10 +332,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é"
"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"
},
"home": {
"mostPlayed": "Les plus joués",
@@ -296,10 +347,11 @@
"explore": "Explorer depuis la bibliothèque",
"recentlyPlayed": "Joués récemment",
"title": "$t(common.home)",
"recentlyReleased": "Sortis récemment"
"recentlyReleased": "Sortis récemment",
"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é"
},
@@ -308,7 +360,25 @@
"hotkeysTab": "raccourcis",
"windowTab": "fenêtre",
"playbackTab": "lecteur",
"advanced": "avancé"
"advanced": "avancé",
"analytics": "analytique",
"updates": "mise à jour",
"cache": "cache",
"application": "application",
"queryBuilder": "constructeur de requêtes",
"theme": "thème",
"controls": "contrôles",
"sidebar": "barre latérale",
"remote": "distant",
"exportImport": "importer/exporter",
"scrobble": "scrobble",
"audio": "audio",
"lyrics": "paroles",
"transcoding": "transcodage",
"discord": "discord",
"logger": "logger",
"playerFilters": "filtres du lecteur",
"lyricsDisplay": "affichage des paroles"
},
"globalSearch": {
"commands": {
@@ -341,40 +411,43 @@
"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"
},
"itemDetail": {
"copyPath": "copier le chemin dans le presse-papiers",
@@ -391,6 +464,15 @@
"title": "gérer les serveurs",
"username": "nom d'utilisateur",
"editServerDetailsTooltip": "modifier les détails du serveur"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stations radio"
}
},
"setting": {
@@ -407,7 +489,6 @@
"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",
@@ -479,14 +560,13 @@
"fontType_description": "La police intégrée vous permet de sélectionner une des polices fourni par feishin. La police système vous permet de sélectionner une des polices fourni par votre système d'exploitation. L'option personnalisée vous permet d'importer votre propre police",
"playButtonBehavior": "comportement du bouton play",
"playbackStyle_optionNormal": "normale",
"floatingQueueArea": "afficher le zone de file d'attente flottante",
"hotkey_toggleRepeat": "basculer la répétition",
"lyricOffset_description": "décale les paroles par le nombre de millisecondes spécifiées",
"fontType": "type de police",
"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é",
@@ -535,12 +615,11 @@
"discordApplicationId_description": "l'identifiant de l'application pour le statut d'activité {{discord}} (par défaut à {{defaultId}})",
"audioExclusiveMode": "mode de sortie audio exclusif",
"discordApplicationId": "identifiant d'application {{discord}}",
"floatingQueueArea_description": "afficher une icon flottante sur le côté droit de l'écran pour afficher la liste d'attente",
"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}}",
@@ -558,7 +637,6 @@
"buttonSize": "taille des boutons du lecteur",
"clearCacheSuccess": "le cache a été vidé",
"externalLinks_description": "activer l'affichage de liens externes (Last.fm, MusicBrainz) sur la page de l'artiste/album",
"genreBehavior": "comportement par défaut de la page des genres",
"startMinimized_description": "démarrer l'application dans la barre des tâches",
"externalLinks": "afficher les liens externes",
"homeConfiguration": "configuration de la page d'accueil",
@@ -568,12 +646,9 @@
"imageAspectRatio_description": "si cette option est activée, les pochettes d'album seront affichées en utilisant leur rapport hauteur/largeur natif. pour les pochettes qui n'ont pas un rapport 1:1 (carré), l'espace restant sera vide",
"mpvExtraParameters_help": "un par ligne",
"passwordStore_description": "quel mot de passe utiliser. changez cela si vous rencontrez des problèmes pour stocker les mots de passe",
"playerAlbumArtResolution": "résolution de la pochette d'album du lecteur",
"passwordStore": "mots de passe",
"playerAlbumArtResolution_description": "résolution pour l'aperçu de la pochette d'album agrandie du lecteur. plus grand le rend plus net, mais peut ralentir le chargement. la valeur par défaut est 0 (automatique)",
"homeConfiguration_description": "configurer quels éléments sont affichés sur la page d'accueil, et dans quel ordre",
"startMinimized": "démarrer l'application en mode réduit",
"genreBehavior_description": "détermine si cliquer sur un genre ouvre par défaut la liste des pistes ou des albums",
"transcode_description": "permet le transcodage vers différents formats",
"transcodeBitrate_description": "sélectionne le débit du transcodage. 0 signifie que le serveur choisit",
"transcodeFormat_description": "sélectionne le format du transcodage. laisser vide pour laisser le serveur décider",
@@ -589,7 +664,6 @@
"webAudio_description": "utiliser l'audio web. cela permet d'utiliser des fonctions avancées comme le replaygain. désactivez si vous rencontrez d'autres problèmes",
"artistConfiguration": "page de configuration de l'artiste de l'album",
"artistConfiguration_description": "configurer les éléments et l'ordre à afficher, sur la page de l'artiste de l'album",
"doubleClickBehavior": "mettre en file d'attente toutes les pistes recherchées lors d'un double clic",
"contextMenu": "configuration du menu contextuel (clic droit)",
"contextMenu_description": "permet de masquer les éléments qui s'affichent dans le menu lorsque vous cliquez avec le bouton droit de la souris sur un élément. les éléments qui ne sont pas cochés seront masqués",
"albumBackground": "image d'arrière-plan de l'album",
@@ -609,7 +683,6 @@
"translationApiKey": "clé api de traduction",
"translationTargetLanguage_description": "langue cible pour la traduction des paroles",
"trayEnabled_description": "afficher ou masquer l'icône et le menu de la barre d'état système. si désactivé, désactive également la réduction et la sortie vers la barre d'état système",
"doubleClickBehavior_description": "si vrai, toutes les pistes correspondantes dans une recherche de piste seront mises en file d'attente. sinon, seule celle sur laquelle vous avez cliqué sera mise en file d'attente",
"albumBackgroundBlur": "intensité du flou de l'image d'arrière-plan de l'album",
"lastfmApiKey": "clé API {{lastfm}}",
"lastfmApiKey_description": "la clé API pour {{lastfm}}. requise pour la pochette d'album",
@@ -645,9 +718,9 @@
"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",
@@ -658,20 +731,83 @@
"exportImportSettings_importBtn": "paramètres d'importation",
"exportImportSettings_importSuccess": "les paramètres ont été importés avec succès!",
"exportImportSettings_notValidJSON": "le fichier transmis n'est pas un JSON valide",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" est incorrecte - {{reason}}",
"exportImportSettings_offendingKeyError": "la clé \"{{offendingKey}}\" est incorrecte - {{reason}}",
"exportImportSettings_importModalTitle": "paramètres d'importation feishin",
"crossfadeStyle": "style de fondu enchaîné",
"discordRichPresence": "{{discord}} Rich Presence",
"language": "langage",
"notify_description": "affiche une notification lorsque la chanson en cours change",
"transcode": "activer le transcodage",
"notify": "activer les notifications de chansons"
"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": "barre de lecture",
"playerbarSliderType_optionSlider": "pleine",
"playerbarSliderType_optionWaveform": "forme d'onde",
"playerbarWaveformAlign": "forme d'onde alignée",
"playerbarWaveformAlign_optionTop": "haut",
"playerbarWaveformAlign_optionCenter": "centre",
"playerbarWaveformAlign_optionBottom": "bas",
"playerbarWaveformBarWidth": "largeur de la barre en forme d'onde",
"playerbarWaveformGap": "écart de la forme d'onde",
"playerbarWaveformRadius": "rayon de la forme d'onde",
"showLyricsInSidebar_description": "un panneau sera attaché à la file d'attente de lecture, qui affichera les paroles",
"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",
"queryBuilder": "constructeur de requêtes",
"queryBuilderCustomFields_inputLabel": "label",
"queryBuilderCustomFields_inputTag": "tag",
"queryBuilderCustomFields": "champs personnalisé",
"queryBuilderCustomFields_description": "ajouter un champ personnalisé à utiliser dans les constructeurs de requêtes",
"autoDJ": "DJ auto",
"autoDJ_description": "ajouter automatiquement des titres similaire à la file d'attente",
"autoDJ_itemCount": "nombre d'entrée",
"autoDJ_itemCount_description": "le nombre d'entrées tentées d'être ajoutées à la file d'attente lorsque le DJ auto est activé",
"autoDJ_timing": "timing",
"autoDJ_timing_description": "le nombre de titres restant dans la file d'attente avant le déclenchement du DJ auto",
"followCurrentSong_description": "défiler automatiquement jusqu'au titre en cours de lecture dans la file d'attente",
"followCurrentSong": "suivre le titre en cours",
"logLevel": "niveau de log",
"logLevel_description": "définis le niveau minimum de log à afficher. débogage affiche tous les logs, erreur affiche seulement les erreurs",
"logLevel_optionDebug": "débogage",
"logLevel_optionError": "erreur",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "avertissement",
"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",
"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"
},
"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",
@@ -686,20 +822,23 @@
"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_preferInstantMixDescription": "Utiliser uniquement le mix instantané pour jouer des pistes similaires. Activez cette option 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)"
@@ -711,17 +850,22 @@
"queryEditor": {
"input_optionMatchAll": "correspondre à tous",
"input_optionMatchAny": "correspondre à n'importe quel",
"title": "éditeur de requête"
"title": "éditeur de requête",
"addRuleGroup": "ajouter un groupe de règles",
"removeRuleGroup": "supprimer un groupe de règles",
"resetToDefault": "réinitialiser par défaut",
"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",
@@ -735,6 +879,36 @@
"enabled": "le mode privé est activé, le statut de lecture est maintenant caché des intégrations externes",
"disabled": "le mode privé est désactivé, le statut de lecture est maintenant visible des intégrations externes",
"title": "mode privé"
},
"largeFetchConfirmation": {
"title": "ajouter des entrées à la file d'attente",
"description": "Cette action ajoutera tous les éléments dans la vue filtrée actuelle"
},
"shuffleAll": {
"title": "jouer aléatoirement",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "combien de titres?",
"input_minYear": "à partir de l'année",
"input_maxYear": "à l'année",
"input_played": "filtre de lecture",
"input_played_optionAll": "toutes les pistes",
"input_played_optionUnplayed": "seulement les pistes non jouées",
"input_played_optionPlayed": "seulement les pistes jouées"
},
"createRadioStation": {
"success": "station radio créée avec succès",
"title": "créer une station radio",
"input_homepageUrl": "lien de la page d'accueil",
"input_name": "nom",
"input_streamUrl": "lien du flux en direct"
},
"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": {
@@ -774,7 +948,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",
@@ -789,7 +963,13 @@
"play_other": "{{count}} écoutes",
"song_one": "titre",
"song_many": "titres",
"song_other": "titres"
"song_other": "titres",
"radioStation_one": "station radio",
"radioStation_many": "stations radio",
"radioStation_other": "stations radio",
"radioStationWithCount_one": "{{count}} station radio",
"radioStationWithCount_many": "{{count}} stations radio",
"radioStationWithCount_other": "{{count}} stations radio"
},
"table": {
"config": {
@@ -801,12 +981,31 @@
"size": "$t(common.size)",
"itemGap": "écart entre les éléments (en pixel)",
"itemSize": "taille des élements (en pixel)",
"followCurrentSong": "suivre la chanson actuelle"
"followCurrentSong": "suivre la chanson actuelle",
"advancedSettings": "paramètres avancés",
"autosize": "taille automatique",
"moveUp": "monter",
"moveDown": "descendre",
"pinToLeft": "épingler à gauche",
"pinToRight": "épingler à droite",
"alignLeft": "aligner à gauche",
"alignCenter": "centrer",
"alignRight": "aligner à droite",
"itemsPerRow": "entrées par ligne",
"size_default": "défaut",
"size_compact": "compacte",
"size_large": "large",
"pagination": "pagination",
"pagination_itemsPerPage": "entrées par page",
"pagination_infinite": "infini",
"pagination_paginate": "paginé",
"alternateRowColors": "alterner les couleurs des lignes",
"horizontalBorders": "bordures de ligne",
"rowHoverHighlight": "surligner les lignes au survol",
"verticalBorders": "bordure de colonne"
},
"view": {
"table": "liste",
"poster": "affiche",
"card": "Carte",
"grid": "grille",
"list": "liste"
},
@@ -821,24 +1020,29 @@
"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)",
"codec": "$t(common.codec)"
"songCount": "$t(entity.track, {\"count\": 2})",
"codec": "$t(common.codec)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"column": {
@@ -858,14 +1062,17 @@
"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)"
"codec": "$t(common.codec)",
"owner": "propriétaire",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"dragDropZone": {
@@ -875,7 +1082,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "diffuser",
"ep": "ep",
"other": "autre",
@@ -885,15 +1092,116 @@
"audiobook": "livre audio",
"audioDrama": "dramatique radio",
"compilation": "compilation",
"djMix": "dj mix",
"djMix": "mix dj",
"demo": "démo",
"fieldRecording": "prise de son en extérieur",
"interview": "interview",
"live": "directe",
"live": "live",
"mixtape": "mixtape",
"remix": "remix",
"soundtrack": "bande son",
"spokenWord": "spoken word"
}
},
"queryBuilder": {
"standardTags": "tags standard",
"customTags": "tags personnalisées"
},
"filterOperator": {
"after": "est après",
"afterDate": "est après (date)",
"before": "est avant",
"beforeDate": "est avant (date)",
"contains": "contient",
"endsWith": "se termine par",
"inPlaylist": "est dans",
"inTheLast": "est dans le dernier",
"inTheRange": "est dans la plage",
"inTheRangeDate": "est dans la plage (date)",
"is": "est",
"isNot": "n'est pas",
"isGreaterThan": "est plus grand que",
"isLessThan": "est plus petit que",
"matchesRegex": "correspond à l'expression régulière",
"notContains": "ne contient pas",
"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": "boost linéaire",
"peakBehavior": "comportement des piques",
"showPeaks": "afficher les piques"
}
}
+317 -117
View File
@@ -1,31 +1,47 @@
{
"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)",
"setRating": "értékelés beállítása",
"viewPlaylists": "$t(entity.playlist_other) megtekintése",
"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, {\"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)",
"refresh": "$t(common.refresh)"
"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",
"shuffle": "keverés",
"shuffleAll": "összes keverése",
"shuffleSelected": "kiválasztottak keverése",
"viewMore": "további információ",
"moveUp": "ugrás fel",
"moveDown": "ugrás le",
"holdToMoveToTop": "hosszan nyomva felülre mozgat",
"holdToMoveToBottom": "hosszan nyomva lejjebb mozgat",
"selectAll": "összes kijelölése",
"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",
@@ -68,7 +84,7 @@
"filter_other": "szűrők",
"filters": "szűrők",
"forward": "előre",
"gap": "gap",
"gap": "hézag",
"increase": "megnövelés",
"left": "bal",
"limit": "korlát",
@@ -84,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",
@@ -100,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",
@@ -125,11 +142,23 @@
"sampleRate": "mintavételi frekvencia",
"releaseType": "kiadás típusa",
"explicitStatus": "nyílt státusz",
"tags": "címkék"
"tags": "címkék",
"doNotShowAgain": "ne mutasd többet",
"externalLinks": "külső linkek",
"faster": "gyorsabban",
"slower": "lassabban",
"sort": "rendezés",
"gridRows": "rács sorok",
"tableColumns": "táblázat oszlopok",
"itemsMore": "{{count}} még több",
"view": "nézet",
"noFilters": "nincs konfigurált szűrő",
"countSelected": "{{count}} kiválasztott",
"retry": "újra"
},
"entity": {
"albumArtist_one": "album szerzője",
"albumArtist_other": "album szerzői",
"albumArtist_one": "Zenész",
"albumArtist_other": "Zenészek",
"albumArtistCount_one": "{{count}} album szerző",
"albumArtistCount_other": "{{count}} album szerzők",
"albumWithCount_one": "{{count}} album",
@@ -148,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",
@@ -162,7 +191,11 @@
"play_one": "{{count}} lejátszás",
"play_other": "{{count}} lejátszások",
"trackWithCount_one": "{{count}} sáv",
"trackWithCount_other": "{{count}} sávok"
"trackWithCount_other": "{{count}} sávok",
"radioStation_one": "rádió állomás",
"radioStation_other": "rádió állomások",
"radioStationWithCount_one": "{{count}} rádióállomás",
"radioStationWithCount_other": "{{count}} rádióállomások"
},
"error": {
"apiRouteError": "a kérést nem sikerült célba juttatni",
@@ -188,10 +221,15 @@
"serverRequired": "szerver szükséges",
"serverNotSelectedError": "nincs szerver kiválasztva",
"notificationDenied": "Az értesítések engedélyezése megtagadva. Ez a beállítás hatástalan",
"badValue": "érvénytelen opció \"{{value}}\". ez az érték már nem létezik"
"badValue": "érvénytelen opció \"{{value}}\". ez az érték már nem létezik",
"noNetwork": "Szerver nem elérhető",
"noNetworkDescription": "Nem tudok csatlakozni a szerverhez",
"saveQueueFailed": "műsorlista mentése sikertelen",
"settingsSyncError": "Eltéréseket találtam a leképző és a fő folyamat beállításai között. Indítsd újra az alkalmazást",
"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",
@@ -212,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",
@@ -229,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": {
@@ -253,39 +291,44 @@
},
"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ő"
},
"queryEditor": {
"title": "lekérdezés szerkesztő",
"input_optionMatchAll": "összes egyezés",
"input_optionMatchAny": "bármelyik egyező"
"input_optionMatchAny": "bármelyik egyező",
"addRuleGroup": "szabálycsoport hozzáadás",
"removeRuleGroup": "szabálycsoport eltávolítás",
"resetToDefault": "alapértelmezettre visszaállítás",
"clearFilters": "szűrők törlése"
},
"shareItem": {
"allowDownloading": "letöltés engedélyezése",
@@ -303,6 +346,31 @@
"enabled": "privát mód engedélyezve, a lejátszási állapot mostantól rejtve marad a külső integrációk elől",
"disabled": "A privát mód le van tiltva, a lejátszási állapot mostantól látható az engedélyezett külső integrációk számára",
"title": "Privát mód"
},
"largeFetchConfirmation": {
"title": "műsorlistához ad",
"description": "Ez a művelet hozzáadja az összes elemet az aktuális szűrt nézetben"
},
"shuffleAll": {
"title": "véletlenszerű lejátszás",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Hány dal?",
"input_minYear": "ettől az évtől",
"input_maxYear": "eddig az évig",
"input_played_optionAll": "összes sáv",
"input_played": "csak szűrt zenék",
"input_played_optionUnplayed": "Csak a még nem lejátszottak",
"input_played_optionPlayed": "Csak a játszottak számok"
},
"createRadioStation": {
"success": "rádió állomás sikeresen létrehozva",
"title": "rádió állomás létrehozása",
"input_homepageUrl": "oldal url",
"input_name": "név",
"input_streamUrl": "stream url"
},
"saveQueue": {
"success": "mentett lejátszási műsorlista a szerverre"
}
},
"dragDropZone": {
@@ -316,38 +384,42 @@
"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": "összecsukni az oldalsávot",
"expandSidebar": "kibővíteni az oldalsávot",
"goBack": "menj vissza",
"goForward": "menj előre",
"manageServers": "szerverek kezelése",
"privateModeOff": "Privát mód kikapcsolása",
"privateModeOn": "Privát mód bekapcsolása",
"openBrowserDevtools": "böngésző fejlesztői eszközeinek megnyitása",
"collapseSidebar": "oldalsáv",
"expandSidebar": "oldalsáv",
"goBack": "vissza",
"goForward": "előre",
"manageServers": "szerverek",
"privateModeOff": "Privát mód",
"privateModeOn": "Privát mód",
"openBrowserDevtools": "Fejlesztői eszközök",
"quit": "$t(common.quit)",
"selectServer": "Szerver választása",
"settings": "$t(common.setting_other)",
"version": "verzió {{version}}"
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzió {{version}}",
"selectMusicFolder": "zene mappa kiválasztása",
"noMusicFolder": "nincs zene mappa kiválasztva",
"multipleMusicFolders": "{{count}} kiválasztott zene mappák",
"commandPalette": "Parancspaletta"
},
"manageServers": {
"title": "Szerverek kezelés",
@@ -378,10 +450,12 @@
"removeFromQueue": "$t(action.removeFromQueue)",
"setRating": "$t(action.setRating)",
"playShuffled": "$t(player.shuffle)",
"shareItem": "elem megosztása",
"goToAlbum": "menj a $t(entity.album_one)",
"goToAlbumArtist": "menj a $t(entity.albumArtist_one)",
"showDetails": "információkérés"
"shareItem": "Megosztás",
"goToAlbum": "menj az $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "menj a $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "info",
"moveItems": "$t(action.moveItems)",
"goTo": "menj"
},
"fullscreenPlayer": {
"config": {
@@ -407,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": {
@@ -425,7 +499,8 @@
"newlyAdded": "újonnan hozzáadott megjelenések",
"recentlyPlayed": "nemrég játszott",
"recentlyReleased": "nemrég megjelent",
"title": "$t(common.home)"
"title": "$t(common.home)",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "másolja az útvonalat a vágólapra",
@@ -436,39 +511,67 @@
"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ó",
"generalTab": "általános",
"hotkeysTab": "gyorsbillentyűk",
"windowTab": "ablak",
"playbackTab": "visszajátszás"
"playbackTab": "visszajátszás",
"analytics": "elemzés",
"updates": "frissítés",
"cache": "gyorsítótár",
"application": "applikáció",
"theme": "téma",
"controls": "irányítás",
"sidebar": "oldalsáv",
"remote": "távoli",
"exportImport": "import/export",
"scrobble": "scrobble",
"audio": "audio",
"lyrics": "dalszöveg",
"transcoding": "átkódolás",
"discord": "discord",
"queryBuilder": "lekérdezés-építő",
"playerFilters": "lejátszó szűrők",
"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)"
"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": "sávok tőle {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"artistTracks": "dalok tőle {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "rádió állomások"
}
},
"player": {
"addLast": "utoljára hozzáadva",
"addNext": "következő hozzáadása",
"addLast": "utolsónak",
"addNext": "következő",
"favorite": "kedvenc",
"mute": "némítás",
"muted": "némítva",
@@ -488,7 +591,7 @@
"repeat": "ismétlés",
"repeat_all": "összes ismétlése",
"repeat_off": "ismétlés kikapcsolva",
"shuffle": "kevert lejátszás",
"shuffle": "kevert (lejátszás)",
"skip": "ugrás",
"skip_back": "visszaugrás",
"skip_forward": "előre ugrás",
@@ -497,11 +600,17 @@
"unfavorite": "kedvencekből eltávolítás",
"pause": "szünet",
"viewQueue": "műsorlista megtekintése",
"shuffle_off": "kevert lejátszás ki"
"shuffle_off": "kevert lejátszás ki",
"addLastShuffled": "végére (keverve)",
"addNextShuffled": "következő (keverve)",
"holdToShuffle": "tartsd lenyomva a keveréshez",
"lyrics": "dalszöveg",
"saveQueueToServer": "műsorlista mentése a szerverre",
"restoreQueueFromServer": "műsorlista visszaállítása a szerverről"
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "sugárzás",
"ep": "ep",
"other": "más",
@@ -557,16 +666,15 @@
"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",
"customFontPath_description": "beállítja az alkalmazáshoz használandó egyéni betűtípus elérési útját",
"contextMenu": "kontextusmenü (jobb klikk) beállítás",
"crossfadeDuration_description": "beállítja a crossfade effekt időtartamát",
"crossfadeDuration": "crossfade időtartam",
"crossfadeStyle": "crossfade stílus",
"crossfadeStyle_description": "válaszd ki az audiolejátszóhoz használni kívánt crossfade stílust",
"crossfadeDuration_description": "beállítja áthúzás effekt időtartamát",
"crossfadeDuration": "áthúzás időtartam",
"crossfadeStyle": "áthúzás stílus",
"crossfadeStyle_description": "válaszd ki az audiolejátszóhoz használni kívánt áthúzás stílust",
"releaseChannel_description": "válassz a stabil kiadás vagy a béta kiadás közül az automatikus frissítésekhez",
"disableLibraryUpdateOnStartup": "új verziók ellenőrzését indításkor letiltása",
"discordDisplayType_artistname": "előadó név",
@@ -591,18 +699,16 @@
"discordServeImage_description": "megosztja a {{discord}} borítóképet a szerverről (csak Jellyfin és Navidrome esetén elérhető). A {{discord}} botot használ a képek letöltéséhez, ezért a szervernek elérhetőnek kell lennie a nyilvános interneten",
"discordUpdateInterval": "{{discord}} rich presence frissítési intervallum",
"discordUpdateInterval_description": "az egyes frissítések közötti idő másodpercben (minimum 15 másodperc)",
"doubleClickBehavior_description": "Ha igaz, akkor a keresés során talált összes megfelelő szám a műsorlistára kerül. Ellenkező esetben csak a rákattintott szám kerül a műsorlistára",
"doubleClickBehavior": "dupla kattintással az összes keresett zeneszámot műsorlistára teszi",
"enableAutoTranslation_description": "a dalszöveg betöltésekor automatikusan engedélyezze a fordítást",
"enableAutoTranslation": "automatikus fordítás engedélyezése",
"enableRemote_description": "lehetővé teszi egy távoli vezérlő szerver számára, hogy más eszközök vezéreljék az alkalmazást",
"enableRemote": "távoli vezérlő szerver engedélyezése",
"exitToTray_description": "kilépés az alkalmazásból a tálcára",
"exitToTray": "kilépés a tálcára",
"exportImportSettings_control_description": "beállítások exportálása és importálása JSON-on keresztül",
"exportImportSettings_control_description": "Beállítások exportálása és importálása JSON-on keresztül",
"exportImportSettings_control_exportText": "beállítások exportálása",
"exportImportSettings_control_importText": "beállítások importálása",
"exportImportSettings_control_title": "beállítások exportálása és importálása",
"exportImportSettings_control_title": "Beállítások exportálása és importálása",
"exportImportSettings_destructiveWarning": "A beállítások importálása végleges, ezért kérlek, olvasd el a fenti információkat, mielőtt rákattintasz az alábbi „Importálás” gombra!",
"exportImportSettings_importBtn": "beállítások importálása",
"exportImportSettings_importModalTitle": "Feishin beállítások importálása",
@@ -611,8 +717,6 @@
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" helytelen - {{reason}}",
"externalLinks_description": "lehetővé teszi külső linkek (Last.fm, MusicBrainz) megjelenítését az előadó/album oldalakon",
"externalLinks": "külső linkek megjelenítése",
"floatingQueueArea_description": "Lebegő ikon megjelenítése a képernyő jobb oldalán a műsorlista megnyitásához",
"floatingQueueArea": "Lebegő műsorlista területének megjelenítése",
"followLyric_description": "görgess a dalszöveghez az aktuális lejátszási pozícióig",
"followLyric": "kövesd az aktuális dalszöveget",
"font_description": "beállítja az alkalmazáshoz használandó betűtípust",
@@ -622,11 +726,9 @@
"fontType_optionCustom": "egyedi betűtípus",
"fontType_optionSystem": "rendszer betűtípus",
"fontType": "Font típusa",
"gaplessAudio_description": "Beállítja az MPV résmentes (gapless) lejátszását",
"gaplessAudio_description": "Beállítja az MPV résmentes (hézagmentes) lejátszását",
"gaplessAudio_optionWeak": "gyenge (ajánlott)",
"gaplessAudio": "hézagmentes hang",
"genreBehavior_description": "meghatározza, hogy egy műfajra kattintva alapértelmezés szerint a zeneszámok vagy az albumok listája nyílik-e meg",
"genreBehavior": "műfaj oldal alapértelmezett viselkedése",
"globalMediaHotkeys_description": "engedélyezheted vagy letilthatod a rendszer média gyorsbillentyűinek használatát a lejátszás vezérléséhez",
"globalMediaHotkeys": "globális média gyorsbillentyűk",
"homeConfiguration_description": "beállíthatod, hogy mely elemek jelenjenek meg, és milyen sorrendben a kezdőlapon",
@@ -692,7 +794,6 @@
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playButtonBehavior": "lejátszás gomb viselkedése",
"playerAlbumArtResolution_description": "A nagy lejátszó albumborító-előnézetének felbontása. A nagyobb érték élesebb képet ad, de lassíthatja a betöltést. Alapértelmezés: 0, ami az automatikus módot jelenti",
"minimumScrobblePercentage_description": "a szám lejátszásának minimális százaléka, amelynek el kell hangzania, mielőtt Scrobble-nak számít",
"minimumScrobblePercentage": "Minimális Scrobble arány (százalék)",
"minimumScrobbleSeconds": "Minimum Scrobble arány (mp)",
@@ -706,7 +807,6 @@
"notify": "bekapcsolja a dal értesítéseket",
"notify_description": "értesítések megjelenítése az aktuális dal megváltoztatásakor",
"playbackStyle_description": "válaszd ki az lejátszóhoz használni kívánt lejátszási stílust",
"playerAlbumArtResolution": "lejátszó albumborító felbontás",
"playerbarOpenDrawer_description": "lehetővé teszi a lejátszósávra kattintással a teljes képernyős lejátszó megnyitását",
"playerbarOpenDrawer": "lejátszósáv teljes képernyőre váltás",
"preferLocalLyrics_description": "ha elérhető, akkor a távoli dalszövegek helyett a helyi dalszövegeket részesítse előnyben",
@@ -723,10 +823,10 @@
"remoteUsername": "távoli vezérlő szerver felhasználónév",
"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": "crossfade",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"playbackStyle_optionCrossFade": "áthúzás",
"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",
@@ -745,7 +845,7 @@
"scrobble_description": "a lejátszás Scrobble-elése a médiaszerveredre",
"showSkipButtons_description": "a lejátszó sávon megjelenő átugrás gombok megjelenítése vagy elrejtése",
"showSkipButtons": "mutasd az átugrás gombot",
"sidebarConfiguration_description": "Válaszd ki az oldalsávban megjelenő elemeket és azok sorrendjét",
"sidebarConfiguration_description": "válaszd ki az oldalsávban megjelenő elemeket és azok sorrendjét",
"sidebarCollapsedNavigation_description": "Navigáció megjelenítése vagy elrejtése az összecsukott oldalsávban",
"sidebarCollapsedNavigation": "Összecsukott oldalsáv navigációja",
"sidebarConfiguration": "oldalsáv konfigurációja",
@@ -755,7 +855,7 @@
"sidePlayQueueStyle_description": "beállítja az oldalsó műsorlista stílusát",
"mediaSession_description": "lehetővé teszi a Windows Media Session integrációját, a médiavezérlők és metaadatok megjelenítését a rendszer hangerő-átfedésben és a zárolási képernyőn (csak Windows)",
"mediaSession": "média munkamenet engedélyezése",
"sidePlayQueueStyle": "oldalsó műsorlista stílusa",
"sidePlayQueueStyle": "oldalsó műsorlista stílus",
"skipDuration": "átugrás hossza",
"skipPlaylistPage_description": "lejátszási listához való navigáláskor az alapértelmezett oldal helyett a lejátszási lista dalainak listájára mutató oldalra lépjen",
"skipPlaylistPage": "lejátszási lista oldalának átugrása",
@@ -788,13 +888,55 @@
"zoom": "nagyítási arány",
"webAudio": "web audio használata",
"windowBarStyle_description": "válaszd ki az címsor stílusát",
"windowBarStyle": "címsor stílusa",
"windowBarStyle": "címsor",
"zoom_description": "beállítja az alkalmazás nagyítási arányát",
"volumeWheelStep_description": "A hangerő változásának mértéke az egérgörgő használatakor a hangerő sávon",
"volumeWheelStep": "hangerőgörgő lépés",
"volumeWidth": "hangerő sáv szélessége",
"webAudio_description": "Web Audio használata. Ez lehetővé teszi a fejlettebb funkciókat, például a ReplayGain-t. (Kapcsold ki, ha problémát tapasztalsz)",
"volumeWidth_description": "hangerő sáv szélessége"
"volumeWidth_description": "hangerő sáv szélessége",
"analyticsDisable_description": "Anonim használati adatok kerülnek elküldésre a fejlesztőnek, hogy segítsék az alkalmazás fejlesztését",
"analyticsDisable": "Használati alapú adatok küldésének kikapcsolása",
"playerbarSlider": "lejátszósáv csúszka",
"playerbarSliderType_optionSlider": "csűszka",
"playerbarSliderType_optionWaveform": "hullámforma",
"playerbarWaveformAlign": "hullámforma igazítás",
"playerbarWaveformAlign_optionTop": "felső",
"playerbarWaveformAlign_optionCenter": "középső",
"playerbarWaveformAlign_optionBottom": "alsó",
"playerbarWaveformBarWidth": "hullámforma oszlopszélesség",
"playerbarWaveformGap": "hullámforma oszlopköz",
"playerbarWaveformRadius": "hullámforma sugara",
"showLyricsInSidebar_description": "a csatolt műsorlistához egy panel kerül hozzáadásra, amelyen a dalszövegek jelennek meg",
"showLyricsInSidebar": "dalszövegek megjelenítése a lejátszó oldalsávban",
"showVisualizerInSidebar_description": "a lejátszó oldalsávjához egy panel kerül hozzáadásra, amely megjeleníti a vizualizáció",
"showVisualizerInSidebar": "vizualizáció megjelenítése a lejátszó oldalsávban",
"queryBuilder": "lekérdezés-építő",
"queryBuilderCustomFields_inputLabel": "címke",
"queryBuilderCustomFields_inputTag": "jelölés",
"queryBuilderCustomFields": "egyéni mezők",
"queryBuilderCustomFields_description": "egyéni mezők hozzáadása a lekérdezés-építőhöz",
"autoDJ": "auto DJ",
"autoDJ_timing": "időzítés",
"autoDJ_description": "hasonló dalokat automatikusan hozzáad a műsorlistához",
"autoDJ_itemCount": "elem szám",
"autoDJ_itemCount_description": "az auto DJ engedélyezésekor a műsorsorba felvenni kívánt elemek száma",
"autoDJ_timing_description": "az auto DJ elindulása előtt a műsorlistában maradt dalok száma",
"followCurrentSong_description": "automatikusan görgesse a műsorlistát az aktuálisan lejátszott dalra",
"followCurrentSong": "kövesd az aktuális dalt",
"logLevel": "naplózási szint",
"logLevel_description": "beállítja a megjelenítendő minimális naplószintet. A debug minden naplót megjeleníti, az error csak a hibákat",
"logLevel_optionDebug": "debug",
"logLevel_optionError": "error",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "figyelmeztetés",
"playerFilters": "Szűrje a dalokat a műsorlistából",
"playerFilters_description": "a következő kritériumok alapján kihagyja a dalokat a műsorlistából",
"playerbarSlider_description": "a hullámforma nem ajánlott lassú vagy korlátozott internetkapcsolat esetén",
"audioFadeOnStatusChange": "audio behúzás állapotváltozáskor",
"audioFadeOnStatusChange_description": "lehetővé teszi a lehúzást és a behúzást, amikor a lejátszás/szünet állapot megváltozik",
"useThemeAccentColor": "használd a téma kiemelő színét",
"useThemeAccentColor_description": "a kiválasztott témában meghatározott alapszínt használja az egyéni kiemelő szín helyett"
},
"table": {
"config": {
@@ -805,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)",
@@ -826,13 +968,16 @@
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)"
"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)"
},
"view": {
"card": "kártya",
"grid": "rács",
"list": "lista",
"poster": "poszter",
"table": "táblázat"
},
"general": {
@@ -843,12 +988,33 @@
"size": "$t(common.size)",
"tableColumns": "táblázat oszlopai",
"itemGap": "elemek közötti távolság (px)",
"itemSize": "elem mérete (px)"
"itemSize": "elem mérete (px)",
"advancedSettings": "speciális beállítások",
"autosize": "automatikus méret",
"moveUp": "felfelé",
"moveDown": "lefelé",
"pinToLeft": "balra tűz",
"pinToRight": "jobbra tűz",
"alignLeft": "igazítás balra",
"alignCenter": "igazítás középre",
"alignRight": "igazítás jobbra",
"itemsPerRow": "elemek soronként",
"size_default": "alapértelmezett",
"size_compact": "kompakt",
"size_large": "nagy",
"pagination": "oldalszámozás",
"pagination_itemsPerPage": "elemek oldalanként",
"pagination_infinite": "végtelen",
"pagination_paginate": "oldal számozva",
"alternateRowColors": "alternatív sor színek",
"horizontalBorders": "sorhatárok",
"rowHoverHighlight": "sor kiemelése egérrel",
"verticalBorders": "oszlophatárok"
}
},
"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",
@@ -858,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",
@@ -866,11 +1032,45 @@
"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",
"albumArtist": "album előadó"
"albumArtist": "album előadó",
"owner": "tulajdonos",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
}
},
"queryBuilder": {
"standardTags": "általános címkék",
"customTags": "egyedi címkék"
},
"filterOperator": {
"after": "után",
"afterDate": "(dátum) után",
"before": "előtt",
"beforeDate": "(dátum) előtt",
"contains": "tartalmaz",
"inPlaylist": "benne",
"endsWith": "végződik",
"inTheLast": "elmúlt",
"inTheRange": "tartományban",
"inTheRangeDate": "(dátum) tartományban",
"isGreaterThan": "nagyobb mint",
"isLessThan": "kisebb mint",
"notContains": "nem tartalmazza",
"notInPlaylist": "nincs benne",
"startsWith": "kezdődik",
"notInTheLast": "nem az elmúlt",
"matchesRegex": "illeszkedik a regexre",
"is": "van",
"isNot": "nincs"
},
"datetime": {
"minuteShort": "perc",
"secondShort": "mp",
"hourShort": "óra",
"dayShort": "nap"
}
}
+633 -107
View File
File diff suppressed because it is too large Load Diff
+65 -74
View File
@@ -1,20 +1,20 @@
{
"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",
@@ -51,7 +51,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 +75,9 @@
"forward": "successivo",
"delete": "elimina",
"forceRestartRequired": "riavvia per applicare le modifiche... chiudi la notifica per riavviare",
"setting": "impostazione",
"setting_one": "impostazione",
"setting_many": "",
"setting_other": "",
"version": "versione",
"title": "titolo",
"filter_one": "filtro",
@@ -94,7 +96,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",
@@ -200,11 +202,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 +217,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",
@@ -249,7 +250,6 @@
"accentColor_description": "imposta colore d'accento per l'applicazione",
"playbackStyle_optionNormal": "normale",
"windowBarStyle": "stile barra della finestra",
"floatingQueueArea": "mostra l'area di passaggio della coda fluttante",
"hotkey_toggleRepeat": "attiva/disattiva ripeti",
"lyricOffset_description": "aumenta/dimuisce l'offset del testo di una specifica quantità di millisecondi",
"sidebarConfiguration_description": "seleziona gli elementi e l'ordine in cui appaiono nella barra laterale",
@@ -271,7 +271,6 @@
"hotkey_rate0": "rimuovi voto",
"discordApplicationId": "application id {{discord}}",
"applicationHotkeys_description": "configura tasti a scelta rapida dell'applicazione. attiva/disattiva la casella per impostare un tasto a scelta rapida globale (solo desktop)",
"floatingQueueArea_description": "visualizza l'icona di passaggio sul lato destro dello schermo per mostrare la coda di riproduzione",
"hotkey_volumeMute": "silenzia volume",
"remoteUsername": "username server di controllo remoto",
"sidebarPlaylistList": "lista playlist nella barra laterale",
@@ -335,14 +334,10 @@
"discordListening_description": "mostra lo stato come in ascolto invece che in riproduzione",
"discordServeImage": "recupera le immagini di {{discord}} dal server",
"discordServeImage_description": "condividi la copertina per lo stato attività di {{discord}} direttamente dal server, disponibile solo per Jellyfin e Navidrome",
"doubleClickBehavior": "aggiungi alla coda tutte le tracce cercate, con un doppio clic",
"doubleClickBehavior_description": "se attivato, tutte le tracce corrispondenti alla ricerca verranno aggiunte alla coda. altrimenti, verrà aggiunta alla coda solo la traccia selezionata",
"externalLinks": "mostra link esterni",
"externalLinks_description": "consente di visualizzare link esterni (Last.fm, MusicBrainz) sulle pagine di artista/album",
"preferLocalLyrics": "utilizza i testi locali",
"preferLocalLyrics_description": "usa i testi locali anziché quelli online, quando disponibili",
"genreBehavior": "comportamento predefinito della pagina genere",
"genreBehavior_description": "determina se cliccando su un genere si apre di default la lista dei brani o degli album",
"homeConfiguration": "configurazione della home page",
"homeConfiguration_description": "configura quali elementi vengono mostrati e in quale ordine nella home page",
"homeFeature": "carosello in evidenza nella home page",
@@ -361,8 +356,6 @@
"passwordStore": "Archivio di password/segreti",
"passwordStore_description": "specifica quale archivio di password e segreti utilizzare. modificalo in caso di problemi nel salvataggio delle credenziali",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playerAlbumArtResolution": "risoluzione della copertina nel lettore",
"playerAlbumArtResolution_description": "la risoluzione dellanteprima della copertina nel lettore in formato grande. valori più alti la rendono più nitida, ma possono rallentare il caricamento. Il valore predefinito è 0, che indica la modalità automatica",
"sidePlayQueueStyle_optionAttached": "fissata",
"sidePlayQueueStyle_optionDetached": "sganciata",
"startMinimized": "avvia minimizzato",
@@ -442,17 +435,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",
@@ -461,7 +454,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",
@@ -469,24 +462,24 @@
"toYear": "fino all'anno",
"fromYear": "dall'anno",
"criticRating": "voto della critica",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "traccia"
},
"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})"
},
"fullscreenPlayer": {
"config": {
@@ -514,7 +507,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",
@@ -548,8 +541,8 @@
"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})"
},
"home": {
"mostPlayed": "più riprodotti",
@@ -560,7 +553,7 @@
"recentlyReleased": "appena pubblicato"
},
"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"
},
@@ -572,17 +565,17 @@
"advanced": "avanzate"
},
"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": {
@@ -593,23 +586,23 @@
"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})"
},
"manageServers": {
"title": "gestisci servers",
@@ -630,16 +623,16 @@
},
"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": {
@@ -659,9 +652,9 @@
},
"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})"
},
"updateServer": {
"title": "aggiorna server",
@@ -674,13 +667,13 @@
},
"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",
@@ -710,10 +703,8 @@
},
"view": {
"table": "tabella",
"card": "Scheda",
"grid": "griglia",
"list": "lista",
"poster": "poster"
"list": "lista"
},
"label": {
"releaseDate": "data rilascio",
@@ -727,8 +718,8 @@
"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)",
@@ -737,13 +728,13 @@
"playCount": "numero riproduzioni",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"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})"
}
},
"column": {
@@ -752,7 +743,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",
@@ -761,10 +752,10 @@
"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",
@@ -810,7 +801,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",
+360 -120
View File
@@ -11,10 +11,10 @@
"skip_back": "前へスキップ",
"favorite": "お気に入り",
"next": "次へ",
"shuffle": "シャッフル",
"shuffle": "再生 (シャッフル)",
"playbackFetchNoResults": "曲が見つかりません",
"playbackFetchInProgress": "曲を読み込み中…",
"addNext": "次へ追加",
"addNext": "次",
"playbackSpeed": "再生速度",
"playbackFetchCancel": "処理に時間がかかります… 通知を閉じるとキャンセルします",
"play": "再生",
@@ -25,12 +25,17 @@
"queue_moveToTop": "選択項目を一番下に移動",
"queue_moveToBottom": "選択項目を先頭に移動",
"shuffle_off": "シャッフル無効",
"addLast": "最後へ追加",
"addLast": "最後",
"mute": "ミュート",
"skip_forward": "次へスキップ",
"pause": "一時停止",
"playSimilarSongs": "似たような曲を再生する",
"viewQueue": "キューを表示する"
"viewQueue": "キューを表示する",
"lyrics": "歌詞",
"restoreQueueFromServer": "サーバーからキューを復元",
"saveQueueToServer": "サーバーにキューを保存",
"addLastShuffled": "最後 (シャッフル)",
"addNextShuffled": "次 (シャッフル)"
},
"setting": {
"crossfadeStyle_description": "オーディオプレーヤーが使用するクロスフェードのスタイルを選択します",
@@ -90,11 +95,10 @@
"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秒)",
"fontType_optionCustom": "カスタムフォント",
@@ -106,7 +110,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 +119,7 @@
"remotePassword_description": "リモートコントロール サーバーのパスワードを設定します。 ログイン情報はデフォルトでセキュアな通信がされないため、個人情報と関係ないランダムなパスワードを利用してください",
"hotkey_rate5": "5つ星で評価",
"hotkey_playbackPrevious": "前のトラック",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"crossfadeDuration_description": "クロスフェード効果の時間を設定します",
"playbackStyle": "再生スタイル",
"hotkey_toggleShuffle": "シャッフルの切り替え",
@@ -130,7 +134,7 @@
"exitToTray": "終了時にシステムトレイに格納",
"hotkey_rate4": "4つ星で評価",
"enableRemote": "リモートコントロール サーバーを有効化",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"savePlayQueue": "再生キューを保存",
"minimumScrobbleSeconds_description": "Scrobble されるために必要な最短の再生時間 (秒)",
"skipPlaylistPage_description": "プレイリストに移動するときに、デフォルトページではなくプレイリストの曲リストページに移動します",
@@ -144,7 +148,6 @@
"replayGainMode": "{{ReplayGain}} モード",
"playbackStyle_optionNormal": "通常",
"windowBarStyle": "ウィンドウバースタイル",
"floatingQueueArea": "フローティング再生キューエリアの表示",
"replayGainFallback_description": "ファイルに {{ReplayGain}} タグがない場合に適用するゲイン (dB 単位)",
"replayGainPreamp_description": "{{ReplayGain}} の値に適用されるプリアンプゲインを調整します",
"hotkey_toggleRepeat": "リピートの切り替え",
@@ -157,7 +160,7 @@
"useSystemTheme_description": "システム設定のライト/ダークテーマに従います",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "様々なインターネットソースから歌詞を取得します",
"lyricFetchProvider_description": "歌詞を取得するサービスを選択します。サービスの並び順に検索されます",
"lyricFetchProvider_description": "歌詞を取得するプロバイダーを選択します",
"globalMediaHotkeys_description": "システムのメディアホットキーでの再生コントロールを有効/無効化します",
"customFontPath": "カスタムフォントパス",
"followLyric": "歌詞を再生位置に追従",
@@ -170,7 +173,6 @@
"hotkey_rate0": "評価をクリア",
"discordApplicationId": "{{discord}} アプリケーション ID",
"applicationHotkeys_description": "アプリケーションのホットキーを設定します。チェックボックスを切り替えて、グローバルホットキーとして設定します (デスクトップのみ)",
"floatingQueueArea_description": "画面右側に、再生キューをフローティング表示するためのホバーアイコンが表示されます",
"hotkey_volumeMute": "音量をミュート",
"hotkey_toggleCurrentSongFavorite": "$t(common.currentSong) をお気に入り登録/解除",
"remoteUsername": "リモートコントロールサーバーのユーザー名",
@@ -190,7 +192,7 @@
"savePlayQueue_description": "アプリケーション終了時に再生キューを保存し、アプリケーション開始時に復元します",
"useSystemTheme": "システムテーマを使用",
"webAudio": "Web Audio を使用する",
"mediaSession_description": "Windows Media Session の統合を有効にし、システムボリュームオーバーレイとロック画面にメディアコントロールとメタデータを表示します (Windows のみ)",
"mediaSession_description": "Media Session の統合を有効にし、システムボリュームオーバーレイとロック画面にメディアコントロールとメタデータを表示します",
"mediaSession": "Media Session を有効にする",
"startMinimized_description": "システムトレイでアプリケーションを起動する",
"startMinimized": "最小化して起動する",
@@ -205,15 +207,13 @@
"volumeWidth_description": "音量スライダーの幅",
"volumeWidth": "音量スライダーの幅",
"webAudio_description": "Web Audio を使用します。これにより、リプレイゲインなどの高度な機能が有効になります。それ以外の場合は無効にしてください",
"playerAlbumArtResolution_description": "大画面プレーヤーのアルバムアートプレビューの解像度。解像度が高いほど鮮明になりますが、読み込みが遅くなる可能性があります。デフォルトは 0 (自動設定) です",
"mpvExtraParameters_help": "1 行に 1 つずつ",
"musicbrainz_description": "MusicBrainz ID が存在するアーティスト/アルバムページに MusicBrainz へのリンクを表示します",
"musicbrainz": "MusicBrainz リンクを表示する",
"neteaseTranslation_description": "有効にすると、利用可能な場合は NetEase から翻訳された歌詞を取得して表示します",
"neteaseTranslation": "NetEase 翻訳歌詞を有効にする",
"passwordStore_description": "使用するパスワード/シークレットストア。パスワードの保存に問題がある場合はこれを変更してください",
"passwordStore": "パスワード/シークレットストア",
"playerAlbumArtResolution": "プレーヤーのアルバムアートの解像度",
"passwordStore_description": "使用するパスワード / シークレットストア。パスワードの保存に問題がある場合はこれを変更してください",
"passwordStore": "パスワード / シークレットストア",
"playerbarOpenDrawer_description": "プレーヤーバーをクリックすると全画面プレーヤーが開きます",
"preferLocalLyrics_description": "利用可能な場合は、リモート歌詞よりもローカル歌詞を優先します",
"preferLocalLyrics": "ローカル歌詞を優先する",
@@ -225,18 +225,15 @@
"imageAspectRatio": "ネイティブのカバーアートの縦横比を使用する",
"language": "言語",
"imageAspectRatio_description": "有効にすると、カバーアートはネイティブの縦横比で表示されます。縦横比が 1:1 でない場合、残りのスペースは空白になります",
"lastfm_description": "アーティスト/アルバムページに Last.fm へのリンクを表示す",
"lastfm_description": "アーティスト/アルバムページに Last.fm へのリンクを表示します",
"lastfm": "Last.fm リンクを表示する",
"lastfmApiKey": "{{lastfm}} API キー",
"homeConfiguration_description": "ホーム画面に表示する項目と表示順序を設定します",
"homeConfiguration": "ホーム画面の設定",
"externalLinks": "外部リンクを表示する",
"externalLinks_description": "アーティスト/アルバムページで外部リンク (Last.fm、MusicBrainz) を表示できるようにします",
"doubleClickBehavior_description": "true の場合、トラック検索で一致するすべてのトラックがキューに入ります。そうでない場合は、クリックされたトラックのみがキューに入ります",
"enableAutoTranslation": "自動翻訳を有効にする",
"enableAutoTranslation_description": "歌詞が読み込まれたときに自動的に翻訳を有効にします",
"genreBehavior_description": "ジャンルをクリックした際に、デフォルトでトラックリストまたはアルバムリストのどちらを開くか決定します",
"genreBehavior": "ジャンルページのデフォルトの動作",
"albumBackground_description": "アルバムアートを含むアルバムページに背景画像を追加します",
"albumBackground": "アルバムの背景画像",
"albumBackgroundBlur": "アルバムの背景画像のぼかしサイズ",
@@ -262,7 +259,7 @@
"customCssEnable_description": "カスタム CSS の記述を許可します",
"customCssEnable": "カスタム CSS を有効にする",
"customCssNotice": "警告: ある程度のサニタイズ (url() と content: の禁止) はありますが、カスタム CSS を使用するとインターフェースの変更によりリスクが生じる可能性があります",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionBeta": "ベータ",
"releaseChannel_optionLatest": "最新",
"releaseChannel": "リリースチャンネル",
"releaseChannel_description": "自動更新のために安定版リリースまたはベータ版リリースを選択してください",
@@ -297,38 +294,112 @@
"discordPausedStatus_description": "有効にすると、プレーヤーが一時停止されているときにもステータスを表示します",
"discordDisplayType_description": "ステータスで聴いている内容を変更します",
"discordLinkType": "{{discord}} Presence リンク",
"doubleClickBehavior": "ダブルクリック時に検索した全トラックをキューに追加する",
"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": "接頭辞を追加"
},
"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": "次",
"downloadStarted": "{{count}} 曲のダウンロードを開始しました",
"moveItems": "曲を移動",
"shuffle": "シャッフル",
"shuffleAll": "すべてシャッフル",
"shuffleSelected": "選択した曲をシャッフル",
"viewMore": "さらに表示",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) を作成",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) を削除",
"selectAll": "すべて選択",
"moveUp": "上に移動",
"moveDown": "下に移動",
"holdToMoveToTop": "押し続けると一番上に移動します",
"holdToMoveToBottom": "押し続けると一番下に移動します",
"openApplicationDirectory": "アプリケーションディレクトリを開く",
"selectRangeOfItems": "項目の範囲を選択",
"addOrRemoveFromSelection": "選択に追加または削除"
},
"common": {
"backward": "戻る",
@@ -343,7 +414,7 @@
"left": "左側",
"save": "保存",
"right": "右側",
"currentSong": "現在の $t(entity.track_one)",
"currentSong": "現在の $t(entity.track, {\"count\": 1})",
"collapse": "折りたたみ",
"trackNumber": "トラック",
"descending": "降順",
@@ -373,7 +444,7 @@
"delete": "削除",
"cancel": "キャンセル",
"forceRestartRequired": "変更を適用するために再起動が必要です… 通知を閉じると再起動します",
"setting": "設定",
"setting_other": "設定",
"version": "バージョン",
"title": "タイトル",
"filter_other": "フィルタ",
@@ -394,7 +465,7 @@
"none": "なし",
"menu": "メニュー",
"restartRequired": "再起動が必要です",
"previousSong": "前の $t(entity.track_one)",
"previousSong": "前の $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "条件にマッチするものがありません",
"quit": "終了",
"expand": "展開",
@@ -427,14 +498,31 @@
"explicit": "明示的",
"albumGain": "アルバムゲイン",
"albumPeak": "アルバムピーク",
"releaseType": "リリースタイプ"
"releaseType": "リリースタイプ",
"doNotShowAgain": "再度表示しない",
"externalLinks": "外部リンク",
"sort": "分類",
"gridRows": "グリッド行",
"countSelected": "{{count}} 個選択されました",
"view": "表示",
"noFilters": "フィルターが設定されていません",
"retry": "再試行",
"itemsMore": "{{count}} 個以上",
"faster": "より速く",
"slower": "より遅く",
"example": "例",
"mood": "気分",
"recordLabel": "レコードレーベル",
"tableColumns": "テーブル列",
"clean": "クリーン",
"filter_single": "シングル",
"filter_multiple": "複数枚組",
"rename": "名前を変更"
},
"table": {
"config": {
"view": {
"card": "カード",
"table": "テーブル",
"poster": "ポスター",
"grid": "グリッド",
"list": "リスト"
},
@@ -446,37 +534,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 +595,7 @@
"rating": "評価",
"favorite": "お気に入り",
"playCount": "再生回数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年",
"lastPlayed": "最後に再生",
"biography": "バイオグラフィー",
@@ -493,17 +603,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 +630,25 @@
"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": "レンダラーとメインプロセスの設定に矛盾が見つかりました。変更を適用するにはアプリケーションを再起動してください"
},
"filter": {
"mostPlayed": "最も多く再生",
@@ -545,12 +663,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 +676,7 @@
"disc": "ディスク",
"biography": "バイオグラフィー",
"songCount": "曲数",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "長さ",
"random": "ランダム",
"lastPlayed": "最後に再生",
@@ -569,29 +687,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,7 +741,7 @@
"appMenu": {
"selectServer": "サーバーを選択",
"version": "バージョン {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "サーバーの管理",
"expandSidebar": "サイドバーを展開",
"collapseSidebar": "サイドバーを折りたたむ",
@@ -628,7 +750,11 @@
"goBack": "戻る",
"goForward": "進む",
"privateModeOff": "プライベートモードをオフにする",
"privateModeOn": "プライベートモードをオンにする"
"privateModeOn": "プライベートモードをオンにする",
"selectMusicFolder": "音楽フォルダーを選択",
"noMusicFolder": "音楽フォルダーが選択されていません",
"commandPalette": "コマンドパレットを開く",
"multipleMusicFolders": "{{count}} 個の音楽フォルダーが選択されました"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -651,10 +777,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,11 +790,12 @@
"title": "$t(common.home)",
"explore": "ライブラリから検索",
"recentlyPlayed": "最近の再生",
"recentlyReleased": "最近のリリース"
"recentlyReleased": "最近のリリース",
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) の他の項目",
"moreFromGeneric": "{{item}} の他の項目",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) の他の項目",
"moreFromGeneric": "{{item}} の他の作品",
"released": "リリース"
},
"setting": {
@@ -674,20 +803,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 +845,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}} について",
@@ -713,8 +860,10 @@
"topSongs": "人気曲",
"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": "主なリリースタイプ"
},
"manageServers": {
"title": "サーバーの管理",
@@ -731,20 +880,37 @@
},
"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": "コレクションとして保存"
}
},
"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 +922,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 +946,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": "ダウンロードを許可",
@@ -801,6 +975,36 @@
"enabled": "プライベートモードが有効になりました。再生ステータスは外部連携から非表示になっています",
"disabled": "プライベートモードが無効になりました。再生ステータスは有効になっている外部連携に表示されています",
"title": "プライベートモード"
},
"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": {
@@ -808,20 +1012,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 つのファイルのみ選択してください",
@@ -834,7 +1040,7 @@
"ep": "EP",
"other": "その他",
"single": "シングル",
"album": "$t(entity.album_one)"
"album": "$t(entity.album, {\"count\": 1})"
},
"secondary": {
"audiobook": "オーディオブック",
@@ -844,5 +1050,39 @@
"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": "ビジュアライザーの種類"
}
}
+70 -43
View File
@@ -1,27 +1,43 @@
{
"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) 편집기 펼치기"
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) 편집기 펼치기",
"addOrRemoveFromSelection": "선택항목에서 추가 또는 제거",
"selectRangeOfItems": "항목의 범위 선택",
"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": "앱 디렉토리 열기"
},
"common": {
"translation": "번역",
@@ -43,7 +59,7 @@
"backward": "뒤로",
"saveAs": "(으)로 저장하기",
"search": "검색",
"setting": "설정",
"setting_other": "설정",
"share": "공유",
"size": "크기",
"sortOrder": "순서",
@@ -58,7 +74,7 @@
"comingSoon": "조만간…",
"configure": "설정",
"confirm": "확인",
"currentSong": "현재 $t(entity.track_one)",
"currentSong": "현재 $t(entity.track, {\"count\": 1})",
"decrease": "감소",
"delete": "삭제",
"descending": "내림차순",
@@ -80,7 +96,7 @@
"path": "경로",
"playerMustBePaused": "플레이어가 일시정지 되어야 합니다",
"preview": "미리보기",
"previousSong": "이전곡 $t(entity.track_one)",
"previousSong": "이전곡 $t(entity.track, {\"count\": 1})",
"quit": "종료",
"refresh": "새로고침",
"reload": "리로드",
@@ -122,7 +138,18 @@
"recordLabel": "레이블",
"releaseType": "발매형태",
"explicit": "성인컨텐츠",
"clean": "클린"
"clean": "클린",
"countSelected": "{{count}}개 선택됨",
"doNotShowAgain": "다시 보지 않기",
"view": "보기",
"externalLinks": "외부 링크",
"faster": "빠르게",
"noFilters": "필터 미설정",
"slower": "천천히",
"sort": "정렬",
"gridRows": "행 그리드",
"tableColumns": "테이블 열",
"itemsMore": "{{count}}개 더"
},
"entity": {
"albumWithCount_other": "{{count}} 앨범",
@@ -141,8 +168,10 @@
"song_other": "곡",
"play_other": "{{count}} 재생",
"playlistWithCount_other": "{{count}} 재생목록",
"smartPlaylist": "스마트 $t(entity.playlist_one)",
"track_other": "트랙"
"smartPlaylist": "스마트 $t(entity.playlist, {\"count\": 1})",
"track_other": "트랙",
"radioStation_other": "라디오 방송국",
"radioStationWithCount_other": "{{count}}개 라디오 방송국"
},
"error": {
"systemFontError": "시스템 폰트를 가져오는데 실패하였습니다",
@@ -185,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": "디스크",
@@ -196,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": "즐겨찾기 여부",
@@ -233,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": "모두 일치",
@@ -250,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": "다운로드 허용",
@@ -269,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": "프라이빗 모드가 활성화되었습니다. 재생상태가 외부 서비스에 지금부터 노출되지 않습니다",
@@ -333,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": {
@@ -342,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": "발매"
},
@@ -360,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": {
@@ -396,7 +425,7 @@
"sidebar": {
"myLibrary": "내 라이브러리",
"nowPlaying": "재생중",
"shared": "공유 $t(entity.playlist_other)"
"shared": "공유 $t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"artistTracks": "{{artist}}의 음악"
@@ -409,8 +438,6 @@
"dateAdded": "추가된 날짜"
},
"view": {
"card": "카드",
"poster": "포스터",
"table": "표"
}
}
+51 -52
View File
@@ -5,22 +5,22 @@
"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)",
"removeFromPlaylist": "fjern fra $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "vise $t(entity.playlist, {\"count\": 2})",
"toggleSmartPlaylistEditor": "bytt $t(entity.smartPlaylist) editor"
},
"common": {
@@ -31,7 +31,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",
@@ -69,7 +69,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 +87,8 @@
"share": "del",
"quit": "avslutt",
"size": "størrelse",
"setting": "innstilling",
"setting_one": "innstilling",
"setting_other": "",
"trackNumber": "spor",
"title": "tittel",
"channel_one": "kanal",
@@ -121,7 +122,7 @@
"sampleRate": "samplingsfrekvens"
},
"entity": {
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_other": "album",
"albumArtist_one": "albumartist",
@@ -189,10 +190,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",
@@ -223,21 +224,21 @@
"isFavorited": "er merket som favoritt",
"recentlyAdded": "nylig lagt til",
"channels": "$t(common.channel_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"trackNumber": "spor",
"albumCount": "$t(entity.album_other) opptelling"
"albumCount": "$t(entity.album, {\"count\": 2}) opptelling"
},
"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"
},
@@ -256,18 +257,18 @@
},
"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",
@@ -296,7 +297,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 +330,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 +373,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 +406,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 +433,7 @@
"windowTab": "vindu"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"playlist": {
"reorder": "omorganisering kun mulig ved sortering på id"
@@ -494,10 +495,8 @@
},
"view": {
"table": "tabell",
"card": "kort",
"grid": "rutenett",
"list": "liste",
"poster": "plakat"
"list": "liste"
},
"general": {
"autoFitColumns": "automatisk kolonnetilpasning",
+953 -66
View File
File diff suppressed because it is too large Load Diff
+652 -134
View File
File diff suppressed because it is too large Load Diff
+66 -73
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",
@@ -259,16 +260,12 @@
"discordLinkType_description": "Adiciona links externos para {{lastfm}} ou {{musicbrainz}} aos campos de música e artista no Rich Presence do {{discord}}. {{musicbrainz}} é o mais preciso, mas requer tags e não fornece links de artistas, enquanto {{lastfm}} deve sempre fornecer um link. Não realiza requisições de rede adicionais",
"discordLinkType_none": "$t(common.none)",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} com alternativa para {{lastfm}}",
"doubleClickBehavior": "Adicionar todas as faixas pesquisadas à fila ao clicar duas vezes",
"doubleClickBehavior_description": "Se verdadeiro, todas as faixas correspondentes em uma pesquisa serão adicionadas à fila. Caso contrário, apenas a faixa clicada será adicionada",
"enableRemote": "Ativar servidor de controle remoto",
"enableRemote_description": "Ativa o servidor de controle remoto para permitir que outros dispositivos controlem o aplicativo",
"externalLinks": "Mostrar links externos",
"externalLinks_description": "Ativa a exibição de links externos (Last.fm, MusicBrainz) nas páginas de artista/álbum",
"exitToTray": "Minimizar para a bandeja",
"exitToTray_description": "Fechar o aplicativo para a bandeja do sistema",
"floatingQueueArea": "Exibir painel flutuante da fila",
"floatingQueueArea_description": "Exibir um ícone flutuante no lado direito da tela para visualizar a fila de reprodução",
"followLyric": "Seguir a letra atual",
"followLyric_description": "Mover a letra até o ponto atual da música",
"preferLocalLyrics": "Preferir letras locais",
@@ -283,8 +280,6 @@
"gaplessAudio": "Áudio sem intervalos",
"gaplessAudio_description": "Define a configuração de áudio sem intervalos para o MPV",
"gaplessAudio_optionWeak": "Fraco (recomendado)",
"genreBehavior": "Comportamento padrão da página de gênero",
"genreBehavior_description": "Determina se ao clicar em um gênero ele é aberto por padrão na lista de faixas ou de álbuns",
"globalMediaHotkeys": "Teclas de atalho globais de mídia",
"globalMediaHotkeys_description": "Ativar ou desativar o uso das teclas de atalho de mídia do sistema para controlar a reprodução",
"homeConfiguration": "Configuração da página inicial",
@@ -362,8 +357,6 @@
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playerAlbumArtResolution": "resolução da capa do álbum no reprodutor",
"playerAlbumArtResolution_description": "a resolução da pré-visualização da capa do álbum no reprodutor grande. Resoluções maiores deixam a imagem mais nítida, mas podem diminuir a velocidade de carregamento. O padrão é 0, ou seja, automático",
"playerbarOpenDrawer": "alternar tela cheia na barra do reprodutor",
"playerbarOpenDrawer_description": "permite clicar na barra do reprodutor para abrir o reprodutor em tela cheia",
"remotePassword": "Senha do servidor de controle remoto",
@@ -378,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)",
@@ -389,6 +382,8 @@
"savePlayQueue_description": "Salvar a fila de reprodução ao fechar a aplicação e restaurá-la ao abrir a aplicação",
"scrobble": "Scrobblar",
"scrobble_description": "Scrobblar reproduções para o seu servidor de mídia",
"showRatings": "exibir avaliações por estrelas",
"showRatings_description": "exibir ou ocultar as avaliações por estrelas",
"showSkipButton": "Exibir botões de pular",
"showSkipButton_description": "Exibir ou ocultar os botões de pular na barra do reprodutor",
"showSkipButtons": "Exibir botões de pular",
@@ -454,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)",
@@ -465,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)",
@@ -475,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)"
},
@@ -490,10 +485,8 @@
"tableColumns": "Colunas da tabela"
},
"view": {
"card": "Cartão",
"grid": "Grade",
"list": "Lista",
"poster": "Poster",
"table": "Tabela"
}
},
@@ -503,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",
@@ -513,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"
}
},
@@ -534,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",
@@ -556,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",
@@ -587,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"
},
@@ -614,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",
@@ -652,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"
},
@@ -684,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",
@@ -703,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",
@@ -711,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",
@@ -721,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",
@@ -803,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",
+289 -90
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,20 +212,24 @@
"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": {
"view": {
"card": "карточки",
"table": "таблица",
"poster": "постер"
"table": "таблица"
},
"general": {
"displayType": "тип отображения",
@@ -210,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)",
@@ -220,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": {
@@ -237,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)",
@@ -249,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"
@@ -280,7 +324,12 @@
"badAlbum": "вы видите эту страницу из-за того, что эта песня не входит в альбом. скорее всего, вы видите эту ошибку, так как песня находится в корневой директории папки с музыкой. Jellyfin группирует треки только по папкам",
"networkError": "возникла ошибка сети",
"badValue": "Недопустимый параметр «{{value}}». Это значение больше не существует",
"notificationDenied": "Доступ к уведомлениям запрещен. Настройка не работает"
"notificationDenied": "Доступ к уведомлениям запрещен. Настройка не работает",
"multipleServerSaveQueueError": "в очереди воспроизведения присутствует одна или несколько песен, которые не загружены с текущего сервера. это не поддерживается",
"noNetwork": "сервер недоступен",
"noNetworkDescription": "Не удалось подключиться к серверу",
"saveQueueFailed": "Не удалось сохранить очередь",
"settingsSyncError": "обнаружены несоответствия между настройками рендерера и основным процессом. перезапустите приложение, чтобы изменения вступили в силу"
},
"filter": {
"isCompilation": "сборник",
@@ -289,12 +338,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": "рейтинг критиков",
@@ -308,12 +357,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": "год выхода",
@@ -323,7 +372,7 @@
"random": "случайно",
"lastPlayed": "последний раз проигрывалась",
"toYear": "до года",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "трек"
},
"player": {
@@ -354,26 +403,35 @@
"queue_moveToTop": "переместить выделенное вниз",
"queue_moveToBottom": "переместить выделенное вверх",
"shuffle_off": "перемешивание выключено",
"addLast": "воспроизвести после всех",
"addLast": "последний",
"mute": "отключить звук",
"skip_forward": "вперёд",
"viewQueue": "показать очередь"
"viewQueue": "показать очередь",
"addLastShuffled": "последний (смешанный)",
"addNextShuffled": "следующий (смешанный)",
"artistRadio": "Радио артист",
"holdToShuffle": "удержать для смешивания",
"lyrics": "тексты песен",
"restoreQueueFromServer": "восстановить очередь с сервера",
"saveQueueToServer": "сохранить очередь на сервер",
"trackRadio": "трек радио"
},
"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": "коллекции"
},
"fullscreenPlayer": {
"config": {
@@ -401,7 +459,7 @@
"appMenu": {
"selectServer": "список серверов",
"version": "версия {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "редактировать список серверов",
"expandSidebar": "развернуть боковую панель",
"collapseSidebar": "Скрыть боковую панель",
@@ -410,7 +468,11 @@
"goBack": "назад",
"goForward": "вперёд",
"privateModeOff": "Выключить приватный режим",
"privateModeOn": "Включить приватный режим"
"privateModeOn": "Включить приватный режим",
"selectMusicFolder": "выбрать папку с музыкой",
"noMusicFolder": "папка с музыкой не выбрана",
"multipleMusicFolders": "{{count}} выбрано музыкальных папок",
"commandPalette": "открыть командную строку"
},
"manageServers": {
"title": "сервера",
@@ -440,8 +502,9 @@
"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": "перейти в"
},
"home": {
"mostPlayed": "слушают чаще всего",
@@ -452,7 +515,7 @@
"recentlyReleased": "Новинки"
},
"albumDetail": {
"moreFromArtist": "больше от $t(entity.artist_one)",
"moreFromArtist": "больше от $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "больше из {{item}}",
"released": "выпущен"
},
@@ -461,19 +524,35 @@
"generalTab": "общее",
"hotkeysTab": "горячие клавиши",
"windowTab": "окно",
"advanced": "расширенные"
"advanced": "расширенные",
"analytics": "аналитика",
"updates": "обновить",
"cache": "кэш",
"application": "приложение",
"theme": "тема",
"controls": "элементы управления",
"sidebar": "боковая панель",
"remote": "удаленный",
"exportImport": "импорт/экспорт",
"audio": "аудио",
"lyrics": "тексты песен",
"lyricsDisplay": "отображение текстов песен",
"transcoding": "транскодирование",
"scrobble": "скробблер",
"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)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "Треки {{artist}}"
},
"globalSearch": {
@@ -488,42 +567,53 @@
"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": "основные типы выпусков"
},
"itemDetail": {
"copyPath": "скопировать путь в буфер обмена",
"openFile": "открыть трек в менеджере файлов",
"copiedPath": "путь успешно скопирован"
},
"radioList": {
"title": "радиостанции"
},
"windowBar": {
"privateMode": "(Режим приватности)"
},
"collections": {
"saveAsCollection": "сохранить коллекцией"
}
},
"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": {
@@ -539,13 +629,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": "обновление сервера",
@@ -554,17 +649,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": "ссылка скопирована в буфер обмена (нажмите здесь, чтобы открыть)",
@@ -578,6 +678,35 @@
"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": "только игранные треки"
}
},
"setting": {
@@ -598,7 +727,6 @@
"disableLibraryUpdateOnStartup": "отключить проверку новых версий при запуске приложения",
"minimizeToTray_description": "сворачивать приложение в панель уведомлений",
"audioPlayer_description": "укажите, какой аудиоплеер использовать для воспроизведения",
"disableAutomaticUpdates": "отключить проверку обновлений",
"exitToTray_description": "При закрытии приложения - оно останется в панели уведомлений",
"fontType_optionCustom": "пользовательский",
"remotePassword": "пароль к серверу удалённого управления",
@@ -631,12 +759,11 @@
"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) в избранное",
"genreBehavior": "поведения страницы жанров",
"globalMediaHotkeys": "глобальные мультимедийные горячие клавиши",
"hotkey_browserForward": "кнопка браузера \"вперёд\"",
"hotkey_favoritePreviousSong": "добавить $t(common.previousSong) в избранное",
@@ -673,7 +800,6 @@
"playButtonBehavior": "поведение кнопки воспроизведения",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playerAlbumArtResolution_description": "разрешение большой версии обложки альбома в проигрывателе. при большем разрешении она выглядит более четкой, но может замедлить загрузку. по умолчанию равно 0 - устанавливает разрешение автоматически",
"playerbarOpenDrawer": "полноэкранный переключатель по панели проигрывателя",
"playerbarOpenDrawer_description": "позволяет перейти в полноэкранный режим воспроизведения нажатием на панель проигрывателя",
"remotePort": "порт сервера удалённого управления",
@@ -705,8 +831,6 @@
"useSystemTheme_description": "использует тему, заданную в системе (светлую/тёмную)",
"zoom": "процент масштабирования",
"zoom_description": "устанавливает процент масштабирования приложения",
"floatingQueueArea": "показать область наведения для всплывающей очереди",
"genreBehavior_description": "определяет, что отобразится при открытии на жанр — список треков или альбомов",
"globalMediaHotkeys_description": "включить или отключить использование системных мультимедийных горячих клавиш для управления воспроизведением",
"homeConfiguration_description": "позволяет настроить видимость и порядок элементов на домашней странице",
"homeFeature": "улучшенная карусель на главной",
@@ -716,7 +840,6 @@
"imageAspectRatio_description": "если эта опция включена, обложки будут отображаться в соответствии с их собственным соотношением сторон. для обложек не 1:1 оставшееся пространство будет пустым",
"minimumScrobblePercentage": "минимальное время для скробблинга (в процентах)",
"playbackStyle": "стиль воспроизведения",
"playerAlbumArtResolution": "разрешение обложки альбома",
"remotePassword_description": "задает пароль для сервера удалённого управления. По умолчанию эти учетные данные передаются небезопасным способом, поэтому следует использовать уникальный пароль, который вам неважен",
"replayGainClipping_description": "Предотвращение клиппинга, вызванного {{ReplayGain}}, путём автоматического снижения усиления",
"replayGainFallback_description": "усиление в db для применения, если у файла нет тегов {{ReplayGain}}",
@@ -742,7 +865,6 @@
"customFontPath": "путь к пользовательскому шрифту",
"customFontPath_description": "укажите путь к пользовательскому шрифту, который будет использоваться в приложении",
"externalLinks_description": "включает отображение внешних ссылок (Last.fm, MusicBrainz) на страницах альбомов и артистов",
"floatingQueueArea_description": "включить отображение иконки наведения на правой части экрана, чтобы показать очередь воспроизведения",
"followLyric_description": "прокручивать текст трека до текущей позиции воспроизведения",
"language_description": "устанавливает язык приложения ($t(common.restartRequired))",
"lyricFetch_description": "получать тексты треков из различных интернет-источников",
@@ -770,8 +892,6 @@
"discordIdleStatus_description": "если включено, то обновляет статус, когда пользователь бездействует",
"discordUpdateInterval": "интервал обновления статуса профиля {{discord}}",
"discordUpdateInterval_description": "время в секундах между каждым обновлением (минимум 15 секунд)",
"doubleClickBehavior": "добавить в очередь все найденные треки при двойном клике",
"doubleClickBehavior_description": "есть включено: все найденные в поиске треки будут добавлены в очередь при двойном клике (иначе - только выбранный)",
"lyricOffset_description": "Смещение появления текста треков на указанное количество миллисекунд",
"skipPlaylistPage": "пропускать страницу плейлиста",
"applicationHotkeys_description": "настройка горячих клавиш приложения. поставьте галочку, чтобы сделать горячую клавишу глобальной (только для ПК)",
@@ -785,7 +905,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": {
@@ -794,10 +935,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 -74
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}})",
@@ -557,16 +559,12 @@
"discordDisplayType_description": "mení vo vašom statuse info, čo počúvate",
"discordDisplayType_songname": "názov skladby",
"discordDisplayType_artistname": "názov interpreta(-ov)",
"doubleClickBehavior": "po dvojkliku zaradí do fronty všetky vyhľadané skladby",
"doubleClickBehavior_description": "ak je povolené, všetky nájdené skladby budú zaradené do fronty. inak budú skladby zaradené iba po kliknutí",
"enableRemote": "povoliť vzdialené ovládanie servera",
"enableRemote_description": "pomocou vzdialeného servera umožňuje ovládanie aplikácie prostredníctvom iných zariadení",
"externalLinks": "zobraziť externé odkazy",
"externalLinks_description": "umožňuje zobrazovať externé odkazy (Last.fm, MusicBrainz) na stránkach umelca/albumu",
"exitToTray": "ukončiť do lišty",
"exitToTray_description": "po zavretí sa aplikácia minimalizuje do lišty a beží ďalej",
"floatingQueueArea": "zobraziť ikonu výsuvnej fronty prehrávania",
"floatingQueueArea_description": "zobraziť ikonu výsuvnej fronty prehrávania na pravej strane obrazovky",
"followLyric": "nasleduj aktuálny text skladby",
"followLyric_description": "posunúť sa v texte skladby na aktuálne prehrávanú pozíciu",
"preferLocalLyrics": "uprednostniť lokálne texty skladieb",
@@ -581,8 +579,6 @@
"gaplessAudio": "prehrávanie bez prerušení",
"gaplessAudio_description": "nastaví prehrávanie bez prerušení pre mpv",
"gaplessAudio_optionWeak": "slabo (odporúčané)",
"genreBehavior": "predvolené správanie stránky žánru",
"genreBehavior_description": "určuje, či kliknutie na žáner otvorí zoznam skladieb alebo zoznam albumov",
"globalMediaHotkeys": "globálne klávesové skratky médií",
"globalMediaHotkeys_description": "povoliť alebo zakázať použitie vašich klávesových skratiek médií na ovládanie prehrávania",
"homeConfiguration": "konfigurácia domovskej stránky",
@@ -660,8 +656,6 @@
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playerAlbumArtResolution": "rozlíšenie obrázka albumu",
"playerAlbumArtResolution_description": "rozlíšenie zobrazenia náhľadu veľkých obrázkov albumov. pri väčšom rozlíšení budú krajšie, ale môže sa spomaliť ich načítavanie. predvolené je 0, čo znamená automatické",
"playerbarOpenDrawer": "zobrazenie na celú obrazovku panelom prehrávača",
"playerbarOpenDrawer_description": "umožní kliknutím na panel prehrávača prepnúť zobrazenie prehrávača na celú obrazovku",
"remotePassword": "heslo servera vzdialeného ovládania",
@@ -676,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",
@@ -747,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",
@@ -758,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í",
@@ -766,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"
},
@@ -783,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)",
@@ -795,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)",
@@ -805,17 +799,15 @@
"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",
"year": "$t(common.year)"
},
"view": {
"card": "karta",
"grid": "mriežka",
"list": "zoznam",
"poster": "plagát",
"table": "tabuľka"
}
}
+52 -56
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}})",
@@ -560,16 +562,12 @@
"discordServeImage_description": "deli naslovne slike za {{discord}} bogato prisotnost iz samega strežnika, na voljo samo za Jellyfin in Navidrome",
"discordUpdateInterval": "interval posodabljanja {{discord}} bogate prezence",
"discordUpdateInterval_description": "čas v sekundah med posameznimi posodobitvami (najmanj 15 sekund)",
"doubleClickBehavior": "dvojni klik doda vse iskane skladbe v čakalno vrsto",
"doubleClickBehavior_description": "če je nastavitev vklopljena se bodo v čakalno vrsto dodale vse skladbe, ki ustrezajo iskanju. v nasprotnem primeru se v čakalno vrsto doda samo izbrana skladba",
"enableRemote": "omogoči oddaljeno upravljanje strežnika",
"enableRemote_description": "omogoči oddaljeno nadzorovanje strežnika in s tem dovoli drugim napravam da upravljajo aplikacijo",
"externalLinks": "prikaži zunanje povezave",
"externalLinks_description": "omogoči prikaz zunanjih povezav (Last.fm, MusicBrainz) na straneh albumov,izvajalcev",
"exitToTray": "minimiziraj",
"exitToTray_description": "ob izhodu se aplikacija minimizira v opravilno vrstico",
"floatingQueueArea": "prikaži območje plavajoče čakalne vrste",
"floatingQueueArea_description": "na desni strani zaslona prikažite ikono za ogled čakalne vrste predvajanja",
"followLyric": "sledenje besedilu",
"followLyric_description": "pomaknite besedilo pesmi do trenutnega položaja predvajanja",
"preferLocalLyrics": "prioritiziraj lokalna besedila",
@@ -584,8 +582,6 @@
"gaplessAudio": "neprekinjen avdio",
"gaplessAudio_description": "nastavi neprekinjen avdio za mpv",
"gaplessAudio_optionWeak": "šibko (priporočeno)",
"genreBehavior": "privzeto vedenje strani z zvrstmi",
"genreBehavior_description": "določa, ali se ob kliku na zvrst privzeto odpre seznam skladb ali albumov",
"globalMediaHotkeys": "globalne bližnjične tipke za vsebino",
"globalMediaHotkeys_description": "omogočite ali onemogočite uporabo bližnjic za sistemske medije za nadzor predvajanja",
"homeConfiguration": "konfiguracija domače strani",
+55 -58
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",
@@ -142,7 +141,6 @@
"replayGainMode": "{{ReplayGain}} režim",
"playbackStyle_optionNormal": "normalno",
"windowBarStyle": "stil trake prozora",
"floatingQueueArea": "prikaži područje plutajuće liste za reprodukciju",
"replayGainFallback_description": "jačina u dB koja će se primeniti ako datoteka nema {{ReplayGain}} oznake",
"replayGainPreamp_description": "prilagođava pojačalo za {{ReplayGain}} vrednosti",
"hotkey_toggleRepeat": "promeni ponavljanje",
@@ -168,7 +166,6 @@
"hotkey_rate0": "obrisati ocenu",
"discordApplicationId": "{{discord}} ID aplikacije",
"applicationHotkeys_description": "konfiguriši prečice za aplikaciju. uključite opciju za postavljanje kao globalne prečice (samo na radnoj površini)",
"floatingQueueArea_description": "prikaz ikone na desnoj strani ekrana za pregled liste za reprodukciju",
"hotkey_volumeMute": "isključi zvuk",
"hotkey_toggleCurrentSongFavorite": "promeni omiljenu pesmu $t(common.currentSong)",
"remoteUsername": "korisničko ime za daljinsku kontrolu servera",
@@ -189,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"
@@ -224,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",
@@ -254,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",
@@ -281,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",
@@ -297,9 +296,7 @@
"table": {
"config": {
"view": {
"card": "kartica",
"table": "tabela",
"poster": "poster"
"table": "tabela"
},
"general": {
"displayType": "tip prikaza",
@@ -320,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)",
@@ -330,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": {
@@ -343,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",
@@ -352,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",
@@ -398,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",
@@ -417,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",
@@ -425,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": {
@@ -463,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",
@@ -498,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": {
@@ -508,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": {
@@ -525,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": {
@@ -559,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",
@@ -574,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": {
@@ -618,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",
+171 -35
View File
@@ -1,22 +1,43 @@
{
"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",
"moveDown": "flytta ner",
"holdToMoveToTop": "håll för att flytta till toppen",
"holdToMoveToBottom": "håll för att flytta till botten",
"moveItems": "flytta objekt",
"shuffle": "slumpa",
"shuffleAll": "slumpa alla",
"shuffleSelected": "slumpa valda",
"viewMore": "visa mer",
"openIn": {
"lastfm": "Öppna i Last.fm",
"musicbrainz": "Öppna i MusicBrainz"
},
"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",
"openApplicationDirectory": "öppna applikationskatalog"
},
"common": {
"backward": "bakåt",
@@ -31,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",
@@ -60,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",
@@ -84,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",
@@ -96,7 +118,38 @@
"size": "storlek",
"biography": "biografi",
"note": "anteckning",
"center": "center"
"center": "center",
"explicitStatus": "olämplig status",
"additionalParticipants": "ytterligare medverkare",
"newVersion": "en ny version har installerats {{version}}",
"viewReleaseNotes": "se utgåveinformation",
"bitDepth": "bitdjup",
"close": "stäng",
"codec": "kodek",
"doNotShowAgain": "visa inte detta igen",
"view": "visa",
"externalLinks": "externa länkar",
"faster": "snabbare",
"mbid": "MusicBrainz ID",
"noFilters": "inga filter konfigurerade",
"preview": "förhandsvisa",
"private": "privat",
"public": "allmän",
"recordLabel": "skivbolag",
"releaseType": "utgåvetyp",
"reload": "ladda om",
"sampleRate": "samplingstakt",
"slower": "långsammare",
"share": "dela",
"sort": "sortera",
"tags": "taggar",
"translation": "översättning",
"explicit": "olämplig",
"clean": "städad",
"gridRows": "rutnätsrader",
"tableColumns": "tabellkolumner",
"itemsMore": "{{count}} fler",
"countSelected": "{{count}} markerade"
},
"error": {
"remotePortWarning": "starta om servern för att tillämpa den nya porten",
@@ -117,7 +170,14 @@
"mpvRequired": "MPV krävs",
"audioDeviceFetchError": "ett fel uppstod vid hämtning av ljudenheter",
"invalidServer": "ogiltig server",
"loginRateError": "för många inloggningsförsök, försök igen om några sekunder"
"loginRateError": "för många inloggningsförsök, försök igen om några sekunder",
"badAlbum": "du ser denna sidan eftersom denna låten inte är en del av ett album. du ser troligtvis detta problemet för att du har en låt på toppnivån i din musikmapp. Jellyfin grupperar bara låtar om de finns i en mapp",
"badValue": "felaktigt alternativ \"{{value}}\". detta värde existerar inte längre",
"multipleServerSaveQueueError": "spelningskön har en eller flera låtar som inte är från den nuvarande valda servern. detta är inte stöttat",
"networkError": "en nätverksfel uppstod",
"notificationDenied": "åtkomst till notifieringarna var nekad. inställningen har ingen verkan",
"openError": "kunde inte öppna filen",
"settingsSyncError": "diskrepans hittades mellan inställningarna för renderingsprocessen och huvudprocessen. starta om applikationen för att ändringarna ska tillämpas"
},
"filter": {
"mostPlayed": "mest spelade",
@@ -133,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",
@@ -142,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",
@@ -150,30 +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"
"criticRating": "kritikerbetyg",
"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": {
@@ -187,13 +249,17 @@
"input_savePassword": "spara lösenord",
"ignoreSsl": "ignorera ssl ($t(common.restartRequired))",
"ignoreCors": "ignorera cors ($t(common.restartRequired))",
"error_savePassword": "ett fel uppstod när lösenordet skulle sparas"
"error_savePassword": "ett fel uppstod när lösenordet skulle sparas",
"input_preferInstantMix": "föredra instant mixning",
"input_preferInstantMixDescription": "använd bara instant mixning för att få liknande låtar. användbar om du har plugin för att förändra detta beteendet"
},
"addToPlaylist": {
"success": "tillade {{message}} $t(entity.track_other) til {{numOfPlaylists}} $t(entity.playlist_other)",
"title": "lägg till i $t(entity.playlist_one)",
"success": "lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "lägg till i $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "hoppa över dubbletter",
"input_playlists": "$t(entity.playlist_other)"
"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",
@@ -205,11 +271,23 @@
},
"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": {
"title": "lägg till objekt till kön",
"description": "Åtgärden kommer att lägga till alla objekt till den nuvarande filtrerade vyn"
},
"createRadioStation": {
"success": "radiostation skapades",
"title": "skapa radiostation",
"input_homepageUrl": "hemside-URL",
"input_name": "namn",
"input_streamUrl": "stream url"
}
},
"page": {
@@ -232,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",
@@ -257,17 +335,27 @@
"addFavorite": "$t(action.addToFavorites)",
"play": "$t(player.play)",
"numberSelected": "{{count}} vald",
"removeFromQueue": "$t(action.removeFromQueue)"
"removeFromQueue": "$t(action.removeFromQueue)",
"download": "ladda ner",
"moveItems": "$t(action.moveItems)",
"moveToNext": "$t(action.moveToNext)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"playShuffled": "$t(player.shuffle)",
"shareItem": "dela objekt",
"goTo": "gå till",
"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"
@@ -291,6 +379,12 @@
"searchFor": "sök efter {{query}}"
},
"title": "kommandon"
},
"manageServers": {
"url": "URL",
"username": "användarnamn",
"editServerDetailsTooltip": "redigera serverinställningar",
"removeServer": "ta bort server"
}
},
"entity": {
@@ -317,7 +411,22 @@
"track_one": "spår",
"track_other": "spår",
"trackWithCount_one": "{{count}} spår",
"trackWithCount_other": "{{count}} spår"
"trackWithCount_other": "{{count}} spår",
"artistWithCount_one": "{{count}} artist",
"artistWithCount_other": "{{count}} artister",
"genre_one": "genre",
"genre_other": "genrer",
"genreWithCount_one": "{{count}} genre",
"genreWithCount_other": "{{count}} genrer",
"play_one": "{{count}} spelning",
"play_other": "{{count}} spelningar",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"song_one": "låt",
"song_other": "låtar",
"radioStation_one": "radiostation",
"radioStation_other": "radiostationer",
"radioStationWithCount_one": "{{count}} radiostation",
"radioStationWithCount_other": "{{count}} radiostationer"
},
"player": {
"repeat_all": "repetera alla",
@@ -341,5 +450,32 @@
"queue_moveToBottom": "flytta markerad till toppen",
"addLast": "lägg till sist",
"mute": "muta"
},
"datetime": {
"minuteShort": "min",
"secondShort": "sek",
"hourShort": "h",
"dayShort": "dag"
},
"filterOperator": {
"after": "är efter",
"afterDate": "är efter (datum)",
"before": "är före",
"beforeDate": "är före (datum)",
"contains": "innehåller",
"endsWith": "slutar med",
"inPlaylist": "är inom",
"inTheLast": "är i den sista",
"inTheRange": "är i spannet",
"inTheRangeDate": "är i spannet (datum)",
"is": "är",
"isNot": "är inte",
"isGreaterThan": "är större än",
"isLessThan": "är mindre än",
"matchesRegex": "matchar regex",
"notContains": "innehåller inte",
"notInPlaylist": "är inte inom",
"notInTheLast": "är inte inom den sista",
"startsWith": "startar med"
}
}
+61 -71
View File
@@ -1,22 +1,22 @@
{
"action": {
"addToFavorites": "$t(entity.favorite_other) இல் சேர்க்கவும்",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) இல் சேர்க்கவும்",
"clearQueue": "தெளிவான வரிசை",
"goToPage": "பக்கத்திற்குச் செல்லுங்கள்",
"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) காண்க",
"addToPlaylist": "$t(entity.playlist_one)இல் சேர்க்கவும்",
"createPlaylist": "$t(entity.playlist_one)ஐ உருவாக்கவும்",
"deletePlaylist": "$t(entity.playlist_one)ஐ நீக்கு",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) காண்க",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1})இல் சேர்க்கவும்",
"createPlaylist": "$t(entity.playlist, {\"count\": 1})ஐ உருவாக்கவும்",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1})ஐ நீக்கு",
"deselectAll": "அனைத்தையும் தேர்வு செய்யுங்கள்",
"editPlaylist": "திருத்து $t(entity.playlist_one)",
"editPlaylist": "திருத்து $t(entity.playlist, {\"count\": 1})",
"moveToNext": "அடுத்து செல்லுங்கள்",
"openIn": {
"lastfm": "Last.fm இல் திறந்திருக்கும்",
@@ -33,7 +33,7 @@
"configure": "உள்ளமைக்கவும்",
"confirm": "உறுதிப்படுத்தவும்",
"create": "உருவாக்கு",
"currentSong": "தற்போதைய $t(entity.track_one)",
"currentSong": "தற்போதைய $t(entity.track, {\"count\": 1})",
"decrease": "குறைவு",
"action_one": "செயல்",
"action_other": "செயல்கள்",
@@ -87,7 +87,7 @@
"path": "பாதை",
"playerMustBePaused": "வீரர் இடைநிறுத்தப்பட வேண்டும்",
"preview": "முன்னோட்டம்",
"previousSong": "முந்தைய $t(entity.track_one)",
"previousSong": "முந்தைய $t(entity.track, {\"count\": 1})",
"quit": "வெளியேறு",
"random": "சீரற்ற",
"rating": "செயல்வரம்பு",
@@ -100,7 +100,8 @@
"save": "சேமி",
"saveAndReplace": "சேமித்து மாற்றவும்",
"search": "தேடல்",
"setting": "அமைத்தல்",
"setting_one": "அமைத்தல்",
"setting_other": "",
"share": "பங்கு",
"size": "அளவு",
"sortOrder": "ஒழுங்கு",
@@ -149,7 +150,7 @@
"play_other": "{{count}} நாடகங்கள்",
"playlistWithCount_one": "{{count}} பிளேலிச்ட்",
"playlistWithCount_other": "{{count}} பிளேலிச்ட்கள்",
"smartPlaylist": "அறிவுள்ள $t(entity.playlist_one)",
"smartPlaylist": "அறிவுள்ள $t(entity.playlist, {\"count\": 1})",
"track_one": "மின்தடம்",
"track_other": "தடங்கள்",
"song_one": "பாடல்",
@@ -184,9 +185,9 @@
"notificationDenied": "அறிவிப்புகளுக்கான அனுமதிகள் மறுக்கப்பட்டன. இந்த அமைப்பு எந்த விளைவையும் ஏற்படுத்தாது"
},
"filter": {
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "$t(entity.album_other) எண்ணிக்கை",
"artist": "$t(entity.artist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2}) எண்ணிக்கை",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "சுயசரிதை",
"bitrate": "பிட்ரேட்",
"bpm": "பிபிஎம்",
@@ -197,14 +198,14 @@
"playCount": "விளையாட்டு எண்ணிக்கை",
"random": "சீரற்ற",
"rating": "செயல்வரம்பு",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"criticRating": "விமர்சகர் மதிப்பீடு",
"dateAdded": "தேதி சேர்க்கப்பட்டது",
"disc": "வட்டு",
"duration": "காலம்",
"favorited": "பிடித்தது",
"fromYear": "ஆண்டு முதல்",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "ஐடி",
"isCompilation": "தொகுப்பு",
"isFavorited": "பிடித்தது",
@@ -242,17 +243,17 @@
"title": "சேவையகத்தைச் சேர்க்கவும்"
},
"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})ஐ நீக்கு"
},
"editPlaylist": {
"title": "திருத்து $t(entity.playlist_one)",
"title": "திருத்து $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "சில காரணங்களால் செல்லிஃபின் ஒரு பிளேலிச்ட் பொதுவில் இல்லையா என்பதை அம்பலப்படுத்தவில்லை. இது பொதுவில் இருக்க விரும்பினால், தயவுசெய்து பின்வரும் உள்ளீட்டைத் தேர்ந்தெடுக்கவும்",
"success": "$t(entity.playlist_one) வெற்றிகரமாகப் புதுப்பிக்கப்பட்டது"
"success": "$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": "பாடல் தேடல்"
},
@@ -270,18 +271,18 @@
"createFailed": "பங்கை உருவாக்கத் தவறிவிட்டது (பகிர்வு இயக்கப்பட்டதா?)"
},
"createPlaylist": {
"success": "$t(entity.playlist_one) வெற்றிகரமாக உருவாக்கப்பட்டது",
"title": "$t(entity.playlist_one) ஐ உருவாக்கவும்",
"success": "$t(entity.playlist, {\"count\": 1}) வெற்றிகரமாக உருவாக்கப்பட்டது",
"title": "$t(entity.playlist, {\"count\": 1}) ஐ உருவாக்கவும்",
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "பொது"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "நகல்களைத் தவிர்க்கவும்",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) இதற்கு $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) சேர்க்கப்பட்டது",
"title": "$t(entity.playlist_one) இல் சேர்"
"title": "$t(entity.playlist, {\"count\": 1}) இல் சேர்"
},
"updateServer": {
"success": "சேவையகம் வெற்றிகரமாக புதுப்பிக்கப்பட்டது",
@@ -295,8 +296,8 @@
"recentReleases": "அண்மைக் கால வெளியீடுகள்",
"viewDiscography": "டிச்கோகிராஃபி காண்க",
"topSongs": "சிறந்த பாடல்கள்",
"viewAllTracks": "அனைத்தையும் காண்க $t(entity.track_other)",
"relatedArtists": "தொடர்புடைய $t(entity.artist_other)",
"viewAllTracks": "அனைத்தையும் காண்க $t(entity.track, {\"count\": 2})",
"relatedArtists": "தொடர்புடைய $t(entity.artist, {\"count\": 2})",
"topSongsFrom": "{{title}} இலிருந்து சிறந்த பாடல்கள்",
"viewAll": "அனைத்தையும் காண்க"
},
@@ -309,7 +310,7 @@
"openBrowserDevtools": "திறந்த உலாவி தேவ்டூல்கள்",
"quit": "$t(common.quit)",
"selectServer": "சேவையகத்தைத் தேர்ந்தெடுக்கவும்",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "பதிப்பு {{version}}"
},
"manageServers": {
@@ -368,9 +369,9 @@
"related": "தொடர்புடைய"
},
"genreList": {
"showAlbums": "காட்டு $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "காட்டு $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "காட்டு $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "காட்டு $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -396,7 +397,7 @@
"reorder": "ஐடியால் வரிசைப்படுத்தும்போது மட்டுமே மறுசீரமைப்பு இயக்கப்பட்டது"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "மேம்பட்ட",
@@ -406,37 +407,37 @@
"windowTab": "சாளரம்"
},
"sidebar": {
"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)",
"nowPlaying": "இப்போது விளையாடுகிறது",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"shared": "$t(entity.playlist_other) பகிரப்பட்டது",
"tracks": "$t(entity.track_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) பகிரப்பட்டது",
"tracks": "$t(entity.track, {\"count\": 2})",
"myLibrary": "எனது நூலகம்"
},
"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})"
},
"albumDetail": {
"moreFromArtist": "இந்த $t(entity.artist_one) இலிருந்து மேலும்",
"moreFromArtist": "இந்த $t(entity.artist, {\"count\": 1}) இலிருந்து மேலும்",
"moreFromGeneric": "{{item}} இலிருந்து மேலும்",
"released": "வெளியிடப்பட்டது"
},
"albumList": {
"artistAlbums": "ஆல்பங்கள் {{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})"
}
},
"player": {
@@ -491,8 +492,6 @@
"discordApplicationId": "{{discord}} பயன்பாட்டு ஐடி",
"discordListening": "கேட்பது என நிலையைக் காட்டுங்கள்",
"exitToTray_description": "கணினி தட்டில் பயன்பாட்டிலிருந்து வெளியேறவும்",
"floatingQueueArea": "மிதக்கும் வரிசை ஓவர் பகுதியைக் காட்டு",
"floatingQueueArea_description": "நாடக வரிசையைக் காண திரையின் வலது பக்கத்தில் ஒரு ஓவர் ஐகானைக் காண்பி",
"followLyric": "தற்போதைய பாடலைப் பின்பற்றுங்கள்",
"followLyric_description": "தற்போதைய விளையாட்டு நிலைக்கு பாடலை உருட்டவும்",
"font": "எழுத்துரு",
@@ -505,8 +504,6 @@
"gaplessAudio": "இடைவெளி இல்லாத ஆடியோ",
"gaplessAudio_description": "MPV க்கான இடைவெளி இல்லாத ஆடியோ அமைப்பை அமைக்கிறது",
"gaplessAudio_optionWeak": "பலவீனமான (பரிந்துரைக்கப்படுகிறது)",
"genreBehavior": "வகை பக்கம் இயல்புநிலை நடத்தை",
"genreBehavior_description": "ஒரு வகையைக் சொடுக்கு செய்வது டிராக் அல்லது ஆல்பம் பட்டியலில் இயல்பாகத் திறக்கிறதா என்பதை தீர்மானிக்கிறது",
"globalMediaHotkeys_description": "பிளேபேக்கைக் கட்டுப்படுத்த உங்கள் கணினி மீடியா ஆட்கீசின் பயன்பாட்டை இயக்கவும் அல்லது முடக்கவும்",
"homeConfiguration": "முகப்பு பக்க உள்ளமைவு",
"homeFeature": "வீட்டில் கொணர்வி இடம்பெற்றது",
@@ -554,8 +551,6 @@
"playButtonBehavior_description": "வரிசையில் பாடல்களைச் சேர்க்கும்போது ப்ளே பொத்தானின் இயல்புநிலை நடத்தை அமைக்கிறது",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playerAlbumArtResolution": "பிளேயர் ஆல்பம் கலைத் தீர்மானம்",
"playerAlbumArtResolution_description": "பெரிய வீரரின் ஆல்பம் கலை முன்னோட்டத்திற்கான தீர்மானம். பெரியது இது மிகவும் மிருதுவானதாக தோற்றமளிக்கிறது, ஆனால் மெதுவாக ஏற்றுவதை மெதுவாகக் கொண்டிருக்கலாம். இயல்புநிலை 0 க்கு, அதாவது ஆட்டோ",
"playerbarOpenDrawer": "பிளேயர்பார் முழுத்திரை மாற்று",
"playerbarOpenDrawer_description": "முழு திரை பிளேயரைத் திறக்க பிளேயர்பாரைக் சொடுக்கு செய்ய அனுமதிக்கிறது",
"remotePassword": "ரிமோட் கண்ட்ரோல் சர்வர் கடவுச்சொல்",
@@ -570,9 +565,9 @@
"replayGainFallback_description": "கோப்பில் {{ReplayGain}} குறிச்சொற்கள் இல்லையென்றால் விண்ணப்பிக்க DB இல் ஆதாயம்",
"replayGainMode": "{{ReplayGain}} பயன்முறை",
"replayGainMode_description": "{{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})",
"replayGainPreamp": "{{ReplayGain}} preamp (db)",
"replayGainPreamp_description": "{{ReplayGain}}} மதிப்புகளுக்கு பயன்படுத்தப்படும் Preamp ஆதாயத்தை சரிசெய்யவும்",
"sampleRate": "மாதிரி வீதம்",
@@ -614,15 +609,12 @@
"customCssEnable": "தனிப்பயன் சிஎச்எச் ஐ இயக்கவும்",
"customCssNotice": "எச்சரிக்கை: சில சுத்திகரிப்பு (URL () மற்றும் உள்ளடக்கத்தை அனுமதிக்காதது :) இருக்கும்போது, தனிப்பயன் சிஎச்எச் ஐப் பயன்படுத்துவது இடைமுகத்தை மாற்றுவதன் மூலம் ஆபத்துக்களை ஏற்படுத்தக்கூடும்",
"contextMenu_description": "நீங்கள் ஒரு உருப்படியை வலது சொடுக்கு செய்யும் போது பட்டியலில் காட்டப்பட்டுள்ள உருப்படிகளை மறைக்க உங்களை அனுமதிக்கிறது. சரிபார்க்கப்படாத உருப்படிகள் மறைக்கப்படும்",
"disableAutomaticUpdates": "தானியங்கி புதுப்பிப்புகளை முடக்கு",
"discordApplicationId_description": "{{discord}} பணக்கார இருப்புக்கான பயன்பாட்டு ஐடி (இயல்புநிலை {{defaultId}})",
"discordIdleStatus": "பணக்கார இருப்பு செயலற்ற நிலையைக் காட்டுங்கள்",
"discordIdleStatus_description": "இயக்கப்பட்டால், பிளேயர் சும்மா இருக்கும்போது நிலையைப் புதுப்பிக்கவும்",
"discordListening_description": "விளையாடுவதற்குப் பதிலாக கேட்பது என்று அந்த நிலையைக் காட்டுங்கள்",
"discordRichPresence_description": "{{discord}} பணக்கார இருப்பில் பின்னணி நிலையை இயக்கவும். பட விசைகள்: {{icon}}, {{playing}}, மற்றும் {{paused}}",
"customCss_description": "தனிப்பயன் சிஎச்எச் உள்ளடக்கம். குறிப்பு: உள்ளடக்கம் மற்றும் தொலைநிலை முகவரி கள் அனுமதிக்கப்படாத பண்புகள். உங்கள் உள்ளடக்கத்தின் முன்னோட்டம் கீழே காட்டப்பட்டுள்ளது. நீங்கள் அமைக்காத கூடுதல் புலங்கள் சுத்திகரிப்பு காரணமாக உள்ளன",
"doubleClickBehavior": "இரட்டை சொடுக்கு செய்யும் போது தேடப்பட்ட அனைத்து தடங்களையும் வரிசைப்படுத்தவும்",
"doubleClickBehavior_description": "உண்மை என்றால், தட தேடலில் பொருந்தக்கூடிய அனைத்து தடங்களும் வரிசையில் நிற்கப்படும். இல்லையெனில், சொடுக்கு செய்யப்பட்ட ஒன்று மட்டுமே வரிசையில் நிற்கப்படும்",
"enableRemote": "ரிமோட் கண்ட்ரோல் சேவையகத்தை இயக்கவும்",
"enableRemote_description": "பயன்பாட்டைக் கட்டுப்படுத்த மற்ற சாதனங்களை அனுமதிக்க ரிமோட் கண்ட்ரோல் சேவையகத்தை இயக்குகிறது",
"externalLinks": "வெளிப்புற இணைப்புகளைக் காட்டு",
@@ -710,8 +702,8 @@
"table": {
"config": {
"label": {
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -728,21 +720,19 @@
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"actions": "$t(common.action_other)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"discNumber": "வட்டு எண்",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"path": "$t(common.path)",
"playCount": "விளையாட்டு எண்ணிக்கை",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (இணைந்தது)"
},
"view": {
"card": "அட்டை",
"table": "அட்டவணை",
"poster": "சுவரொட்டி",
"grid": "வலைவாய்",
"list": "பட்டியல்"
},
@@ -760,8 +750,8 @@
"column": {
"album": "ஆல்பம்",
"albumArtist": "ஆல்பம் கலைஞர்",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "சுயசரிதை",
"bitrate": "பிட்ரேட்",
"bpm": "பிபிஎம்",
@@ -771,7 +761,7 @@
"dateAdded": "தேதி சேர்க்கப்பட்டது",
"discNumber": "வட்டு",
"favorite": "பிடித்த",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "கடைசியாக விளையாடியது",
"path": "பாதை",
"playCount": "நாடகங்கள்",
@@ -779,7 +769,7 @@
"releaseDate": "வெளியீட்டு தேதி",
"releaseYear": "ஆண்டு",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "தலைப்பு",
"trackNumber": "மின்தடம்"
}
+79 -77
View File
@@ -2,26 +2,34 @@
"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ç"
"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, {\"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",
"moveDown": "aşağı kaydır"
},
"common": {
"action_one": "eylem",
@@ -47,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",
@@ -85,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",
@@ -100,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",
@@ -120,7 +129,9 @@
"trackGain": "parça kazancı",
"trackPeak": "parça zirvesi",
"private": "gizli",
"clean": "temiz"
"clean": "temiz",
"countSelected": "{{count}} adet seçildi",
"public": "herkese açık"
},
"entity": {
"album_one": "albüm",
@@ -151,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",
@@ -186,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",
@@ -201,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",
@@ -223,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": {
@@ -246,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": {
@@ -256,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"
},
@@ -303,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": {
@@ -332,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",
@@ -367,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": {
@@ -395,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ş",
@@ -405,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": {
@@ -446,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ç"
@@ -521,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}})",
@@ -536,12 +548,9 @@
"discordServeImage_description": "sunucudan {{discord}} Rich Presence için kapak resmi paylaşın, yalnızca Jellyfin ve Navidrome için kullanılabilir",
"discordUpdateInterval": "{{discord}} Rich Presence güncelleme aralığı",
"discordUpdateInterval_description": "her güncelleme arasındaki saniye cinsinden süre (minimum 15 saniye)",
"doubleClickBehavior": "çift tıklandığında aranan tüm parçaları sıraya koyma",
"gaplessAudio": "aralıksız ses",
"gaplessAudio_description": "mpv için aralıksız ses ayarını belirler",
"gaplessAudio_optionWeak": "zayıf (tavsiye edilen)",
"genreBehavior": "tür sayfası varsayılan davranışı",
"genreBehavior_description": "bir türe tıklandığında varsayılan olarak parça mı yoksa albüm listesinde mi açılacağını belirler",
"globalMediaHotkeys": "evrensel medya kısayol tuşları",
"globalMediaHotkeys_description": "oynatmayı kontrol etmek için sistem medya kısayol tuşlarınızın kullanımını etkinleştirin veya devre dışı bırakın",
"homeConfiguration": "ana sayfa yapılandırma",
@@ -607,8 +616,6 @@
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"playerAlbumArtResolution": "oynatıcı albüm resmi çözünürlüğü",
"playerAlbumArtResolution_description": "büyük oynatıcının albüm resmi önizlemesi için çözünürlük. daha büyük değerler daha net görünmesini sağlar, ancak yüklemeyi yavaşlatabilir. varsayılan değer 0, otomatik olarak çalışır",
"playerbarOpenDrawer": "oynatma çubuğu tam ekran geçişi",
"playerbarOpenDrawer_description": "tam ekran oynatıcıyı açmak için oynatma çubuğuna tıklamaya izin verir",
"remotePassword": "uzaktan kontrol sunucusu şifresi",
@@ -623,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ı",
@@ -669,15 +676,12 @@
"windowBarStyle_description": "pencere çubuğunun stilini seçin",
"zoom": "yakınlaştırma yüzdesi",
"zoom_description": "uygulama için yakınlaştırma yüzdesini ayarlar",
"doubleClickBehavior_description": "evet ise, bir parça aramasında eşleşen tüm parçalar sıraya alınır. aksi takdirde, yalnızca tıklanan parça sıraya alınır",
"enableRemote": "uzaktan kontrol sunucusunu etkinleştir",
"enableRemote_description": "uzaktan kumanda sunucusunun diğer cihazların uygulamayı kontrol etmesine izin vermesini sağlar",
"externalLinks": "harici bağlantıları göster",
"externalLinks_description": "sanatçı/albüm sayfalarında dış bağlantıların (Last.fm, MusicBrainz) gösterilmesini sağlar",
"exitToTray": "tepsiye çıkış",
"exitToTray_description": "uygulamadan sistem tepsisine çıkma",
"floatingQueueArea": "kayan liste üzerine gelinen alanı göster",
"floatingQueueArea_description": "oynatma kuyruğunu görüntülemek için ekranın sağ tarafında fareyle üzerine gelinen bir simge görüntüleyin",
"followLyric": "güncel şarkı sözlerini takip et",
"followLyric_description": "şarkı sözünü geçerli çalma konumuna kaydırma",
"preferLocalLyrics": "yerel sözleri tercih edin",
@@ -735,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ş)",
@@ -746,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",
@@ -754,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"
},
@@ -771,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)",
@@ -783,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)",
@@ -793,17 +797,15 @@
"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ı",
"year": "$t(common.year)"
},
"view": {
"card": "kart",
"grid": "ızgara",
"list": "liste",
"poster": "poster",
"table": "tablo"
}
}
+423
View File
@@ -0,0 +1,423 @@
{
"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": "не вдалося створити спільний доступ (чи ввімкнено спільний доступ?)"
}
},
"player": {
"skip": "пропустити"
}
}
+516 -106
View File
@@ -1,27 +1,43 @@
{
"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)移除",
"toggleSmartPlaylistEditor": "切换 $t(entity.smartPlaylist) 编辑器",
"removeFromFavorites": "从 $t(entity.favorite, {\"count\": 2}) 移除",
"goToPage": "前往页面",
"openIn": {
"lastfm": "在 Last.fm 中打开",
"musicbrainz": "在 MusicBrainz 中打开"
},
"moveToNext": "移至下一首"
"moveToNext": "移至下一首",
"downloadStarted": "开始下载 {{count}} 个项目",
"moveUp": "向上移动",
"moveDown": "向下移动",
"holdToMoveToTop": "按住即可移至到顶部",
"holdToMoveToBottom": "按住即可移动到底部",
"moveItems": "移动项目",
"shuffle": "随机播放",
"shuffleAll": "随机播放全部",
"shuffleSelected": "随机播放选定的内容",
"viewMore": "查看更多",
"addOrRemoveFromSelection": "在所选内容中添加或移除",
"selectRangeOfItems": "批量选择",
"selectAll": "全选",
"createRadioStation": "创建$t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "删除$t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "打开应用程序目录"
},
"common": {
"increase": "增高",
@@ -34,7 +50,7 @@
"left": "左",
"save": "保存",
"right": "右",
"currentSong": "当前$t(entity.track_one)",
"currentSong": "当前$t(entity.track, {\"count\": 1})",
"collapse": "折叠",
"trackNumber": "音轨编号",
"descending": "降序",
@@ -59,7 +75,7 @@
"delete": "删除",
"cancel": "取消",
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
"setting": "设置",
"setting_other": "设置",
"version": "版本",
"title": "标题",
"filter_other": "筛选",
@@ -76,7 +92,7 @@
"disable": "禁用",
"menu": "菜单",
"restartRequired": "需要重启应用",
"previousSong": "上一首$t(entity.track_one)",
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "未查询到匹配结果",
"quit": "退出",
"expand": "展开",
@@ -122,7 +138,24 @@
"private": "私人",
"public": "公开",
"recordLabel": "唱片公司",
"releaseType": "发布类型"
"releaseType": "发布类型",
"doNotShowAgain": "不要再显示此内容",
"view": "查看",
"externalLinks": "外部链接",
"faster": "更快",
"noFilters": "未配置任何筛选器",
"slower": "更慢",
"sort": "排序",
"gridRows": "网格行",
"tableColumns": "表格列",
"itemsMore": "{{count}} 更多",
"countSelected": "已选择{{count}}项",
"retry": "重试",
"example": "示例",
"filter_single": "单项",
"mood": "氛围",
"rename": "重命名",
"filter_multiple": "多项"
},
"entity": {
"albumArtist_other": "专辑艺术家",
@@ -138,11 +171,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": "循环全部",
@@ -156,10 +191,10 @@
"skip_back": "向后跳过",
"favorite": "收藏",
"next": "下一首",
"shuffle": "随机播放",
"shuffle": "播放(随机)",
"playbackFetchNoResults": "未找到歌曲",
"playbackFetchInProgress": "正在加载歌曲…",
"addNext": "添加为播放列表下一",
"addNext": "下一",
"playbackFetchCancel": "请稍等…关闭通知以取消操作",
"play": "播放",
"repeat_off": "循环关闭",
@@ -169,13 +204,21 @@
"queue_moveToTop": "将所选项移至底部",
"queue_moveToBottom": "将所选项移至顶部",
"shuffle_off": "禁用随机播放",
"addLast": "添加至播放列表末尾",
"addLast": "最后",
"mute": "静音",
"skip_forward": "向前跳过",
"playbackSpeed": "播放速度",
"pause": "暂停",
"playSimilarSongs": "播放类似的歌曲",
"viewQueue": "查看播放队列"
"viewQueue": "查看播放队列",
"saveQueueToServer": "将播放队列保存到服务器",
"restoreQueueFromServer": "从服务器恢复播放队列",
"lyrics": "歌词",
"addLastShuffled": "最后(随机)",
"addNextShuffled": "下一个(随机)",
"artistRadio": "艺术家电台",
"holdToShuffle": "按住即可随机",
"trackRadio": "追踪广播"
},
"setting": {
"crossfadeStyle_description": "选择用于音频播放器的淡入淡出风格",
@@ -186,7 +229,6 @@
"audioPlayer_description": "选择用于播放的音频播放器",
"globalMediaHotkeys": "全局媒体快捷键",
"gaplessAudio_description": "调整 mpv 无缝音频设置",
"disableAutomaticUpdates": "禁用自动更新",
"followLyric_description": "滚动歌词到当前播放位置",
"audioExclusiveMode": "音频独占模式",
"font": "字体",
@@ -252,7 +294,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": "应用将使用深色主题",
@@ -261,7 +303,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": "页面内搜索",
@@ -293,7 +335,6 @@
"replayGainMode": "{{ReplayGain}}模式",
"playbackStyle_optionNormal": "正常",
"windowBarStyle": "窗口顶栏风格",
"floatingQueueArea": "显示浮动队列悬停区域",
"replayGainFallback_description": "如果文件没有 {{ReplayGain}} 标签,则在数据库中应用增益",
"hotkey_toggleRepeat": "切换循环",
"lyricOffset_description": "将歌词偏移指定的毫秒数",
@@ -303,12 +344,11 @@
"useSystemTheme_description": "使用系统定义的浅色或深色主题",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "从多个互联网源获取歌词",
"lyricFetchProvider_description": "选择歌词源。 歌词源顺序与查询顺序一致",
"lyricFetchProvider_description": "选择要从中获取歌词的提供商",
"sidePlayQueueStyle_optionDetached": "不吸附",
"hotkey_zoomOut": "缩小",
"hotkey_unfavoriteCurrentSong": "取消收藏$t(common.currentSong)",
"hotkey_rate0": "清除评分",
"floatingQueueArea_description": "在屏幕右侧显示一个悬停图标,以查看播放队列",
"hotkey_volumeMute": "静音",
"hotkey_toggleCurrentSongFavorite": "切换收藏$t(common.currentSong)",
"remoteUsername": "远程控制服务器用户名",
@@ -349,10 +389,6 @@
"startMinimized_description": "在系统托盘中启动应用程序",
"passwordStore_description": "使用什么密码/密钥存储。如果您在存储密码时遇到问题,请更改此设置",
"clearCacheSuccess": "缓存清除成功",
"playerAlbumArtResolution": "播放器专辑封面分辨率",
"playerAlbumArtResolution_description": "大型播放器专辑封面预览的分辨率。较大使其看起来更清晰,但可能会减慢加载速度。默认为0,表示自动",
"genreBehavior": "类型页面默认行为",
"genreBehavior_description": "确定单击流派是否默认在曲目或专辑列表中打开",
"homeConfiguration": "主页配置",
"homeConfiguration_description": "配置主页上显示的项目以及显示顺序",
"passwordStore": "密码/密钥存储",
@@ -360,8 +396,6 @@
"homeFeature": "首页 精选 轮播",
"imageAspectRatio": "保留封面图像纵横比",
"imageAspectRatio_description": "如果启用,封面图像将保留纵横比显示。对于不是1:1的图像,剩余的空间将是空的",
"doubleClickBehavior_description": "如果为真,则曲目搜索中所有匹配的曲目都将被加入播放队列。否则,只有单击的曲目才会被加入播放队列",
"doubleClickBehavior": "双击时将所有搜索到的曲目加入播放队列",
"volumeWidth": "音量滑块宽度",
"volumeWidth_description": "音量滑块的宽度",
"discordListening": "显示状态为正在监听",
@@ -431,7 +465,7 @@
"releaseChannel": "发布通道",
"releaseChannel_description": "选择稳定版本或测试版以进行自动更新",
"mediaSession": "启用媒体会话",
"mediaSession_description": "启用 Windows 媒体会话集成,在系统音量覆盖和锁定屏幕中显示媒体控件和元数据(仅限 Windows",
"mediaSession_description": "启用媒体会话集成,在系统音量叠加层和锁屏界面显示媒体控件和元数据",
"exportImportSettings_control_description": "通过 JSON 导出和导入设置",
"exportImportSettings_control_exportText": "导出设置",
"exportImportSettings_control_importText": "导入设置",
@@ -443,7 +477,92 @@
"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": "自定义字段"
},
"error": {
"remotePortWarning": "重启服务器使新端口生效",
@@ -469,7 +588,12 @@
"networkError": "发生网络错误",
"openError": "无法打开文件",
"badValue": "无效的选项 \"{{value}}\". 此值不再存在",
"notificationDenied": "通知权限被拒绝。此设置无效"
"notificationDenied": "通知权限被拒绝。此设置无效",
"multipleServerSaveQueueError": "不支持此操作(播放列表中包含来自其他服务器的歌曲)",
"noNetwork": "服务器不可用",
"noNetworkDescription": "无法连接到该服务器",
"saveQueueFailed": "播放列表保存失败",
"settingsSyncError": "渲染器设置与主进程中存在差异,请重启程序以应用更改"
},
"filter": {
"mostPlayed": "最多播放过",
@@ -486,18 +610,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": "已收藏",
@@ -505,32 +629,36 @@
"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": "排序名称"
},
"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": {
@@ -564,10 +692,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": "最多播放",
@@ -575,10 +707,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": "已发布"
},
@@ -587,7 +720,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": {
@@ -620,40 +771,44 @@
"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": "首选发布类型"
},
"itemDetail": {
"copyPath": "将路径复制到剪贴板",
@@ -670,13 +825,30 @@
"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": "保存为集合"
}
},
"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": "添加服务器",
@@ -691,20 +863,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)"
@@ -716,17 +891,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": "过期时间必须是将来的时间",
@@ -740,6 +920,36 @@
"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": {
@@ -752,12 +962,32 @@
"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": "表格",
"poster": "海报",
"card": "卡片",
"grid": "网格",
"list": "列表"
},
@@ -772,24 +1002,31 @@
"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) (艺术家)"
}
},
"column": {
@@ -798,7 +1035,7 @@
"rating": "评分",
"favorite": "收藏",
"playCount": "播放次数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年份",
"lastPlayed": "最后播放",
"biography": "简介",
@@ -807,16 +1044,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": {
@@ -826,8 +1066,178 @@
},
"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": {
"after": "之后",
"afterDate": "晚于(日期)",
"before": "之前",
"beforeDate": "早于(日期)",
"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": "单项"
},
"mode": {
"0": "[0] 离散频率"
},
"colorMode": {
"gradient": "渐变"
},
"gradient": {
"classic": "经典",
"prism": "棱镜",
"rainbow": "彩虹"
},
"frequencyScale": {
"none": "无"
},
"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"
},
"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;
};
+11 -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,
};
@@ -90,6 +95,9 @@ export async function query(
try {
result = await axios.get<LrcLibTrackResponse>(FETCH_URL, {
headers: {
'User-Agent': 'LRCGET v0.2.0 (https://github.com/jeffvli/feishin)',
},
params: {
album_name: params.album,
artist_name: params.artist,
@@ -99,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;
}
+19 -20
View File
@@ -20,24 +20,6 @@ export interface Result {
songs: Song[];
}
export interface Song {
album: Album;
alias: string[];
artists: Artist[];
copyrightId: number;
duration: number;
fee: number;
ftype: number;
id: number;
mark: number;
mvid: number;
name: string;
rtype: number;
rUrl: null;
status: number;
transNames?: string[];
}
interface Album {
artist: Artist;
copyrightId: number;
@@ -69,6 +51,24 @@ interface NetEaseResponse {
result: Result;
}
interface Song {
album: Album;
alias: string[];
artists: Artist[];
copyrightId: number;
duration: number;
fee: number;
ftype: number;
id: number;
mark: number;
mvid: number;
name: string;
rtype: number;
rUrl: null;
status: number;
transNames?: string[];
}
export async function getLyricsBySongId(songId: string): Promise<null | string> {
let result: AxiosResponse<any, any>;
try {
@@ -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;
}
+70 -9
View File
@@ -1,4 +1,4 @@
import Fuse from 'fuse.js';
import Fuse, { FuseResult, IFuseOptions } from 'fuse.js';
import {
InternetProviderLyricSearchResponse,
@@ -11,24 +11,85 @@ export const orderSearchResults = (args: {
}) => {
const { params, results } = args;
const options: Fuse.IFuseOptions<InternetProviderLyricSearchResponse> = {
const options: IFuseOptions<InternetProviderLyricSearchResponse> = {
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,
}));
+245 -14
View File
@@ -4,11 +4,14 @@ import { rm } from 'fs/promises';
import uniq from 'lodash/uniq';
import MpvAPI from 'node-mpv';
import { pid } from 'node:process';
import process from 'process';
import { getMainWindow, sendToastToRenderer } from '../../../index';
import { createLog, isWindows } from '../../../utils';
import { store } from '../settings';
import { PlayerData } from '/@/shared/types/domain-types';
declare module 'node-mpv';
// function wait(timeout: number) {
@@ -20,6 +23,7 @@ declare module 'node-mpv';
// }
let mpvInstance: MpvAPI | null = null;
let currentPlayerData: null | PlayerData = null;
const socketPath = isWindows() ? `\\\\.\\pipe\\mpvserver-${pid}` : `/tmp/node-mpv-${pid}.sock`;
const NodeMpvErrorCode = {
@@ -113,7 +117,7 @@ const createMpv = async (data: {
mpv.on('status', (status) => {
if (status.property === 'playlist-pos') {
if (status.value === -1) {
mpv?.stop();
mpv?.pause();
}
if (status.value !== 0) {
@@ -149,12 +153,28 @@ export const getMpvInstance = () => {
return mpvInstance;
};
const quit = async () => {
const instance = getMpvInstance();
if (instance) {
await instance.quit();
const quit = async (instance?: MpvAPI | null) => {
const mpv = instance || getMpvInstance();
if (mpv) {
try {
await mpv.quit();
} catch {
// If quit() fails, try to kill the process directly
const mpvProcess = (mpv as any).process || (mpv as any).mpvProcess;
if (mpvProcess && typeof mpvProcess.kill === 'function') {
try {
mpvProcess.kill('SIGTERM');
} catch (killErr) {
mpvLog({ action: 'Failed to kill mpv process' }, killErr as NodeMpvError);
}
}
}
if (!isWindows()) {
await rm(socketPath);
try {
await rm(socketPath);
} catch {
// Ignore errors when removing socket file
}
}
}
};
@@ -356,16 +376,12 @@ ipcMain.on('player-set-queue-next', async (_event, url?: string) => {
try {
const size = await getMpvInstance()?.getPlaylistSize();
if (!size) {
return;
}
if (size > 1) {
if (size && size > 1) {
await getMpvInstance()?.playlistRemove(1);
}
if (url) {
await getMpvInstance()?.load(url, 'append');
getMpvInstance()?.load(url, 'append');
}
} catch (err: any | NodeMpvError) {
mpvLog({ action: `Failed to set play queue` }, err);
@@ -377,6 +393,7 @@ ipcMain.on('player-auto-next', async (_event, url?: string) => {
// Always keep the current song as position 0 in the mpv queue
// This allows us to easily set update the next song in the queue without
// disturbing the currently playing song
try {
await getMpvInstance()
?.playlistRemove(0)
@@ -423,6 +440,148 @@ ipcMain.handle('player-get-time', async (): Promise<number | undefined> => {
}
});
// Updates the current player metadata (song data)
ipcMain.on('player-update-metadata', (_event, data: PlayerData) => {
currentPlayerData = data;
});
// Returns the current player metadata (song data)
ipcMain.handle('player-metadata', async (): Promise<null | PlayerData> => {
return currentPlayerData;
});
// Returns the stream metadata from mpv (for radio streams)
ipcMain.handle(
'player-stream-metadata',
async (): Promise<null | { artist: null | string; title: null | string }> => {
try {
const metadata = await getMpvInstance()?.getProperty('metadata');
if (metadata && typeof metadata === 'object') {
// Try to get separate title and artist fields first
let artist: null | string =
(metadata['artist'] as string) ||
(metadata['ARTIST'] as string) ||
(metadata['icy-artist'] as string) ||
null;
let title: null | string =
(metadata['title'] as string) || (metadata['TITLE'] as string) || null;
// If we don't have separate fields, try to parse from combined formats
if (!title && !artist) {
const combinedTitle =
(metadata['icy-title'] as string) ||
(metadata['StreamTitle'] as string) ||
(metadata['stream-title'] as string) ||
null;
if (combinedTitle && typeof combinedTitle === 'string') {
// Try to parse "Artist - Title" format
const match = combinedTitle.match(/^(.*?)\s*[-–—]\s*(.+)$/);
if (match) {
artist = match[1].trim() || null;
title = match[2].trim() || null;
} else {
// If no separator found, treat the whole thing as title
title = combinedTitle;
}
}
} else if (!title) {
// If we have artist but no title, try to get from combined format
const combinedTitle =
(metadata['icy-title'] as string) ||
(metadata['StreamTitle'] as string) ||
(metadata['stream-title'] as string) ||
null;
if (combinedTitle && typeof combinedTitle === 'string') {
title = combinedTitle;
}
} else if (!artist) {
// If we have title but no artist, try to get from combined format
const combinedTitle =
(metadata['icy-title'] as string) ||
(metadata['StreamTitle'] as string) ||
(metadata['stream-title'] as string) ||
null;
if (
combinedTitle &&
typeof combinedTitle === 'string' &&
combinedTitle !== title
) {
// Try to parse artist from combined format
const match = combinedTitle.match(/^(.*?)\s*[-–—]\s*(.+)$/);
if (match && match[2].trim() === title) {
artist = match[1].trim() || null;
}
}
}
return { artist, title };
}
return null;
} catch (err: any | NodeMpvError) {
mpvLog({ action: `Failed to get stream metadata` }, err);
return null;
}
},
);
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,
@@ -431,6 +590,36 @@ enum MpvState {
let mpvState = MpvState.STARTED;
// Cleanup function that can be called from multiple places
const cleanupMpv = async (force = false) => {
if (mpvState === MpvState.DONE && !force) {
return;
}
const instance = getMpvInstance();
if (instance) {
try {
if (!force) {
await instance.stop();
}
await quit(instance);
} catch (err: any | NodeMpvError) {
mpvLog({ action: `Failed to cleanup mpv` }, err);
// Force kill as fallback
const mpvProcess = (instance as any).process || (instance as any).mpvProcess;
if (mpvProcess && typeof mpvProcess.kill === 'function') {
try {
mpvProcess.kill('SIGKILL');
} catch {
// Ignore kill errors
}
}
} finally {
mpvInstance = null;
}
}
};
app.on('before-quit', async (event) => {
switch (mpvState) {
case MpvState.DONE:
@@ -442,8 +631,7 @@ app.on('before-quit', async (event) => {
try {
mpvState = MpvState.IN_PROGRESS;
event.preventDefault();
await getMpvInstance()?.stop();
await quit();
await cleanupMpv();
} catch (err: any | NodeMpvError) {
mpvLog({ action: `Failed to cleanly before-quit` }, err);
} finally {
@@ -454,3 +642,46 @@ app.on('before-quit', async (event) => {
}
}
});
// Handle process exit events to ensure mpv is killed even if app crashes
process.on('exit', () => {
const instance = getMpvInstance();
if (instance) {
// Try to access and kill the process directly
const mpvProcess = (instance as any).process || (instance as any).mpvProcess;
if (mpvProcess && typeof mpvProcess.kill === 'function') {
try {
mpvProcess.kill('SIGKILL');
} catch {
// Ignore errors during exit
}
}
}
});
// Handle signals that can terminate the process
process.on('SIGINT', async () => {
await cleanupMpv(true);
process.exit(0);
});
process.on('SIGTERM', async () => {
await cleanupMpv(true);
process.exit(0);
});
// Handle uncaught exceptions - cleanup mpv before crashing
process.on('uncaughtException', async (error) => {
console.error('Uncaught exception:', error);
await cleanupMpv(true).catch(() => {
// Ignore cleanup errors during crash
});
});
// Handle unhandled rejections - cleanup mpv
process.on('unhandledRejection', async (reason) => {
console.error('Unhandled rejection:', reason);
await cleanupMpv(true).catch(() => {
// Ignore cleanup errors
});
});
+5 -5
View File
@@ -1,9 +1,9 @@
import { BrowserWindow, globalShortcut, systemPreferences } from 'electron';
import { isMacOS, isWindows } from '../../../utils';
import { isLinux, isMacOS } from '../../../utils';
import { store } from '../settings';
import { PlaybackType } from '/@/shared/types/types';
import { PlayerType } from '/@/shared/types/types';
export const enableMediaKeys = (window: BrowserWindow | null) => {
if (isMacOS()) {
@@ -25,10 +25,10 @@ export const enableMediaKeys = (window: BrowserWindow | null) => {
}
}
const enableWindowsMediaSession = store.get('mediaSession', false) as boolean;
const playbackType = store.get('playbackType', PlaybackType.WEB) as PlaybackType;
const enableMediaSession = store.get('mediaSession', false) as boolean;
const playbackType = store.get('playbackType', PlayerType.WEB) as PlayerType;
if (!enableWindowsMediaSession || !isWindows() || playbackType !== PlaybackType.WEB) {
if (!enableMediaSession || isLinux() || playbackType !== PlayerType.WEB) {
globalShortcut.register('MediaStop', () => {
window?.webContents.send('renderer-player-stop');
});

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