Compare commits

...

132 Commits

Author SHA1 Message Date
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
353 changed files with 17589 additions and 5730 deletions
+200
View File
@@ -0,0 +1,200 @@
# 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 (Windows ARM64)
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-arm64: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
+13
View File
@@ -155,6 +155,19 @@ jobs:
pnpm run publish:win:beta
on_retry_command: pnpm cache delete
- name: Build and Publish releases (Windows ARM64)
if: matrix.os == 'windows-latest'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:win-arm64:beta
on_retry_command: pnpm cache delete
- name: Build and Publish releases (macOS)
if: matrix.os == 'macos-latest'
env:
+10
View File
@@ -50,6 +50,16 @@ jobs:
command: |
pnpm run package:win:pr
- name: Build for Windows (ARM64)
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 package:win-arm64:pr
- name: Build for Linux
if: ${{ matrix.os == 'ubuntu-latest' }}
uses: nick-invision/retry@v2.8.2
+12
View File
@@ -33,3 +33,15 @@ jobs:
command: |
pnpm run publish:win
on_retry_command: pnpm cache delete
- name: Build and Publish releases (ARM64)
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:win-arm64
on_retry_command: pnpm cache delete
+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 }}
+13
View File
@@ -35,6 +35,19 @@ jobs:
pnpm run publish:win
on_retry_command: pnpm cache delete
- name: Build and Publish releases (Windows ARM64)
if: matrix.os == 'windows-latest'
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: nick-invision/retry@v2.8.2
with:
timeout_minutes: 30
max_attempts: 3
retry_on: error
command: |
pnpm run publish:win-arm64
on_retry_command: pnpm cache delete
- name: Build and Publish releases (macOS)
if: matrix.os == 'macos-latest'
env:
Binary file not shown.

After

Width:  |  Height:  |  Size: 645 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 535 B

+59
View File
@@ -0,0 +1,59 @@
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:
- zip
- nsis
icon: assets/icons/icon.png
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
+1 -1
View File
@@ -1,7 +1,7 @@
appId: org.jeffvli.feishin
productName: Feishin
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
electronVersion: 39.2.7
electronVersion: 39.4.0
directories:
buildResources: assets
files:
+1 -1
View File
@@ -1,7 +1,7 @@
appId: org.jeffvli.feishin
productName: Feishin
artifactName: ${productName}-${version}-${os}-${arch}.${ext}
electronVersion: 39.2.7
electronVersion: 39.4.0
directories:
buildResources: assets
files:
+11 -4
View File
@@ -1,6 +1,6 @@
{
"name": "feishin",
"version": "1.3.0",
"version": "1.5.0",
"description": "A modern self-hosted music player.",
"keywords": [
"subsonic",
@@ -30,7 +30,7 @@
"dev:watch": "electron-vite dev --watch",
"i18next": "i18next -c src/i18n/i18next-parser.config.js",
"postinstall": "electron-builder install-app-deps",
"lint": "pnpm run lint-code && pnpm run lint-styles",
"lint": "pnpm run typecheck && pnpm run lint-code && pnpm run lint-styles",
"lint-code": "eslint --max-warnings=0 --cache .",
"lint-code:fix": "eslint --cache --fix .",
"lint-styles": "stylelint --max-warnings=0 'src/**/*.{css,scss}'",
@@ -44,14 +44,22 @@
"package:mac": "pnpm run build && electron-builder --mac",
"package:mac:pr": "pnpm run build && electron-builder --mac --publish never",
"package:win": "pnpm run build && electron-builder --win",
"package:win-arm64:pr": "pnpm run build && electron-builder --win --arm64 --publish never",
"package:win:pr": "pnpm run build && electron-builder --win --publish never",
"publish:linux": "pnpm run build && electron-builder --publish always --linux",
"publish:linux-arm64": "pnpm run build && electron-builder --publish always --linux --arm64",
"publish:linux-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux --arm64",
"publish:linux-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux --arm64",
"publish:linux:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --linux",
"publish:linux:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --linux",
"publish:mac": "pnpm run build && electron-builder --publish always --mac",
"publish:mac:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --mac",
"publish:mac:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --mac",
"publish:win": "pnpm run build && electron-builder --publish always --win",
"publish:win-arm64": "pnpm run build && electron-builder --publish always --win --arm64",
"publish:win-arm64:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win --arm64",
"publish:win-arm64:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win --arm64",
"publish:win:alpha": "pnpm run build && electron-builder --config electron-builder-alpha.yml --publish always --win",
"publish:win:beta": "pnpm run build && electron-builder --config electron-builder-beta.yml --publish always --win",
"start": "electron-vite preview",
"typecheck": "pnpm run typecheck:node && pnpm run typecheck:web",
@@ -120,7 +128,6 @@
"react-i18next": "^16.3.3",
"react-icons": "^5.5.0",
"react-image": "^4.1.0",
"react-loading-skeleton": "^3.5.0",
"react-player": "^2.16.0",
"react-router": "^7.9.6",
"react-split-pane": "^3.0.4",
@@ -150,7 +157,7 @@
"@vitejs/plugin-react": "^5.1.1",
"concurrently": "^9.2.1",
"cross-env": "^10.1.0",
"electron": "^39.2.7",
"electron": "^39.4.0",
"electron-builder": "^26.0.12",
"electron-devtools-installer": "^4.0.0",
"electron-vite": "^4.0.1",
+14 -36
View File
@@ -19,10 +19,10 @@ importers:
version: 1.1.0
'@electron-toolkit/preload':
specifier: ^3.0.1
version: 3.0.2(electron@39.2.7)
version: 3.0.2(electron@39.4.0)
'@electron-toolkit/utils':
specifier: ^4.0.0
version: 4.0.0(electron@39.2.7)
version: 4.0.0(electron@39.4.0)
'@mantine/colors-generator':
specifier: ^8.3.8
version: 8.3.8(chroma-js@3.1.2)
@@ -185,9 +185,6 @@ importers:
react-image:
specifier: ^4.1.0
version: 4.1.0(@babel/runtime@7.28.4)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)
react-loading-skeleton:
specifier: ^3.5.0
version: 3.5.0(react@19.1.0)
react-player:
specifier: ^2.16.0
version: 2.16.0(react@19.1.0)
@@ -271,8 +268,8 @@ importers:
specifier: ^10.1.0
version: 10.1.0
electron:
specifier: ^39.2.7
version: 39.2.7
specifier: ^39.4.0
version: 39.4.0
electron-builder:
specifier: ^26.0.12
version: 26.0.12(electron-builder-squirrel-windows@26.0.12)
@@ -2865,8 +2862,8 @@ packages:
resolution: {integrity: sha512-bO3y10YikuUwUuDUQRM4KfwNkKhnpVO7IPdbsrejwN9/AABJzzTQ4GeHwyzNSrVO+tEH3/Np255a3sVZpZDjvg==}
engines: {node: '>=8.0.0'}
electron@39.2.7:
resolution: {integrity: sha512-KU0uFS6LSTh4aOIC3miolcbizOFP7N1M46VTYVfqIgFiuA2ilfNaOHLDS9tCMvwwHRowAsvqBrh9NgMXcTOHCQ==}
electron@39.4.0:
resolution: {integrity: sha512-NCK/FTAqgG/N+09OXFES6bubamgPZs7TEPIjWZIrbEnm8GzEwxC22ZG6SEPid2DmJnJmBurJ6M0G4EShdSc28Q==}
engines: {node: '>= 12.20.55'}
hasBin: true
@@ -3791,9 +3788,6 @@ packages:
jsonfile@4.0.0:
resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
jsonfile@6.1.0:
resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==}
jsonfile@6.2.0:
resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==}
@@ -4572,11 +4566,6 @@ packages:
react-is@16.13.1:
resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==}
react-loading-skeleton@3.5.0:
resolution: {integrity: sha512-gxxSyLbrEAdXTKgfbpBEFZCO/P153DnqSCQau2+o6lNy1jgMRr2MmRmOzMmyrwSaSYLRB8g7b0waYPmUjz7IhQ==}
peerDependencies:
react: '>=16.8.0'
react-number-format@5.4.4:
resolution: {integrity: sha512-wOmoNZoOpvMminhifQYiYSTCLUDOiUbBunrMrMjA+dV52sY+vck1S4UhR6PkgnoCquvvMSeJjErXZ4qSaWCliA==}
peerDependencies:
@@ -6702,17 +6691,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
'@electron-toolkit/preload@3.0.2(electron@39.2.7)':
'@electron-toolkit/preload@3.0.2(electron@39.4.0)':
dependencies:
electron: 39.2.7
electron: 39.4.0
'@electron-toolkit/tsconfig@2.0.0(@types/node@24.10.1)':
dependencies:
'@types/node': 24.10.1
'@electron-toolkit/utils@4.0.0(electron@39.2.7)':
'@electron-toolkit/utils@4.0.0(electron@39.4.0)':
dependencies:
electron: 39.2.7
electron: 39.4.0
'@electron/asar@3.2.18':
dependencies:
@@ -6807,7 +6796,7 @@ snapshots:
'@malept/cross-spawn-promise': 2.0.0
debug: 4.4.3
dir-compare: 4.2.0
fs-extra: 11.3.2
fs-extra: 11.3.3
minimatch: 9.0.5
plist: 3.1.0
transitivePeerDependencies:
@@ -7621,7 +7610,7 @@ snapshots:
'@types/electron-localshortcut@3.1.3':
dependencies:
electron: 39.2.7
electron: 39.4.0
transitivePeerDependencies:
- supports-color
@@ -8778,7 +8767,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
electron@39.2.7:
electron@39.4.0:
dependencies:
'@electron/get': 2.0.3
'@types/node': 22.15.32
@@ -9230,7 +9219,7 @@ snapshots:
fs-extra@10.1.0:
dependencies:
graceful-fs: 4.2.11
jsonfile: 6.1.0
jsonfile: 6.2.0
universalify: 2.0.1
fs-extra@11.3.2:
@@ -9244,7 +9233,6 @@ snapshots:
graceful-fs: 4.2.11
jsonfile: 6.2.0
universalify: 2.0.1
optional: true
fs-extra@7.0.1:
dependencies:
@@ -9875,12 +9863,6 @@ snapshots:
optionalDependencies:
graceful-fs: 4.2.11
jsonfile@6.1.0:
dependencies:
universalify: 2.0.1
optionalDependencies:
graceful-fs: 4.2.11
jsonfile@6.2.0:
dependencies:
universalify: 2.0.1
@@ -10579,10 +10561,6 @@ snapshots:
react-is@16.13.1: {}
react-loading-skeleton@3.5.0(react@19.1.0):
dependencies:
react: 19.1.0
react-number-format@5.4.4(react-dom@19.1.0(react@19.1.0))(react@19.1.0):
dependencies:
react: 19.1.0
+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": "الترتيب",
+109 -85
View File
@@ -2,24 +2,25 @@
"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",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"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",
@@ -31,21 +32,21 @@
"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",
@@ -84,15 +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)",
@@ -101,15 +102,15 @@
"mostPlayed": "els més reproduïts",
"recentlyPlayed": "reproduït recentment",
"recentlyReleased": "estrenat fa poc",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "pistes de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"manageServers": {
"username": "nom d'usuari",
@@ -184,13 +185,21 @@
"reorder": "el reordenament només s'activa quan s'ordena per id"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "emissores de ràdio"
},
"windowBar": {
"paused": "(en pausa) ",
"privateMode": "(mode privat)"
},
"collections": {
"overrideExisting": "sobreescriu existents",
"saveAsCollection": "desa com a col·lecció"
}
},
"common": {
@@ -262,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",
@@ -288,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",
@@ -314,7 +325,8 @@
"example": "exemple",
"mood": "estat d'ànim",
"filter_single": "senzill",
"filter_multiple": "multi"
"filter_multiple": "multi",
"rename": "reanomena"
},
"entity": {
"album_one": "àlbum",
@@ -341,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",
@@ -378,34 +390,34 @@
},
"form": {
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"title": "afegir a una $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"title": "afegir a una $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "salta't els duplicats",
"success": "s'ha afegit $t(entity.trackWithCount, {\"count\": {{message}} }) a $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"create": "crea $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "cerca $t(entity.playlist_other) o escriu per crear-ne una de nova"
"create": "crea $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "cerca $t(entity.playlist, {\"count\": 2}) o escriu per crear-ne una de nova"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"success": "$t(entity.playlist_one) s'ha creat amb èxit",
"title": "crear una $t(entity.playlist_one)",
"success": "$t(entity.playlist, {\"count\": 1}) s'ha creat amb èxit",
"title": "crea una $t(entity.playlist, {\"count\": 1})",
"input_public": "públic"
},
"deletePlaylist": {
"success": "$t(entity.playlist_one) s'ha eliminat amb èxit",
"title": "elimina la $t(entity.playlist_one)",
"input_confirm": "escriviu el nom de la $t(entity.playlist_one) per confirmar"
"success": "$t(entity.playlist, {\"count\": 1}) s'ha eliminat amb èxit",
"title": "elimina la $t(entity.playlist, {\"count\": 1})",
"input_confirm": "escriviu el nom de la $t(entity.playlist, {\"count\": 1}) per confirmar"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) s'ha actualitzat amb èxit",
"title": "editar la $t(entity.playlist_one)",
"success": "$t(entity.playlist, {\"count\": 1}) s'ha actualitzat amb èxit",
"title": "editar la $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Per algun motiu, Jellyfin no exposa si una llista de reproducció és pública o no. Si voleu que es mantingui pública, seleccioneu la següent entrada",
"editNote": "es recomana no editar manualment les llistes de reproducció grans. segur que accepteu el risc de perdre dades si sobreescriviu la llista de reproducció existent?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "cerca de lletres"
},
@@ -459,7 +471,7 @@
},
"shuffleAll": {
"title": "reprodueix a l'atzar",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "quantes cançons?",
"input_minYear": "de l'any",
"input_maxYear": "fins a l'any",
@@ -485,14 +497,14 @@
}
},
"action": {
"addToFavorites": "afegeix a $t(entity.favorite_other)",
"addToPlaylist": "afegeix a $t(entity.playlist_one)",
"createPlaylist": "crea $t(entity.playlist_one)",
"deletePlaylist": "elimina la $t(entity.playlist_one)",
"editPlaylist": "edita la $t(entity.playlist_one)",
"addToFavorites": "afegeix a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "afegeix a $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "crea $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "elimina la $t(entity.playlist, {\"count\": 1})",
"editPlaylist": "edita $t(entity.playlist, {\"count\": 1})",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "elimina dels $t(entity.favorite_other)",
"removeFromPlaylist": "elimina de $t(entity.playlist_one)",
"removeFromFavorites": "elimina dels $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "elimina de $t(entity.playlist, {\"count\": 1})",
"clearQueue": "buida la cua",
"removeFromQueue": "treure de la cua",
"goToPage": "anar a la pàgina",
@@ -501,7 +513,7 @@
"musicbrainz": "Obrir a MusicBrainz"
},
"deselectAll": "deselecciona-ho tot",
"viewPlaylists": "veure$t(entity.playlist_other)",
"viewPlaylists": "veure $t(entity.playlist, {\"count\": 2})",
"moveToNext": "passar al següent",
"moveToBottom": "anar al final",
"moveToTop": "anar al principi",
@@ -517,8 +529,8 @@
"shuffleAll": "mescla-ho tot",
"shuffleSelected": "mescla els seleccionats",
"viewMore": "mostra'n més",
"createRadioStation": "crea $t(entity.radioStation_one)",
"deleteRadioStation": "elimina $t(entity.radioStation_one)",
"createRadioStation": "crea $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "elimina $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "afegeix o elimina de la selecció",
"selectRangeOfItems": "selecciona un interval d'elements",
"selectAll": "selecciona-ho tot",
@@ -530,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",
@@ -662,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",
@@ -856,17 +867,28 @@
"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"
"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",
@@ -918,27 +940,28 @@
"alternateRowColors": "colors de fila alternants",
"horizontalBorders": "vores de fila",
"rowHoverHighlight": "ressalta en passar el cursor per la fila",
"verticalBorders": "vores de columna"
"verticalBorders": "vores de columna",
"showHeader": "mostra l'encapçalament"
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"rating": "$t(common.rating)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"year": "$t(common.year)",
"playCount": "compte de reproduccions",
@@ -949,9 +972,9 @@
"lastPlayed": "última reproducció",
"rowIndex": "índex de files",
"titleCombined": "$t(common.title) (combinat)",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"genreBadge": "$t(entity.genre_one) (insígnies)",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insígnies)",
"image": "imatge",
"sampleRate": "$t(common.sampleRate)",
"composer": "compositor",
@@ -968,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",
@@ -997,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",
@@ -1007,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",
@@ -1083,7 +1107,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "emissió",
"ep": "EP",
"other": "altres",
+130 -94
View File
@@ -98,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",
@@ -114,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",
@@ -164,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",
@@ -221,11 +220,11 @@
"discordListening_description": "zobrazit stav jako „Poslouchá“ namísto „Hraje“",
"contextMenu": "nastavení kontextové nabídky (kliknutí pravým)",
"contextMenu_description": "umožňuje skrýt položky, které se zobrazí v nabídce po kliknutí pravým tlačítkem myši na položku. položky, které nejsou zaškrtnuté, se skryjí",
"customCssEnable": "povolit vlastní CSS",
"customCssEnable_description": "umožnit psaní vlastního CSS",
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání CSS stále představovat riziko změnami rozhraní",
"customCss_description": "vlastní CSS obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
"customCss": "vlastní CSS",
"customCssEnable": "povolit vlastní css",
"customCssEnable_description": "umožnit psaní vlastního css",
"customCssNotice": "Varování: i když provádíme určitou sanitizaci (zakázáním url() a content:), může používání css stále představovat riziko změnami rozhraní",
"customCss_description": "vlastní css obsah. Upozornění: vlastnosti content a vzdálené url jsou zakázané. Níže je zobrazen náhled vašeho obsahu. Další pole, která jste nenastavili, jsou přítomna z důvodu sanitizace",
"customCss": "vlastní css",
"webAudio": "použít webový zvuk",
"webAudio_description": "použít webový zvuk. tím povolíte pokročilé funkce jako replaygain. zakažte, pokud se objeví problémy",
"transcode_description": "zapnout překódování do různých formátů",
@@ -284,7 +283,7 @@
"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 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",
@@ -372,26 +371,40 @@
"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"
"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"
@@ -407,8 +420,8 @@
"moveDown": "posunout dolů",
"holdToMoveToTop": "podržte pro přesunutí nahoru",
"holdToMoveToBottom": "podržte pro přesunutí dolů",
"createRadioStation": "vytvořit $t(entity.radioStation_one)",
"deleteRadioStation": "odstranit $t(entity.radioStation_one)",
"createRadioStation": "vytvořit $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "odstranit $t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "otevřít adresář aplikace",
"addOrRemoveFromSelection": "přidat nebo odebrat z výběru",
"selectRangeOfItems": "vyberte rozsah položek",
@@ -427,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ě",
@@ -457,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",
@@ -484,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",
@@ -535,7 +550,8 @@
"mood": "nálada",
"example": "příklad",
"filter_single": "jeden",
"filter_multiple": "několik"
"filter_multiple": "několik",
"rename": "přejmenovat"
},
"table": {
"config": {
@@ -573,7 +589,8 @@
"alternateRowColors": "střídat barvy řádků",
"horizontalBorders": "okraje řádků",
"rowHoverHighlight": "zvýraznění řádku při přejetí myší",
"verticalBorders": "okraje sloupců"
"verticalBorders": "okraje sloupců",
"showHeader": "zobrazit záhlaví"
},
"label": {
"releaseDate": "datum vydání",
@@ -587,25 +604,25 @@
"trackNumber": "číslo stopy",
"rowIndex": "index řádku",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "počet přehrání",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "číslo disku",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (značky)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (značky)",
"image": "obrázek",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
@@ -619,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",
@@ -628,14 +645,14 @@
"title": "název",
"bpm": "bpm",
"dateAdded": "datum přidání",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "skladba",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "umělec alba",
"path": "cesta",
"discNumber": "disk",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "majitel",
@@ -679,7 +696,7 @@
"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",
@@ -688,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",
@@ -707,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ě",
@@ -715,27 +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",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) sdíleny",
"myLibrary": "moje knihovna",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "sbírky"
},
"fullscreenPlayer": {
"config": {
@@ -763,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",
@@ -801,8 +820,8 @@
"download": "stáhnout",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "přejít na $t(entity.album_one)",
"goToAlbumArtist": "přejít na $t(entity.albumArtist_one)",
"goToAlbum": "přejít na $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "přejít na $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "přejít na"
},
@@ -813,10 +832,10 @@
"explore": "procházet z vaší knihovny",
"recentlyPlayed": "nedávno přehráno",
"recentlyReleased": "nedávno vydáno",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "více od tohoto $t(entity.artist_one)",
"moreFromArtist": "více od tohoto $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "více od {{item}}",
"released": "vydáno"
},
@@ -846,17 +865,17 @@
"lyricsDisplay": "zobrazení textů"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showTracks": "zobrazit $t(entity.track_other) s žánrem $t(entity.genre_one)",
"showAlbums": "zobrazit $t(entity.album_other) s žánrem $t(entity.genre_one)"
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "zobrazit $t(entity.track, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})",
"showAlbums": "zobrazit $t(entity.album, {\"count\": 2}) s žánrem $t(entity.genre, {\"count\": 1})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "skladby od umělce {{artist}}",
"genreTracks": "$t(entity.track_other) s žánrem „{{genre}}“"
"genreTracks": "$t(entity.track, {\"count\": 2}) s žánrem „{{genre}}“"
},
"globalSearch": {
"commands": {
@@ -867,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",
@@ -881,11 +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)",
"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í"
"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",
@@ -904,27 +927,40 @@
"title": "správa serverů"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stanice rádia"
},
"windowBar": {
"paused": "(Pozastaveno) ",
"privateMode": "(Soukromý režim)"
},
"collections": {
"overrideExisting": "nahradit existující",
"saveAsCollection": "uložit jako sbírku"
},
"releasenotes": {
"commitsSinceStable": "revize od {{stable}}",
"noNewCommits": "žádné nové revize v tomto období",
"noStableReleaseToCompare": "není dostupné žádné stabilní vydání k porovnání"
}
},
"form": {
"deletePlaylist": {
"title": "odstranit $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) úspěšně odstraněn",
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist_one)u"
"title": "odstranit $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně odstraněn",
"input_confirm": "pro potvrzení zadejte název $t(entity.playlist, {\"count\": 1})u"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "vytvořit $t(entity.playlist_one)",
"title": "vytvořit $t(entity.playlist, {\"count\": 1})",
"input_public": "veřejné",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) úspěšně vytvořen",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně vytvořen",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -936,8 +972,8 @@
"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í",
@@ -947,11 +983,11 @@
},
"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",
@@ -968,12 +1004,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "Hledat texty"
},
"editPlaylist": {
"title": "upravit $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) úspěšně aktualizován",
"title": "upravit $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) úspěšně aktualizován",
"publicJellyfinNote": "Jellyfin z nějakého důvodu neukazuje, zda je seznam skladeb veřejný, nebo ne. Pokud si přejete, aby zůstal veřejný, zvolte prosím následující vstup",
"editNote": "ruční úpravy velkých seznamů skladeb nejsou doporučeny. opravdu přijímáte riziko ztráty dat, které může vzniknout přepsáním existujícího seznamu skladeb?"
},
@@ -996,7 +1032,7 @@
},
"shuffleAll": {
"title": "přehrát náhodně",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "kolik skladeb?",
"input_minYear": "od roku",
"input_maxYear": "do roku",
@@ -1058,7 +1094,7 @@
"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",
@@ -1088,7 +1124,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "vysílání",
"ep": "ep",
"other": "jiné",
File diff suppressed because it is too large Load Diff
+97 -79
View File
@@ -1,22 +1,22 @@
{
"action": {
"editPlaylist": "$t(entity.playlist_one) bearbeiten",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) bearbeiten",
"clearQueue": "Wiedergabeliste leeren",
"addToFavorites": "Zu $t(entity.favorite_other) hinzufügen",
"addToPlaylist": "Zu $t(entity.playlist_one) hinzufügen",
"createPlaylist": "$t(entity.playlist_one) erstellen",
"deletePlaylist": "$t(entity.playlist_one) löschen",
"addToFavorites": "Zu $t(entity.favorite, {\"count\": 2}) hinzufügen",
"addToPlaylist": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) erstellen",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) löschen",
"deselectAll": "Alle abwählen",
"goToPage": "Zu Seite gehen",
"moveToTop": "Als erstes",
"moveToBottom": "Als letztes",
"removeFromPlaylist": "Aus $t(entity.playlist_one) entfernen",
"viewPlaylists": "$t(entity.playlist_other) anzeigen",
"removeFromPlaylist": "Aus $t(entity.playlist, {\"count\": 1}) entfernen",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) anzeigen",
"refresh": "$t(common.refresh)",
"removeFromQueue": "Aus Wiedergabeliste entfernen",
"setRating": "Bewerten",
"toggleSmartPlaylistEditor": "Editor für $t(entity.smartPlaylist) ein-/ausblenden",
"removeFromFavorites": "Aus $t(entity.favorite_other) entfernen",
"removeFromFavorites": "Aus $t(entity.favorite, {\"count\": 2}) entfernen",
"openIn": {
"lastfm": "Auf Last.fm öffnen",
"musicbrainz": "Auf MusicBrainz öffnen"
@@ -30,10 +30,11 @@
"viewMore": "Mehr zeigen",
"moveUp": "Nach oben bewegen",
"moveDown": "Nach unten bewegen",
"createRadioStation": "$t(entity.radioStation_one) erstellen",
"deleteRadioStation": "$t(entity.radioStation_one) löschen",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) erstellen",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) löschen",
"selectAll": "alle auswählen",
"openApplicationDirectory": "Anwendungsverzeichnis öffnen"
"openApplicationDirectory": "Anwendungsverzeichnis öffnen",
"addOrRemoveFromSelection": "Zur Auswahl hinzufügen oder entfernen"
},
"common": {
"backward": "zurück",
@@ -48,7 +49,7 @@
"left": "Linksbündig",
"save": "Speichern",
"right": "Rechtsbündig",
"currentSong": "Aktueller $t(entity.track_one)",
"currentSong": "Aktueller $t(entity.track, {\"count\": 1})",
"collapse": "Verkleinern",
"trackNumber": "Track",
"descending": "absteigend",
@@ -104,7 +105,7 @@
"none": "keine",
"menu": "Menü",
"restartRequired": "(Neustart benötigt)",
"previousSong": "vorheriger $t(entity.track_one)",
"previousSong": "vorheriger $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "Die Abfrage brachte keine Ergebnisse",
"quit": "verlassen",
"expand": "Vergrößern",
@@ -200,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",
@@ -220,25 +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)"
},
@@ -259,11 +260,11 @@
},
"addToPlaylist": {
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) zu $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) hinzugefügt",
"title": "Zu $t(entity.playlist_one) hinzufügen",
"title": "Zu $t(entity.playlist, {\"count\": 1}) hinzufügen",
"input_skipDuplicates": "Duplikate überspringen",
"input_playlists": "$t(entity.playlist_other)",
"create": "$t(entity.playlist_one) {{playlist}} erstellen",
"searchOrCreate": "Nach $t(entity.playlist_other) suchen oder Namen eingeben, um eine neue zu erstellen"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} erstellen",
"searchOrCreate": "Nach $t(entity.playlist, {\"count\": 2}) suchen oder Namen eingeben, um eine neue zu erstellen"
},
"updateServer": {
"title": "Server aktualisieren",
@@ -279,15 +280,15 @@
"resetToDefault": "auf Standard zurücksetzen"
},
"editPlaylist": {
"title": "Bearbeite $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) erfolgreich aktualisiert",
"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",
@@ -308,7 +309,7 @@
},
"shuffleAll": {
"title": "Zufallswiedergabe",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Wie viele Songs?",
"input_minYear": "ab Jahr",
"input_maxYear": "bis Jahr",
@@ -362,7 +363,7 @@
"genreWithCount_other": "{{count}} Genres",
"trackWithCount_one": "{{count}} Track",
"trackWithCount_other": "{{count}} Tracks",
"smartPlaylist": "Intelligente $t(entity.playlist_one)",
"smartPlaylist": "Intelligente $t(entity.playlist, {\"count\": 1})",
"play_one": "{{count}} Wiedergabe",
"play_other": "{{count}} Wiedergaben",
"song_one": "Lied",
@@ -405,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)",
@@ -425,13 +426,13 @@
"year": "$t(common.year)",
"discNumber": "disk-Nummer",
"playCount": "Wiedergaben",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"codec": "$t(common.codec)",
"image": "Bild",
"sampleRate": "$t(common.sampleRate)",
"songCount": "$t(entity.track_other)",
"genreBadge": "$t(entity.genre_one) (Abzeichen)"
"songCount": "$t(entity.track, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (Abzeichen)"
}
},
"column": {
@@ -447,15 +448,15 @@
"favorite": "Favorit",
"lastPlayed": "zuletzt gespielt",
"rating": "Bewertung",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"channels": "$t(common.channel_other)",
"comment": "Kommentar",
"dateAdded": "hinzugefügt am",
"playCount": "Abgespielt",
"discNumber": "Disk",
"genre": "$t(entity.genre_one)",
"songCount": "$t(entity.track_other)",
"genre": "$t(entity.genre, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "titel",
"size": "$t(common.size)",
"bitDepth": "$t(common.bitDepth)",
@@ -497,7 +498,7 @@
"openBrowserDevtools": "Browser-Entwicklungswerkzeuge öffnen",
"goBack": "Gehe zurück",
"goForward": "Gehe vorwärts",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"quit": "$t(common.quit)",
"privateModeOff": "Privatmodus deaktivieren",
"privateModeOn": "Privatmodus aktivieren",
@@ -513,10 +514,10 @@
"recentlyPlayed": "Kürzlich gespielt",
"title": "$t(common.home)",
"recentlyReleased": "kürzlich veröffentlicht",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "mehr von diesem $t(entity.artist_one)",
"moreFromArtist": "mehr von diesem $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "Mehr von {{item}}",
"released": "erschienen"
},
@@ -551,27 +552,28 @@
"moveToNext": "$t(action.moveToNext)",
"shareItem": "teilen",
"showDetails": "Informationen",
"goToAlbum": "zu $t(entity.album_one) gehen",
"goToAlbumArtist": "zu $t(entity.albumArtist_one) gehen",
"goToAlbum": "zu $t(entity.album, {\"count\": 1}) gehen",
"goToAlbumArtist": "zu $t(entity.albumArtist, {\"count\": 1}) gehen",
"moveItems": "$t(action.moveItems)",
"goTo": "Gehe zu"
},
"sidebar": {
"nowPlaying": "läuft gerade",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "$t(entity.playlist_other) geteilt",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) geteilt",
"myLibrary": "meine bibliothek",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "Sammlungen"
},
"setting": {
"playbackTab": "Wiedergabe",
@@ -598,38 +600,40 @@
"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"
"groupingTypePrimary": "primäre Veröffentlichungsformate",
"favoriteSongs": "Lieblingssongs",
"favoriteSongsFrom": "Liebslingssongs von {{title}}"
},
"manageServers": {
"title": "Servers verwalten",
@@ -645,16 +649,23 @@
"openFile": "Track im Dateiexplorer anzeigen"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"playlist": {
"reorder": "Neuanordnung nur bei Sortierung nach ID möglich"
},
"radioList": {
"title": "Radiosender"
},
"windowBar": {
"paused": "(Pausiert) ",
"privateMode": "(Privater Modus)"
},
"collections": {
"saveAsCollection": "Als Sammlung speichern"
}
},
"player": {
@@ -693,7 +704,8 @@
"addNextShuffled": "als Nächstes (zufällige Wiedergabe)",
"holdToShuffle": "Halten für Zufallswiedergabe",
"restoreQueueFromServer": "Wiedergabeliste von Server wiederherstellen",
"saveQueueToServer": "Wiedergabeliste auf Server speichern"
"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)",
@@ -709,7 +721,6 @@
"disableLibraryUpdateOnStartup": "beim Start nicht nach neuen Versionen suchen",
"discordApplicationId_description": "die Application-ID für {{discord}} Rich Presence (Standard: {{defaultId}})",
"audioPlayer_description": "Wählen Sie den Audioplayer aus, der für die Wiedergabe verwendet werden soll",
"disableAutomaticUpdates": "Automatische Updates deaktivieren",
"crossfadeDuration_description": "Legt die Dauer der Überblendung fest",
"customFontPath": "Benutzerdefinierter Pfad für Schriftarten",
"crossfadeDuration": "Dauer der Überblendung",
@@ -757,7 +768,7 @@
"gaplessAudio_description": "Legt die lückenlose Audioeinstellung für MPV fest",
"remoteUsername_description": "Legt den Benutzernamen für den Fernsteuerungsserver fest. Wenn sowohl Benutzername als auch Passwort leer sind, wird die Authentifizierung deaktiviert",
"hotkey_favoritePreviousSong": "Favorit $t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "Zeitversatz des Songtextes (ms)",
"themeDark_description": "Legt das Erscheinungsbild für den dunklen Modus fest",
"remotePassword": "Passwort des Fernsteuerungsservers",
@@ -765,7 +776,7 @@
"language_description": "Legt die Sprache für die Anwendung fest $t(common.restartRequired)",
"playbackStyle_optionCrossFade": "Überblendung",
"hotkey_rate3": "Bewertung 3 Sterne",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "Legt das Erscheinungsbild für den hellen Modus fest",
"hotkey_toggleFullScreenPlayer": "Vollbildmodus umschalten",
"hotkey_localSearch": "Suche auf Seite",
@@ -791,6 +802,7 @@
"playButtonBehavior": "Verhalten der Wiedergabetaste",
"volumeWheelStep": "Lautstärkeänderung mit Mausrad",
"sidebarPlaylistList_description": "Ein- oder Ausblenden der Playlisten-Liste in der Seitenleiste",
"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",
@@ -815,6 +827,7 @@
"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": "Erscheinungsbild (dunkel)",
@@ -972,7 +985,12 @@
"translationTargetLanguage_description": "die gewünschte Sprache der Übersetzung",
"translationTargetLanguage": "Zielsprache der Übersetzung",
"queryBuilderCustomFields": "benutzerdefiniertes Feld",
"queryBuilderCustomFields_inputTag": "Tag"
"queryBuilderCustomFields_inputTag": "Tag",
"homeFeatureStyle_optionMultiple": "mehrere",
"imageResolution": "Bildauflösung",
"imageResolution_optionTable": "Tabelle",
"imageResolution_optionSidebar": "Seitenleiste",
"preservePitch": "Tonhöhe erhalten"
},
"dragDropZone": {
"error_oneFileOnly": "Bitte wähle nur 1 Datei",
@@ -1006,7 +1024,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Broadcast",
"ep": "EP",
"other": "andere",
+119 -81
View File
@@ -1,18 +1,18 @@
{
"action": {
"addToFavorites": "add to $t(entity.favorite_other)",
"addToPlaylist": "add to $t(entity.playlist_one)",
"addToFavorites": "add to $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "add to $t(entity.playlist, {\"count\": 1})",
"addOrRemoveFromSelection": "add or remove from selection",
"selectRangeOfItems": "select a range of items",
"clearQueue": "clear queue",
"createPlaylist": "create $t(entity.playlist_one)",
"createRadioStation": "create $t(entity.radioStation_one)",
"deletePlaylist": "delete $t(entity.playlist_one)",
"deleteRadioStation": "delete $t(entity.radioStation_one)",
"createPlaylist": "create $t(entity.playlist, {\"count\": 1})",
"createRadioStation": "create $t(entity.radioStation, {\"count\": 1})",
"deletePlaylist": "delete $t(entity.playlist, {\"count\": 1})",
"deleteRadioStation": "delete $t(entity.radioStation, {\"count\": 1})",
"selectAll": "select all",
"deselectAll": "deselect all",
"downloadStarted": "started download of {{count}} items",
"editPlaylist": "edit $t(entity.playlist_one)",
"editPlaylist": "edit $t(entity.playlist, {\"count\": 1})",
"goToPage": "go to page",
"moveToNext": "move to next",
"moveToBottom": "move to bottom",
@@ -26,12 +26,12 @@
"shuffleAll": "shuffle all",
"shuffleSelected": "shuffle selected",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "remove from $t(entity.favorite_other)",
"removeFromPlaylist": "remove from $t(entity.playlist_one)",
"removeFromFavorites": "remove from $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "remove from $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "remove from queue",
"setRating": "set rating",
"toggleSmartPlaylistEditor": "toggle $t(entity.smartPlaylist) editor",
"viewPlaylists": "view $t(entity.playlist_other)",
"viewPlaylists": "view $t(entity.playlist, {\"count\": 2})",
"viewMore": "view more",
"openApplicationDirectory": "open application directory",
"openIn": {
@@ -69,7 +69,7 @@
"configure": "configure",
"confirm": "confirm",
"create": "create",
"currentSong": "current $t(entity.track_one)",
"currentSong": "current $t(entity.track, {\"count\": 1})",
"decrease": "decrease",
"delete": "delete",
"descending": "descending",
@@ -117,7 +117,7 @@
"path": "path",
"playerMustBePaused": "player must be paused",
"preview": "preview",
"previousSong": "previous $t(entity.track_one)",
"previousSong": "previous $t(entity.track, {\"count\": 1})",
"private": "private",
"public": "public",
"quit": "quit",
@@ -128,6 +128,7 @@
"releaseType": "release type",
"refresh": "refresh",
"reload": "reload",
"rename": "rename",
"reset": "reset",
"resetToDefault": "reset to default",
"restartRequired": "restart required",
@@ -137,7 +138,6 @@
"saveAndReplace": "save and replace",
"saveAs": "save as",
"search": "search",
"setting": "setting",
"setting_one": "setting",
"setting_other": "settings",
"slower": "slower",
@@ -194,7 +194,7 @@
"play_other": "{{count}} plays",
"playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_other": "{{count}} playlists",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"track_one": "track",
"track_other": "tracks",
"song_one": "song",
@@ -234,14 +234,14 @@
"settingsSyncError": "discrepancies were found between the settings in the renderer and the main process. restart the application to apply the changes"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "$t(entity.album_other) count",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2}) count",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography",
"bitrate": "bitrate",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "comment",
"communityRating": "community rating",
"criticRating": "critic rating",
@@ -250,7 +250,7 @@
"duration": "duration",
"favorited": "favorited",
"fromYear": "from year",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "is compilation",
"isFavorited": "is favorited",
@@ -273,6 +273,7 @@
"releaseYear": "release year",
"search": "search",
"songCount": "song count",
"sortName": "sort name",
"title": "title",
"toYear": "to year",
"trackNumber": "track",
@@ -329,20 +330,20 @@
"description": "This action will add all items in the current filtered view"
},
"addToPlaylist": {
"create": "create $t(entity.playlist_one) {{playlist}}",
"input_playlists": "$t(entity.playlist_other)",
"create": "create $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "skip duplicates",
"searchOrCreate": "search $t(entity.playlist_other) or type to create a new one",
"searchOrCreate": "search $t(entity.playlist, {\"count\": 2}) or type to create a new one",
"success": "added $t(entity.trackWithCount, {\"count\": {{message}} }) to $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "add to $t(entity.playlist_one)"
"title": "add to $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "public",
"success": "$t(entity.playlist_one) created successfully",
"title": "create $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) created successfully",
"title": "create $t(entity.playlist, {\"count\": 1})"
},
"createRadioStation": {
"success": "radio station created successfully",
@@ -352,15 +353,15 @@
"input_streamUrl": "stream url"
},
"deletePlaylist": {
"input_confirm": "type the name of the $t(entity.playlist_one) to confirm",
"success": "$t(entity.playlist_one) deleted successfully",
"title": "delete $t(entity.playlist_one)"
"input_confirm": "type the name of the $t(entity.playlist, {\"count\": 1}) to confirm",
"success": "$t(entity.playlist, {\"count\": 1}) deleted successfully",
"title": "delete $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin for some reason does not expose whether a playlist is public or not. If you wish for this to remain public, please have the following input selected",
"editNote": "manual edits are not recommended for large playlists. are you sure you accept the risk of data loss incurred by overwriting the existing playlist?",
"success": "$t(entity.playlist_one) updated successfully",
"title": "edit $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) updated successfully",
"title": "edit $t(entity.playlist, {\"count\": 1})"
},
"lyricsExport": {
"export": "export lyrics",
@@ -368,7 +369,7 @@
"input_offset": "$t(setting.lyricOffset)"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "lyric search"
},
@@ -394,7 +395,7 @@
},
"shuffleAll": {
"title": "play random",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "how many songs?",
"input_minYear": "from year",
"input_maxYear": "to year",
@@ -417,34 +418,47 @@
"albumArtistDetail": {
"about": "About {{artist}}",
"appearsOn": "appears on",
"favoriteSongs": "favorite songs",
"groupingTypeAll": "all release types",
"groupingTypePrimary": "primary release types",
"recentReleases": "recent releases",
"viewDiscography": "view discography",
"relatedArtists": "related $t(entity.artist_other)",
"relatedArtists": "related $t(entity.artist, {\"count\": 2})",
"topSongs": "top songs",
"topSongsCommunity": "community",
"topSongsFrom": "top songs from {{title}}",
"topSongsPersonal": "personal",
"favoriteSongsFrom": "favorite songs from {{title}}",
"viewAll": "view all",
"viewAllTracks": "view all $t(entity.track_other)"
"viewAllTracks": "view all $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "more from this $t(entity.artist_one)",
"moreFromArtist": "more from this $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "more from {{item}}",
"released": "released"
},
"albumList": {
"artistAlbums": "albums by {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"radioList": {
"title": "radio stations"
},
"releasenotes": {
"commitsSinceStable": "commits since {{stable}}",
"noNewCommits": "no new commits in this range",
"noStableReleaseToCompare": "no stable release available to compare with"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"windowBar": {
"paused": "(Paused) ",
"privateMode": "(Private mode)"
},
"appMenu": {
"collapseSidebar": "collapse sidebar",
@@ -461,7 +475,7 @@
"selectMusicFolder": "select music folder",
"noMusicFolder": "no music folder selected",
"multipleMusicFolders": "{{count}} music folders selected",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "version {{version}}"
},
"manageServers": {
@@ -496,8 +510,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "share item",
"goTo": "go to",
"goToAlbum": "go to $t(entity.album_one)",
"goToAlbumArtist": "go to $t(entity.albumArtist_one)",
"goToAlbum": "go to $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "go to $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "get info"
},
"fullscreenPlayer": {
@@ -524,12 +538,12 @@
"noLyrics": "no lyrics found"
},
"genreList": {
"showAlbums": "show $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "show $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "show $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "show $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -541,7 +555,7 @@
},
"home": {
"explore": "explore from your library",
"genres": "$t(entity.genre_other)",
"genres": "$t(entity.genre, {\"count\": 2})",
"mostPlayed": "most played",
"newlyAdded": "newly added releases",
"recentlyPlayed": "recently played",
@@ -557,7 +571,11 @@
"reorder": "reordering only enabled when sorting by id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"collections": {
"overrideExisting": "override existing",
"saveAsCollection": "save as collection"
},
"setting": {
"advanced": "advanced",
@@ -585,26 +603,27 @@
"playerFilters": "player filters"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"favorites": "$t(entity.favorite_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"collections": "collections",
"artists": "$t(entity.artist, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"radio": "$t(entity.radioStation_other)",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"myLibrary": "my library",
"nowPlaying": "now playing",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "shared $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "shared $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "tracks by {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -656,7 +675,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast",
"ep": "ep",
"other": "other",
@@ -694,6 +713,8 @@
"albumBackgroundBlur": "album background image blur size",
"analyticsDisable": "Opt-out of usage based analytics",
"analyticsDisable_description": "Anonymized usage data is sent to the developer to help improve the application",
"analyticsEnable": "Send usage-based analytics",
"analyticsEnable_description": "Anonymized usage data is sent to the developer to help improve the application",
"applicationHotkeys_description": "configure application hotkeys. toggle the checkbox to set as a global hotkey (desktop only)",
"applicationHotkeys": "application hotkeys",
"artistBackground": "artist background image",
@@ -730,11 +751,13 @@
"customCssNotice": "Warning: while there is some sanitization (disallowing url() and content:), using custom css can still pose risks by changing the interface",
"customFontPath_description": "sets the path to the custom font to use for the application",
"customFontPath": "custom font path",
"disableAutomaticUpdates": "disable automatic updates",
"automaticUpdates": "Automatic updates",
"automaticUpdates_description": "Check for and install updates automatically",
"releaseChannel_optionAlpha": "alpha (nightly)",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "latest",
"releaseChannel": "release channel",
"releaseChannel_description": "choose between stable releases or beta releases for automatic updates",
"releaseChannel_description": "choose between stable, beta, or alpha (nightly) releases for automatic updates",
"disableLibraryUpdateOnStartup": "disable checking for new versions on startup",
"discordApplicationId_description": "the application id for {{discord}} rich presence (defaults to {{defaultId}})",
"discordApplicationId": "{{discord}} application id",
@@ -796,6 +819,10 @@
"homeConfiguration": "home page configuration",
"homeFeature_description": "controls whether to show the large featured carousel on the home page",
"homeFeature": "home featured carousel",
"homeFeatureStyle_description": "controls the style of the home featured carousel",
"homeFeatureStyle": "home featured carousel style",
"homeFeatureStyle_optionMultiple": "multiple",
"homeFeatureStyle_optionSingle": "single",
"hotkey_browserBack": "browser back",
"hotkey_browserForward": "browser forward",
"hotkey_favoriteCurrentSong": "favorite $t(common.currentSong)",
@@ -918,6 +945,10 @@
"showLyricsInSidebar": "show lyrics in player sidebar",
"showRatings_description": "controls if the star ratings feature shows up in the interface",
"showRatings": "show star ratings",
"blurExplicitImages": "blur explicit images",
"blurExplicitImages_description": "album and song artwork tagged as explicit will be blurred",
"enableGridMultiSelect": "enable grid multi-select",
"enableGridMultiSelect_description": "when enabled, allows selecting multiple items in grid views. when disabled, clicking grid item images will navigate to the item page",
"showVisualizerInSidebar_description": "a panel will be added to the player sidebar that displays the visualizer",
"showVisualizerInSidebar": "show visualizer in player sidebar",
"combinedLyricsAndVisualizer_description": "combine lyrics and visualizer into the same panel",
@@ -939,9 +970,9 @@
"replayGainFallback_description": "gain in db to apply if the file has no {{ReplayGain}} tags",
"replayGainFallback": "{{ReplayGain}} fallback",
"replayGainMode_description": "adjust volume gain according to {{ReplayGain}} values stored in the file metadata",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} mode",
"replayGainPreamp_description": "adjust the preamp gain applied to the {{ReplayGain}} values",
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
@@ -961,6 +992,11 @@
"sidebarConfiguration": "sidebar configuration",
"sidebarPlaylistList_description": "show or hide the playlist list in the sidebar",
"sidebarPlaylistList": "sidebar playlist list",
"sidebarPlaylistSorting_description": "allows manual playlist sorting in the sidebar using drag and drop instead of the default server order",
"sidebarPlaylistSorting": "sidebar playlist sorting",
"sidebarPlaylistListFilterRegex_description": "hide playlists in the sidebar that match this regular expression",
"sidebarPlaylistListFilterRegex_placeholder": "e.g. ^Daily Mix.*",
"sidebarPlaylistListFilterRegex": "playlist filter regex",
"sidePlayQueueStyle_description": "sets the style of the side play queue",
"sidePlayQueueStyle_optionAttached": "attached",
"sidePlayQueueStyle_optionDetached": "detached",
@@ -1015,19 +1051,19 @@
"column": {
"album": "album",
"albumArtist": "album artist",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biography",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "bitrate",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"comment": "comment",
"dateAdded": "date added",
"discNumber": "disc",
"favorite": "favorite",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "last played",
"path": "path",
"playCount": "plays",
@@ -1036,7 +1072,7 @@
"releaseYear": "year",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "title",
"trackNumber": "track",
"owner": "owner"
@@ -1071,27 +1107,28 @@
"alternateRowColors": "alternate row colors",
"horizontalBorders": "row borders",
"rowHoverHighlight": "row hover highlight",
"showHeader": "show header",
"verticalBorders": "column borders"
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumCount": "$t(entity.album_other)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"composer": "composer",
"dateAdded": "date added",
"discNumber": "disc number",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genreBadge": "$t(entity.genre_one) (badges)",
"genre": "$t(entity.genre, {\"count\": 1})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image",
"lastPlayed": "last played",
"note": "$t(common.note)",
@@ -1103,7 +1140,7 @@
"rowIndex": "row index",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleArtist": "$t(common.title) (artist)",
"titleCombined": "$t(common.title) (combined)",
@@ -1111,6 +1148,7 @@
"year": "$t(common.year)"
},
"view": {
"detail": "detail",
"grid": "grid",
"list": "list",
"table": "table"
+123 -87
View File
@@ -95,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",
@@ -111,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",
@@ -155,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",
@@ -283,7 +282,7 @@
"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, mostrando los controles de medios y los metadatos en la superposición del volumen del sistema y en la pantalla de bloqueo",
@@ -372,26 +371,40 @@
"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"
"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"
@@ -407,8 +420,8 @@
"holdToMoveToTop": "Mantener pulsado para desplazar hacia arriba",
"moveUp": "Desplazar hacia arriba",
"moveDown": "Desplazar hacia abajo",
"createRadioStation": "Crear $t(entity.radioStation_one)",
"deleteRadioStation": "Borrar $t(entity.radioStation_one)",
"createRadioStation": "Crear $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "Borrar $t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "Abrir directorio de la aplicación",
"addOrRemoveFromSelection": "Añadir o quitar de la selección",
"selectRangeOfItems": "Seleccionar un intervalo de elementos",
@@ -427,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",
@@ -456,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",
@@ -474,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",
@@ -535,7 +550,8 @@
"mood": "Estado de ánimo",
"example": "Ejemplo",
"filter_single": "simple",
"filter_multiple": "multi"
"filter_multiple": "multi",
"rename": "Renombrar"
},
"error": {
"remotePortWarning": "reiniciar el servidor para aplicar el nuevo puerto",
@@ -585,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",
@@ -603,38 +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)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "compartido $t(entity.playlist, {\"count\": 2})",
"myLibrary": "Mi biblioteca",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "Colecciones"
},
"appMenu": {
"selectServer": "seleccionar servidor",
"version": "versión {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "gestionar servidores",
"expandSidebar": "ampliar barra lateral",
"collapseSidebar": "contraer barra lateral",
@@ -672,8 +690,8 @@
"download": "descargar",
"playShuffled": "$t(player.shuffle)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "Ir a $t(entity.album_one)",
"goToAlbumArtist": "Ir a $t(entity.albumArtist_one)",
"goToAlbum": "Ir a $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "Ir a $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "Ir a"
},
@@ -684,7 +702,7 @@
"explore": "explora desde tu biblioteca",
"recentlyPlayed": "reproducidos recientemente",
"recentlyReleased": "Lanzado recientemente",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"fullscreenPlayer": {
"upNext": "siguiente",
@@ -710,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"
},
@@ -740,16 +758,16 @@
"lyricsDisplay": "Mostrar letras"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "Mostrar $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "Mostrar $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "Mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"artistTracks": "Pistas de {{artist}}"
},
"globalSearch": {
@@ -761,16 +779,16 @@
"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",
@@ -779,7 +797,11 @@
"about": "Sobre {{artist}}",
"appearsOn": "Aparece en",
"groupingTypeAll": "Todos los tipos de lanzamiento",
"groupingTypePrimary": "Tipos de lanzamiento principales"
"groupingTypePrimary": "Tipos de lanzamiento principales",
"favoriteSongs": "Canciones favoritas",
"favoriteSongsFrom": "Canciones favoritas de {{title}}",
"topSongsPersonal": "Personal",
"topSongsCommunity": "Comunidad"
},
"itemDetail": {
"copiedPath": "Ruta copiada correctamente",
@@ -798,27 +820,40 @@
"url": "URL"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "Estaciones de radio"
},
"windowBar": {
"privateMode": "(Modo privado)",
"paused": "(Pausado) "
},
"collections": {
"overrideExisting": "Sobreescribir existente",
"saveAsCollection": "Guardar como colección"
},
"releasenotes": {
"commitsSinceStable": "Actualizaciones desde {{stable}}",
"noNewCommits": "Ninguna nueva actualización en este rango",
"noStableReleaseToCompare": "Ningún lanzamiento estable disponible con el que comparar"
}
},
"form": {
"deletePlaylist": {
"title": "eliminar $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) eliminado correctamente",
"input_confirm": "escribe el nombre de $t(entity.playlist_one) para confirmar"
"title": "eliminar $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) eliminado correctamente",
"input_confirm": "escribe el nombre de $t(entity.playlist, {\"count\": 1}) para confirmar"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "crear $t(entity.playlist_one)",
"title": "crear $t(entity.playlist, {\"count\": 1})",
"input_public": "público",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) creado correctamente",
"success": "$t(entity.playlist, {\"count\": 1}) creado correctamente",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -841,11 +876,11 @@
},
"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",
@@ -853,12 +888,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "buscar letras"
},
"editPlaylist": {
"title": "editar $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) actualizada correctamente",
"title": "editar $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) actualizada correctamente",
"publicJellyfinNote": "Jellyfin por alguna razón no expone si una lista de reproducción es pública o no. Si deseas que ésta siga siendo pública, por favor ten seleccionada la siguiente entrada",
"editNote": "No se recomiendan las ediciones manuales para grandes listas de reproducción. ¿Seguro que aceptas el riesgo de pérdida de información incurrido por sobrescribir la lista de reproducción existente?"
},
@@ -890,7 +925,7 @@
},
"shuffleAll": {
"title": "Reproducir aleatorio",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "¿Cuántas canciones?",
"input_minYear": "Del año",
"input_maxYear": "Hasta el año",
@@ -922,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",
@@ -931,14 +966,14 @@
"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)",
"owner": "Propietario",
@@ -951,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)",
@@ -970,13 +1005,13 @@
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"playCount": "número de reproducciones",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (insignias)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (insignias)",
"image": "Imagen",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
@@ -1012,7 +1047,8 @@
"alternateRowColors": "Colores de fila alternativos",
"horizontalBorders": "Bordes de fila",
"verticalBorders": "Bordes de columna",
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila"
"rowHoverHighlight": "Resaltar al pasar el cursor por la fila",
"showHeader": "Mostrar cabecera"
},
"view": {
"table": "tabla",
@@ -1022,7 +1058,7 @@
}
},
"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",
@@ -1088,7 +1124,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "Emisión",
"ep": "EP",
"other": "Otro",
+169 -81
View File
@@ -1,29 +1,29 @@
{
"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 gogokoetatik",
"removeFromPlaylist": "kendu $t(entity.playlist_one)-(e)tik",
"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)",
"createPlaylist": "sortu $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "ezabatu $t(entity.playlist, {\"count\": 1})",
"addToFavorites": "gehitu gogokoetara",
"addToPlaylist": "gehitu $t(entity.playlist_one)ra",
"createRadioStation": "sortu $t(entity.radioStation_one)",
"deleteRadioStation": "ezabatu $t(entity.radioStation_one)",
"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",
@@ -31,7 +31,9 @@
"addOrRemoveFromSelection": "gehitu edo kendu hautapenetik",
"selectRangeOfItems": "aukeratu elementu sorta bat",
"shuffleAll": "nahastu dena",
"shuffleSelected": "nahastu aukeratutak"
"shuffleSelected": "nahastu aukeratutak",
"moveItems": "elementuak mugitu",
"openApplicationDirectory": "ireki aplikazioaren direktorioa"
},
"common": {
"add": "gehitu",
@@ -48,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",
@@ -65,7 +67,8 @@
"filter_other": "iragazkiak",
"filters": "iragazkiak",
"forceRestartRequired": "berreabiarazi aldaketak aplikatzeko... itxi notifikazioa berreabiarazteko",
"setting": "ezarpenak",
"setting_one": "ezarpenak",
"setting_other": "",
"share": "partekatu",
"action_one": "ekintza",
"action_other": "ekintzak",
@@ -101,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",
@@ -146,7 +149,8 @@
"sort": "ordenatu",
"recordLabel": "diskoetxea",
"example": "adibidea",
"tableColumns": "taulako zutabeak"
"tableColumns": "taulako zutabeak",
"doNotShowAgain": "ez erakutsi hau berriro"
},
"player": {
"repeat": "errepikatu",
@@ -184,7 +188,9 @@
"restoreQueueFromServer": "berrezarri ilara zerbitzaritik",
"saveQueueToServer": "gorde ilara zerbitzarira",
"addLastShuffled": "azkena (ausaz)",
"addNextShuffled": "hurrengoa (ausaz)"
"addNextShuffled": "hurrengoa (ausaz)",
"artistRadio": "artista irratia",
"trackRadio": "pista irratia"
},
"table": {
"config": {
@@ -215,9 +221,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)",
@@ -225,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)",
@@ -240,7 +246,7 @@
"lastPlayed": "azken aldiz entzunda",
"discNumber": "disko zenbakia",
"dateAdded": "gehitze data",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"image": "irudia",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
@@ -248,20 +254,20 @@
},
"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",
@@ -305,7 +311,7 @@
"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",
@@ -344,7 +350,8 @@
"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"
"saveQueueFailed": "huts egin du ilara gordetzean",
"multipleServerSaveQueueError": "erreprodukzio-ilarak zerbitzarikoak ez diren abesti bat edo gehiago ditu. hau ez da onartzen"
},
"filter": {
"disc": "diskoa",
@@ -358,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",
@@ -397,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",
@@ -412,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",
@@ -635,7 +641,41 @@
"transcodeBitrate": "transkodetzeko bit-emaria",
"transcodeFormat_description": "transkodetzeko formatua hautatzen du. utzi hutsik zerbitzariak erabaki dezan",
"transcodeFormat": "transkodetzeko formatua",
"queryBuilderCustomFields_inputLabel": "etiketa"
"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": {
@@ -655,23 +695,23 @@
"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"
},
@@ -684,13 +724,13 @@
"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",
"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?"
},
@@ -725,7 +765,7 @@
"input_offset": "$t(setting.lyricOffset)"
},
"shuffleAll": {
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"title": "ausaz erreproduzitu",
"input_limit": "zenbat abesti?",
"input_played_optionAll": "pista guztiak",
@@ -738,21 +778,21 @@
},
"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",
@@ -798,7 +838,7 @@
"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",
"moveItems": "$t(action.moveItems)"
@@ -827,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",
@@ -846,10 +886,10 @@
"recentlyPlayed": "azken aldian entzundakoak",
"recentlyReleased": "azken aldian argitaratutak",
"explore": "arakatu zure liburutegitik",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "aurreratua",
@@ -874,34 +914,34 @@
"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)",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_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",
@@ -917,10 +957,10 @@
"reorder": "berrantolaketa IDaren arabera ordenatzean bakarrik gaituta dago"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"radioList": {
"title": "irrati-kateak"
@@ -928,7 +968,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"other": "bestelakoa",
"ep": "ep"
},
@@ -936,7 +976,8 @@
"compilation": "konpilazioa",
"audiobook": "audioliburua",
"interview": "elkarrizketa",
"remix": "nahasketa"
"remix": "nahasketa",
"djMix": "dj nahasketa"
}
},
"datetime": {
@@ -946,7 +987,8 @@
"dayShort": "d"
},
"queryBuilder": {
"customTags": "etiketa pertsonalizatutak"
"customTags": "etiketa pertsonalizatutak",
"standardTags": "etiketa estandarrak"
},
"filterOperator": {
"is": "da",
@@ -984,7 +1026,8 @@
"gradient": {
"classic": "Klasikoa",
"prism": "Prisma",
"rainbow": "Ostadarra"
"rainbow": "Ostadarra",
"orangered": "Laranja-gorria"
},
"weightingFilter": {
"none": "Bat ere ez",
@@ -993,6 +1036,24 @@
"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",
@@ -1009,6 +1070,33 @@
"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"
"configPasteReadFailed": "Arbelatik irakurtzeak huts egin du",
"colorMode": "Kolore Modua",
"fftSize": "FFT tamaina",
"frequencyRangeAndScaling": "Maiztasun-tartea eta eskalatzea",
"showScaleY": "Erakutsi Y Eskala",
"pasteGradientPlaceholder": "Itsatsi JSON gradientea hemen...",
"pasteGradient": "Itsatsi Gradientea",
"addColor": "Gehitu Kolorea",
"colorStops": "Kolore Geldialdiak",
"gradientNamePlaceholder": "Gradientearen Izena",
"gradientName": "Gradientearen Izena",
"addCustomGradient": "Gehitu Gradiente Pertsonalizatua",
"customGradients": "Gradiente Pertsonalizatuak",
"maxFPS": "FPS maximoak",
"channelLayout": "Kanalaren Diseinua",
"lineWidth": "Lerroaren Zabalera",
"presetNamePlaceholder": "Sartu aurrezarpenaren izena",
"presetName": "Aurrezarpenaren Izena",
"applyConfiguration": "Aplikatu konfigurazioa",
"pasteFromClipboard": "Itsatsi Arbeletik",
"pasteConfigurationPlaceholder": "Itsatsi JSON konfigurazioa hemen...",
"pasteConfiguration": "Itsatsi Konfigurazioa",
"copyConfiguration": "Kopiatu Konfigurazioa",
"updatePreset": "Aurrezarpena Eguneratu",
"saveAsPreset": "Aurrezarpen gisa gorde",
"applyPreset": "Aurrezarpena Aplikatu",
"selectPreset": "Aukeratu Aurrezarpena",
"presets": "Aurrezarpenak"
}
}
+55 -55
View File
@@ -33,23 +33,23 @@
"muted": "بی‌صدا"
},
"action": {
"editPlaylist": "ویرایش $t(entity.playlist_one)",
"editPlaylist": "ویرایش $t(entity.playlist, {\"count\": 1})",
"goToPage": "برو به صفحهٔ",
"moveToTop": "انتقال به بالا",
"clearQueue": "خالی کردن صف",
"addToFavorites": "افزودن به $t(entity.favorite_other)",
"addToPlaylist": "افزودن به $t(entity.playlist_one)",
"createPlaylist": "ساخت $t(entity.playlist_one)",
"removeFromPlaylist": "حذف از $t(entity.playlist_one)",
"viewPlaylists": "نمایش $t(entity.playlist_other)",
"addToFavorites": "افزودن به $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "افزودن به $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "ساخت $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "حذف از $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "نمایش $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "حذف $t(entity.playlist_one)",
"deletePlaylist": "حذف $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "حذف از صف",
"deselectAll": "لغو انتخاب همه",
"moveToBottom": "انتقال به پایین",
"setRating": "تعیین امتیاز",
"toggleSmartPlaylistEditor": "تغییر ویرایشگر $t(entity.smartPlaylist)",
"removeFromFavorites": "حذف از $t(entity.favorite_other)",
"removeFromFavorites": "حذف از $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "باز کردن در Last.fm",
"musicbrainz": "باز کردن در MusicBranz"
@@ -76,16 +76,15 @@
"hotkey_volumeDown": "کم کردن صدا",
"audioPlayer_description": "پخش‌کنندهٔ صدا را برای پخش انتخاب کنید",
"hotkey_globalSearch": "جست و جوی سراسری",
"disableAutomaticUpdates": "غیرفعال کردن به‌‌روزرسانی خودکار",
"exitToTray_description": "خروج از اپلیکیشن به system tray",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"discordUpdateInterval_description": "فاصلهٔ بین هر به روزرسانی به ثانیه (حداقل ۱۵ ثانیه)",
"audioExclusiveMode": "حالت اختصاصی صدا",
"remotePassword": "رمز عبور کنترل از راه دور",
"language_description": "زبان اپلیکیشن را معین می‌کند $t(common.restartRequired)",
"hotkey_rate3": "امتیاز ۳ ستاره",
"font": "قلم",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"hotkey_toggleFullScreenPlayer": "تغییر به پخش‌کنندهٔ تمام‌صفحه",
"hotkey_localSearch": "جست و جو در صفحه",
"hotkey_toggleQueue": "تغییر صف",
@@ -186,7 +185,7 @@
"left": "چپ",
"save": "ذخیره",
"right": "راست",
"currentSong": "فعلی $t(entity.track_one)",
"currentSong": "فعلی $t(entity.track, {\"count\": 1})",
"collapse": "بستن",
"trackNumber": "قطعه",
"descending": "نزولی",
@@ -239,7 +238,7 @@
"none": "هیچ",
"menu": "منو",
"restartRequired": "راه‌اندازی دوباره لازم است",
"previousSong": "$t(entity.track_one) پیشین",
"previousSong": "$t(entity.track, {\"count\": 1}) پیشین",
"noResultsFromQuery": "جست‌وجو نتیجه‌ای نداشت",
"quit": "خروج",
"expand": "گسترش",
@@ -256,7 +255,8 @@
"albumPeak": "اوج آلبوم",
"mbid": "شناسه‌ی MusicBrainz",
"reload": "بارگذاری مجدد",
"setting": "پیکربندی",
"setting_one": "پیکربندی",
"setting_other": "",
"trackGain": "گین قطعه",
"trackPeak": "اوج قطعه",
"translation": "ترجمه",
@@ -301,16 +301,16 @@
"rating": "امتیاز",
"search": "جست‌وجو",
"bitrate": "بیت‌ریت",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "به تازگی افزوده شده",
"note": "توجه",
"name": "نام",
"dateAdded": "تاریخ افزوده شدن",
"releaseDate": "تاریخ انتشار",
"albumCount": "$t(entity.album_other) عدد",
"albumCount": "$t(entity.album, {\"count\": 2}) عدد",
"path": "مسیر",
"favorited": "موردعلاقه",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "به تازگی پخش شده است",
"isFavorited": "موردعلاقه است",
"bpm": "bpm",
@@ -319,7 +319,7 @@
"disc": "دیسک",
"biography": "زندگی‌نامه",
"songCount": "تعداد ترانه",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "مدت",
"isPublic": "عمومی است",
"random": "تصادفی",
@@ -327,23 +327,23 @@
"toYear": "تا سال",
"fromYear": "از سال",
"criticRating": "امتیاز منتقدین",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "قطعه",
"communityRating": "رتبه بندی جامعه",
"isCompilation": "مخلوط است"
},
"form": {
"deletePlaylist": {
"title": "حذف $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) حذف شد",
"input_confirm": "برای تایید، نام $t(entity.playlist_one) را وارد کنید"
"title": "حذف $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) حذف شد",
"input_confirm": "برای تایید، نام $t(entity.playlist, {\"count\": 1}) را وارد کنید"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "ساخت $t(entity.playlist_one)",
"title": "ساخت $t(entity.playlist, {\"count\": 1})",
"input_public": "عمومی",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) ساخته شد",
"success": "$t(entity.playlist, {\"count\": 1}) ساخته شد",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -360,19 +360,19 @@
"ignoreSsl": "نادیده گرفتن ssl ($t(common.restartRequired))"
},
"addToPlaylist": {
"success": "$t(entity.song_other) به {{numOfPlaylists}}$t(entity.playlist_other) افزوده شد",
"title": "افزودن به $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist_other)",
"success": "$t(entity.song, {\"count\": 2}) به {{numOfPlaylists}}$t(entity.playlist, {\"count\": 2}) افزوده شد",
"title": "افزودن به $t(entity.playlist, {\"count\": 1})",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "پرش از تکراری‌ها"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "جست‌وجو در متن شعر"
},
"editPlaylist": {
"title": "ویرایش $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) با موفقیت بروزرسانی شد",
"title": "ویرایش $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) با موفقیت بروزرسانی شد",
"publicJellyfinNote": "جلی‌فین به دلیلی این‌که فهرست پخش عمومی‌ست یا خصوصی را فاش نمی‌کند. اگر می‌خواهید این عمومی باقی بماند، لطفاٌ ورودی پیش‌رو را منتخب داشته باشید"
},
"queryEditor": {
@@ -417,7 +417,7 @@
"artistWithCount_other": "{{count}} هنرمند",
"folder_one": "پوشه",
"folder_other": "پوشه‌ها",
"smartPlaylist": "$t(entity.playlist_one) هوشمند",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) هوشمند",
"album_one": "آلبوم",
"album_other": "آلبوم‌ها",
"genreWithCount_one": "{{count}} ژانر",
@@ -431,12 +431,12 @@
},
"page": {
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "آلبوم‌های {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"appMenu": {
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"selectServer": "گزینش سرویس‌دهنده",
"expandSidebar": "گسترش نوار کناری",
"collapseSidebar": "فروکش نوار کناری",
@@ -451,11 +451,11 @@
"appearsOn": "مشاهده می‌شود در",
"about": "درباره‌ی {{artist}}",
"recentReleases": "عرضه‌های اخیر",
"viewAllTracks": "نمایش همه‌ی $t(entity.track_other)",
"viewAllTracks": "نمایش همه‌ی $t(entity.track, {\"count\": 2})",
"topSongsFrom": "قطعه‌های برتر از {{title}}",
"viewAll": "نمایش همه",
"viewDiscography": "نمایش کاتالوگ",
"relatedArtists": "$t(entity.artist_other) مربوطه",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) مربوطه",
"topSongs": "قطعه‌های برتر"
},
"contextMenu": {
@@ -523,21 +523,21 @@
"playbackTab": "پخش"
},
"sidebar": {
"genres": "$t(entity.genre_other)",
"playlists": "$t(entity.playlist_other)",
"genres": "$t(entity.genre, {\"count\": 2})",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"folders": "$t(entity.folder_other)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"home": "$t(common.home)",
"nowPlaying": "پخش کنونی",
"tracks": "$t(entity.track_other)",
"settings": "$t(common.setting_other)",
"shared": "$t(entity.playlist_other) اشتراک‌گذاری شده"
"tracks": "$t(entity.track, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) اشتراک‌گذاری شده"
},
"albumDetail": {
"moreFromArtist": "موارد بیشتر از این $t(entity.artist_one)",
"moreFromArtist": "موارد بیشتر از این $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "موارد بیشتر از {{item}}",
"released": "عرضه شده"
},
@@ -550,9 +550,9 @@
"editServerDetailsTooltip": "ویرایش ریزگان سرویس‌دهنده"
},
"genreList": {
"showAlbums": "نمایش $t(entity.genre_one) $t(entity.album_other)",
"title": "$t(entity.genre_other)",
"showTracks": "نمایش $t(entity.genre_one) $t(entity.track_other)"
"showAlbums": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "نمایش $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -563,15 +563,15 @@
"title": "فرمان‌ها"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "قطعه‌های {{artist}}",
"genreTracks": "$t(entity.track_other) \"{{genre}}\""
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "کپی کردن مسیر در کلیپ‌بورد",
@@ -584,11 +584,11 @@
"size": "$t(common.size)",
"lastPlayed": "آخرین بار پخش شده",
"discNumber": "دیسک",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "عنوان",
"trackNumber": "قطعه",
"favorite": "مورد علاقه",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"comment": "دیدگاه",
"playCount": "تعداد پخش",
"rating": "امتیاز",
+66 -66
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"
},
@@ -374,7 +375,6 @@
"customCss_description": "mukautettu CSS-sisältö. Huomautus: content- ja etä-URL-osoitteet ovat estettyjä ominaisuuksia. Esikatselu sisällöstäsi on alla. Lisäkenttiä, joita et ole määrittänyt, on näkyvissä puhdistuksen vuoksi",
"customCssNotice": "Varoitus: vaikka jonkinlainen puhdistus onkin tehty (url()- ja content:-komentojen estäminen), mukautetun css:n käyttäminen voi silti aiheuttaa riskejä muuttamalla käyttöliittymää",
"disableLibraryUpdateOnStartup": "poista uusimman version tarkistus käynnistyksen yhteydessä käytöstä",
"disableAutomaticUpdates": "poista automaattiset päivitykset käytöstä",
"discordIdleStatus": "näytä rich presencen käyttämätön tila",
"discordIdleStatus_description": "kun käytössä, päivitä tila kun soitin on käyttämättömänä",
"discordUpdateInterval_description": "päivitysväli sekunnteina (vähintään 15 sekunttia)",
@@ -437,7 +437,7 @@
"gaplessAudio": "tauoton toisto",
"transcodeFormat_description": "valitsee transkoodattavan formaatin. jätä tyhjäksi palvelimen valintaa varten",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeDark": "teema (tumma)",
"translationApiKey_description": "API-avain käännöstä varten (tukee vain globaalia palvelun palvelupistettä)",
"playbackStyle_description": "valitse toiston tyyli, jota käytetään soittimessa",
@@ -474,7 +474,7 @@
"replayGainClipping": "{{ReplayGain}} leikkaus",
"replayGainClipping_description": "Estää {{ReplayGain}}n aiheuttaman leikkauksen laskemalla vahvistusta automaatisesti",
"replayGainFallback": "{{ReplayGain}} palautus",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainPreamp": "{{ReplayGain}} esivahvistus (dB)",
"scrobble_description": "skrobblaa toistot mediapalvelimellesi",
"replayGainPreamp_description": "säätää esivahvistuksen määrää {{ReplayGain}} arvoon",
@@ -549,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",
@@ -598,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"
},
@@ -647,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": {
@@ -670,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",
@@ -694,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": {
@@ -746,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)",
@@ -764,12 +764,12 @@
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"playCount": "toistojen lukumäärä",
"rating": "$t(common.rating)",
"releaseDate": "julkaisupäivämäärä",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"year": "$t(common.year)"
},
@@ -782,7 +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",
@@ -790,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ä"
@@ -808,7 +808,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "lähetys",
"ep": "EP",
"other": "muu",
+84 -83
View File
@@ -41,23 +41,23 @@
"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"
@@ -73,8 +73,8 @@
"moveDown": "descendre",
"holdToMoveToTop": "Maintenir pour déplacer en haut",
"holdToMoveToBottom": "Maintenir pour déplacer en bas",
"createRadioStation": "créer $t(entity.radioStation_one)",
"deleteRadioStation": "supprimer $t(entity.radioStation_one)",
"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",
@@ -93,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",
@@ -125,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",
@@ -153,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",
@@ -202,7 +202,9 @@
"countSelected": "{{count}} sélectionnée",
"example": "exemple",
"mood": "humeur",
"retry": "réessayer"
"retry": "réessayer",
"filter_single": "unique",
"filter_multiple": "multiple"
},
"error": {
"remotePortWarning": "redémarrer le serveur pour appliquer le nouveau port",
@@ -267,36 +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)",
"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_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -330,7 +332,7 @@
"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é",
@@ -346,10 +348,10 @@
"recentlyPlayed": "Joués récemment",
"title": "$t(common.home)",
"recentlyReleased": "Sortis récemment",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "plus de $t(entity.artist_one)",
"moreFromArtist": "plus de $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "plus de {{item}}",
"released": "publié"
},
@@ -409,41 +411,41 @@
"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",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) similaires",
"topSongs": "meilleurs titres",
"groupingTypeAll": "toutes les types de sortie"
},
@@ -464,10 +466,10 @@
"editServerDetailsTooltip": "modifier les détails du serveur"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stations radio"
@@ -487,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",
@@ -565,7 +566,7 @@
"remotePort": "port du serveur de contrôle à distance",
"hotkey_playbackNext": "piste suivante",
"lyricFetch_description": "récupère les paroles depuis divers source d'internet",
"lyricFetchProvider_description": "sélectionnez le fournisseur auprès desquels récupérer les paroles. l'ordre des fournisseurs et l'ordre dans lequel ils seront interrogés",
"lyricFetchProvider_description": "sélectionnez les fournisseurs auprès desquels récupérer les paroles",
"globalMediaHotkeys_description": "active ou désactive l'utilisation des raccourcis clavier multimédia système pour contrôler la lecture",
"followLyric": "suivre les paroles actuelles",
"discordIdleStatus": "afficher l'état d'inactivité dans le statut de l'activité",
@@ -617,8 +618,8 @@
"playButtonBehavior_optionPlay": "$t(player.play)",
"replayGainMode_optionNone": "$t(common.none)",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"replayGainMode_description": "ajuste le gain de volume accordement à la valeur de {{ReplayGain}} sauvegardé dans les métadonnées du fichier",
"replayGainFallback": "valeur de repli {{ReplayGain}}",
@@ -717,7 +718,7 @@
"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 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",
@@ -804,9 +805,9 @@
},
"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",
@@ -828,16 +829,16 @@
},
"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)"
@@ -856,15 +857,15 @@
"clearFilters": "réinitialiser les filtres"
},
"editPlaylist": {
"title": "modifier $t(entity.playlist_one)",
"title": "modifier $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin n'indique pas si une liste de lecture est publique ou non. Si vous souhaitez que cette liste de lecture reste publique, veuillez sélectionner l'entrée suivante",
"success": "$t(entity.playlist_one) mis à jour avec succès",
"success": "$t(entity.playlist, {\"count\": 1}) mis à jour avec succès",
"editNote": "les modifications manuelles ne sont pas recommandées pour les listes de lecture volumineuses. êtes-vous sûre d'accepter le risque d'une perte de données en écrasant la liste de lecture existante?"
},
"lyricSearch": {
"title": "recherche de paroles",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"shareItem": {
"allowDownloading": "autoriser le téléchargement",
@@ -885,7 +886,7 @@
},
"shuffleAll": {
"title": "jouer aléatoirement",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "combien de titres?",
"input_minYear": "à partir de l'année",
"input_maxYear": "à l'année",
@@ -947,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",
@@ -1019,26 +1020,26 @@
"discNumber": "disque n°",
"duration": "$t(common.duration)",
"bpm": "$t(common.bpm)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"biography": "$t(common.biography)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"actions": "$t(common.action, {\"count\": 2})",
"favorite": "$t(common.favorite)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"rating": "$t(common.rating)",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"title": "$t(common.title)",
"size": "$t(common.size)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"year": "$t(common.year)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"codec": "$t(common.codec)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (badges)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"image": "image",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
@@ -1061,12 +1062,12 @@
"albumArtist": "artiste de l'album",
"path": "chemin",
"discNumber": "disque",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"lastPlayed": "écouté récemment",
"artist": "$t(entity.artist_one)",
"genre": "$t(entity.genre_one)",
"songCount": "$t(entity.track_other)",
"channels": "$t(common.channel_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"genre": "$t(entity.genre, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "propriétaire",
@@ -1081,7 +1082,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "diffuser",
"ep": "ep",
"other": "autre",
+76 -76
View File
@@ -1,26 +1,26 @@
{
"action": {
"moveToNext": "ugrás a következőre",
"deletePlaylist": "$t(entity.playlist_one) törlése",
"removeFromFavorites": "eltávolítás innen $t(entity.favorite_other)",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) törlése",
"removeFromFavorites": "eltávolítás innen $t(entity.favorite, {\"count\": 2})",
"setRating": "értékelés",
"viewPlaylists": "$t(entity.playlist_other) megtekintése",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) megtekintése",
"openIn": {
"lastfm": "Megnyitás Last.fm-ben",
"musicbrainz": "Megnyitás MusicBrainz-ben"
},
"clearQueue": "műsorlista kiürítése",
"createPlaylist": "$t(entity.playlist_one) létrehozása",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) létrehozása",
"deselectAll": "kijelölés törlése",
"editPlaylist": "$t(entity.playlist_one) szerkesztése",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) szerkesztése",
"goToPage": "menj az oldalra",
"moveToBottom": "ugrás az aljára",
"moveToTop": "ugrás a tetejére",
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist_one)",
"removeFromPlaylist": "eltávolítás innen $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "eltávolítás a műsorlistáról",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) szerkesztője",
"addToFavorites": "$t(entity.favorite_other) kedvelése",
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist_one)",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) kedvelése",
"addToPlaylist": "hozzáadás lejátszási listához: $t(entity.playlist, {\"count\": 1})",
"refresh": "$t(common.refresh)",
"downloadStarted": "megkezdődött {{count}} elem letöltése",
"moveItems": "elemek mozgatása",
@@ -33,15 +33,15 @@
"holdToMoveToTop": "hosszan nyomva felülre mozgat",
"holdToMoveToBottom": "hosszan nyomva lejjebb mozgat",
"selectAll": "összes kijelölése",
"deleteRadioStation": "$t(entity.radioStation_one) törlése",
"createRadioStation": "$t(entity.radioStation_one) létrehozása",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) törlése",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) létrehozása",
"openApplicationDirectory": "app könyvtár megnyitása",
"addOrRemoveFromSelection": "hozzáadás vagy eltávolítás a kiválasztásból",
"selectRangeOfItems": "válaszd ki a tartományt"
},
"common": {
"collapse": "összecsukás",
"currentSong": "jelenlegi: $t(entity.track_one)",
"currentSong": "jelenlegi: $t(entity.track, {\"count\": 1})",
"no": "nem",
"close": "bezárás",
"confirm": "rendben",
@@ -100,7 +100,7 @@
"path": "elérési út",
"playerMustBePaused": "a lejátszónak szüneteltetve kell lennie",
"preview": "előnézet",
"previousSong": "előző $t(entity.track_one)",
"previousSong": "előző $t(entity.track, {\"count\": 1})",
"quit": "kilépés",
"random": "véletlenszerű",
"refresh": "frissítés",
@@ -116,7 +116,8 @@
"yes": "igen",
"none": "egyik sem",
"restartRequired": "újraindítás szükséges",
"setting": "beállítás",
"setting_one": "beállítás",
"setting_other": "",
"translation": "fordítás",
"rating": "értékelés",
"reload": "újratöltés",
@@ -176,7 +177,7 @@
"song_other": "dalok",
"album_one": "album",
"album_other": "albumok",
"smartPlaylist": "intelligens $t(entity.playlist_one)",
"smartPlaylist": "intelligens $t(entity.playlist, {\"count\": 1})",
"artistWithCount_one": "{{count}} előadó",
"artistWithCount_other": "{{count}} előadók",
"playlist_one": "lejátszási lista",
@@ -228,7 +229,7 @@
"multipleServerSaveQueueError": "a műsorlistában egy vagy több olyan dal található, amely nem az aktuális szerverről származik. Ez nem támogatott"
},
"filter": {
"albumCount": "$t(entity.album_other) darab",
"albumCount": "$t(entity.album, {\"count\": 2}) darab",
"bitrate": "bitráta",
"comment": "megjegyzés",
"dateAdded": "hozzáadás ideje",
@@ -249,9 +250,9 @@
"disc": "lemez",
"criticRating": "kritikusok értékelése",
"communityRating": "közösségi értékelés",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"biography": "életrajz",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"favorited": "kedvelt",
"isRecentlyPlayed": "mostanában lejátszott",
"name": "név",
@@ -266,10 +267,10 @@
"path": "elérési út",
"toYear": "évhez",
"trackNumber": "sáv",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
@@ -290,33 +291,33 @@
},
"addToPlaylist": {
"input_skipDuplicates": "duplikátumok átugrása",
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"success": "hozzáadtuk ezt: $t(entity.trackWithCount, {\"count\": {{message}} }) a következőhöz: $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "hozzáadás a következőhöz: $t(entity.playlist_one)",
"create": "létrehoz $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "keresés $t(entity.playlist_other) vagy új létrehozása"
"title": "hozzáadás a következőhöz: $t(entity.playlist, {\"count\": 1})",
"create": "létrehoz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "keresés $t(entity.playlist, {\"count\": 2}) vagy új létrehozása"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "publikus",
"title": "$t(entity.playlist_one) létrehozása",
"success": "$t(entity.playlist_one) sikeresen létrehozva"
"title": "$t(entity.playlist, {\"count\": 1}) létrehozása",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen létrehozva"
},
"deletePlaylist": {
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist_one) nevét",
"success": "$t(entity.playlist_one) sikeresen törölve",
"title": "$t(entity.playlist_one) törlése"
"input_confirm": "a megerősítéshez írd be a(z) $t(entity.playlist, {\"count\": 1}) nevét",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen törölve",
"title": "$t(entity.playlist, {\"count\": 1}) törlése"
},
"editPlaylist": {
"success": "$t(entity.playlist_one) sikeresen módosítva",
"success": "$t(entity.playlist, {\"count\": 1}) sikeresen módosítva",
"publicJellyfinNote": "A Jellyfin valamiért nem teszi közzé, hogy egy lejátszási lista publikus-e vagy sem. Amennyiben azt szeretnéd, hogy publikus maradjon, válaszd ki az alábbi beviteli mezőt",
"title": "szerkesztés $t(entity.playlist_one)",
"title": "szerkesztés $t(entity.playlist, {\"count\": 1})",
"editNote": "A kézi szerkesztés nem ajánlott nagy lejátszási listák esetén. Biztosan vállalod a meglévő lejátszási lista felülírásával járó adatvesztés kockázatát?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "dalszöveg kereső"
},
@@ -352,7 +353,7 @@
},
"shuffleAll": {
"title": "véletlenszerű lejátszás",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "Hány dal?",
"input_minYear": "ettől az évtől",
"input_maxYear": "eddig az évig",
@@ -383,24 +384,24 @@
"appearsOn": "megjelenik",
"recentReleases": "legújabb kiadványok",
"viewDiscography": "Diszkográfia megtekintése",
"relatedArtists": "kapcsolódik $t(entity.artist_other)",
"relatedArtists": "kapcsolódik $t(entity.artist, {\"count\": 2})",
"topSongs": "sláger dalok",
"topSongsFrom": "sláger dalok tőle {{title}}",
"viewAll": "mindet megtekint",
"viewAllTracks": "mindet megtekint $t(entity.track_other)"
"viewAllTracks": "mindet megtekint $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "még több ettől $t(entity.artist_one)",
"moreFromArtist": "még több ettől $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "Még több {{item}}",
"released": "megjelent"
},
"albumList": {
"artistAlbums": "albumok tőle {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "oldalsáv",
@@ -413,7 +414,7 @@
"openBrowserDevtools": "Fejlesztői eszközök",
"quit": "$t(common.quit)",
"selectServer": "Szerver választása",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzió {{version}}",
"selectMusicFolder": "zene mappa kiválasztása",
"noMusicFolder": "nincs zene mappa kiválasztva",
@@ -450,8 +451,8 @@
"setRating": "$t(action.setRating)",
"playShuffled": "$t(player.shuffle)",
"shareItem": "Megosztás",
"goToAlbum": "menj az $t(entity.album_one)",
"goToAlbumArtist": "menj a $t(entity.albumArtist_one)",
"goToAlbum": "menj az $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "menj a $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "info",
"moveItems": "$t(action.moveItems)",
"goTo": "menj"
@@ -480,9 +481,9 @@
"noLyrics": "nem található dalszöveg"
},
"genreList": {
"showAlbums": "mutasd a $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "mutasd a $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "mutasd a $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -499,7 +500,7 @@
"recentlyPlayed": "nemrég játszott",
"recentlyReleased": "nemrég megjelent",
"title": "$t(common.home)",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "másolja az útvonalat a vágólapra",
@@ -510,7 +511,7 @@
"reorder": "átrendezés csak ID szerinti rendezés esetén engedélyezett"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "haladó",
@@ -537,32 +538,32 @@
"logger": "naplózó"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "Könyvtáram",
"nowPlaying": "most játszott",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "megosztott $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "megosztott $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})"
},
"trackList": {
"artistTracks": "dalok tőle {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "rádió állomások"
@@ -609,7 +610,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "sugárzás",
"ep": "ep",
"other": "más",
@@ -665,7 +666,6 @@
"customCss": "egyéni css",
"customCssEnable_description": "lehetővé teszi az egyéni css írását",
"customCssEnable": "egyéni css engedélyezése",
"disableAutomaticUpdates": "automatikus frissítés kikapcsolása",
"customFontPath": "egyéni betűtípus elérési út",
"customCss_description": "egyéni css tartalom. Megjegyzés: a tartalom és a távoli URL-ek nem megengedett tulajdonságok. A tartalom előnézete az alábbiakban látható. A tisztítás miatt további mezők is megjelennek, amelyeket te nem állítottál be",
"customCssNotice": "Figyelem: bár van némi tisztítás (az url() és a content: használata nem engedélyezett), az egyéni css használata továbbra is kockázatot jelenthet, mivel megváltoztatja a felületet",
@@ -824,9 +824,9 @@
"passwordStore_description": "jelszó/titkos tároló kiválasztása. Módosítsd, ha problémát tapasztalsz a jelszavak tárolásánál",
"passwordStore": "jelszó/titkos tároló",
"playbackStyle_optionCrossFade": "áthúzás",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainMode": "{{ReplayGain}} mód",
"replayGainClipping_description": "A {{ReplayGain}} által okozott torzítás megelőzése az erősítés automatikus csökkentésével",
"replayGainClipping": "{{ReplayGain}} torzítás",
@@ -947,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)",
@@ -968,9 +968,9 @@
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (jelvények)",
"album": "$t(entity.album, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (jelvények)",
"image": "kép",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
@@ -1013,8 +1013,8 @@
}
},
"column": {
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "életrajz",
"bitrate": "bitráta",
"bpm": "bpm",
@@ -1024,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",
@@ -1032,7 +1032,7 @@
"releaseDate": "megjelenés",
"releaseYear": "év",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "cím",
"trackNumber": "sáv",
"album": "album",
+633 -97
View File
@@ -1,27 +1,43 @@
{
"action": {
"createPlaylist": "buat $t(entity.playlist_one)",
"createPlaylist": "buat $t(entity.playlist, {\"count\": 1})",
"toggleSmartPlaylistEditor": "ubah editor $t(entity.smartPlaylist)",
"goToPage": "pergi ke halaman",
"moveToTop": "pindah ke atas",
"addToPlaylist": "tambahkan ke $t(entity.playlist_one)",
"removeFromFavorites": "hapus dari $t(entity.favorite_other)",
"removeFromPlaylist": "hapus dari $t(entity.playlist_one)",
"addToPlaylist": "tambahkan ke $t(entity.playlist, {\"count\": 1})",
"removeFromFavorites": "hapus dari $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "hapus dari $t(entity.playlist, {\"count\": 1})",
"deselectAll": "batalkan pilih semua",
"editPlaylist": "ubah $t(entity.playlist_one)",
"editPlaylist": "ubah $t(entity.playlist, {\"count\": 1})",
"moveToNext": "pindah ke berikutnya",
"refresh": "$t(common.refresh)",
"removeFromQueue": "hapus dari antrean",
"setRating": "setel penilaian",
"viewPlaylists": "lihat $t(entity.playlist_other)",
"viewPlaylists": "lihat $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Buka di Last.fm",
"musicbrainz": "Buka di MusicBrainz"
},
"addToFavorites": "tambahkan ke $t(entity.favorite_other)",
"addToFavorites": "tambahkan ke $t(entity.favorite, {\"count\": 2})",
"clearQueue": "kosongkan antrian",
"deletePlaylist": "hapus $t(entity.playlist_one)",
"moveToBottom": "pindah ke bawah"
"deletePlaylist": "hapus $t(entity.playlist, {\"count\": 1})",
"moveToBottom": "pindah ke bawah",
"addOrRemoveFromSelection": "tambahkan atau hapus dari pilihan",
"selectRangeOfItems": "pilih rentang item",
"createRadioStation": "buat $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "hapus $t(entity.radioStation, {\"count\": 1})",
"selectAll": "pilih semua",
"downloadStarted": "memulai unduhan {{count}} item",
"moveUp": "pindahkan ke atas",
"moveDown": "pindahkan ke bawah",
"holdToMoveToTop": "tahan untuk memindahkan ke paling atas",
"holdToMoveToBottom": "tahan untuk memindahkan ke paling bawah",
"moveItems": "pindahkan item",
"shuffle": "acak",
"shuffleAll": "acak semua",
"shuffleSelected": "acak yang dipilih",
"viewMore": "lihat lebih banyak",
"openApplicationDirectory": "buka direktori aplikasi"
},
"common": {
"clear": "bersihkan",
@@ -38,7 +54,7 @@
"cancel": "batal",
"close": "Tutup",
"configure": "konfigurasi",
"currentSong": "lagu saat ini $t(entity.track_one)",
"currentSong": "lagu saat ini $t(entity.track, {\"count\": 1})",
"delete": "hapus",
"description": "deskripsi",
"edit": "ubah",
@@ -74,7 +90,7 @@
"owner": "pemilik",
"playerMustBePaused": "pemain harus dijeda",
"preview": "Pratinjau",
"previousSong": "lagu sebelumnya $t(entity.track_one)",
"previousSong": "lagu sebelumnya $t(entity.track, {\"count\": 1})",
"quit": "keluar",
"random": "acak",
"rating": "penilaian",
@@ -88,7 +104,7 @@
"saveAndReplace": "simpan dan ganti",
"saveAs": "simpan sebagai",
"search": "cari",
"setting": "pengaturan",
"setting_other": "pengaturan",
"share": "Bagikan",
"size": "ukuran",
"sortOrder": "urutkan",
@@ -109,7 +125,37 @@
"decrease": "kurangi",
"dismiss": "abaikan",
"translation": "terjemahan",
"backward": "mundur"
"backward": "mundur",
"countSelected": "{{count}} dipilih",
"explicitStatus": "status eksplisit",
"additionalParticipants": "peserta tambahan",
"newVersion": "versi baru telah diinstal ({{version}})",
"viewReleaseNotes": "lihat catatan rilis",
"bitDepth": "kedalaman bit",
"doNotShowAgain": "jangan tampilkan ini lagi",
"view": "tampilan",
"example": "contoh",
"externalLinks": "tautan eksternal",
"faster": "lebih cepat",
"filter_single": "tunggal",
"filter_multiple": "multi",
"mood": "suasana",
"noFilters": "tidak ada filter yang dikonfigurasi",
"private": "pribadi",
"public": "publik",
"retry": "coba lagi",
"recordLabel": "label rekaman",
"releaseType": "jenis rilis",
"rename": "ganti nama",
"sampleRate": "laju sampel",
"slower": "lebih lambat",
"sort": "urutkan",
"tags": "tag",
"explicit": "eksplisit",
"clean": "bersih",
"gridRows": "baris kisi",
"tableColumns": "kolom tabel",
"itemsMore": "{{count}} lagi"
},
"entity": {
"album_other": "album",
@@ -126,10 +172,12 @@
"playlist_other": "daftar putar",
"play_other": "Putar {{count}}",
"playlistWithCount_other": "{{count}} daftar putar",
"smartPlaylist": "$t(entity.playlist_one) pintar",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) pintar",
"track_other": "pista",
"song_other": "lagu",
"trackWithCount_other": "{{count}} pista"
"trackWithCount_other": "{{count}} pista",
"radioStation_other": "stasiun radio",
"radioStationWithCount_other": "{{count}} stasiun radio"
},
"error": {
"apiRouteError": "tidak dapat mengarahkan permintaan",
@@ -153,17 +201,24 @@
"serverNotSelectedError": "tidak ada server yang dipilih",
"serverRequired": "server diperlukan",
"sessionExpiredError": "sesi Anda telah kedaluwarsa",
"systemFontError": "terjadi kesalahan saat mencoba mendapatkan font sistem"
"systemFontError": "terjadi kesalahan saat mencoba mendapatkan font sistem",
"badValue": "opsi tidak valid \"{{value}}\". nilai ini sudah tidak ada",
"multipleServerSaveQueueError": "antrean putar memiliki satu atau lebih lagu yang bukan dari server saat ini. ini tidak didukung",
"noNetwork": "server tidak tersedia",
"noNetworkDescription": "tidak dapat terhubung ke server ini",
"notificationDenied": "izin untuk notifikasi ditolak. pengaturan ini tidak berpengaruh",
"saveQueueFailed": "gagal menyimpan antrean",
"settingsSyncError": "ditemukan ketidaksesuaian antara pengaturan di perender dan proses utama. mulai ulang aplikasi untuk menerapkan perubahan"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "Hitung $t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "Hitung $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografi",
"bitrate": "bitrate",
"bpm": "lpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "komentar",
"communityRating": "penilaian komunitas",
"criticRating": "penilaian kritik",
@@ -171,7 +226,7 @@
"disc": "disk",
"duration": "durasi",
"favorited": "favorit",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "apakah ini kompilasi",
"isFavorited": "apakah ini favorit",
@@ -197,7 +252,9 @@
"trackNumber": "nomor pista",
"fromYear": "dari tahun",
"title": "judul",
"path": "path(jalur)"
"path": "path(jalur)",
"sortName": "nama pengurutan",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
"addServer": {
@@ -211,40 +268,53 @@
"input_url": "url",
"input_username": "nama pengguna",
"success": "server berhasil ditambahkan",
"title": "tambah server"
"title": "tambah server",
"input_preferInstantMix": "utamakan mix instan",
"input_preferInstantMixDescription": "hanya gunakan mix instan untuk mendapatkan lagu serupa. berguna jika Anda memiliki plugin yang memodifikasi perilaku ini",
"input_preferRemoteUrl": "utamakan URL publik",
"input_remoteUrl": "url publik",
"input_remoteUrlPlaceholder": "opsional: URL publik untuk fitur eksternal"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "lewati duplikat",
"success": "ditambahkan $t(entity.trackWithCount, {\"count\": {{message}} }) ke $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "tambahkan ke $t(entity.playlist_one)"
"title": "tambahkan ke $t(entity.playlist, {\"count\": 1})",
"create": "buat $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "cari $t(entity.playlist, {\"count\": 2}) atau ketik untuk membuat yang baru"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "publik",
"success": "$t(entity.playlist_one) berhasil dibuat",
"title": "buat $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) berhasil dibuat",
"title": "buat $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "ketik nama $t(entity.playlist_one) untuk mengonfirmasi",
"success": "$t(entity.playlist_one) berhasil dihapus",
"title": "hapus $t(entity.playlist_one)"
"input_confirm": "ketik nama $t(entity.playlist, {\"count\": 1}) untuk mengonfirmasi",
"success": "$t(entity.playlist, {\"count\": 1}) berhasil dihapus",
"title": "hapus $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin entah bagaimana tidak menampilkan apakah playlist ini publik atau tidak. Jika Anda ingin playlist ini tetap publik, harap pilih entri berikut",
"success": "$t(entity.playlist_one) berhasil diperbarui",
"title": "ubah $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) berhasil diperbarui",
"title": "ubah $t(entity.playlist, {\"count\": 1})",
"editNote": "pengeditan manual tidak disarankan untuk playlist besar. apakah Anda yakin menerima risiko kehilangan data yang timbul akibat menimpa playlist yang ada?"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "cari lirik"
},
"queryEditor": {
"input_optionMatchAll": "cocokkan semua",
"input_optionMatchAny": "cocokkan salah satu"
"input_optionMatchAny": "cocokkan salah satu",
"title": "editor kueri",
"addRuleGroup": "tambahkan grup aturan",
"removeRuleGroup": "hapus grup aturan",
"resetToDefault": "reset ke default",
"clearFilters": "hapus filter"
},
"shareItem": {
"allowDownloading": "Izinkan unduhan",
@@ -257,6 +327,41 @@
"updateServer": {
"success": "Server berhasil diperbarui",
"title": "perbarui server"
},
"largeFetchConfirmation": {
"title": "tambahkan item ke antrean",
"description": "Tindakan ini akan menambahkan semua item dalam tampilan terfilter saat ini"
},
"createRadioStation": {
"success": "stasiun radio berhasil dibuat",
"title": "buat stasiun radio",
"input_homepageUrl": "url beranda",
"input_name": "nama",
"input_streamUrl": "url streaming"
},
"lyricsExport": {
"export": "ekspor lirik",
"input_synced": "ekspor lirik tersinkron",
"input_offset": "$t(setting.lyricOffset)"
},
"saveQueue": {
"success": "antrean putar disimpan ke server"
},
"shuffleAll": {
"title": "putar acak",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "berapa banyak lagu?",
"input_minYear": "dari tahun",
"input_maxYear": "hingga tahun",
"input_played": "filter pemutaran",
"input_played_optionAll": "semua trek",
"input_played_optionUnplayed": "hanya trek yang belum diputar",
"input_played_optionPlayed": "hanya trek yang sudah diputar"
},
"privateMode": {
"enabled": "mode pribadi diaktifkan, status pemutaran kini disembunyikan dari integrasi eksternal",
"disabled": "mode pribadi dinonaktifkan, status pemutaran kini terlihat oleh integrasi eksternal yang diaktifkan",
"title": "mode pribadi"
}
},
"page": {
@@ -264,25 +369,27 @@
"about": "Tentang {{artist}}",
"recentReleases": "Rilis terbaru",
"viewDiscography": "Lihat diskografi",
"relatedArtists": "$t(entity.artist_other) serupa",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) serupa",
"topSongs": "Lagu terbaik",
"topSongsFrom": "Lagu terbaik dari {{title}}",
"viewAll": "Lihat semua",
"viewAllTracks": "Lihat semua $t(entity.track_other)",
"appearsOn": "Tampil di"
"viewAllTracks": "Lihat semua $t(entity.track, {\"count\": 2})",
"appearsOn": "Tampil di",
"groupingTypeAll": "semua jenis rilis",
"groupingTypePrimary": "jenis rilis utama"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "lebih banyak dari $t(entity.artist_one) ini",
"moreFromArtist": "lebih banyak dari $t(entity.artist, {\"count\": 1}) ini",
"moreFromGeneric": "lebih banyak dari {{item}}",
"released": "dirilis"
},
"albumList": {
"artistAlbums": "album dari {{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": "perkecil sidebar",
@@ -293,8 +400,14 @@
"openBrowserDevtools": "buka alat pengembang browser",
"quit": "$t(common.quit)",
"selectServer": "pilih server",
"settings": "$t(common.setting_other)",
"version": "versi {{version}}"
"settings": "$t(common.setting, {\"count\": 2})",
"version": "versi {{version}}",
"commandPalette": "buka palet perintah",
"privateModeOff": "matikan mode pribadi",
"privateModeOn": "nyalakan mode pribadi",
"selectMusicFolder": "pilih folder musik",
"noMusicFolder": "tidak ada folder musik yang dipilih",
"multipleMusicFolders": "{{count}} folder musik dipilih"
},
"manageServers": {
"title": "kelola server",
@@ -326,7 +439,11 @@
"shareItem": "Bagikan item",
"showDetails": "Lihat detail",
"moveToTop": "$t(action.moveToTop)",
"play": "$t(player.play)"
"play": "$t(player.play)",
"moveItems": "$t(action.moveItems)",
"goTo": "buka ke",
"goToAlbum": "buka ke $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "buka ke $t(entity.albumArtist, {\"count\": 1})"
},
"fullscreenPlayer": {
"config": {
@@ -352,9 +469,9 @@
"visualizer": "visualisasi"
},
"genreList": {
"showAlbums": "Tampilkan $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "Tampilkan $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "Tampilkan $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "Tampilkan $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -369,7 +486,9 @@
"mostPlayed": "paling banyak diputar",
"newlyAdded": "rilis baru ditambahkan",
"recentlyPlayed": "baru saja diputar",
"title": "$t(common.home)"
"title": "$t(common.home)",
"genres": "$t(entity.genre, {\"count\": 2})",
"recentlyReleased": "baru dirilis"
},
"itemDetail": {
"copyPath": "Salin jalur ke papan klip",
@@ -377,40 +496,79 @@
"openFile": "Tampilkan lagu di pengelola file"
},
"playlist": {
"reorder": "penataan ulang hanya aktif saat mengurutkan berdasarkan ID"
"reorder": "pengurutan ulang hanya diaktifkan saat mengurutkan berdasarkan id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "Lanjutan",
"generalTab": "umum",
"hotkeysTab": "tombol pintasan",
"playbackTab": "pemutaran",
"windowTab": "jendela"
"windowTab": "jendela",
"analytics": "analitik",
"updates": "perbarui",
"cache": "cache",
"application": "aplikasi",
"queryBuilder": "pembuat kueri",
"theme": "tema",
"controls": "kontrol",
"sidebar": "bilah samping",
"remote": "jarak jauh",
"exportImport": "impor/ekspor",
"scrobble": "scrobble",
"audio": "audio",
"lyrics": "lirik",
"lyricsDisplay": "tampilan lirik",
"transcoding": "transcoding",
"discord": "discord",
"logger": "logger",
"playerFilters": "filter pemutar"
},
"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)",
"nowPlaying": "sedang diputar",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "berbagi $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "berbagi $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"collections": "koleksi",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"myLibrary": "pustaka saya"
},
"trackList": {
"artistTracks": "lagu oleh {{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})"
},
"radioList": {
"title": "stasiun radio"
},
"favorites": {
"title": "$t(entity.favorite, {\"count\": 2})"
},
"windowBar": {
"paused": "(Dijeda) ",
"privateMode": "(Mode pribadi)"
},
"folderList": {
"title": "$t(entity.folder, {\"count\": 2})"
},
"collections": {
"overrideExisting": "timpa yang ada",
"saveAsCollection": "simpan sebagai koleksi"
}
},
"player": {
"addLast": "tambahkan terakhir",
"addLast": "sebelumnya",
"favorite": "favorit",
"mute": "bisukan",
"muted": "terbisukan",
@@ -430,7 +588,7 @@
"repeat": "ulang",
"repeat_all": "ulang semua",
"repeat_off": "ulang dimatikan",
"shuffle": "putar acak",
"shuffle": "putar (diacak)",
"shuffle_off": "acak dimatikan",
"skip": "lewati",
"skip_back": "mundur",
@@ -440,7 +598,15 @@
"unfavorite": "bukan favorit",
"pause": "jeda",
"viewQueue": "lihat antrean",
"addNext": "tambahkan berikutnya"
"addNext": "berikutnya",
"addLastShuffled": "sebelumnya (diacak)",
"addNextShuffled": "berikutnya (diacak)",
"artistRadio": "radio artis",
"holdToShuffle": "tahan untuk mengacak",
"lyrics": "lirik",
"restoreQueueFromServer": "pulihkan antrean dari server",
"saveQueueToServer": "simpan antrean ke server",
"trackRadio": "radio trek"
},
"setting": {
"accentColor": "warna sorotan",
@@ -475,16 +641,15 @@
"crossfadeDuration": "durasi crossfade",
"crossfadeDuration_description": "atur durasi efek crossfade",
"crossfadeStyle_description": "pilih gaya crossfade yang digunakan oleh pemutar audio",
"customCssEnable": "Aktifkan CSS kustom",
"customCssEnable_description": "Memungkinkan penulisan CSS kustom",
"customCssNotice": "Pemberitahuan: meskipun ada sanitasi (menolak url() dan content:), menggunakan CSS kustom masih dapat berisiko mengubah antarmuka",
"customCss": "CSS kustom",
"customCss_description": "CSS kustom konten. Catatan: content dan url eksternal adalah properti yang ditolak. Pratinjau konten Anda ditampilkan di bawah. Entri tambahan yang tidak Anda tentukan hadir karena sanitasi",
"customCssEnable": "aktifkan CSS kustom",
"customCssEnable_description": "izinkan penulisan CSS kustom",
"customCssNotice": "Peringatan: meskipun ada beberapa sanitasi (melarang url() dan content:), menggunakan CSS kustom tetap dapat menimbulkan risiko dengan mengubah antarmuka",
"customCss": "css kustom",
"customCss_description": "konten CSS kustom. Catatan: properti content dan URL jarak jauh tidak diizinkan. Pratinjau konten Anda ditampilkan di bawah. Kolom tambahan yang tidak Anda atur ada karena sanitasi",
"customFontPath": "jalur font kustom",
"customFontPath_description": "tentukan jalur font kustom yang akan digunakan aplikasi",
"disableAutomaticUpdates": "nonaktifkan pembaruan otomatis",
"discordApplicationId": "ID aplikasi {{discord}}",
"discordApplicationId_description": "ID aplikasi untuk status aktivitas {{discord}} (defaultnya adalah {{defaultId}})",
"discordApplicationId_description": "id aplikasi untuk rich presence {{discord}} (default: {{defaultId}})",
"discordIdleStatus": "tampilkan status tidak aktif dalam status aktivitas",
"discordIdleStatus_description": "ketika diaktifkan, memperbarui status saat pemutar tidak aktif",
"discordListening": "Tampilkan status sebagai mendengarkan",
@@ -557,7 +722,7 @@
"lyricFetch": "cari lirik di Internet",
"lyricFetch_description": "mencari lirik dari berbagai sumber di Internet",
"lyricFetchProvider": "penyedia untuk mencari lirik",
"lyricFetchProvider_description": "pilih penyedia untuk mencari lirik. urutan penyedia adalah urutan pencarian",
"lyricFetchProvider_description": "pilih penyedia untuk mengambil lirik dari",
"lyricOffset": "geser lirik (ms)",
"lyricOffset_description": "geser lirik sebanyak jumlah milidetik yang ditentukan",
"minimizeToTray": "minimalkan ke baki",
@@ -593,9 +758,9 @@
"replayGainFallback_description": "gain dalam dB yang akan diterapkan jika file tidak memiliki tag {{ReplayGain}}",
"replayGainMode": "mode {{ReplayGain}}",
"replayGainMode_description": "menyesuaikan volume gain sesuai dengan nilai {{ReplayGain}} yang disimpan dalam metadata file",
"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": "preamplifier (dB) {{ReplayGain}}",
"replayGainPreamp_description": "menyesuaikan gain preamplifier yang diterapkan ke nilai {{ReplayGain}}",
"sampleRate_description": "pilih rasio sampel output yang akan digunakan jika frekuensi sampel yang dipilih berbeda dari media yang sedang diputar. nilai di bawah 8000 akan menggunakan frekuensi default",
@@ -633,10 +798,10 @@
"transcodeBitrate_description": "pilih bitrate untuk ditranskode. 0 berarti biarkan server yang memilih",
"transcodeFormat": "format untuk ditranskode",
"transcodeFormat_description": "pilih format untuk ditranskode. biarkan kosong agar server yang memutuskan",
"translationApiProvider": "Penyedia API penerjemahan",
"translationApiProvider_description": "Penyedia API untuk penerjemahan",
"translationApiKey": "kunci API penerjemahan",
"translationApiKey_description": "Kunci API untuk penerjemahan (hanya untuk endpoint layanan global)",
"translationApiProvider": "penyedia API terjemahan",
"translationApiProvider_description": "penyedia API untuk terjemahan",
"translationApiKey": "kunci API terjemahan",
"translationApiKey_description": "kunci API untuk terjemahan (hanya endpoint layanan global)",
"translationTargetLanguage": "bahasa tujuan penerjemahan",
"translationTargetLanguage_description": "bahasa tujuan untuk penerjemahan",
"trayEnabled": "Tampilkan di area pemberitahuan",
@@ -653,24 +818,153 @@
"mpvExecutablePath": "jalur executable mpv",
"playButtonBehavior_optionPlay": "$t(player.play)",
"sampleRate": "rasio sampel",
"savePlayQueue": "simpan antrean pemutaran"
"savePlayQueue": "simpan antrean pemutaran",
"autoDJ": "DJ otomatis",
"autoDJ_description": "tambahkan lagu serupa secara otomatis ke antrean",
"autoDJ_itemCount": "jumlah item",
"autoDJ_itemCount_description": "jumlah item yang dicoba ditambahkan ke antrean saat DJ otomatis diaktifkan",
"autoDJ_timing": "waktu",
"autoDJ_timing_description": "jumlah lagu yang tersisa dalam antrean sebelum DJ otomatis dipicu",
"useThemeAccentColor": "gunakan warna aksen tema",
"useThemeAccentColor_description": "gunakan warna utama yang ditentukan dalam tema yang dipilih alih-alih warna aksen kustom",
"analyticsDisable": "nonaktifkan analitik berbasis penggunaan",
"analyticsDisable_description": "data penggunaan yang dianonimkan dikirim ke pengembang untuk membantu meningkatkan aplikasi",
"artistBackground": "gambar latar belakang artis",
"artistBackground_description": "menambahkan gambar latar belakang untuk halaman artis yang memuat artwork artis",
"artistBackgroundBlur": "ukuran blur gambar latar belakang artis",
"artistBackgroundBlur_description": "menyesuaikan tingkat blur yang diterapkan pada gambar latar belakang artis",
"artistReleaseTypeConfiguration": "konfigurasi jenis rilis artis",
"artistReleaseTypeConfiguration_description": "konfigurasikan jenis rilis yang ditampilkan, dan urutannya, di halaman artis album",
"crossfadeStyle": "gaya crossfade",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "terbaru",
"releaseChannel": "kanal rilis",
"releaseChannel_description": "pilih antara rilis stabil atau rilis beta untuk pembaruan otomatis",
"discordDisplayType_artistname": "nama artis",
"discordDisplayType_description": "mengubah apa yang Anda dengarkan di status Anda",
"discordDisplayType_songname": "nama lagu",
"discordDisplayType": "jenis tampilan presence {{discord}}",
"discordLinkType_description": "menambahkan tautan eksternal ke {{lastfm}} atau {{musicbrainz}} pada kolom lagu dan artis di rich presence {{discord}}. {{musicbrainz}} paling akurat tetapi memerlukan tag dan tidak menyediakan tautan artis, sedangkan {{lastfm}} seharusnya selalu menyediakan tautan. tidak membuat permintaan jaringan tambahan",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} dengan fallback {{lastfm}}",
"discordLinkType_none": "$t(common.none)",
"discordLinkType": "tautan presence {{discord}}",
"discordPausedStatus_description": "saat diaktifkan, status akan ditampilkan ketika pemutar dijeda",
"discordPausedStatus": "tampilkan rich presence saat dijeda",
"discordRichPresence": "rich presence {{discord}}",
"discordServeImage": "sajikan gambar {{discord}} dari server",
"discordServeImage_description": "bagikan cover art untuk rich presence {{discord}} dari server itu sendiri, hanya tersedia untuk Jellyfin dan Navidrome. {{discord}} menggunakan bot untuk mengambil gambar, jadi server Anda harus dapat dijangkau dari internet publik",
"enableAutoTranslation_description": "aktifkan terjemahan secara otomatis saat lirik dimuat",
"enableAutoTranslation": "aktifkan terjemahan otomatis",
"exportImportSettings_control_description": "ekspor dan impor pengaturan melalui JSON",
"exportImportSettings_control_exportText": "ekspor pengaturan",
"exportImportSettings_control_importText": "impor pengaturan",
"exportImportSettings_control_title": "impor / ekspor pengaturan",
"exportImportSettings_destructiveWarning": "mengimpor pengaturan bersifat destruktif, harap tinjau hal di atas sebelum mengklik \"impor\" di bawah!",
"exportImportSettings_importBtn": "impor pengaturan",
"exportImportSettings_importModalTitle": "impor pengaturan feishin",
"exportImportSettings_importSuccess": "pengaturan berhasil diimpor!",
"exportImportSettings_notValidJSON": "file yang diberikan bukan JSON yang valid",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" tidak benar - {{reason}}",
"followCurrentSong_description": "gulirkan antrean putar secara otomatis ke lagu yang sedang diputar",
"followCurrentSong": "ikuti lagu saat ini",
"homeFeatureStyle_description": "mengontrol gaya carousel unggulan beranda",
"homeFeatureStyle": "gaya carousel unggulan beranda",
"homeFeatureStyle_optionMultiple": "beberapa",
"homeFeatureStyle_optionSingle": "tunggal",
"hotkey_listNavigateToPage": "navigasi daftar ke halaman item",
"hotkey_listPlayDefault": "putar dari daftar",
"hotkey_listPlayLast": "putar terakhir dari daftar",
"hotkey_listPlayNext": "putar berikutnya dari daftar",
"hotkey_listPlayNow": "putar sekarang dari daftar",
"hotkey_navigateHome": "navigasi ke beranda",
"language": "bahasa",
"lastfm_description": "tampilkan tautan ke Last.fm pada halaman artis/album",
"lastfm": "tampilkan tautan last.fm",
"logLevel": "tingkat log",
"logLevel_description": "menetapkan tingkat log minimum untuk ditampilkan. debug menampilkan semua log, error hanya menampilkan error",
"logLevel_optionDebug": "debug",
"logLevel_optionError": "error",
"logLevel_optionInfo": "info",
"logLevel_optionWarn": "warn",
"mpvExtraParameters": "parameter tambahan mpv",
"mpvExtraParameters_description": "argumen tambahan untuk diteruskan ke mpv",
"musicbrainz_description": "tampilkan tautan ke MusicBrainz pada halaman artis/album, saat ID MusicBrainz tersedia",
"musicbrainz": "tampilkan tautan MusicBrainz",
"neteaseTranslation_description": "Saat diaktifkan, mengambil dan menampilkan lirik terjemahan dari NetEase jika tersedia",
"neteaseTranslation": "aktifkan terjemahan NetEase",
"notify": "aktifkan notifikasi lagu",
"notify_description": "tampilkan notifikasi saat mengganti lagu saat ini",
"pathReplace": "penggantian jalur file",
"pathReplace_description": "ganti filepath default server Anda",
"pathReplace_optionRemovePrefix": "hapus prefiks",
"pathReplace_optionAddPrefix": "tambahkan prefiks",
"playerFilters": "Filter lagu dari antrean",
"playerFilters_description": "abaikan lagu agar tidak ditambahkan ke antrean berdasarkan kriteria berikut",
"artistRadioCount_description": "menetapkan jumlah lagu yang diambil untuk radio artis dan radio trek",
"artistRadioCount": "jumlah radio artis/trek",
"imageResolution": "resolusi gambar",
"imageResolution_description": "resolusi untuk gambar yang digunakan di seluruh aplikasi. menggunakan nilai 0 akan kembali ke resolusi gambar asli",
"imageResolution_optionTable": "tabel",
"imageResolution_optionItemCard": "kartu item",
"imageResolution_optionSidebar": "bilah samping",
"imageResolution_optionHeader": "header",
"imageResolution_optionFullScreenPlayer": "pemutar layar penuh",
"playerbarSlider": "slider bilah pemutar",
"playerbarSlider_description": "waveform tidak direkomendasikan jika menggunakan koneksi internet yang lambat atau berbatas kuota",
"playerbarSliderType_optionSlider": "slider",
"playerbarSliderType_optionWaveform": "waveform",
"playerbarWaveformAlign": "perataan waveform",
"playerbarWaveformAlign_optionTop": "atas",
"playerbarWaveformAlign_optionCenter": "tengah",
"playerbarWaveformAlign_optionBottom": "bawah",
"playerbarWaveformBarWidth": "lebar batang waveform",
"playerbarWaveformGap": "jarak waveform",
"playerbarWaveformRadius": "radius waveform",
"preferLocalLyrics_description": "utamakan lirik lokal dibanding lirik jarak jauh jika tersedia",
"preferLocalLyrics": "utamakan lirik lokal",
"showLyricsInSidebar_description": "panel akan ditambahkan pada antrean putar terlampir yang menampilkan lirik",
"showLyricsInSidebar": "tampilkan lirik di bilah samping pemutar",
"showRatings_description": "mengontrol apakah fitur penilaian bintang muncul di antarmuka",
"showRatings": "tampilkan penilaian bintang",
"enableGridMultiSelect": "aktifkan pilihan multi kisi",
"enableGridMultiSelect_description": "saat diaktifkan, memungkinkan memilih beberapa item pada tampilan kisi. saat dinonaktifkan, mengklik gambar item kisi akan menavigasi ke halaman item",
"showVisualizerInSidebar_description": "panel akan ditambahkan pada bilah samping pemutar yang menampilkan visualizer",
"showVisualizerInSidebar": "tampilkan visualizer di bilah samping pemutar",
"combinedLyricsAndVisualizer_description": "gabungkan lirik dan visualizer ke dalam panel yang sama",
"combinedLyricsAndVisualizer": "gabungkan lirik dan visualizer di bilah samping pemutar",
"preservePitch_description": "mempertahankan pitch saat memodifikasi kecepatan pemutaran",
"preservePitch": "pertahankan pitch",
"audioFadeOnStatusChange": "fade audio saat status berubah",
"audioFadeOnStatusChange_description": "mengaktifkan fade out dan fade in saat status putar/jeda berubah",
"preventSleepOnPlayback_description": "cegah layar tidur saat musik diputar",
"preventSleepOnPlayback": "cegah tidur saat pemutaran",
"sidebarPlaylistSorting_description": "memungkinkan pengurutan playlist secara manual di bilah samping dengan drag dan drop alih-alih urutan default server",
"sidebarPlaylistSorting": "pengurutan playlist bilah samping",
"mediaSession_description": "mengaktifkan integrasi Media Session, menampilkan kontrol media dan metadata pada overlay volume sistem dan layar kunci",
"mediaSession": "aktifkan media session",
"transcode": "aktifkan transcoding",
"queryBuilder": "pembuat kueri",
"queryBuilderCustomFields_inputLabel": "label",
"queryBuilderCustomFields_inputTag": "tag",
"queryBuilderCustomFields": "kolom kustom",
"queryBuilderCustomFields_description": "tambahkan kolom kustom untuk digunakan di pembuat kueri"
},
"table": {
"column": {
"album": "album",
"albumArtist": "artis album",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografi",
"bitrate": "bitrate",
"bpm": "lpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"comment": "komentar",
"dateAdded": "tanggal ditambahkan",
"discNumber": "nomor disk",
"favorite": "favorit",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "terakhir diputar",
"path": "jalur",
"playCount": "putaran",
@@ -678,9 +972,12 @@
"releaseDate": "tanggal rilis",
"releaseYear": "tahun",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "judul",
"trackNumber": "pista"
"trackNumber": "pista",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
"owner": "pemilik"
},
"config": {
"general": {
@@ -691,23 +988,45 @@
"itemGap": "jarak antar elemen (px)",
"itemSize": "ukuran elemen (px)",
"size": "$t(common.size)",
"tableColumns": "kolom tabel"
"tableColumns": "kolom tabel",
"advancedSettings": "pengaturan lanjutan",
"autosize": "ukuran otomatis",
"moveUp": "pindahkan ke atas",
"moveDown": "pindahkan ke bawah",
"pinToLeft": "sematkan ke kiri",
"pinToRight": "sematkan ke kanan",
"alignLeft": "rata kiri",
"alignCenter": "rata tengah",
"alignRight": "rata kanan",
"itemsPerRow": "item per baris",
"size_default": "default",
"size_compact": "ringkas",
"size_large": "besar",
"pagination": "paginasi",
"pagination_itemsPerPage": "item per halaman",
"pagination_infinite": "tak terbatas",
"pagination_paginate": "berhalaman",
"alternateRowColors": "warna baris bergantian",
"horizontalBorders": "batas baris",
"rowHoverHighlight": "sorotan hover baris",
"showHeader": "tampilkan header",
"verticalBorders": "batas kolom"
},
"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)",
"dateAdded": "tanggal ditambahkan",
"discNumber": "nomor disk",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "terakhir diputar",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -717,14 +1036,231 @@
"releaseDate": "tanggal rilis",
"rowIndex": "indeks baris",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (digabungkan)",
"trackNumber": "nomor pista",
"year": "$t(common.year)"
"year": "$t(common.year)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"composer": "komposer",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (lencana)",
"image": "gambar",
"sampleRate": "$t(common.sampleRate)",
"titleArtist": "$t(common.title) (artis)"
},
"view": {
"table": "tabel"
"table": "tabel",
"grid": "kisi",
"list": "daftar"
}
}
},
"datetime": {
"minuteShort": "m",
"secondShort": "s",
"hourShort": "h",
"dayShort": "d"
},
"filterOperator": {
"after": "setelah",
"afterDate": "setelah (tanggal)",
"before": "sebelum",
"beforeDate": "sebelum (tanggal)",
"contains": "berisi",
"endsWith": "diakhiri dengan",
"inPlaylist": "berada di",
"inTheLast": "dalam kurun terakhir",
"inTheRange": "berada dalam rentang",
"inTheRangeDate": "berada dalam rentang (tanggal)",
"is": "adalah",
"isNot": "bukan",
"isGreaterThan": "lebih besar dari",
"isLessThan": "lebih kecil dari",
"matchesRegex": "cocok dengan regex",
"notContains": "tidak berisi",
"notInPlaylist": "tidak berada di",
"notInTheLast": "tidak dalam kurun terakhir",
"startsWith": "diawali dengan"
},
"queryBuilder": {
"standardTags": "tag standar",
"customTags": "tag kustom"
},
"releaseType": {
"primary": {
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "siaran",
"ep": "ep",
"other": "lainnya",
"single": "single"
},
"secondary": {
"audiobook": "buku audio",
"audioDrama": "drama audio",
"compilation": "kompilasi",
"djMix": "dj mix",
"demo": "demo",
"fieldRecording": "rekaman lapangan",
"interview": "wawancara",
"live": "live",
"mixtape": "mixtape",
"remix": "remix",
"soundtrack": "soundtrack",
"spokenWord": "spoken word"
}
},
"dragDropZone": {
"error_oneFileOnly": "Harap pilih hanya 1 file",
"error_readingFile": "terjadi masalah saat membaca file: {{errorMessage}}",
"mainText": "jatuhkan file di sini"
},
"visualizer": {
"visualizerType": "Jenis Visualizer",
"cyclePresets": "Putar Preset",
"cycleTime": "Waktu Siklus (detik)",
"includeAllPresets": "Sertakan Semua Preset",
"ignoredPresets": "Preset yang Diabaikan",
"selectedPresets": "Preset yang Dipilih",
"randomizeNextPreset": "Acak Preset Berikutnya",
"blendTime": "Waktu Pencampuran",
"presets": "Preset",
"selectPreset": "Pilih Preset",
"applyPreset": "Terapkan Preset",
"saveAsPreset": "Simpan sebagai Preset",
"updatePreset": "Perbarui Preset",
"copyConfiguration": "Salin Konfigurasi",
"pasteConfiguration": "Tempel Konfigurasi",
"pasteConfigurationPlaceholder": "Tempel konfigurasi JSON di sini...",
"pasteFromClipboard": "Tempel dari Clipboard",
"applyConfiguration": "Terapkan Konfigurasi",
"configCopied": "Konfigurasi disalin ke clipboard",
"configCopyFailed": "Gagal menyalin konfigurasi",
"configPasted": "Konfigurasi berhasil diterapkan",
"configPasteFailed": "Gagal menerapkan konfigurasi. Harap periksa formatnya.",
"configPasteReadFailed": "Gagal membaca dari clipboard",
"presetName": "Nama Preset",
"presetNamePlaceholder": "Masukkan nama preset",
"general": "Umum",
"mode": "Mode",
"mode1To8": "Mode 1 - 8",
"mode10": "Mode 10",
"barSpace": "Jarak Batang",
"lineWidth": "Lebar Garis",
"fillAlpha": "Alpha Isian",
"channelLayout": "Tata Letak Kanal",
"maxFPS": "FPS Maksimum",
"opacity": "Opasitas",
"customGradients": "Gradien Kustom",
"addCustomGradient": "Tambah Gradien Kustom",
"gradientName": "Nama Gradien",
"gradientNamePlaceholder": "Nama Gradien",
"vertical": "Vertikal",
"horizontal": "Horizontal",
"colorStops": "Titik Warna",
"addColor": "Tambah Warna",
"position": "Posisi",
"level": "Level",
"remove": "Hapus",
"pasteGradient": "Tempel Gradien",
"pasteGradientPlaceholder": "Tempel JSON gradien di sini...",
"custom": "Kustom",
"builtIn": "Bawaan",
"colors": "Warna",
"colorMode": "Mode Warna",
"gradient": "Gradien",
"gradientLeft": "Gradien Kiri",
"gradientRight": "Gradien Kanan",
"fft": "FFT",
"fftSize": "Ukuran FFT",
"smoothing": "Penghalusan",
"frequencyRangeAndScaling": "Rentang frekuensi dan penskalaan",
"minimumFrequency": "Frekuensi Minimum",
"maximumFrequency": "Frekuensi Maksimum",
"frequencyScale": "Skala Frekuensi",
"sensitivity": "Sensitivitas",
"weightingFilter": "Filter Pembobotan",
"minimumDecibels": "Desibel Minimum",
"maximumDecibels": "Desibel Maksimum",
"linearAmplitude": "Amplitudo Linear",
"linearBoost": "Peningkatan Linear",
"peakBehavior": "Perilaku Puncak",
"showPeaks": "Tampilkan Puncak",
"fadePeaks": "Pudarkan Puncak",
"peakLine": "Garis Puncak",
"gravity": "Gravitasi",
"peakFadeTime": "Waktu Pudarnya Puncak (ms)",
"peakHoldTime": "Waktu Menahan Puncak (ms)",
"radialSpectrum": "Spektrum Radial",
"radial": "Radial",
"radialInvert": "Balik Radial",
"spinSpeed": "Kecepatan Putar",
"radius": "Jari-jari",
"reflexMirror": "Cermin Refleks",
"reflexFit": "Kesesuaian Refleks",
"reflexRatio": "Rasio Refleks",
"reflexAlpha": "Alpha Refleks",
"reflexBrightness": "Kecerahan Refleks",
"mirror": "Cermin",
"miscellaneousSettings": "Pengaturan Lain-lain",
"alphaBars": "Batang Alpha",
"ansiBands": "Pita ANSI",
"ledBars": "Batang LED",
"trueLeds": "LED Sebenarnya",
"lumiBars": "Batang Lumi",
"outlineBars": "Batang Outline",
"roundBars": "Batang Bulat",
"lowResolution": "Resolusi Rendah",
"splitGradient": "Pemisahan Gradien",
"showFPS": "Tampilkan FPS",
"showScaleX": "Tampilkan Skala X",
"noteLabels": "Label Nada",
"showScaleY": "Tampilkan Skala Y",
"options": {
"mode": {
"0": "Frekuensi Diskret",
"1": "1/24 oktaf / 240 pita",
"2": "1/12 oktaf / 120 pita",
"3": "1/8 oktaf / 80 pita",
"4": "1/6 oktaf / 60 pita",
"5": "1/4 oktaf / 40 pita",
"6": "1/3 oktaf / 30 pita",
"7": "Setengah oktaf / 20 pita",
"8": "Satu oktaf penuh / 10 pita",
"10": "Grafik garis / area"
},
"colorMode": {
"gradient": "Gradien",
"barIndex": "Indeks Batang",
"barLevel": "Level Batang"
},
"gradient": {
"classic": "Klasik",
"prism": "Prisma",
"rainbow": "Pelangi",
"steelblue": "Biru baja",
"orangered": "Oranye kemerahan"
},
"channelLayout": {
"single": "Tunggal",
"dualCombined": "Dua-Gabungan",
"dualHorizontal": "Dua-Horizontal",
"dualVertical": "Dua-Vertikal"
},
"frequencyScale": {
"none": "Tidak ada",
"bark": "Skala Bark",
"linear": "Skala Linear",
"log": "Skala Log",
"mel": "Skala Mel"
},
"weightingFilter": {
"none": "Tidak ada",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
}
}
+64 -63
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",
@@ -434,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",
@@ -453,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",
@@ -461,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": {
@@ -506,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",
@@ -540,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",
@@ -552,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"
},
@@ -564,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": {
@@ -585,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",
@@ -622,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": {
@@ -651,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",
@@ -666,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",
@@ -717,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)",
@@ -727,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": {
@@ -742,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",
@@ -751,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",
@@ -800,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",
+186 -111
View File
@@ -33,7 +33,9 @@
"viewQueue": "キューを表示する",
"lyrics": "歌詞",
"restoreQueueFromServer": "サーバーからキューを復元",
"saveQueueToServer": "サーバーにキューを保存"
"saveQueueToServer": "サーバーにキューを保存",
"addLastShuffled": "最後 (シャッフル)",
"addNextShuffled": "次 (シャッフル)"
},
"setting": {
"crossfadeStyle_description": "オーディオプレーヤーが使用するクロスフェードのスタイルを選択します",
@@ -93,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": "カスタムフォント",
@@ -109,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": "ページ内検索",
@@ -118,7 +119,7 @@
"remotePassword_description": "リモートコントロール サーバーのパスワードを設定します。 ログイン情報はデフォルトでセキュアな通信がされないため、個人情報と関係ないランダムなパスワードを利用してください",
"hotkey_rate5": "5つ星で評価",
"hotkey_playbackPrevious": "前のトラック",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButtons_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"crossfadeDuration_description": "クロスフェード効果の時間を設定します",
"playbackStyle": "再生スタイル",
"hotkey_toggleShuffle": "シャッフルの切り替え",
@@ -133,7 +134,7 @@
"exitToTray": "終了時にシステムトレイに格納",
"hotkey_rate4": "4つ星で評価",
"enableRemote": "リモートコントロール サーバーを有効化",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示/非表示にします",
"showSkipButton_description": "プレーヤーバーのスキップボタンを表示または非表示にします",
"savePlayQueue": "再生キューを保存",
"minimumScrobbleSeconds_description": "Scrobble されるために必要な最短の再生時間 (秒)",
"skipPlaylistPage_description": "プレイリストに移動するときに、デフォルトページではなくプレイリストの曲リストページに移動します",
@@ -159,7 +160,7 @@
"useSystemTheme_description": "システム設定のライト/ダークテーマに従います",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "様々なインターネットソースから歌詞を取得します",
"lyricFetchProvider_description": "歌詞を取得するサービスを選択します。サービスの並び順に検索されます",
"lyricFetchProvider_description": "歌詞を取得するプロバイダーを選択します",
"globalMediaHotkeys_description": "システムのメディアホットキーでの再生コントロールを有効/無効化します",
"customFontPath": "カスタムフォントパス",
"followLyric": "歌詞を再生位置に追従",
@@ -191,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": "最小化して起動する",
@@ -294,8 +295,8 @@
"discordDisplayType_description": "ステータスで聴いている内容を変更します",
"discordLinkType": "{{discord}} Presence リンク",
"discordLinkType_mbz_lastfm": "{{musicbrainz}} と {{lastfm}} のフォールバック",
"homeFeature": "ホーム画面の注目カルーセル",
"homeFeature_description": "ホーム画面に大きな注目カルーセルを表示するかどうかを制御します",
"homeFeature": "ホーム画面のカルーセル",
"homeFeature_description": "ホーム画面に大きなカルーセルを表示するかどうかを制御します",
"exportImportSettings_notValidJSON": "渡されたファイルは有効な JSON ではありません",
"exportImportSettings_importSuccess": "設定が正常にインポートされました!",
"exportImportSettings_importModalTitle": "Feishin 設定をインポート",
@@ -339,30 +340,45 @@
"playerbarWaveformAlign": "波形アライメント",
"showRatings_description": "インターフェースに星評価機能を表示するかどうかを制御します",
"showVisualizerInSidebar": "プレーヤーのサイドバーにビジュアライザーを表示する",
"combinedLyricsAndVisualizer": "プレヤーのサイドバーに歌詞とビジュアライザーを統合する",
"combinedLyricsAndVisualizer": "プレヤーのサイドバーに歌詞とビジュアライザーを統合する",
"audioFadeOnStatusChange_description": "再生 / 一時停止の状態が変わったときにフェードアウトとフェードインを有効にします",
"audioFadeOnStatusChange": "ステータス変更時の音声フェード",
"combinedLyricsAndVisualizer_description": "歌詞とビジュアライザーを同じパネルに統合します",
"showVisualizerInSidebar_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 で開く"
@@ -374,8 +390,8 @@
"shuffleAll": "すべてシャッフル",
"shuffleSelected": "選択した曲をシャッフル",
"viewMore": "さらに表示",
"createRadioStation": "$t(entity.radioStation_one) を作成",
"deleteRadioStation": "$t(entity.radioStation_one) を削除",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) を作成",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) を削除",
"selectAll": "すべて選択",
"moveUp": "上に移動",
"moveDown": "下に移動",
@@ -398,7 +414,7 @@
"left": "左側",
"save": "保存",
"right": "右側",
"currentSong": "現在の $t(entity.track_one)",
"currentSong": "現在の $t(entity.track, {\"count\": 1})",
"collapse": "折りたたみ",
"trackNumber": "トラック",
"descending": "降順",
@@ -428,7 +444,7 @@
"delete": "削除",
"cancel": "キャンセル",
"forceRestartRequired": "変更を適用するために再起動が必要です… 通知を閉じると再起動します",
"setting": "設定",
"setting_other": "設定",
"version": "バージョン",
"title": "タイトル",
"filter_other": "フィルタ",
@@ -449,7 +465,7 @@
"none": "なし",
"menu": "メニュー",
"restartRequired": "再起動が必要です",
"previousSong": "前の $t(entity.track_one)",
"previousSong": "前の $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "条件にマッチするものがありません",
"quit": "終了",
"expand": "展開",
@@ -498,7 +514,10 @@
"mood": "気分",
"recordLabel": "レコードレーベル",
"tableColumns": "テーブル列",
"clean": "クリーン"
"clean": "クリーン",
"filter_single": "シングル",
"filter_multiple": "複数枚組",
"rename": "名前を変更"
},
"table": {
"config": {
@@ -515,42 +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)",
"albumCount": "$t(entity.album_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"bitDepth": "$t(common.bitDepth)",
"genreBadge": "$t(entity.genre_one) (バッジ)",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (バッジ)",
"image": "画像",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "作曲家",
"titleArtist": "$t(common.title) (アーティスト)"
}
},
"column": {
@@ -559,7 +595,7 @@
"rating": "評価",
"favorite": "お気に入り",
"playCount": "再生回数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年",
"lastPlayed": "最後に再生",
"biography": "バイオグラフィー",
@@ -567,19 +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)",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"owner": "所有者"
}
},
"error": {
@@ -593,16 +630,16 @@
"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": "ファイルを開けませんでした",
@@ -626,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",
@@ -639,7 +676,7 @@
"disc": "ディスク",
"biography": "バイオグラフィー",
"songCount": "曲数",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "長さ",
"random": "ランダム",
"lastPlayed": "最後に再生",
@@ -650,31 +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) を共有",
"radio": "$t(entity.radioStation_other)",
"favorites": "$t(entity.favorite_other)"
"shared": "$t(entity.playlist, {\"count\": 2}) を共有",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"collections": "コレクション"
},
"fullscreenPlayer": {
"config": {
@@ -702,7 +741,7 @@
"appMenu": {
"selectServer": "サーバーを選択",
"version": "バージョン {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "サーバーの管理",
"expandSidebar": "サイドバーを展開",
"collapseSidebar": "サイドバーを折りたたむ",
@@ -712,10 +751,10 @@
"goForward": "進む",
"privateModeOff": "プライベートモードをオフにする",
"privateModeOn": "プライベートモードをオンにする",
"selectMusicFolder": "音楽フォルダを選択",
"noMusicFolder": "音楽フォルダを選択",
"selectMusicFolder": "音楽フォルダを選択",
"noMusicFolder": "音楽フォルダーが選択されていません",
"commandPalette": "コマンドパレットを開く",
"multipleMusicFolders": "{{count}} 個の音楽フォルダが選択されました"
"multipleMusicFolders": "{{count}} 個の音楽フォルダが選択されました"
},
"contextMenu": {
"addToPlaylist": "$t(action.addToPlaylist)",
@@ -738,8 +777,8 @@
"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)",
"moveItems": "$t(action.moveItems)",
@@ -752,10 +791,10 @@
"explore": "ライブラリから検索",
"recentlyPlayed": "最近の再生",
"recentlyReleased": "最近のリリース",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) の他の項目",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) の他の項目",
"moreFromGeneric": "{{item}} の他の作品",
"released": "リリース"
},
@@ -781,20 +820,21 @@
"lyricsDisplay": "歌詞表示",
"transcoding": "トランスコーディング",
"discord": "Discord",
"logger": "ロガー"
"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": {
@@ -805,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}} について",
@@ -820,8 +860,8 @@
"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": "主なリリースタイプ"
},
@@ -845,24 +885,32 @@
"title": "ラジオ局"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"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": {
@@ -874,8 +922,8 @@
"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": "インスタントミックスを優先する",
@@ -885,11 +933,11 @@
},
"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": "サーバーをアップデート",
@@ -898,17 +946,21 @@
"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": {
@@ -942,7 +994,7 @@
},
"shuffleAll": {
"title": "ランダムに再生",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "曲が多すぎます",
"input_minYear": "年から",
"input_maxYear": "年まで",
@@ -950,6 +1002,9 @@
"input_played_optionUnplayed": "未再生のトラックのみ",
"input_played_optionPlayed": "再生されたトラックのみ",
"input_played": "再生フィルター"
},
"saveQueue": {
"success": "プレイキューをサーバーに保存しました"
}
},
"entity": {
@@ -957,15 +1012,15 @@
"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}} 個のトラック",
@@ -985,7 +1040,7 @@
"ep": "EP",
"other": "その他",
"single": "シングル",
"album": "$t(entity.album_one)"
"album": "$t(entity.album, {\"count\": 1})"
},
"secondary": {
"audiobook": "オーディオブック",
@@ -1008,6 +1063,26 @@
},
"filterOperator": {
"matchesRegex": "正規表現に一致",
"notContains": "含まれていない"
"notContains": "含まれていない",
"after": "以降",
"afterDate": "以降 (日付)",
"before": "以前",
"beforeDate": "以前 (日付)",
"contains": "を含む",
"endsWith": "で終わる",
"inPlaylist": "いずれか",
"inTheRange": "範囲内",
"inTheRangeDate": "範囲内 (日付)",
"is": "完全一致",
"isNot": "不一致",
"startsWith": "で始まる",
"inTheLast": "以内",
"isGreaterThan": "より大きい",
"isLessThan": "より小さい",
"notInPlaylist": "いずれでもない",
"notInTheLast": "より前"
},
"visualizer": {
"visualizerType": "ビジュアライザーの種類"
}
}
+40 -40
View File
@@ -1,31 +1,31 @@
{
"action": {
"createPlaylist": "$t(entity.playlist_one) 생성",
"addToFavorites": "$t(entity.favorite_other)에 추가",
"addToPlaylist": "$t(entity.playlist_one)에 추가",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) 생성",
"addToFavorites": "$t(entity.favorite, {\"count\": 2})에 추가",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1})에 추가",
"clearQueue": "대기열 지우기",
"deletePlaylist": "$t(entity.playlist_one) 삭제",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) 삭제",
"deselectAll": "모두 선택 해제",
"editPlaylist": "$t(entity.playlist_one) 편집",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) 편집",
"goToPage": "페이지 이동",
"moveToBottom": "맨 아래로 이동",
"moveToTop": "맨 위로 이동",
"moveToNext": "다음으로 이동",
"removeFromQueue": "대기열에서 제거",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "$t(entity.favorite_other)에서 제거",
"removeFromPlaylist": "$t(entity.playlist_one)에서 제거",
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})에서 제거",
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1})에서 제거",
"openIn": {
"musicbrainz": "MusicBrainz에서 보기",
"lastfm": "Last.fm에서 보기"
},
"viewPlaylists": "$t(entity.playlist_other) 보기",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) 보기",
"setRating": "평점 지정",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) 편집기 펼치기",
"addOrRemoveFromSelection": "선택항목에서 추가 또는 제거",
"selectRangeOfItems": "항목의 범위 선택",
"createRadioStation": "$t(entity.radioStation_one) 생성",
"deleteRadioStation": "$t(entity.radioStation_one) 삭제",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) 생성",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) 삭제",
"selectAll": "전부 선택",
"downloadStarted": "{{count}}개 항목 다운로드 시작했습니다",
"moveUp": "위로 옮기기",
@@ -59,7 +59,7 @@
"backward": "뒤로",
"saveAs": "(으)로 저장하기",
"search": "검색",
"setting": "설정",
"setting_other": "설정",
"share": "공유",
"size": "크기",
"sortOrder": "순서",
@@ -74,7 +74,7 @@
"comingSoon": "조만간…",
"configure": "설정",
"confirm": "확인",
"currentSong": "현재 $t(entity.track_one)",
"currentSong": "현재 $t(entity.track, {\"count\": 1})",
"decrease": "감소",
"delete": "삭제",
"descending": "내림차순",
@@ -96,7 +96,7 @@
"path": "경로",
"playerMustBePaused": "플레이어가 일시정지 되어야 합니다",
"preview": "미리보기",
"previousSong": "이전곡 $t(entity.track_one)",
"previousSong": "이전곡 $t(entity.track, {\"count\": 1})",
"quit": "종료",
"refresh": "새로고침",
"reload": "리로드",
@@ -168,7 +168,7 @@
"song_other": "곡",
"play_other": "{{count}} 재생",
"playlistWithCount_other": "{{count}} 재생목록",
"smartPlaylist": "스마트 $t(entity.playlist_one)",
"smartPlaylist": "스마트 $t(entity.playlist, {\"count\": 1})",
"track_other": "트랙",
"radioStation_other": "라디오 방송국",
"radioStationWithCount_other": "{{count}}개 라디오 방송국"
@@ -214,9 +214,9 @@
"dateAdded": "추가된 날짜",
"lastPlayed": "마지막으로 재생한",
"mostPlayed": "가장 많이 재생한",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"communityRating": "커뮤니티 평점",
"criticRating": "비평가 평점",
"disc": "디스크",
@@ -225,11 +225,11 @@
"channels": "$t(common.channel_other)",
"duration": "길이",
"bpm": "bpm",
"albumCount": "$t(entity.album_other) 앨범수",
"albumCount": "$t(entity.album, {\"count\": 2}) 앨범수",
"comment": "코멘트",
"favorited": "즐겨찾기",
"fromYear": "시작 년도",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "아이디",
"isCompilation": "편집앨범 여부",
"isFavorited": "즐겨찾기 여부",
@@ -262,16 +262,16 @@
},
"addToPlaylist": {
"input_skipDuplicates": "중복 건너뛰기",
"title": "$t(entity.playlist_one) 에 추가",
"input_playlists": "$t(entity.playlist_other)",
"title": "$t(entity.playlist, {\"count\": 1}) 에 추가",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })에 $t(entity.trackWithCount, {\"count\": {{message}} })가 추가되었습니다",
"create": "$t(entity.playlist_one) {{playlist}} 생성",
"searchOrCreate": "$t(entity.playlist_other) 검색 또는 입력하여 새로 만들기"
"create": "$t(entity.playlist, {\"count\": 1}) {{playlist}} 생성",
"searchOrCreate": "$t(entity.playlist, {\"count\": 2}) 검색 또는 입력하여 새로 만들기"
},
"lyricSearch": {
"title": "가사 검색",
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"queryEditor": {
"input_optionMatchAll": "모두 일치",
@@ -279,9 +279,9 @@
"title": "쿼리 편집기"
},
"editPlaylist": {
"title": "$t(entity.playlist_one) 편집",
"title": "$t(entity.playlist, {\"count\": 1}) 편집",
"publicJellyfinNote": "Jellyfin은 재생목록 공개 여부를 노출하지 않습니다. 만약 공개되길 원한다면 다음을 선택하세요",
"success": "$t(entity.playlist_one) 업데이트 되었습니다"
"success": "$t(entity.playlist, {\"count\": 1}) 업데이트 되었습니다"
},
"shareItem": {
"allowDownloading": "다운로드 허용",
@@ -298,15 +298,15 @@
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one)를 생성했습니다",
"success": "$t(entity.playlist, {\"count\": 1})를 생성했습니다",
"input_owner": "$t(common.owner)",
"input_public": "공개",
"title": "$t(entity.playlist_one) 생성"
"title": "$t(entity.playlist, {\"count\": 1}) 생성"
},
"deletePlaylist": {
"input_confirm": "확인을 위해 $t(entity.playlist_one)의 이름을 적어주세요",
"success": "$t(entity.playlist_one)가 삭제되었습니다",
"title": "$t(entity.playlist_one) 삭제"
"input_confirm": "확인을 위해 $t(entity.playlist, {\"count\": 1})의 이름을 적어주세요",
"success": "$t(entity.playlist, {\"count\": 1})가 삭제되었습니다",
"title": "$t(entity.playlist, {\"count\": 1}) 삭제"
},
"privateMode": {
"enabled": "프라이빗 모드가 활성화되었습니다. 재생상태가 외부 서비스에 지금부터 노출되지 않습니다",
@@ -362,8 +362,8 @@
"download": "다운로드",
"numberSelected": "{{count}}개 선택됨",
"shareItem": "공유",
"goToAlbum": "$t(entity.album_one)으로 이동",
"goToAlbumArtist": "$t(entity.albumArtist_one)으로 이동",
"goToAlbum": "$t(entity.album, {\"count\": 1})으로 이동",
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1})으로 이동",
"showDetails": "추가정보"
},
"albumArtistDetail": {
@@ -371,17 +371,17 @@
"viewDiscography": "디스코그래피 보기",
"appearsOn": "참여 앨범",
"recentReleases": "최근 앨범",
"relatedArtists": "연관 $t(entity.artist_other)",
"relatedArtists": "연관 $t(entity.artist, {\"count\": 2})",
"topSongs": "최고의 곡들",
"topSongsFrom": "{{title}}이 포함된 최고의 곡들",
"viewAll": "전부 보이기",
"viewAllTracks": "$t(entity.track_other) 전부 보이기"
"viewAllTracks": "$t(entity.track, {\"count\": 2}) 전부 보이기"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) 더 보기",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) 더 보기",
"moreFromGeneric": "{{item}} 더 보기",
"released": "발매"
},
@@ -389,8 +389,8 @@
"artistAlbums": "{{artist}}의 앨범"
},
"genreList": {
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) 표시",
"showTracks": "$t(entity.genre_one) $t(entity.track_other) 표시"
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) 표시",
"showTracks": "$t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2}) 표시"
},
"globalSearch": {
"commands": {
@@ -425,7 +425,7 @@
"sidebar": {
"myLibrary": "내 라이브러리",
"nowPlaying": "재생중",
"shared": "공유 $t(entity.playlist_other)"
"shared": "공유 $t(entity.playlist, {\"count\": 2})"
},
"trackList": {
"artistTracks": "{{artist}}의 음악"
+50 -49
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"
+410 -77
View File
@@ -1,21 +1,21 @@
{
"action": {
"editPlaylist": "pas $t(entity.playlist_one) aan",
"editPlaylist": "pas $t(entity.playlist, {\"count\": 1}) aan",
"goToPage": "ga naar pagina",
"moveToTop": "verplaats naar begin",
"addToFavorites": "toevoegen aan $t(entity.favorite_other)",
"addToPlaylist": "toevoegen aan $t(entity.playlist_one)",
"createPlaylist": "maak $t(entity.playlist_one)",
"removeFromPlaylist": "verwijder uit $t(entity.playlist_one)",
"viewPlaylists": "bekijk $t(entity.playlist_other)",
"addToFavorites": "toevoegen aan $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "toevoegen aan $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "maak $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "verwijder uit $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "bekijk $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "verwijder $t(entity.playlist_one)",
"deletePlaylist": "verwijder $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "verwijder uit wachtrij",
"deselectAll": "deselecteer alles",
"moveToBottom": "verplaats naar einde",
"setRating": "kies beoordeling",
"toggleSmartPlaylistEditor": "editor $t(entity.smartPlaylist) schakelen",
"removeFromFavorites": "verwijder uit $t(entity.favorite_other)",
"removeFromFavorites": "verwijder uit $t(entity.favorite, {\"count\": 2})",
"clearQueue": "verwijder lijst",
"openIn": {
"lastfm": "Open in Last.fm",
@@ -30,8 +30,8 @@
"viewMore": "bekijk meer",
"addOrRemoveFromSelection": "toevoegen aan of verwijderen uit selectie",
"selectRangeOfItems": "selecteer een reeks van nummers",
"createRadioStation": "maak $t(entity.radioStation_one)",
"deleteRadioStation": "verwijder $t(entity.radioStation_one)",
"createRadioStation": "maak $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "verwijder $t(entity.radioStation, {\"count\": 1})",
"selectAll": "selecteer alles",
"moveUp": "verplaats omhoog",
"moveDown": "verplaats omlaag",
@@ -48,7 +48,7 @@
"edit": "aanpassen",
"favorite": "favoriet",
"left": "links",
"currentSong": "huidig $t(entity.track_one)",
"currentSong": "huidig $t(entity.track, {\"count\": 1})",
"collapse": "samenvouwen",
"descending": "aflopend",
"add": "toevoegen",
@@ -92,7 +92,7 @@
"disable": "deactiveren",
"none": "geen",
"menu": "menu",
"previousSong": "vorige $t(entity.track_one)",
"previousSong": "vorige $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "de zoekopdracht leverde geen resultaten op",
"quit": "sluiten",
"expand": "vergroten",
@@ -118,7 +118,8 @@
"yes": "ja",
"size": "grootte",
"reload": "herlaad",
"setting": "instelling",
"setting_one": "instelling",
"setting_other": "instellingen",
"close": "sluiten",
"additionalParticipants": "andere deelnemers",
"newVersion": "een nieuwe versie is geïnstalleerd ({{version}})",
@@ -155,7 +156,10 @@
"noFilters": "geen filters ingesteld",
"example": "voorbeeld",
"mood": "stemming",
"retry": "opnieuw proberen"
"retry": "opnieuw proberen",
"filter_single": "single",
"rename": "hernoemen",
"filter_multiple": "meerdere"
},
"filter": {
"rating": "rating",
@@ -171,28 +175,28 @@
"isRated": "is rated",
"owner": "$t(common.owner)",
"bitrate": "bitrate",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "recentelijk toegevoegd",
"note": "notitie",
"name": "naam",
"dateAdded": "datum toegevoegd",
"albumCount": "$t(entity.album_other) totaal",
"albumCount": "$t(entity.album, {\"count\": 2}) totaal",
"path": "pad",
"favorited": "favoriet",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "is recentelijk afgespeeld",
"isFavorited": "is favoriet",
"bpm": "bpm",
"id": "id",
"disc": "disk",
"biography": "biografie",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "duratie",
"isPublic": "is publiek",
"random": "willekeurig",
"lastPlayed": "laatst gespeeld",
"fromYear": "van jaar",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"title": "titel",
"search": "zoeken",
"releaseDate": "releasedatum",
@@ -200,7 +204,8 @@
"songCount": "aantal nummers",
"toYear": "tot jaar",
"trackNumber": "track",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "sorteernaam"
},
"page": {
"contextMenu": {
@@ -222,8 +227,8 @@
"removeFromQueue": "$t(action.removeFromQueue)",
"download": "download",
"shareItem": "deel item",
"goToAlbum": "ga naar $t(entity.album_one)",
"goToAlbumArtist": "ga naar $t(entity.albumArtist_one)",
"goToAlbum": "ga naar $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "ga naar $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "haal info op",
"moveItems": "$t(action.moveItems)",
"moveToNext": "$t(action.moveToNext)",
@@ -234,10 +239,10 @@
"appMenu": {
"selectServer": "selecteer server",
"version": "versie {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "beheer servers",
"expandSidebar": "sidebar uitklappen",
"collapseSidebar": "sidebar inklappen",
"expandSidebar": "zijbalk uitklappen",
"collapseSidebar": "zijbalk inklappen",
"openBrowserDevtools": "open browser devtools",
"quit": "$t(common.quit)",
"goBack": "terug",
@@ -250,7 +255,7 @@
"commandPalette": "open opdrachtvenster"
},
"albumDetail": {
"moreFromArtist": "meer van deze $t(entity.artist_one)",
"moreFromArtist": "meer van deze $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "meer van {{item}}",
"released": "uitgebracht"
},
@@ -278,25 +283,29 @@
"visualizer": "visualizer"
},
"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": "albums van {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"albumArtistDetail": {
"about": "Over {{artist}}",
"appearsOn": "verschijnt op",
"viewDiscography": "bekijk discografie",
"relatedArtists": "gerelateerd $t(entity.artist_other)",
"relatedArtists": "gerelateerd $t(entity.artist, {\"count\": 2})",
"topSongs": "top nummers",
"topSongsFrom": "top nummers van {{title}}",
"viewAll": "bekijk alle",
"viewAllTracks": "bekijk alle $t(entity.track_other)",
"viewAllTracks": "bekijk alle $t(entity.track, {\"count\": 2})",
"recentReleases": "recente uitgaven",
"groupingTypeAll": "alle soorten publicaties",
"groupingTypePrimary": "primaire publicatiesoorten"
"groupingTypePrimary": "primaire publicatiesoorten",
"favoriteSongs": "favoriete nummers",
"topSongsCommunity": "community",
"topSongsPersonal": "persoonlijk",
"favoriteSongsFrom": "favoriete nummers van {{title}}"
},
"manageServers": {
"title": "beheer servers",
@@ -307,9 +316,9 @@
"removeServer": "verwijder server"
},
"genreList": {
"showAlbums": "toon $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "toon $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "toon $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "toon $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -326,10 +335,10 @@
"recentlyPlayed": "recent afgespeeld",
"recentlyReleased": "recent uitgekomen",
"title": "$t(common.home)",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"itemDetail": {
"copyPath": "kopieer pad naar klembord",
@@ -340,7 +349,7 @@
"reorder": "herschikken is alleen ingeschakeld wanneer er op ID wordt gestorteerd"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "geavanceerd",
@@ -368,32 +377,41 @@
"playerFilters": "spelerfilters"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"favorites": "$t(entity.favorite_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "mijn bibliotheek",
"nowPlaying": "nu aan het spelen",
"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) gedeeld",
"tracks": "$t(entity.track_other)",
"radio": "$t(entity.radioStation_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) gedeeld",
"tracks": "$t(entity.track, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "verzamelingen"
},
"trackList": {
"artistTracks": "nummers van {{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})"
},
"radioList": {
"title": "radiostations"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"windowBar": {
"paused": "(Gepauzeerd) ",
"privateMode": "(Privémodus)"
},
"collections": {
"overrideExisting": "bestaande overschrijven",
"saveAsCollection": "sla op als verzameling"
}
},
"error": {
@@ -438,12 +456,12 @@
"artist_other": "artiesten",
"folderWithCount_one": "{{count}} folder",
"folderWithCount_other": "{{count}} folders",
"albumArtist_one": "album artiest",
"albumArtist_other": "album artiesten",
"albumArtist_one": "albumartiest",
"albumArtist_other": "albumartiesten",
"track_one": "track",
"track_other": "tracks",
"albumArtistCount_one": "{{count}} album artiest",
"albumArtistCount_other": "{{count}} album artiesten",
"albumArtistCount_one": "{{count}} albumartiest",
"albumArtistCount_other": "{{count}} albumartiesten",
"albumWithCount_one": "{{count}} album",
"albumWithCount_other": "{{count}} albums",
"favorite_one": "favoriet",
@@ -452,7 +470,7 @@
"artistWithCount_other": "{{count}} artiesten",
"folder_one": "folder",
"folder_other": "folders",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_other": "albums",
"genreWithCount_one": "{{count}} genre",
@@ -471,11 +489,107 @@
"table": {
"column": {
"rating": "rating",
"size": "$t(common.size)"
"size": "$t(common.size)",
"albumArtist": "albumartiest",
"biography": "biografie",
"bitrate": "bitsnelheid",
"comment": "opmerking",
"dateAdded": "datum toegevoegd",
"favorite": "favoriet",
"discNumber": "disc",
"bpm": "bpm",
"album": "album",
"lastPlayed": "laatst gespeeld",
"path": "pad",
"playCount": "keren gespeeld",
"releaseDate": "uitgavedatum",
"releaseYear": "jaar",
"title": "titel",
"trackNumber": "nummer",
"owner": "eigenaar",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"bitDepth": "$t(common.bitDepth)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"genre": "$t(entity.genre, {\"count\": 1})",
"sampleRate": "$t(common.sampleRate)",
"songCount": "$t(entity.track, {\"count\": 2})"
},
"config": {
"label": {
"rating": "$t(common.rating)"
"rating": "$t(common.rating)",
"composer": "componist",
"dateAdded": "datum toegevoegd",
"discNumber": "discnummer",
"image": "afbeelding",
"lastPlayed": "laatst gespeeld",
"playCount": "keren afgespeeld",
"releaseDate": "uitgavedatum",
"rowIndex": "rij-index",
"trackNumber": "nummer",
"actions": "$t(common.action, {\"count\": 2})",
"album": "$t(entity.album, {\"count\": 1})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitDepth": "$t(common.bitDepth)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
"channels": "$t(common.channel, {\"count\": 2})",
"codec": "$t(common.codec)",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre, {\"count\": 1})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (badges)",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"sampleRate": "$t(common.sampleRate)",
"size": "$t(common.size)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleArtist": "$t(common.title) (artiest)",
"titleCombined": "$t(common.title) (gecombineerd)",
"year": "$t(common.year)"
},
"general": {
"advancedSettings": "geavanceerde instellingen",
"autoFitColumns": "kolommen automatisch passend maken",
"autosize": "automatische afmetingen",
"moveUp": "omhoog verplaatsen",
"moveDown": "omlaag verplaatsen",
"pinToLeft": "links vastpinnen",
"pinToRight": "rechts vastpinnen",
"alignLeft": "links uitlijnen",
"alignCenter": "centreren",
"alignRight": "rechts uitlijnen",
"followCurrentSong": "huidige nummer volgen",
"displayType": "weergavesoort",
"itemGap": "ruimte tussen items (px)",
"itemSize": "grootte item (px)",
"itemsPerRow": "items per rij",
"size_default": "standaard",
"size_compact": "compact",
"size_large": "groot",
"tableColumns": "kolommen",
"pagination": "paginering",
"pagination_itemsPerPage": "items per pagina",
"pagination_infinite": "oneindig",
"pagination_paginate": "gepagineerd",
"alternateRowColors": "afwisselende rijkleuren",
"horizontalBorders": "randen om rijen",
"rowHoverHighlight": "oplichtende rijen bij zweven met de muis",
"showHeader": "toon kop",
"verticalBorders": "randen om kolommen",
"gap": "$t(common.gap)",
"size": "$t(common.size)"
},
"view": {
"grid": "grid",
"list": "lijst",
"table": "tabel"
}
}
},
@@ -501,8 +615,8 @@
"exportImportSettings_importBtn": "importeer instellingen",
"exportImportSettings_importModalTitle": "importeer feishing-instellingen",
"exportImportSettings_importSuccess": "instellingen zijn succesvol geïmporteerd!",
"exportImportSettings_notValidJSON": "het ingevoerde bestand is geen valide JSON",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" is incorrect - {{reason}}",
"exportImportSettings_notValidJSON": "het ingevoerde bestand is geen geldige JSON",
"exportImportSettings_offendingKeyError": "\"{{offendingKey}}\" is onjuist - {{reason}}",
"externalLinks_description": "maakt het mogelijk om externe links (Last.fm, MusicBrainz) te tonen op artiesten-/albumpagina's",
"externalLinks": "toon externe links",
"followLyric_description": "scroll de songtekst naar de huidige positie",
@@ -571,7 +685,6 @@
"customCssNotice": "Waarschuwing: ondanks sanering (het niet toestaan van url() en content:) brengt aangepaste css nog steeds risico's met zich mee omdat de interface wordt gewijzigd",
"customFontPath_description": "bepaal het pad naar het aangepaste lettertype voor gebruik in de applicatie",
"customFontPath": "aangepaste lettertypelocatie",
"disableAutomaticUpdates": "automatische updates uitschakelen",
"releaseChannel_optionBeta": "beta",
"releaseChannel_optionLatest": "meest recente",
"releaseChannel": "releasekanaal",
@@ -758,7 +871,73 @@
"sidebarPlaylistList": "afspeellijsten zijbalk",
"sidePlayQueueStyle_description": "de stijl van de wachtrij aan de zijkant",
"sidePlayQueueStyle_optionAttached": "aangekoppeld",
"sidePlayQueueStyle_optionDetached": "afgekoppeld"
"sidePlayQueueStyle_optionDetached": "afgekoppeld",
"homeFeatureStyle_description": "bepaalt de stijl van de uitgelicht-carrousel op de homepagina",
"homeFeatureStyle": "stijl uitgelicht-carrousel",
"homeFeatureStyle_optionMultiple": "meervoudig",
"homeFeatureStyle_optionSingle": "enkelvoudig",
"blurExplicitImages": "vervaag expliciete afbeeldingen",
"blurExplicitImages_description": "hoezen van albums en nummers die getagd zijn als expliciet zullen worden vervaagd",
"mediaSession": "mediasessie inschakelen",
"sidePlayQueueStyle": "stijl van zijwachtrij",
"skipDuration_description": "de tijdsduur die wordt doorgespoeld bij gebruik van de spoelknoppen in de afspeelbalk",
"skipDuration": "doorspoelduur",
"startMinimized_description": "start de applicatie in het systeemvak",
"startMinimized": "start geminimaliseerd",
"theme": "thema",
"theme_description": "het visuele thema dat de applicatie gebruikt",
"themeDark_description": "het donkere thema dat de applicatie gebruikt",
"themeDark": "thema (donker)",
"themeLight_description": "het lichte thema dat de applicatie gebruikt",
"themeLight": "thema (licht)",
"transcode": "transcoderen inschakelen",
"transcode_description": "schakel transcoderen naar andere formaten in",
"transcodeBitrate_description": "de bitsnelheid waarnaar wordt getranscodeerd. bij 0 bepaalt de server de waarde",
"transcodeBitrate": "transcodeerbitsnelheid",
"transcodeFormat_description": "het formaat waarnaar wordt getranscodeerd. laat leeg om de server te laten bepalen",
"transcodeFormat": "transcodeerformaat",
"translationApiKey_description": "api-sleutel voor vertaling (enkel globaal service-eindpunt)",
"translationApiKey": "vertalings-api-sleutel",
"translationApiProvider_description": "api-provider voor vertalingen",
"translationApiProvider": "vertalings-api-provider",
"translationTargetLanguage_description": "doeltaal voor vertalingen",
"translationTargetLanguage": "doeltaal vertaling",
"trayEnabled_description": "toon/verstop het systeemvakicoon/-menu. indien uitgeschakeld wordt het minimaliseren/sluiten naar het systeemvak ook uitgeschakeld",
"trayEnabled": "toon systeemvak",
"useSystemTheme_description": "volg de systeemvoorkeur voor licht of donker thema",
"useSystemTheme": "gebruik systeemthema",
"volumeWheelStep_description": "de hoeveelheid volume die gewijzigd wordt bij het scrollen met het muiswiel op de volumebalk",
"volumeWheelStep": "volumestap muiswiel",
"volumeWidth_description": "de breedte van de volumebalk",
"volumeWidth": "volumebalkbreedte",
"webAudio_description": "gebruik web-audio. dit schakeld geavanceerde mogelijkheden als replaygain in. schakel uit als dit niet werkt",
"webAudio": "gebruik web-audio",
"windowBarStyle": "vensterbalkstijl",
"windowBarStyle_description": "kies de stijl van de vensterbalk",
"zoom": "zoompercentage",
"zoom_description": "het zoompercentage van de applicatie",
"queryBuilder": "opdrachtbouwer",
"queryBuilderCustomFields": "aangepaste velden",
"queryBuilderCustomFields_description": "voeg aangepaste velden voor gebruik in opdrachtbouwers toe",
"enableGridMultiSelect": "meervoudig selecteren in grid",
"enableGridMultiSelect_description": "staat toe meerdere items in gridweergaven te selecteren. indien uitgeschakeld zal het klikken op een item in een gridweergave naar diens pagina navigeren",
"sidebarPlaylistSorting": "afspeellijstsortering in zijbalk",
"sidebarPlaylistSorting_description": "activeert het handmatig sorteren van de afspeellijst in de zijbalk door middel van slepen in plaats van het gebruiken van de servervolgorde",
"sidebarPlaylistListFilterRegex_description": "verberg afspeellijsten in de zijbalk die overeenkomen met deze reguliere expressie",
"sidebarPlaylistListFilterRegex_placeholder": "bijv. ^Daily Mix.*",
"sidebarPlaylistListFilterRegex": "regex afspeellijstfilter",
"mediaSession_description": "schakelt mediasessie-integratie in, waarbij mediabesturing en metadata in het volumeweergave en het lock-scherm worden weergegeven",
"skipPlaylistPage": "sla afspeellijstpagina over",
"skipPlaylistPage_description": "ga naar de nummerlijst in plaats van de standaard pagina bij het navigeren naar een afspeellijst",
"queryBuilderCustomFields_inputLabel": "label",
"queryBuilderCustomFields_inputTag": "tag",
"playButtonBehavior_optionAddLast": "$t(player.addLast)",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"playButtonBehavior_optionPlay": "$t(player.play)",
"playButtonBehavior_optionPlayShuffled": "$t(player.shuffle)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})"
},
"form": {
"addServer": {
@@ -780,25 +959,25 @@
"input_remoteUrlPlaceholder": "optioneel: publieke url voor externe mogelijkheden"
},
"deletePlaylist": {
"title": "verwijder $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) succesvol verwijdert",
"input_confirm": "Typ de naam van $t(entity.playlist_one) om te bevestigen"
"title": "verwijder $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) succesvol verwijdert",
"input_confirm": "Typ de naam van $t(entity.playlist, {\"count\": 1}) om te bevestigen"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "$t(entity.playlist_one) aanmaken",
"title": "$t(entity.playlist, {\"count\": 1}) aanmaken",
"input_public": "publiek",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) aangemaakt",
"success": "$t(entity.playlist, {\"count\": 1}) aangemaakt",
"input_owner": "$t(common.owner)"
},
"addToPlaylist": {
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) aan $t(entity.trackWithCount, {\"count\": {{message}} }) toegevoegd",
"title": "aan $t(entity.playlist_one) toevoegen",
"title": "aan $t(entity.playlist, {\"count\": 1}) toevoegen",
"input_skipDuplicates": "duplicaten overslaan",
"input_playlists": "$t(entity.playlist_other)",
"create": "maak $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "zoek $t(entity.playlist_other) of typ om een nieuwe te maken"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "maak $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "zoek $t(entity.playlist, {\"count\": 2}) of typ om een nieuwe te maken"
},
"queryEditor": {
"input_optionMatchAll": "alles matchen",
@@ -811,13 +990,13 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "tekst zoeken"
},
"editPlaylist": {
"title": "$t(entity.playlist_one) aanpassen",
"title": "$t(entity.playlist, {\"count\": 1}) aanpassen",
"publicJellyfinNote": "Jellyfin laat niet weten of een playlist publiek of privaat is. Als u wilt dat dit publiek blijft, selecteer de volgende invoer",
"success": "$t(entity.playlist_one) succesvol geüpdatet",
"success": "$t(entity.playlist, {\"count\": 1}) succesvol geüpdatet",
"editNote": "Handmatige bewerking wordt afgeraden voor grote afspeellijsten. Weet je zeker dat je het risico op dataverlies wilt accepteren door de bestaande afspeellijst te overschrijven?"
},
"updateServer": {
@@ -843,7 +1022,7 @@
},
"shuffleAll": {
"title": "willekeurig afspelen",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "hoeveel nummers?",
"input_minYear": "van jaar",
"input_maxYear": "naar jaar",
@@ -942,7 +1121,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "uitzending",
"ep": "ep",
"other": "overig",
@@ -962,5 +1141,159 @@
"soundtrack": "soundtrack",
"spokenWord": "gesproken woord"
}
},
"dragDropZone": {
"error_oneFileOnly": "Kies één bestand",
"error_readingFile": "probleem opgetreden bij het lezen van het bestand: {{errorMessage}}",
"mainText": "sleep hier een bestand naartoe"
},
"visualizer": {
"visualizerType": "Type Visualiseerder",
"cyclePresets": "Doorloop Voorinstellingen",
"cycleTime": "Cyclustijd (seconden)",
"ignoredPresets": "Genegeerde Voorinstellingen",
"selectedPresets": "Gekozen Voorinstellingen",
"includeAllPresets": "Alle Voorinstellingen Opnemen",
"randomizeNextPreset": "Willekeurige Volgende Voorinstelling",
"blendTime": "Mengtijd",
"presets": "Voorinstellingen",
"selectPreset": "Kies Voorinstelling",
"applyPreset": "Voorinstelling Toepassen",
"saveAsPreset": "Opslaan als Voorinstelling",
"updatePreset": "Voorinstelling Bijwerken",
"copyConfiguration": "Kopieer Configuratie",
"pasteConfiguration": "Plak Configuratie",
"pasteConfigurationPlaceholder": "Plak JSON-configuratie hier...",
"pasteFromClipboard": "Plakken vanaf Klembord",
"applyConfiguration": "Configuratie Toepassen",
"configCopied": "Configuratie gekopieerd naar het klembord",
"configCopyFailed": "Kopiëren van configuratie is mislukt",
"configPasted": "Configuratie succesvol toegepast",
"configPasteFailed": "Toepassen configuratie mislukt. Controleer het formaat.",
"configPasteReadFailed": "Lezen van het klembord mislukt",
"presetName": "Naam Voorinstelling",
"presetNamePlaceholder": "Voer de naam van de voorinstelling in",
"general": "Algemeen",
"mode": "Modus",
"mode1To8": "Modus 1-8",
"mode10": "Modus 10",
"barSpace": "Balkruimte",
"lineWidth": "Lijnbreedte",
"fillAlpha": "Alfavulling",
"channelLayout": "Kanaalindeling",
"maxFPS": "Max FPS",
"opacity": "Opaciteit",
"customGradients": "Aangepaste Kleurverlopen",
"addCustomGradient": "Voeg Aangepast Kleurverloop Toe",
"gradientName": "Naam Kleurverloop",
"gradientNamePlaceholder": "Naam Kleurverloop",
"vertical": "Verticaal",
"horizontal": "Horizontaal",
"colorStops": "Kleurstop",
"addColor": "Voeg Kleur Toe",
"position": "Positie",
"level": "Niveau",
"remove": "Verwijder",
"pasteGradient": "Plak Kleurverloop",
"pasteGradientPlaceholder": "Plak JSON van kleurverloop hier...",
"custom": "Aangepast",
"builtIn": "Ingebouwd",
"colors": "Kleuren",
"colorMode": "Kleurmodus",
"gradient": "Kleurverloop",
"gradientLeft": "Kleurverloop Links",
"gradientRight": "Kleurverloop Rechts",
"fft": "FFT",
"fftSize": "FFT-grootte",
"smoothing": "Gladstrijken",
"frequencyRangeAndScaling": "Frequentiebereik en -schaling",
"minimumFrequency": "Minimumfrequentie",
"maximumFrequency": "Maximumfrequentie",
"frequencyScale": "Frequentieschaal",
"sensitivity": "Gevoeligheid",
"weightingFilter": "Gewichtsfilter",
"minimumDecibels": "Minimum aantal decibel",
"maximumDecibels": "Maximum aantal decibel",
"linearAmplitude": "Lineaire Amplitude",
"linearBoost": "Lineaire Versterking",
"peakBehavior": "Piekgedrag",
"showPeaks": "Toon Pieken",
"fadePeaks": "Vervaag Pieken",
"peakLine": "Pieklijn",
"gravity": "Zwaartekracht",
"peakFadeTime": "Piekvervagingstijd (ms)",
"peakHoldTime": "Piekvasthoudtijd (ms)",
"radialSpectrum": "Radiaal Spectrum",
"radial": "Radiaal",
"radialInvert": "Geïnverteerde Radiaal",
"spinSpeed": "Draaisnelheid",
"radius": "Radius",
"reflexMirror": "Reflexspiegel",
"reflexRatio": "Reflexverhouding",
"reflexAlpha": "Reflex-alfa",
"reflexFit": "Reflex-inpassing",
"reflexBrightness": "Reflex-helderheid",
"mirror": "Spiegel",
"miscellaneousSettings": "Diverse Instellingen",
"alphaBars": "Alfabalken",
"ansiBands": "ANSI-banden",
"ledBars": "LED-balken",
"trueLeds": "Ware LEDs",
"lumiBars": "Lumi-balken",
"outlineBars": "Uitgelijnde balken",
"roundBars": "Ronde Balken",
"lowResolution": "Lage Resolutie",
"splitGradient": "Gescheiden Kleurverloop",
"showFPS": "Toon FPS",
"showScaleX": "Toon X-schaal",
"showScaleY": "Toon Y-schaal",
"noteLabels": "Nootlabels",
"options": {
"mode": {
"0": "[0] Discrete Frequenties",
"1": "[1] 1/24e octaaf / 240 bands",
"2": "[2] 1/12e octaaf / 120 bands",
"3": "[3] 1/8e octaaf / 80 bands",
"4": "[4] 1/6e octaaf / 60 bands",
"5": "[5] 1/4e octaaf / 40 bands",
"6": "[6] 1/3e octaaf / 30 bands",
"7": "[7] Half octaaf / 20 bands",
"8": "[8] Volledig octaaf / 10 bands",
"10": "[10] Lijn- / Gebiedsgrafiek"
},
"colorMode": {
"gradient": "Kleurverloop",
"barIndex": "Balk-index",
"barLevel": "Balkniveau"
},
"gradient": {
"classic": "Klassiek",
"prism": "Prisma",
"rainbow": "Regenboog",
"steelblue": "Staalblauw",
"orangered": "Oranjerood"
},
"channelLayout": {
"single": "Enkelvoudig",
"dualCombined": "Duaalgecombineerd",
"dualHorizontal": "Duaalhorizontaal",
"dualVertical": "Duaalvertikaal"
},
"frequencyScale": {
"none": "Geen",
"bark": "Bark-schaal",
"linear": "Lineaire Schaal",
"log": "Log-schaal",
"mel": "Mel-schaal"
},
"weightingFilter": {
"none": "Geen",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
}
}
}
+126 -90
View File
@@ -1,20 +1,20 @@
{
"action": {
"editPlaylist": "edytuj $t(entity.playlist_one)",
"editPlaylist": "edytuj $t(entity.playlist, {\"count\": 1})",
"goToPage": "idź do strony",
"clearQueue": "wyczyść kolejkę",
"addToFavorites": "dodaj do $t(entity.favorite_other)",
"removeFromPlaylist": "usuń z $t(entity.playlist_one)",
"viewPlaylists": "zobacz $t(entity.playlist_other)",
"addToFavorites": "dodaj do $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "usuń z $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "zobacz $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"removeFromQueue": "usuń z kolejki",
"deselectAll": "odznacz wszystko",
"toggleSmartPlaylistEditor": "przełącz edytor $t(entity.smartPlaylist)",
"removeFromFavorites": "usuń z $t(entity.favorite_other)",
"removeFromFavorites": "usuń z $t(entity.favorite, {\"count\": 2})",
"moveToTop": "przesuń na górę",
"addToPlaylist": "dodaj do $t(entity.playlist_one)",
"createPlaylist": "utwórz $t(entity.playlist_one)",
"deletePlaylist": "usuń $t(entity.playlist_one)",
"addToPlaylist": "dodaj do $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "utwórz $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "usuń $t(entity.playlist, {\"count\": 1})",
"moveToBottom": "przesuń na dół",
"setRating": "oceń",
"openIn": {
@@ -32,8 +32,8 @@
"moveDown": "przenieś niżej",
"holdToMoveToTop": "przytrzymaj aby, przesunąć na górę",
"holdToMoveToBottom": "przytrzymaj aby, przesunąć na dół",
"createRadioStation": "utwórz $t(entity.radioStation_one)",
"deleteRadioStation": "usuń $t(entity.radioStation_one)",
"createRadioStation": "utwórz $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "usuń $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "dodaj lub usuń z wyboru",
"selectRangeOfItems": "wybierz zakres elementów",
"selectAll": "wybierz wszystkie",
@@ -73,7 +73,9 @@
"delete": "usuń",
"cancel": "anuluj",
"forceRestartRequired": "zrestartuj aby zastosować zmiany... zamknij powiadomienie aby zrestartować",
"setting": "ustawienia",
"setting_one": "ustawienie",
"setting_few": "ustawienia",
"setting_many": "ustawień",
"version": "wersja",
"title": "tytuł",
"filter_one": "filtr",
@@ -100,7 +102,7 @@
"none": "żaden",
"menu": "menu",
"restartRequired": "wymagany restart",
"previousSong": "poprzedni $t(entity.track_one)",
"previousSong": "poprzedni $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "kolejka zwróciła brak wyników",
"quit": "wyjdź",
"expand": "rozszerz",
@@ -113,7 +115,7 @@
"biography": "biografia",
"backward": "wstecz",
"left": "lewo",
"currentSong": "obecnie $t(entity.track_one)",
"currentSong": "obecnie $t(entity.track, {\"count\": 1})",
"collapse": "zwiń",
"gap": "luka",
"manage": "zarządzaj",
@@ -160,7 +162,8 @@
"mood": "nastrój",
"example": "przykład",
"filter_multiple": "multi",
"filter_single": "single"
"filter_single": "single",
"rename": "zmień nazwę"
},
"entity": {
"genre_one": "gatunek",
@@ -173,14 +176,14 @@
"playlist_few": "playlisty",
"playlist_many": "playlist",
"artist_one": "wykonawca",
"artist_few": "wykonawców",
"artist_few": "wykonawcy",
"artist_many": "wykonawców",
"folderWithCount_one": "{{count}} katalog",
"folderWithCount_few": "{{count}} katalogi",
"folderWithCount_many": "{{count}} katalogów",
"albumArtist_one": "wykonawca albumu",
"albumArtist_few": "wykonawcy albumu",
"albumArtist_many": "wykonawców albumu",
"albumArtist_many": "wykonawcy albumów",
"track_one": "utwór",
"track_few": "utwory",
"track_many": "utworów",
@@ -199,7 +202,7 @@
"folder_one": "katalog",
"folder_few": "katalogi",
"folder_many": "katalogów",
"smartPlaylist": "inteligentna $t(entity.playlist_one)",
"smartPlaylist": "inteligentna $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_few": "albumy",
"album_many": "albumów",
@@ -271,7 +274,7 @@
"communityRating": "ocena społeczności",
"path": "ścieżka",
"favorited": "ulubione",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "było niedawno odtwarzane",
"isFavorited": "jest ulubione",
"bpm": "bpm",
@@ -279,7 +282,7 @@
"disc": "płyta",
"biography": "biografia",
"songCount": "liczba utworów",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "długość",
"random": "losowy",
"lastPlayed": "ostatnio odtwarzane",
@@ -289,27 +292,28 @@
"trackNumber": "utwór",
"comment": "komentarz",
"recentlyUpdated": "ostatnio aktualizowane",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"owner": "$t(common.owner)",
"genre": "$t(entity.genre_one)",
"albumCount": "liczba $t(entity.album_other)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumCount": "liczba $t(entity.album, {\"count\": 2})",
"id": "id",
"isPublic": "jest publiczny",
"album": "$t(entity.album_one)",
"explicitStatus": "$t(common.explicitStatus)"
"album": "$t(entity.album, {\"count\": 1})",
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "sortowanie po nazwie"
},
"form": {
"deletePlaylist": {
"title": "usuń $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) usunięto pomyślnie",
"input_confirm": "wpisz nazwę $t(entity.playlist_one) aby potwierdzić"
"title": "usuń $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) usunięta pomyślnie",
"input_confirm": "wpisz nazwę $t(entity.playlist, {\"count\": 1}) aby potwierdzić"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "utwórz $t(entity.playlist_one)",
"title": "utwórz $t(entity.playlist, {\"count\": 1})",
"input_public": "publiczny",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) utworzono pomyślnie",
"success": "$t(entity.playlist, {\"count\": 1}) utworzona pomyślnie",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -332,11 +336,11 @@
},
"addToPlaylist": {
"success": "dodano $t(entity.trackWithCount, {\"count\": {{message}} }) do $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "dodano do $t(entity.playlist_one)",
"title": "dodano do $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "pomiń duplikaty",
"input_playlists": "$t(entity.playlist_other)",
"create": "utwórz $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "wyszukaj $t(entity.playlist_other) lub wpisz, aby utworzyć nową"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "utwórz $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "wyszukaj $t(entity.playlist, {\"count\": 2}) lub wpisz, aby utworzyć nową"
},
"updateServer": {
"title": "uaktualnij serwer",
@@ -353,12 +357,12 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "wyszukiwanie tekstów"
},
"editPlaylist": {
"title": "edytuj $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) zaktualizowana pomyślnie",
"title": "edytuj $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) zaktualizowana pomyślnie",
"publicJellyfinNote": "Z jakiegoś powodu Jellyfin nie udostępnia informacji na temat publiczności playlisty. Jeżeli chcesz, aby ta pozostała publiczna, mniej wybraną poniższą opcję",
"editNote": "manualne edytowanie nie jest zalecane dla dużych playlist. czy na pewno zgadzasz się na ryzyko utraty danych wywołane przez nadpisanie istniejącej playlisty?"
},
@@ -381,7 +385,7 @@
},
"shuffleAll": {
"title": "odtwarzaj losowo",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "ile piosenek?",
"input_minYear": "z roku",
"input_maxYear": "do roku",
@@ -424,7 +428,7 @@
"dynamicIsImage": "włącz obraz w tle",
"lyricOffset": "opóźnienie tekstów (ms)"
},
"upNext": "następny",
"upNext": "następne",
"lyrics": "tekst",
"related": "powiązane",
"visualizer": "wizualizer",
@@ -433,7 +437,7 @@
"appMenu": {
"selectServer": "wybierz serwer",
"version": "wersja {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "zarządzaj serwerami",
"expandSidebar": "rozwiń pasek boczny",
"collapseSidebar": "zwiń pasek boczny",
@@ -471,45 +475,46 @@
"playShuffled": "$t(player.shuffle)",
"playSimilarSongs": "$t(player.playSimilarSongs)",
"moveToNext": "$t(action.moveToNext)",
"goToAlbum": "przejdź do $t(entity.album_one)",
"goToAlbumArtist": "przejdź do $t(entity.albumArtist_one)",
"goToAlbum": "przejdź do $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "przejdź do $t(entity.albumArtist, {\"count\": 1})",
"moveItems": "$t(action.moveItems)",
"goTo": "przejdź do"
},
"albumDetail": {
"moreFromArtist": "więcej od $t(entity.artist_one)",
"moreFromArtist": "więcej od $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "więcej od {{item}}",
"released": "wydany"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showAlbums": "pokaż $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "pokaż $t(entity.genre_one) $t(entity.track_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showAlbums": "pokaż $t(entity.album, {\"count\": 2}) $t(entity.genre, {\"count\": 1})",
"showTracks": "pokaż $t(entity.track, {\"count\": 2}) $t(entity.genre, {\"count\": 1})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "albumy wykonawcy {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "$t(entity.album, {\"count\": 2}) \"{{genre}}\""
},
"sidebar": {
"nowPlaying": "teraz odtwarzane",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"shared": "udostępnione $t(entity.playlist_other)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "udostępniono $t(entity.playlist, {\"count\": 2})",
"myLibrary": "Moja biblioteka",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "kolekcje"
},
"home": {
"mostPlayed": "najczęściej odtwarzane",
@@ -518,7 +523,7 @@
"explore": "przeglądaj z biblioteki",
"recentlyPlayed": "ostatnio odtwarzane",
"recentlyReleased": "ostatnio wydane",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"setting": {
"playbackTab": "odtworzenia",
@@ -546,9 +551,9 @@
"lyricsDisplay": "wyświetlanie tekstu"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "utwory przez {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "$t(entity.track, {\"count\": 2}) \"{{genre}}\""
},
"globalSearch": {
"commands": {
@@ -559,7 +564,7 @@
"title": "komendy"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumArtistDetail": {
"topSongs": "popularne utwory",
@@ -568,11 +573,15 @@
"recentReleases": "ostatnie wydania",
"viewAll": "zobacz wszystko",
"viewDiscography": "przeglądaj dyskografię",
"relatedArtists": "powiązane z $t(entity.artist_other)",
"relatedArtists": "powiązane z $t(entity.artist, {\"count\": 2})",
"appearsOn": "pojawia się na",
"viewAllTracks": "zobacz wszystko $t(entity.track_other)",
"viewAllTracks": "zobacz wszystko $t(entity.track, {\"count\": 2})",
"groupingTypeAll": "wszystkie typy wydań",
"groupingTypePrimary": "główne typy wydań"
"groupingTypePrimary": "główne typy wydań",
"favoriteSongs": "ulubione piosenki",
"topSongsCommunity": "społeczność",
"topSongsPersonal": "osobiste",
"favoriteSongsFrom": "ulubione piosenki z {{title}}"
},
"itemDetail": {
"copyPath": "kopiuj ścieżkę do schowka",
@@ -591,13 +600,26 @@
"reorder": "zmiana kolejności jest możliwa tylko podczas sortowania według id"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "stacje radiowe"
},
"windowBar": {
"paused": "(Wstrzymane) ",
"privateMode": "(Tryb prywatny)"
},
"collections": {
"overrideExisting": "nadpisz istniejące",
"saveAsCollection": "zapisz jako kolekcję"
},
"releasenotes": {
"commitsSinceStable": "commity od {{stable}}",
"noNewCommits": "brak nowych commitów w tym zakresie",
"noStableReleaseToCompare": "brak dostępnego stabilnego wydania do porównania"
}
},
"player": {
@@ -671,7 +693,6 @@
"globalMediaHotkeys": "globalne skróty klawiszowe multimediów",
"hotkey_globalSearch": "globalne wyszukiwanie",
"gaplessAudio_description": "ustaw dźwięk bez przerw dla mpv",
"disableAutomaticUpdates": "wyłącz automatyczne aktualizacje",
"exitToTray_description": "zamknij aplikację do zasobnika systemowego",
"followLyric_description": "przewiń tekst do obecnego momentu",
"hotkey_favoritePreviousSong": "ulubiona $t(common.previousSong)",
@@ -705,7 +726,7 @@
"applicationHotkeys": "skróty klawiszowe aplikacji",
"hotkey_playbackNext": "następny utwór",
"lyricFetch_description": "pobierz teksty z rozmaitych źródeł internetowych",
"lyricFetchProvider_description": "wybierz dostawców internetowych dla tekstów. zapytania będą wykonywane według podanej kolejności",
"lyricFetchProvider_description": "wybierz dostawców od których pobierane będą teksty",
"globalMediaHotkeys_description": "włącz lub wyłącz używanie systemowych skrótów klawiszowych do kontroli odtwarzania",
"customFontPath": "niestandardowa ścieżka czcionki",
"followLyric": "podążaj za tekstem",
@@ -715,7 +736,7 @@
"hotkey_zoomOut": "oddal",
"hotkey_unfavoriteCurrentSong": "usuń $t(common.currentSong) z ulubionych",
"hotkey_rate0": "wyczyść oceny",
"discordApplicationId": "ID aplikacji {{discord}}",
"discordApplicationId": "id aplikacji {{discord}}",
"applicationHotkeys_description": "ustaw skróty klawiszowe aplikacji. przełącz pole wyboru aby ustawić skrót globalny (tylko komputery)",
"hotkey_volumeMute": "wycisz",
"hotkey_toggleCurrentSongFavorite": "dodaj $t(common.currentSong) do ulubionych",
@@ -761,8 +782,8 @@
"scrobble_description": "przekazywanie informacji o odtwarzaniu (scrobbling) do twojego serwera multimediów",
"sidePlayQueueStyle": "boczny styl kolejki odtwarzania",
"remoteUsername_description": "ustaw nazwę użytkownika dla serwera zdalnej kontroli. Jeśli nazwa użytkownika i hasło są puste, autoryzacja będzie wyłączona",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"remotePassword_description": "ustawia hasło dla serwera zdalnego sterowania. Te poświadczenia są domyślnie przesyłane w sposób niezabezpieczony, dlatego należy użyć unikalnego hasła na którym ci nie zależy",
"showSkipButtons_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
"showSkipButton_description": "pokaż lub ukryj przyciski pomijania na pasku odtwarzacza",
@@ -973,7 +994,21 @@
"pathReplace": "zamiana ścieżki pliku",
"pathReplace_description": "zamień domyślną ścieżkę pliku twojego serwera",
"pathReplace_optionRemovePrefix": "usuń prefix",
"pathReplace_optionAddPrefix": "dodaj prefix"
"pathReplace_optionAddPrefix": "dodaj prefix",
"homeFeatureStyle_description": "kontroluje styl karuzeli polecanych na stronie głównej",
"homeFeatureStyle": "Styl karuzeli polecanych na stronie głównej",
"homeFeatureStyle_optionMultiple": "wiele",
"homeFeatureStyle_optionSingle": "jeden",
"enableGridMultiSelect_description": "gdy włączone, pozwala na wybieranie wielu elementów w widokach siatki, gdy wyłączone, klikanie obrazów elementów siatki będzie przenosić na stronę elementu",
"enableGridMultiSelect": "wybieranie wielu w siatce",
"sidebarPlaylistSorting_description": "pozwala na ręczne sortowanie playlist w bocznym pasku używając przeciągania i upuszczania zamiast używania domyślnej kolejności serwera",
"sidebarPlaylistSorting": "sortowanie playlist w bocznym pasku",
"sidebarPlaylistListFilterRegex_description": "ukryj playlisty w pasku bocznym pasujące do wyrażenia regularnego",
"sidebarPlaylistListFilterRegex_placeholder": "np. ^Miks codzienny.^",
"sidebarPlaylistListFilterRegex": "filtr playlist regex",
"blurExplicitImages": "rozmazuj nieodpowiednie obrazy",
"blurExplicitImages_description": "obrazy piosenek oraz albumów oznaczone jako nieodpowiednie będą rozmazywane",
"releaseChannel_optionAlpha": "alpha (nightly)"
},
"table": {
"config": {
@@ -1011,7 +1046,8 @@
"alternateRowColors": "naprzemienne kolory wierszy",
"horizontalBorders": "obwódki wierszy",
"rowHoverHighlight": "podświetlanie wierszy po najechaniu",
"verticalBorders": "obwódki kolumn"
"verticalBorders": "obwódki kolumn",
"showHeader": "pokaż nagłówek"
},
"label": {
"releaseDate": "data premiery",
@@ -1025,25 +1061,25 @@
"trackNumber": "numer utworu",
"rowIndex": "indeks wiersza",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"playCount": "liczba odtworzeń",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"actions": "$t(common.action, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "numer płyty",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (znaczki)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (znaczki)",
"image": "obraz",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)",
@@ -1057,7 +1093,7 @@
"rating": "ocena",
"favorite": "ulubione",
"playCount": "odtwarzane",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "rok",
"lastPlayed": "ostatnio odtwarzane",
"biography": "biografia",
@@ -1066,14 +1102,14 @@
"title": "tytuł",
"bpm": "bpm",
"dateAdded": "data dodania",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "utwór",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "wykonawca albumu",
"path": "ścieżka",
"discNumber": "płyta",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"size": "$t(common.size)",
"codec": "$t(common.codec)",
"owner": "właściciel",
@@ -1087,7 +1123,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "broadcast",
"ep": "ep",
"other": "inne",
+64 -63
View File
@@ -14,7 +14,7 @@
"bpm": "BPM",
"edit": "editar",
"favorite": "favorito",
"currentSong": "$t(entity.track_one) atual",
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
"descending": "abaixar",
"dismiss": "liberar",
"duration": "duração",
@@ -58,7 +58,9 @@
"owner": "dono",
"forward": "para frente",
"forceRestartRequired": "reinicie para aplicar as alterações… feche a notificação para reiniciar",
"setting": "configuração",
"setting_one": "configuração",
"setting_many": "",
"setting_other": "",
"version": "versão",
"filter_one": "filtro",
"filter_many": "filtros",
@@ -72,7 +74,7 @@
"none": "nenhum",
"menu": "menu",
"restartRequired": "é necessário reiniciar",
"previousSong": "anterior $t(entity.track_one)",
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "a consulta não retornou resultados",
"quit": "sair",
"search": "procurar",
@@ -101,21 +103,21 @@
},
"action": {
"goToPage": "vá para página",
"addToFavorites": "adicionar em $t(entity.favorite_other)",
"viewPlaylists": "ver $t(entity.playlist_other)",
"addToFavorites": "adicionar em $t(entity.favorite, {\"count\": 2})",
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
"setRating": "definir classificação",
"moveToTop": "mover para o topo",
"refresh": "$t(common.refresh)",
"removeFromQueue": "remover da fila",
"moveToBottom": "mover para baixo",
"editPlaylist": "editar $t(entity.playlist_one)",
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
"clearQueue": "Limpar fila",
"addToPlaylist": "adicionar à $t(entity.playlist_one)",
"createPlaylist": "Criar $t(entity.playlist_one)",
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
"deletePlaylist": "deletar $t(entity.playlist_one)",
"addToPlaylist": "adicionar à $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "Criar $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "deletar $t(entity.playlist, {\"count\": 1})",
"deselectAll": "desmarcar todos",
"removeFromFavorites": "remover de $t(entity.favorite_other)",
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Abrir em Last.fm",
"musicbrainz": "Abrir em MusicBrainz"
@@ -125,9 +127,9 @@
},
"form": {
"deletePlaylist": {
"title": "deletar $t(entity.playlist_one)",
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
"success": "$t(entity.playlist_one) deletada com sucesso"
"title": "deletar $t(entity.playlist, {\"count\": 1})",
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
"success": "$t(entity.playlist, {\"count\": 1}) deletada com sucesso"
},
"addServer": {
"title": "adicionar servidor",
@@ -145,10 +147,10 @@
"input_preferInstantMixDescription": "Usar apenas a mixagem instantânea para obter músicas semelhantes. Útil se você tiver plugins que modificam esse comportamento"
},
"createPlaylist": {
"title": "criar $t(entity.playlist_one)",
"title": "criar $t(entity.playlist, {\"count\": 1})",
"input_public": "público",
"input_description": "$t(common.description)",
"success": "$t(entity.playlist_one) criada com sucesso",
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
"input_owner": "$t(common.owner)",
"input_name": "$t(common.name)"
},
@@ -157,19 +159,19 @@
"success": "servidor atualizado com sucesso"
},
"editPlaylist": {
"title": "editar $t(entity.playlist_one)",
"title": "editar $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se você deseja que ela permaneça pública, por favor selecione a seguinte entrada",
"success": "$t(entity.playlist_one) atualizada com sucesso"
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso"
},
"addToPlaylist": {
"title": "adicionar à $t(entity.playlist_one)",
"input_playlists": "$t(entity.playlist_other)",
"title": "adicionar à $t(entity.playlist, {\"count\": 1})",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "pular duplicadas",
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })"
},
"lyricSearch": {
"title": "pesquisa de letras",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)"
},
"shareItem": {
@@ -228,7 +230,6 @@
"crossfadeDuration_description": "define a duração do efeito crossfade",
"customCssNotice": "Atenção: embora haja alguma sanitização (proibindo url() e content:), usar CSS personalizado ainda pode representar riscos ao alterar a interface",
"crossfadeStyle_description": "seleciona qual estilo de crossfade usado no player de áudio",
"disableAutomaticUpdates": "desabilitar atualizações automáticas",
"disableLibraryUpdateOnStartup": "desabilitar a verificação de novas versões na inicialização",
"artistBackground": "Imagem de fundo do artista",
"artistBackground_description": "Adiciona uma imagem de fundo às páginas do artista contendo a arte do artista",
@@ -370,9 +371,9 @@
"replayGainFallback_description": "Ganho em dB a ser aplicado se o arquivo não tiver tags de {{ReplayGain}}",
"replayGainMode": "Modo {{ReplayGain}}",
"replayGainMode_description": "Ajustar o ganho de volume de acordo com os valores de {{ReplayGain}} armazenados nos metadados do arquivo",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainPreamp": "Pré-amplificador {{ReplayGain}} (dB)",
"replayGainPreamp_description": "Ajustar o ganho do pré-amplificador aplicado aos valores de {{ReplayGain}}",
"sampleRate": "Taxa de amostragem (sample rate)",
@@ -448,9 +449,9 @@
"titleCombined": "$t(common.title) (combinado)",
"discNumber": "numero do disco",
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -459,7 +460,7 @@
"dateAdded": "Data de adição",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "Última reprodução",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -469,7 +470,7 @@
"releaseDate": "Data de lançamento",
"rowIndex": "Índice da linha",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "Número da faixa",
"year": "$t(common.year)"
},
@@ -495,8 +496,8 @@
"size": "$t(common.size)",
"album": "Álbum",
"albumArtist": "Artista do álbum",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "Biografia",
"bitrate": "Taxa de bits",
"bpm": "BPM",
@@ -505,14 +506,14 @@
"comment": "Comentário",
"dateAdded": "Data adicionada",
"favorite": "Favorito",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "Último tocado",
"path": "Caminho",
"playCount": "Tocados",
"rating": "Avaliação",
"releaseDate": "Data de lançamento",
"releaseYear": "Ano",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "Faixa"
}
},
@@ -526,17 +527,17 @@
"recentlyReleased": "Lançamentos recentes"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)",
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)"
"title": "$t(entity.genre, {\"count\": 2})",
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)",
"title": "$t(entity.track, {\"count\": 2})",
"artistTracks": "faixas de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"title": "comandos",
@@ -548,26 +549,26 @@
},
"sidebar": {
"home": "$t(common.home)",
"tracks": "$t(entity.track_other)",
"shared": "$t(entity.playlist_other) compartilhada",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"albumArtists": "$t(entity.albumArtist_other)",
"artists": "$t(entity.artist_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) compartilhada",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"nowPlaying": "tocando agora",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"myLibrary": "minha biblioteca"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"artistAlbums": "álbuns de {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})"
},
"appMenu": {
"openBrowserDevtools": "abrir ferramentas do desenvolvedor",
@@ -579,7 +580,7 @@
"goForward": "avançar",
"version": "versão {{version}}",
"manageServers": "gerenciar servidores",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"privateModeOff": "Desativar modo privado",
"privateModeOn": "Ativar modo privado"
},
@@ -606,15 +607,15 @@
"moveToNext": "$t(action.moveToNext)",
"removeFromPlaylist": "$t(action.removeFromPlaylist)",
"setRating": "$t(action.setRating)",
"goToAlbum": "Ir para $t(entity.album_one)",
"goToAlbumArtist": "Ir para $t(entity.albumArtist_one)"
"goToAlbum": "Ir para $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "Ir para $t(entity.albumArtist, {\"count\": 1})"
},
"albumArtistDetail": {
"viewAllTracks": "ver todas as $t(entity.track_other)",
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})",
"appearsOn": "aparece em",
"recentReleases": "lançamentos recentes",
"viewDiscography": "ver discografia",
"relatedArtists": "$t(entity.artist_other) relacionados",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
"viewAll": "ver tudo",
"topSongsFrom": "músicas mais tocadas de {{title}}",
"topSongs": "músicas mais tocadas",
@@ -644,7 +645,7 @@
"noLyrics": "nenhuma letra encontrada"
},
"albumDetail": {
"moreFromArtist": "mais deste $t(entity.artist_one)",
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mais de {{item}}",
"released": "lançado"
},
@@ -676,7 +677,7 @@
"title": "titulo",
"disc": "disco",
"mostPlayed": "mais tocado",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"name": "nome",
"biography": "bibliografia",
"duration": "duração",
@@ -695,7 +696,7 @@
"recentlyUpdated": "atualizado recentemente",
"dateAdded": "data de adição",
"isRecentlyPlayed": "foi tocado recentemente",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"recentlyAdded": "adicionado recentemente",
"releaseDate": "data de lançamento",
"recentlyPlayed": "tocado recentemente",
@@ -703,7 +704,7 @@
"isFavorited": "é favoritado",
"releaseYear": "ano de lançamento",
"rating": "avaliação",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"bpm": "bpm",
"channels": "$t(common.channel_other)",
"comment": "comentário",
@@ -713,8 +714,8 @@
"bitrate": "bitrate",
"isRated": "possui avaliação",
"note": "nota",
"albumCount": "número de $t(entity.album_other)",
"genre": "$t(entity.genre_one)"
"albumCount": "número de $t(entity.album, {\"count\": 2})",
"genre": "$t(entity.genre, {\"count\": 1})"
},
"player": {
"playbackFetchNoResults": "nenhuma música encontrada",
@@ -795,7 +796,7 @@
"track_one": "faixa",
"track_many": "faixas",
"track_other": "faixas",
"smartPlaylist": "$t(entity.playlist_one) inteligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
"song_one": "música",
"song_many": "músicas",
"song_other": "músicas",
+51 -50
View File
@@ -1,23 +1,23 @@
{
"action": {
"addToFavorites": "adicionar a $t(entity.favorite_other)",
"addToPlaylist": "adicionar a $t(entity.playlist_one)",
"addToFavorites": "adicionar a $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "adicionar a $t(entity.playlist, {\"count\": 1})",
"clearQueue": "limpar fila",
"createPlaylist": "criar $t(entity.playlist_one)",
"deletePlaylist": "apagar $t(entity.playlist_one)",
"createPlaylist": "criar $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "apagar $t(entity.playlist, {\"count\": 1})",
"deselectAll": "desmarcar todos",
"editPlaylist": "editar $t(entity.playlist_one)",
"editPlaylist": "editar $t(entity.playlist, {\"count\": 1})",
"goToPage": "vá para página",
"moveToNext": "mover para o próximo",
"moveToBottom": "mover para baixo",
"moveToTop": "mover para o topo",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "remover de $t(entity.favorite_other)",
"removeFromPlaylist": "remover da $t(entity.playlist_one)",
"removeFromFavorites": "remover de $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "remover da $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "remover da fila",
"setRating": "definir classificação",
"toggleSmartPlaylistEditor": "alternar editor $t(entity.smartPlaylist)",
"viewPlaylists": "ver $t(entity.playlist_other)",
"viewPlaylists": "ver $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Abrir em Last.fm",
"musicbrainz": "Abrir em MusicBrainz"
@@ -52,7 +52,7 @@
"configure": "configurar",
"confirm": "confirmar",
"create": "criar",
"currentSong": "$t(entity.track_one) atual",
"currentSong": "$t(entity.track, {\"count\": 1}) atual",
"decrease": "diminuir",
"delete": "apagar",
"descending": "abaixar",
@@ -92,7 +92,7 @@
"path": "caminho",
"playerMustBePaused": "o player deve estar pausado",
"preview": "pré-visualizar",
"previousSong": "anterior $t(entity.track_one)",
"previousSong": "anterior $t(entity.track, {\"count\": 1})",
"quit": "sair",
"random": "aleatório",
"rating": "classificação",
@@ -106,7 +106,9 @@
"saveAndReplace": "gravar e substituir",
"saveAs": "gravar como",
"search": "procurar",
"setting": "configuração",
"setting_one": "configuração",
"setting_many": "",
"setting_other": "",
"share": "partilhar",
"size": "tamanho",
"sortOrder": "ordem",
@@ -164,7 +166,7 @@
"playlistWithCount_one": "{{count}} playlist",
"playlistWithCount_many": "{{count}} playlists",
"playlistWithCount_other": "{{count}} playlists",
"smartPlaylist": "$t(entity.playlist_one) inteligente",
"smartPlaylist": "$t(entity.playlist, {\"count\": 1}) inteligente",
"track_one": "faixa",
"track_many": "faixas",
"track_other": "faixas",
@@ -201,10 +203,10 @@
"systemFontError": "ocorreu um erro ao tentar obter fontes do sistema"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "número de $t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "número de $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "bibliografia",
"bitrate": "bitrate",
"bpm": "bpm",
@@ -217,7 +219,7 @@
"duration": "duração",
"favorited": "favoritado",
"fromYear": "a partir do ano",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "id",
"isCompilation": "é compilação",
"isFavorited": "é favoritado",
@@ -259,31 +261,31 @@
"title": "adicionar servidor"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "pular duplicadas",
"success": "adicionado $t(entity.trackWithCount, {\"count\": {{message}} }) para $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "adicionar à $t(entity.playlist_one)"
"title": "adicionar à $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "público",
"success": "$t(entity.playlist_one) criada com sucesso",
"title": "criar $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) criada com sucesso",
"title": "criar $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "escreva o nome da $t(entity.playlist_one) para confirmar",
"success": "$t(entity.playlist_one) apagada com sucesso",
"title": "apagar $t(entity.playlist_one)"
"input_confirm": "escreva o nome da $t(entity.playlist, {\"count\": 1}) para confirmar",
"success": "$t(entity.playlist, {\"count\": 1}) apagada com sucesso",
"title": "apagar $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "O Jellyfin por algum motivo não expõe se uma playlist é pública ou não. Se deseja que ela permaneça pública, por favor selecione a seguinte entrada",
"success": "$t(entity.playlist_one) atualizada com sucesso",
"title": "editar $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) atualizada com sucesso",
"title": "editar $t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "pesquisa de letras"
},
@@ -310,24 +312,24 @@
"appearsOn": "aparece em",
"recentReleases": "lançamentos recentes",
"viewDiscography": "ver discografia",
"relatedArtists": "$t(entity.artist_other) relacionados",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) relacionados",
"topSongs": "músicas mais tocadas",
"topSongsFrom": "músicas mais tocadas de {{title}}",
"viewAll": "ver tudo",
"viewAllTracks": "ver todas as $t(entity.track_other)"
"viewAllTracks": "ver todas as $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "mais deste $t(entity.artist_one)",
"moreFromArtist": "mais deste $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mais que {{item}}",
"released": "lançado"
},
"albumList": {
"artistAlbums": "álbuns de {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "recolher barra lateral",
@@ -338,7 +340,7 @@
"openBrowserDevtools": "abrir ferramentas do programador",
"quit": "$t(common.quit)",
"selectServer": "selecionar servidor",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "versão {{version}}"
},
"manageServers": {
@@ -397,9 +399,9 @@
"noLyrics": "nenhuma letra encontrada"
},
"genreList": {
"showAlbums": "mostrar $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "mostrar $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "mostrar $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -425,7 +427,7 @@
"reorder": "reordenar apenas disponível quando ordenado pelo id"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "avançado",
@@ -435,24 +437,24 @@
"windowTab": "janela"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "a minha biblioteca",
"nowPlaying": "agora a tocar",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "$t(entity.playlist_other) partilhada",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "$t(entity.playlist, {\"count\": 2}) partilhada",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "faixas de {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -521,7 +523,6 @@
"customCssEnable_description": "permite escrever css customizado",
"customCssNotice": "Aviso: apesar de existir alguma higienização (url() e content: não são permitidas), o uso de css personalizado ainda pode representar riscos ao alterar a interface",
"customCss": "css customizado",
"disableAutomaticUpdates": "desativar atualizações automáticas",
"disableLibraryUpdateOnStartup": "desativar a verificação de novas versões na inicialização",
"discordApplicationId": "{{discord}} ID da aplicação",
"discordIdleStatus_description": "quando ativado, atualiza o estado enquanto o player está ocioso",
+155 -76
View File
@@ -1,30 +1,30 @@
{
"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": "следующий",
"addOrRemoveFromSelection": "добавить или удалить из выделения",
"createRadioStation": "создать $t(entity.radioStation_one)",
"deleteRadioStation": "удалить $t(entity.radioStation_one)",
"createRadioStation": "создать $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "удалить $t(entity.radioStation, {\"count\": 1})",
"selectAll": "выделить все",
"downloadStarted": "Начата загрузка {{count}} предметов",
"moveUp": "перейти наверх",
@@ -36,7 +36,8 @@
"shuffleAll": "перемешать все",
"shuffleSelected": "Смешать выбранное",
"viewMore": "Посмотреть больше",
"openApplicationDirectory": "открыть папку приложения"
"openApplicationDirectory": "открыть папку приложения",
"selectRangeOfItems": "выбрать диапазон элементов"
},
"common": {
"backward": "назад",
@@ -51,7 +52,7 @@
"left": "лево",
"save": "сохранить",
"right": "право",
"currentSong": "текущий $t(entity.track_one)",
"currentSong": "текущий $t(entity.track, {\"count\": 1})",
"collapse": "закрыть",
"trackNumber": "трек",
"descending": "по убыванию",
@@ -83,8 +84,8 @@
"forceRestartRequired": "перезапустите приложение, чтобы применить изменения... закройте уведомление для перезапуска",
"setting": "настройка",
"setting_one": "настройка",
"setting_few": "",
"setting_many": "",
"setting_few": "настройки",
"setting_many": "настроек",
"version": "версия",
"title": "название",
"filter_one": "фильтр",
@@ -110,7 +111,7 @@
"sortOrder": "порядок",
"menu": "меню",
"restartRequired": "необходим перезапуск приложения",
"previousSong": "предыдущий $t(entity.track_one)",
"previousSong": "предыдущий $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "ничего не найдено",
"quit": "выйти",
"expand": "раскрыть",
@@ -155,7 +156,14 @@
"sort": "сортировать",
"clean": "очистить",
"gridRows": "Строки в сетке",
"tableColumns": "Столбцы таблицы"
"tableColumns": "Столбцы таблицы",
"doNotShowAgain": "не показывать снова",
"itemsMore": "{{count}} более",
"view": "посмотреть",
"example": "пример",
"rename": "переименовать",
"explicit": "нецензурная лексика",
"externalLinks": "внешние ссылки"
},
"entity": {
"album_one": "альбом",
@@ -204,7 +212,7 @@
"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}} жанров",
@@ -245,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)",
@@ -255,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": {
@@ -272,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)",
@@ -284,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"
@@ -329,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": "рейтинг критиков",
@@ -348,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": "год выхода",
@@ -363,7 +372,7 @@
"random": "случайно",
"lastPlayed": "последний раз проигрывалась",
"toYear": "до года",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "трек"
},
"player": {
@@ -397,23 +406,32 @@
"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": {
@@ -441,7 +459,7 @@
"appMenu": {
"selectServer": "список серверов",
"version": "версия {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "редактировать список серверов",
"expandSidebar": "развернуть боковую панель",
"collapseSidebar": "Скрыть боковую панель",
@@ -453,7 +471,8 @@
"privateModeOn": "Включить приватный режим",
"selectMusicFolder": "выбрать папку с музыкой",
"noMusicFolder": "папка с музыкой не выбрана",
"multipleMusicFolders": "{{count}} выбрано музыкальных папок"
"multipleMusicFolders": "{{count}} выбрано музыкальных папок",
"commandPalette": "открыть командную строку"
},
"manageServers": {
"title": "сервера",
@@ -483,8 +502,8 @@
"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": {
@@ -496,7 +515,7 @@
"recentlyReleased": "Новинки"
},
"albumDetail": {
"moreFromArtist": "больше от $t(entity.artist_one)",
"moreFromArtist": "больше от $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "больше из {{item}}",
"released": "выпущен"
},
@@ -518,19 +537,22 @@
"audio": "аудио",
"lyrics": "тексты песен",
"lyricsDisplay": "отображение текстов песен",
"transcoding": "транскодирование"
"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": {
@@ -545,20 +567,20 @@
"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}}",
@@ -572,20 +594,26 @@
},
"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": {
@@ -608,11 +636,11 @@
},
"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": "обновление сервера",
@@ -629,12 +657,12 @@
},
"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": "Jellyfin по какой-то причине не предоставляет информацию о том, публичный плейлист или нет. Если вы хотите, чтобы он остался публичным, выберите следующую опцию",
"editNote": "редактирование больших плейлистов вручную не рекомендуется. Вы уверены, что готовы принять риск потери данных, который может возникнуть в результате перезаписи существующего плейлиста?"
},
@@ -699,7 +727,6 @@
"disableLibraryUpdateOnStartup": "отключить проверку новых версий при запуске приложения",
"minimizeToTray_description": "сворачивать приложение в панель уведомлений",
"audioPlayer_description": "укажите, какой аудиоплеер использовать для воспроизведения",
"disableAutomaticUpdates": "отключить проверку обновлений",
"exitToTray_description": "При закрытии приложения - оно останется в панели уведомлений",
"fontType_optionCustom": "пользовательский",
"remotePassword": "пароль к серверу удалённого управления",
@@ -732,9 +759,9 @@
"hotkey_zoomOut": "уменьшить масштаб",
"playbackStyle_optionCrossFade": "затухание",
"replayGainMode": "режим {{ReplayGain}}",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"clearQueryCache_description": "так называемая \"мягкая очистка\" feishin: обновляются плейлисты, метаданные треков, но сохранённые тексты треков сбрасываются. настройки, учётные данные и кэшированные изображения сохраняются",
"hotkey_favoriteCurrentSong": "добавить $t(common.currentSong) в избранное",
"globalMediaHotkeys": "глобальные мультимедийные горячие клавиши",
@@ -878,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": {
@@ -887,10 +935,16 @@
"compilation": "подборка",
"interview": "интервью",
"remix": "ремикс",
"live": "прямой эфир"
"live": "прямой эфир",
"soundtrack": "саундтрек",
"spokenWord": "Художественная декламация",
"audioDrama": "радиопостановка"
},
"primary": {
"other": "другие"
"other": "другие",
"broadcast": "транслировать",
"ep": "эп",
"single": "сингл"
}
},
"datetime": {
@@ -919,5 +973,30 @@
"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": "Ширина линии"
}
}
+64 -63
View File
@@ -1,23 +1,23 @@
{
"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"
@@ -54,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",
@@ -94,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",
@@ -109,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",
@@ -126,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",
@@ -142,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ý",
@@ -183,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"
},
@@ -277,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",
@@ -320,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",
@@ -350,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": {
@@ -384,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": {
@@ -411,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": {
@@ -439,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é",
@@ -449,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": {
@@ -539,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}})",
@@ -669,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",
@@ -740,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",
@@ -751,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í",
@@ -759,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"
},
@@ -776,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)",
@@ -788,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)",
@@ -798,7 +799,7 @@
"releaseDate": "dátum vydania",
"rowIndex": "číslo riadku",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (kombinovaný)",
"trackNumber": "číslo skladby",
+52 -50
View File
@@ -1,23 +1,23 @@
{
"action": {
"addToFavorites": "dodaj na $t(entity.favorite_other)",
"addToPlaylist": "dodaj na $t(entity.playlist_one)",
"addToFavorites": "dodaj na $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "dodaj na $t(entity.playlist, {\"count\": 1})",
"clearQueue": "počisti čakalno vrsto",
"createPlaylist": "ustvari $t(entity.playlist_one)",
"deletePlaylist": "izbriši $t(entity.playlist_one)",
"createPlaylist": "ustvari $t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "izbriši $t(entity.playlist, {\"count\": 1})",
"deselectAll": "odizberi vse",
"editPlaylist": "uredi $t(entity.playlist_one)",
"editPlaylist": "uredi $t(entity.playlist, {\"count\": 1})",
"goToPage": "pojdi na stran",
"moveToNext": "pojdi na naslednjo",
"moveToBottom": "pojdi na dno",
"moveToTop": "pojdi na vrh",
"refresh": "$t(common.refresh)",
"removeFromFavorites": "odstrani iz $t(entity.favorite_other)",
"removeFromPlaylist": "odstrani iz $t(entity.playlist_one)",
"removeFromFavorites": "odstrani iz $t(entity.favorite, {\"count\": 2})",
"removeFromPlaylist": "odstrani iz $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "odstrani iz čakalne vrste",
"setRating": "nastavi oceno",
"toggleSmartPlaylistEditor": "preklopi urejevalnik $t(entity.smartPlaylist)",
"viewPlaylists": "poglej $t(entity.playlist_other)",
"viewPlaylists": "poglej $t(entity.playlist, {\"count\": 2})",
"openIn": {
"lastfm": "Odpri v Last.fm",
"musicbrainz": "Odpri v MusicBrainz"
@@ -54,7 +54,7 @@
"configure": "prilagodi",
"confirm": "potrdi",
"create": "ustvari",
"currentSong": "trenutna $t(entity.track_one)",
"currentSong": "trenutna $t(entity.track, {\"count\": 1})",
"decrease": "zmanjšaj",
"delete": "izbriši",
"descending": "padajoče",
@@ -94,7 +94,7 @@
"path": "pot",
"playerMustBePaused": "predvajalnik mora biti ustavljen",
"preview": "predogled",
"previousSong": "prejšnja $t(entity.track_one)",
"previousSong": "prejšnja $t(entity.track, {\"count\": 1})",
"quit": "izhod",
"random": "naključno",
"rating": "ocena",
@@ -108,7 +108,10 @@
"saveAndReplace": "shrani in zamenjaj",
"saveAs": "shrani kot",
"search": "išči",
"setting": "nastavitev",
"setting_one": "nastavitev",
"setting_two": "",
"setting_few": "",
"setting_other": "",
"share": "deli",
"size": "velikost",
"sortOrder": "vrstni red",
@@ -181,7 +184,7 @@
"playlistWithCount_two": "{{count}} seznama predvajanja",
"playlistWithCount_few": "{{count}} seznami predvajanja",
"playlistWithCount_other": "{{count}} seznamov predvajanja",
"smartPlaylist": "pametni $t(entity.playlist_one)",
"smartPlaylist": "pametni $t(entity.playlist, {\"count\": 1})",
"track_one": "skladba",
"track_two": "skladbi",
"track_few": "skladbe",
@@ -221,10 +224,10 @@
"systemFontError": "napaka pri pridobivanju sistemskih pisav"
},
"filter": {
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"albumCount": "število $t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"albumCount": "število $t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biografija",
"bitrate": "bitna hitrost",
"bpm": "bpm",
@@ -237,7 +240,7 @@
"duration": "trajanje",
"favorited": "priljubljeno",
"fromYear": "od leta",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"id": "identifikator",
"isCompilation": "je kompilacija",
"isFavorited": "je dodan med priljubljene",
@@ -279,31 +282,31 @@
"title": "dodaj strežnik"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "preskoči duplikate",
"success": "$t(entity.trackWithCount, {\"count\": {{message}} }) dodan v $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "dodaj v $t(entity.playlist_one)"
"title": "dodaj v $t(entity.playlist, {\"count\": 1})"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "javno",
"success": "$t(entity.playlist_one) je bil uspešno ustvarjen",
"title": "ustvari $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) je bil uspešno ustvarjen",
"title": "ustvari $t(entity.playlist, {\"count\": 1})"
},
"deletePlaylist": {
"input_confirm": "vpišite ime $t(entity.playlist_one) za potrditev",
"success": "$t(entity.playlist_one) uspešno izbrisan",
"title": "izbriši $t(entity.playlist_one)"
"input_confirm": "vpišite ime $t(entity.playlist, {\"count\": 1}) za potrditev",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno izbrisan",
"title": "izbriši $t(entity.playlist, {\"count\": 1})"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin ne poda informacij o tem, ali gre za javni ali zasebni seznam predvajanja. Če želite, da seznam predvajanja ostane javen, izberite naslednji vnos",
"success": "$t(entity.playlist_one) uspešno posodobljen",
"title": "uredi $t(entity.playlist_one)"
"success": "$t(entity.playlist, {\"count\": 1}) uspešno posodobljen",
"title": "uredi $t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "iskanje po besedilu"
},
@@ -331,24 +334,24 @@
"appearsOn": "se pojavi na",
"recentReleases": "zadnje izdaje",
"viewDiscography": "poglej diskografijo",
"relatedArtists": "sorodni $t(entity.artist_other)",
"relatedArtists": "sorodni $t(entity.artist, {\"count\": 2})",
"topSongs": "najboljše skladbe",
"topSongsFrom": "najboljše skladbe iz {{title}}",
"viewAll": "poglej vse",
"viewAllTracks": "poglej vse $t(entity.track_other)"
"viewAllTracks": "poglej vse $t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "več od $t(entity.artist_one)",
"moreFromArtist": "več od $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "več iz {{item}}",
"released": "izdano"
},
"albumList": {
"artistAlbums": "albumi izvajalca {{artist}}",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album_other)"
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"title": "$t(entity.album, {\"count\": 2})"
},
"appMenu": {
"collapseSidebar": "skrij stransko vrstico",
@@ -359,7 +362,7 @@
"openBrowserDevtools": "odpri orodja za razvijalce brskalnika",
"quit": "$t(common.quit)",
"selectServer": "izberi strežnik",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "verzija {{version}}"
},
"manageServers": {
@@ -418,9 +421,9 @@
"noLyrics": "ni bilo najdenih besedil"
},
"genreList": {
"showAlbums": "prikaži $t(entity.genre_one) $t(entity.album_other)",
"showTracks": "prikaži $t(entity.genre_one) $t(entity.track_other)",
"title": "$t(entity.genre_other)"
"showAlbums": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2})",
"showTracks": "prikaži $t(entity.genre, {\"count\": 1}) $t(entity.track, {\"count\": 2})",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -446,7 +449,7 @@
"reorder": "preurejanje je omogočeno samo pri razvrščanju po identifikatorju"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "napredno",
@@ -456,24 +459,24 @@
"windowTab": "okno"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "moja knjižnica",
"nowPlaying": "trenutno se predvaja",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "deljen $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "deljen $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "skladbe po {{artist}}",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
}
},
"player": {
@@ -545,7 +548,6 @@
"customCss_description": "vsebina css po meri. Opomba: vsebina in oddaljeni url-ji so prepovedane lastnosti. Spodaj je prikazan predogled vaše vsebine. Dodatna polja, ki jih niste nastavili, so prisotna zaradi prečiščevanja",
"customFontPath": "pot za pisavo po meri",
"customFontPath_description": "nastavi pot do pisave po meri",
"disableAutomaticUpdates": "onemogoči samodejne posodobitve",
"disableLibraryUpdateOnStartup": "onemogoči prevejranje novih verzij ob zagonu",
"discordApplicationId": "{{discord}} identifikator aplikacije",
"discordApplicationId_description": "identifikator aplikacije za {{discord}} bogato prezenco (privzeto {{defaultId}})",
+54 -53
View File
@@ -88,11 +88,10 @@
"hotkey_globalSearch": "globalno pretraživanje",
"gaplessAudio_description": "postavlja opciju bez pauze zvuka za mpv (preporučeno: slabo)",
"remoteUsername_description": "postavlja korisničko ime za daljinsku kontrolu servera. Ako su i korisničko ime i lozinka prazni, autentifikacija će biti onemogućena",
"disableAutomaticUpdates": "onemogući automatsko ažuriranje",
"exitToTray_description": "izlazak aplikacije u sistemsku traku",
"followLyric_description": "pomera tekst pesme na trenutnu poziciju reprodukcije",
"hotkey_favoritePreviousSong": "omiljena $t(common.previousSong)",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"lyricOffset": "pomeraj teksta (ms)",
"discordUpdateInterval_description": "vreme u sekundama između svakog ažuriranja (minimum 15 sekundi)",
"fontType_optionCustom": "prilagođeni font",
@@ -104,7 +103,7 @@
"playbackStyle_optionCrossFade": "prelazak sa preklapanjem",
"hotkey_rate3": "oceni sa 3 zvezdice",
"font": "font",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"themeLight_description": "postavlja svetlu temu za aplikaciju",
"hotkey_toggleFullScreenPlayer": "prebaci na prikaz na celom ekranu",
"hotkey_localSearch": "pretraživanje na stranici",
@@ -187,23 +186,23 @@
"useSystemTheme": "koristi sistemsku temu"
},
"action": {
"editPlaylist": "izmeni $t(entity.playlist_one)",
"editPlaylist": "izmeni $t(entity.playlist, {\"count\": 1})",
"goToPage": "idi na stranu",
"moveToTop": "idi na vrh",
"clearQueue": "očisti listu",
"addToFavorites": "dodaj u $t(entity.favorite_other)",
"addToPlaylist": "dodaj u $t(entity.playlist_one)",
"createPlaylist": "napravi $t(entity.playlist_one)",
"removeFromPlaylist": "ukloni iz $t(entity.playlist_one)",
"viewPlaylists": "vidi $t(entity.playlist_other)",
"addToFavorites": "dodaj u $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "dodaj u $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "napravi $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "ukloni iz $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "vidi $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "obriši $t(entity.playlist_one)",
"deletePlaylist": "obriši $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "ukloni iz liste",
"deselectAll": "deselektuj sve",
"moveToBottom": "idi na dno",
"setRating": "oceni",
"toggleSmartPlaylistEditor": "pokreni $t(entity.smartPlaylist) editor",
"removeFromFavorites": "ukloni iz $t(entity.favorite_other)",
"removeFromFavorites": "ukloni iz $t(entity.favorite, {\"count\": 2})",
"openIn": {
"lastfm": "Otvori u Last.fm",
"musicbrainz": "Otvori u MusicBrainz"
@@ -222,7 +221,7 @@
"left": "levo",
"save": "sačuvaj",
"right": "desno",
"currentSong": "trenutno $t(entity.track_one)",
"currentSong": "trenutno $t(entity.track, {\"count\": 1})",
"collapse": "sklopi",
"trackNumber": "pesma",
"descending": "silazno",
@@ -252,7 +251,9 @@
"delete": "obriši",
"cancel": "otkaži",
"forceRestartRequired": "restartuj da primeniš izmene… zatvori notifikaciju za restart",
"setting": "podešavanje",
"setting_one": "podešavanje",
"setting_few": "",
"setting_other": "",
"version": "verzija",
"title": "naziv",
"filter_one": "filter",
@@ -279,7 +280,7 @@
"none": "nijedan",
"menu": "meni",
"restartRequired": "restart potreban",
"previousSong": "prethodna $t(entity.track_one)",
"previousSong": "prethodna $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "upit je bez rezultata",
"quit": "izađi",
"expand": "proširi",
@@ -316,8 +317,8 @@
"trackNumber": "broj pesme",
"rowIndex": "indeks reda",
"rating": "$t(common.rating)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"note": "$t(common.note)",
"biography": "$t(common.biography)",
"owner": "$t(common.owner)",
@@ -326,11 +327,11 @@
"playCount": "broj puštanja",
"bitrate": "$t(common.bitrate)",
"actions": "$t(common.action_other)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"discNumber": "disk broj",
"favorite": "$t(common.favorite)",
"year": "$t(common.year)",
"albumArtist": "$t(entity.albumArtist_one)"
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})"
}
},
"column": {
@@ -339,7 +340,7 @@
"rating": "rejting",
"favorite": "favorit",
"playCount": "puštanja",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "godina",
"lastPlayed": "zadnje puštana",
"biography": "biografija",
@@ -348,10 +349,10 @@
"title": "naziv",
"bpm": "bpm",
"dateAdded": "datum dodavanja",
"artist": "$t(entity.artist_one)",
"songCount": "$t(entity.track_other)",
"artist": "$t(entity.artist, {\"count\": 1})",
"songCount": "$t(entity.track, {\"count\": 2})",
"trackNumber": "pesma",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"albumArtist": "album artist",
"path": "putanja",
"discNumber": "disk",
@@ -394,17 +395,17 @@
"rating": "rejting",
"search": "pretraga",
"bitrate": "bitrejt",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "skorije dodata",
"note": "notacija",
"name": "ime",
"dateAdded": "datum dodavanja",
"releaseDate": "datum izdavanja",
"albumCount": "$t(entity.album_other) albuma",
"albumCount": "$t(entity.album, {\"count\": 2}) albuma",
"communityRating": "ocena zajednice",
"path": "putanja",
"favorited": "favoriti",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "je skorije puštana",
"isFavorited": "je favorit",
"bpm": "bpm",
@@ -413,7 +414,7 @@
"disc": "disk",
"biography": "biografija",
"songCount": "broj pesama",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "trajanje",
"isPublic": "je javna",
"random": "nasumično",
@@ -421,22 +422,22 @@
"toYear": "do godine",
"fromYear": "iz godine",
"criticRating": "ocena kritičara",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "pesma"
},
"page": {
"sidebar": {
"nowPlaying": "trenutno pušta",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"tracks": "$t(entity.track_other)",
"albums": "$t(entity.album_other)",
"genres": "$t(entity.genre_other)",
"folders": "$t(entity.folder_other)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"settings": "$t(common.setting, {\"count\": 2})",
"home": "$t(common.home)",
"artists": "$t(entity.artist_other)",
"albumArtists": "$t(entity.albumArtist_other)"
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})"
},
"fullscreenPlayer": {
"config": {
@@ -459,7 +460,7 @@
"appMenu": {
"selectServer": "izaberi server",
"version": "verzija {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "upravljaj serverima",
"expandSidebar": "proširi bočnu traku",
"collapseSidebar": "skloni bočnu traku",
@@ -494,7 +495,7 @@
"recentlyPlayed": "nedavno puštane pesme"
},
"albumDetail": {
"moreFromArtist": "još od ovog $t(entity.artist_one)",
"moreFromArtist": "još od ovog $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "još od {{item}}"
},
"setting": {
@@ -504,13 +505,13 @@
"windowTab": "prozor"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"genreList": {
"title": "$t(entity.genre_other)"
"title": "$t(entity.genre, {\"count\": 2})"
},
"trackList": {
"title": "$t(entity.track_other)"
"title": "$t(entity.track, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -521,24 +522,24 @@
"title": "komande"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)"
"title": "$t(entity.album, {\"count\": 2})"
}
},
"form": {
"deletePlaylist": {
"title": "obriši $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) uspešno obrisan",
"input_confirm": "unesite ime $t(entity.playlist_one) za potvrdu"
"title": "obriši $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno obrisan",
"input_confirm": "unesite ime $t(entity.playlist, {\"count\": 1}) za potvrdu"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "kreiraj $t(entity.playlist_one)",
"title": "kreiraj $t(entity.playlist, {\"count\": 1})",
"input_public": "javno",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) uspešno kreiran",
"success": "$t(entity.playlist, {\"count\": 1}) uspešno kreiran",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -555,10 +556,10 @@
"error_savePassword": "došlo je do greške prilikom pokušaja čuvanja lozinke"
},
"addToPlaylist": {
"success": "dodato {{message}} $t(entity.track_other) u {{numOfPlaylists}} $t(entity.playlist_other)",
"title": "dodaj u $t(entity.playlist_one)",
"success": "dodato {{message}} $t(entity.track, {\"count\": 2}) u {{numOfPlaylists}} $t(entity.playlist, {\"count\": 2})",
"title": "dodaj u $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "preskoči duplikate",
"input_playlists": "$t(entity.playlist_other)"
"input_playlists": "$t(entity.playlist, {\"count\": 2})"
},
"updateServer": {
"title": "ažuriraj server",
@@ -570,11 +571,11 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "pretraga teksta pesme"
},
"editPlaylist": {
"title": "izmeni $t(entity.playlist_one)"
"title": "izmeni $t(entity.playlist, {\"count\": 1})"
}
},
"entity": {
@@ -614,7 +615,7 @@
"folder_one": "folder",
"folder_few": "foldera",
"folder_other": "foldera",
"smartPlaylist": "pametna $t(entity.playlist_one)",
"smartPlaylist": "pametna $t(entity.playlist, {\"count\": 1})",
"album_one": "album",
"album_few": "albumi",
"album_other": "albuma",
+37 -36
View File
@@ -1,22 +1,22 @@
{
"action": {
"editPlaylist": "redigera $t(entity.playlist_one)",
"editPlaylist": "redigera $t(entity.playlist, {\"count\": 1})",
"goToPage": "gå till sida",
"moveToTop": "flytta till toppen",
"clearQueue": "rensa kö",
"addToFavorites": "lägg till $t(entity.favorite_other)",
"addToPlaylist": "lägg till $t(entity.playlist_one)",
"createPlaylist": "skapa $t(entity.playlist_one)",
"removeFromPlaylist": "ta bort från $t(entity.playlist_one)",
"viewPlaylists": "visa $t(entity.playlist_other)",
"addToFavorites": "lägg till $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "lägg till $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "skapa $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "ta bort från $t(entity.playlist, {\"count\": 1})",
"viewPlaylists": "visa $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "ta bort $t(entity.playlist_one)",
"deletePlaylist": "ta bort $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "ta bort från kö",
"deselectAll": "avmarkera alla",
"moveToBottom": "flytta till botten",
"setRating": "sätt betyg",
"toggleSmartPlaylistEditor": "växla $t(entity.smartPlaylist) redigerare",
"removeFromFavorites": "ta bort från $t(entity.favorite_other)",
"removeFromFavorites": "ta bort från $t(entity.favorite, {\"count\": 2})",
"downloadStarted": "startade nedladdning av {{count}} objekt",
"moveToNext": "flytta till nästa",
"moveUp": "flytta upp",
@@ -32,8 +32,8 @@
"lastfm": "Öppna i Last.fm",
"musicbrainz": "Öppna i MusicBrainz"
},
"createRadioStation": "skapa $t(entity.radioStation_one)",
"deleteRadioStation": "ta bort $t(entity.radioStation_one)",
"createRadioStation": "skapa $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "ta bort $t(entity.radioStation, {\"count\": 1})",
"addOrRemoveFromSelection": "lägg till eller ta bort från markerade",
"selectRangeOfItems": "välj en mängd objekt",
"selectAll": "markera alla",
@@ -52,7 +52,7 @@
"left": "vänster",
"save": "spara",
"right": "höger",
"currentSong": "aktuell $t(entity.track_one)",
"currentSong": "aktuell $t(entity.track, {\"count\": 1})",
"collapse": "kollaps",
"trackNumber": "spår",
"descending": "fallande",
@@ -81,7 +81,8 @@
"delete": "ta bort",
"cancel": "avbryt",
"forceRestartRequired": "starta om för att tillämpa ändringar... Stäng meddelandet för att starta om",
"setting": "inställning",
"setting_one": "inställning",
"setting_other": "",
"version": "version",
"title": "titel",
"filter_one": "filter",
@@ -105,7 +106,7 @@
"none": "ingen",
"menu": "meny",
"restartRequired": "omstart krävs",
"previousSong": "föregående $t(entity.track_one)",
"previousSong": "föregående $t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "frågan returnerade inga resultat",
"quit": "avsluta",
"expand": "expandera",
@@ -192,7 +193,7 @@
"rating": "betyg",
"search": "sök",
"bitrate": "bithastighet",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"recentlyAdded": "nyligen tillagda",
"note": "anteckning",
"name": "namn",
@@ -201,7 +202,7 @@
"communityRating": "betyg från communityn",
"path": "sökväg",
"favorited": "favoritmärkt",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"isRecentlyPlayed": "spelas nyligen",
"isFavorited": "är favoritmärkt",
"bpm": "bpm",
@@ -209,32 +210,32 @@
"id": "id",
"disc": "skiva",
"biography": "biografi",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"duration": "längd",
"isPublic": "är offentlig",
"random": "slumpmässig",
"lastPlayed": "senast spelad",
"toYear": "till år",
"fromYear": "från år",
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"trackNumber": "spår",
"songCount": "sångräkning",
"criticRating": "kritikerbetyg",
"albumCount": "$t(entity.album_other) antal",
"albumCount": "$t(entity.album, {\"count\": 2}) antal",
"explicitStatus": "$t(common.explicitStatus)"
},
"form": {
"deletePlaylist": {
"title": "ta bort $t(entity.playlist_one)",
"success": "$t(entity.playlist_one) har tagits bort",
"input_confirm": "Skriv namnet på $t(entity.playlist_one) för att bekräfta"
"title": "ta bort $t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1}) har tagits bort",
"input_confirm": "Skriv namnet på $t(entity.playlist, {\"count\": 1}) för att bekräfta"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"title": "skapa $t(entity.playlist_one)",
"title": "skapa $t(entity.playlist, {\"count\": 1})",
"input_public": "offentlig",
"input_name": "$t(common.name)",
"success": "$t(entity.playlist_one) skapad",
"success": "$t(entity.playlist, {\"count\": 1}) skapad",
"input_owner": "$t(common.owner)"
},
"addServer": {
@@ -254,11 +255,11 @@
},
"addToPlaylist": {
"success": "lade till $t(entity.trackWithCount, {\"count\": {{message}} }) till $t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} })",
"title": "lägg till i $t(entity.playlist_one)",
"title": "lägg till i $t(entity.playlist, {\"count\": 1})",
"input_skipDuplicates": "hoppa över dubbletter",
"input_playlists": "$t(entity.playlist_other)",
"create": "skapa $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "sök $t(entity.playlist_other) eller skriv för att skapa en ny"
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"create": "skapa $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "sök $t(entity.playlist, {\"count\": 2}) eller skriv för att skapa en ny"
},
"updateServer": {
"title": "uppdatera server",
@@ -270,11 +271,11 @@
},
"lyricSearch": {
"input_name": "$t(common.name)",
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"title": "sångtext sök"
},
"editPlaylist": {
"title": "redigera $t(entity.playlist_one)",
"title": "redigera $t(entity.playlist, {\"count\": 1})",
"publicJellyfinNote": "Jellyfin visar av någon anledning inte om en spellista är publik eller inte. Om du önskar att denna ska förbli publik, så får du ha följande indata markerade"
},
"largeFetchConfirmation": {
@@ -309,7 +310,7 @@
"appMenu": {
"selectServer": "välj server",
"version": "version {{version}}",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"manageServers": "hantera servrar",
"expandSidebar": "expandera sidofältet",
"openBrowserDevtools": "öppna webbläsarens utvecklingsverktyg",
@@ -342,19 +343,19 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "dela objekt",
"goTo": "gå till",
"goToAlbum": "gå till $t(entity.album_one)",
"goToAlbumArtist": "gå till $t(entity.albumArtist_one)",
"goToAlbum": "gå till $t(entity.album, {\"count\": 1})",
"goToAlbumArtist": "gå till $t(entity.albumArtist, {\"count\": 1})",
"showDetails": "hämta information"
},
"albumDetail": {
"moreFromArtist": "mer från $t(entity.artist_one)",
"moreFromArtist": "mer från $t(entity.artist, {\"count\": 1})",
"moreFromGeneric": "mer från {{item}}"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumList": {
"title": "$t(entity.album_other)"
"title": "$t(entity.album, {\"count\": 2})"
},
"sidebar": {
"nowPlaying": "nu spelas"
@@ -419,7 +420,7 @@
"genreWithCount_other": "{{count}} genrer",
"play_one": "{{count}} spelning",
"play_other": "{{count}} spelningar",
"smartPlaylist": "smart $t(entity.playlist_one)",
"smartPlaylist": "smart $t(entity.playlist, {\"count\": 1})",
"song_one": "låt",
"song_other": "låtar",
"radioStation_one": "radiostation",
+61 -61
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": {
@@ -564,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": "மாதிரி வீதம்",
@@ -608,7 +609,6 @@
"customCssEnable": "தனிப்பயன் சிஎச்எச் ஐ இயக்கவும்",
"customCssNotice": "எச்சரிக்கை: சில சுத்திகரிப்பு (URL () மற்றும் உள்ளடக்கத்தை அனுமதிக்காதது :) இருக்கும்போது, தனிப்பயன் சிஎச்எச் ஐப் பயன்படுத்துவது இடைமுகத்தை மாற்றுவதன் மூலம் ஆபத்துக்களை ஏற்படுத்தக்கூடும்",
"contextMenu_description": "நீங்கள் ஒரு உருப்படியை வலது சொடுக்கு செய்யும் போது பட்டியலில் காட்டப்பட்டுள்ள உருப்படிகளை மறைக்க உங்களை அனுமதிக்கிறது. சரிபார்க்கப்படாத உருப்படிகள் மறைக்கப்படும்",
"disableAutomaticUpdates": "தானியங்கி புதுப்பிப்புகளை முடக்கு",
"discordApplicationId_description": "{{discord}} பணக்கார இருப்புக்கான பயன்பாட்டு ஐடி (இயல்புநிலை {{defaultId}})",
"discordIdleStatus": "பணக்கார இருப்பு செயலற்ற நிலையைக் காட்டுங்கள்",
"discordIdleStatus_description": "இயக்கப்பட்டால், பிளேயர் சும்மா இருக்கும்போது நிலையைப் புதுப்பிக்கவும்",
@@ -702,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)",
@@ -720,14 +720,14 @@
"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) (இணைந்தது)"
},
@@ -750,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": "பிபிஎம்",
@@ -761,7 +761,7 @@
"dateAdded": "தேதி சேர்க்கப்பட்டது",
"discNumber": "வட்டு",
"favorite": "பிடித்த",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "கடைசியாக விளையாடியது",
"path": "பாதை",
"playCount": "நாடகங்கள்",
@@ -769,7 +769,7 @@
"releaseDate": "வெளியீட்டு தேதி",
"releaseYear": "ஆண்டு",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "தலைப்பு",
"trackNumber": "மின்தடம்"
}
+71 -68
View File
@@ -2,30 +2,30 @@
"action": {
"moveToBottom": "alttakine geç",
"moveToTop": "başa dön",
"removeFromFavorites": "$t(entity.favorite_other)lerden kaldır",
"removeFromPlaylist": "$t(entity.playlist_one) listesinden kaldır",
"removeFromFavorites": "$t(entity.favorite, {\"count\": 2})lerden kaldır",
"removeFromPlaylist": "$t(entity.playlist, {\"count\": 1}) listesinden kaldır",
"removeFromQueue": "sıradan kaldır",
"setRating": "oyla",
"viewPlaylists": "$t(entity.playlist_other) listesini görüntüle",
"viewPlaylists": "$t(entity.playlist, {\"count\": 2}) listesini görüntüle",
"openIn": {
"lastfm": "Last.fm'de aç",
"musicbrainz": "MusicBrainz'da aç"
},
"addToFavorites": "$t(entity.favorite_other) listesine ekle",
"addToPlaylist": "$t(entity.playlist_one) listesine ekle",
"addToFavorites": "$t(entity.favorite, {\"count\": 2}) listesine ekle",
"addToPlaylist": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
"clearQueue": "sırayı temizle",
"createPlaylist": "$t(entity.playlist_one) listesini oluştur",
"deletePlaylist": "$t(entity.playlist_one) listesini sil",
"createPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini oluştur",
"deletePlaylist": "$t(entity.playlist, {\"count\": 1}) listesini sil",
"deselectAll": "seçimleri kaldır",
"editPlaylist": "$t(entity.playlist_one) listesini düzenle",
"editPlaylist": "$t(entity.playlist, {\"count\": 1}) listesini düzenle",
"goToPage": "sayfaya git",
"moveToNext": "sonrakine geç",
"refresh": "$t(common.refresh)",
"toggleSmartPlaylistEditor": "$t(entity.smartPlaylist) düzenleyiciye geç",
"addOrRemoveFromSelection": "seçime ekle veya seçimi kaldır",
"selectRangeOfItems": "bir dizi öğe seçin",
"createRadioStation": "$t(entity.radioStation_one) oluştur",
"deleteRadioStation": "$t(entity.radioStation_one) istasyonunu sil",
"createRadioStation": "$t(entity.radioStation, {\"count\": 1}) oluştur",
"deleteRadioStation": "$t(entity.radioStation, {\"count\": 1}) istasyonunu sil",
"selectAll": "tümünü seç",
"downloadStarted": "{{count}} öğenin indirilmesine başlandı",
"moveUp": "yukarı kaydır",
@@ -55,7 +55,7 @@
"configure": "yapılandır",
"confirm": "onayla",
"create": "oluştur",
"currentSong": "şu anki parça $t(entity.track_one)",
"currentSong": "şu anki parça $t(entity.track, {\"count\": 1})",
"decrease": "azalt",
"delete": "sil",
"descending": "azalan",
@@ -93,7 +93,7 @@
"path": "yol",
"playerMustBePaused": "oynatıcı duraklatılmalı",
"preview": "önizleme",
"previousSong": "önceki $t(entity.track_one)",
"previousSong": "önceki $t(entity.track, {\"count\": 1})",
"quit": "çık",
"random": "rastgele",
"rating": "oylama",
@@ -108,7 +108,8 @@
"saveAndReplace": "kaydet ve değiştir",
"saveAs": "farklı kaydet",
"search": "arama",
"setting": "ayarlar",
"setting_one": "ayarlar",
"setting_other": "",
"share": "paylaş",
"size": "boyut",
"sortOrder": "sıralama düzeni",
@@ -129,7 +130,8 @@
"trackPeak": "parça zirvesi",
"private": "gizli",
"clean": "temiz",
"countSelected": "{{count}} adet seçildi"
"countSelected": "{{count}} adet seçildi",
"public": "herkese açık"
},
"entity": {
"album_one": "albüm",
@@ -160,13 +162,15 @@
"play_other": "{{count}} oynatma",
"playlistWithCount_one": "{{count}} oynatma listesi",
"playlistWithCount_other": "{{count}} oynatma listesi",
"smartPlaylist": "akıllı $t(entity.playlist_one)",
"smartPlaylist": "akıllı $t(entity.playlist, {\"count\": 1})",
"track_one": "parça",
"track_other": "parçalar",
"song_one": "şarkı",
"song_other": "şarkılar",
"trackWithCount_one": "{{count}} parça",
"trackWithCount_other": "{{count}} parça"
"trackWithCount_other": "{{count}} parça",
"radioStation_one": "radyo istasyonu",
"radioStation_other": "radyo istasyonları"
},
"error": {
"apiRouteError": "istek yönlendirilemiyor",
@@ -195,7 +199,7 @@
"remoteEnableError": "uzak sunucuyu $t(common.enable) yapmaya çalışırken bir hata oluştu"
},
"filter": {
"albumCount": "$t(entity.album_other) sayısı",
"albumCount": "$t(entity.album, {\"count\": 2}) sayısı",
"biography": "biyografi",
"bitrate": "bit hızı",
"bpm": "bpm",
@@ -210,7 +214,7 @@
"id": "kimlik",
"isCompilation": "derleme",
"isFavorited": "favorilendi",
"isPublic": "herkese açık",
"isPublic": "halka açıktır",
"isRated": "oylandı",
"isRecentlyPlayed": "yakın zamanda çalındı",
"lastPlayed": "son çalınan",
@@ -232,10 +236,10 @@
"title": "başlık",
"toYear": "yılına kadar",
"trackNumber": "parça",
"genre": "$t(entity.genre_one)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"channels": "$t(common.channel_other)"
},
"form": {
@@ -255,9 +259,9 @@
"input_preferInstantMixDescription": "sadece benzer şarkılari bulmak icin anında mix kullan. Bu davranışı değiştiren eklentilere sahipseniz faydalı"
},
"addToPlaylist": {
"input_playlists": "$t(entity.playlist_other)",
"input_playlists": "$t(entity.playlist, {\"count\": 2})",
"input_skipDuplicates": "kopyaları atla",
"title": "$t(entity.playlist_one) listesine ekle",
"title": "$t(entity.playlist, {\"count\": 1}) listesine ekle",
"success": "$t(entity.playlistWithCount, {\"count\": {{numOfPlaylists}} }) $t(entity.trackWithCount, {\"count\": {{message}} }) eklendi"
},
"createPlaylist": {
@@ -265,21 +269,21 @@
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "herkese açık",
"success": "$t(entity.playlist_one) listesi başarıyla oluşturuldu",
"title": "$t(entity.playlist_one) listesini oluştur"
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla oluşturuldu",
"title": "$t(entity.playlist, {\"count\": 1}) listesini oluştur"
},
"deletePlaylist": {
"input_confirm": "onaylamak için $t(entity.playlist_one) listesinin adını yazın",
"success": "$t(entity.playlist_one) listesi başarıyla silindi",
"title": "$t(entity.playlist_one) listesini sil"
"input_confirm": "onaylamak için $t(entity.playlist, {\"count\": 1}) listesinin adını yazın",
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla silindi",
"title": "$t(entity.playlist, {\"count\": 1}) listesini sil"
},
"editPlaylist": {
"publicJellyfinNote": "Jellyfin bazı nedenlerden dolayı bir çalma listesinin herkese açık olup olmadığını göstermez. Bunun herkese açık kalmasını istiyorsanız, lütfen aşağıdaki girdiyi seçin",
"success": "$t(entity.playlist_one) listesi başarıyla güncellendi",
"title": "$t(entity.playlist_one) listesini düzenle"
"success": "$t(entity.playlist, {\"count\": 1}) listesi başarıyla güncellendi",
"title": "$t(entity.playlist, {\"count\": 1}) listesini düzenle"
},
"lyricSearch": {
"input_artist": "$t(entity.artist_one)",
"input_artist": "$t(entity.artist, {\"count\": 1})",
"input_name": "$t(common.name)",
"title": "şarkı sözü arama"
},
@@ -312,10 +316,10 @@
"appearsOn": "üzerinde görünür",
"recentReleases": "son sürümler",
"viewDiscography": "diskografiyi görüntüle",
"relatedArtists": "$t(entity.artist_other) ile benzer",
"relatedArtists": "$t(entity.artist, {\"count\": 2}) ile benzer",
"topSongs": "en iyi şarkılar",
"viewAll": "tümünü görüntüle",
"viewAllTracks": "tüm $t(entity.track_other) görüntüle",
"viewAllTracks": "tüm $t(entity.track, {\"count\": 2}) görüntüle",
"topSongsFrom": "{{title}} tarafından en iyi şarkılar"
},
"contextMenu": {
@@ -341,8 +345,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "öğeyi paylaş",
"showDetails": "bilgi al",
"goToAlbum": "$t(entity.album_one) sayfasına git",
"goToAlbumArtist": "$t(entity.albumArtist_one) sayfasına git"
"goToAlbum": "$t(entity.album, {\"count\": 1}) sayfasına git",
"goToAlbumArtist": "$t(entity.albumArtist, {\"count\": 1}) sayfasına git"
},
"manageServers": {
"url": "URL",
@@ -376,9 +380,9 @@
"noLyrics": "şarkı sözü bulunamadı"
},
"genreList": {
"showAlbums": "$t(entity.genre_one) $t(entity.album_other) göster",
"showTracks": "$t(entity.genre_one)$t(entity.track_other) göster",
"title": "$t(entity.genre_other)"
"showAlbums": "$t(entity.genre, {\"count\": 1}) $t(entity.album, {\"count\": 2}) göster",
"showTracks": "$t(entity.genre, {\"count\": 1})$t(entity.track, {\"count\": 2}) göster",
"title": "$t(entity.genre, {\"count\": 2})"
},
"globalSearch": {
"commands": {
@@ -404,7 +408,7 @@
"reorder": "yeniden sıralama yalnızca kimliğe göre sıralama yapıldığında etkinleştirilir"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"advanced": "gelişmiş",
@@ -414,36 +418,36 @@
"windowTab": "pencere"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_other)",
"genres": "$t(entity.genre_other)",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"albums": "$t(entity.album, {\"count\": 2})",
"artists": "$t(entity.artist, {\"count\": 2})",
"folders": "$t(entity.folder, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"myLibrary": "kütüphanem",
"nowPlaying": "şimdi oynatılıyor",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"shared": "paylaşılan $t(entity.playlist_other)",
"tracks": "$t(entity.track_other)"
"settings": "$t(common.setting, {\"count\": 2})",
"shared": "paylaşılan $t(entity.playlist, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})"
},
"trackList": {
"artistTracks": "{{artist}} parçaları",
"genreTracks": "\"{{genre}}\" $t(entity.track_other)",
"title": "$t(entity.track_other)"
"genreTracks": "\"{{genre}}\" $t(entity.track, {\"count\": 2})",
"title": "$t(entity.track, {\"count\": 2})"
},
"albumArtistList": {
"title": "$t(entity.albumArtist_other)"
"title": "$t(entity.albumArtist, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "$t(entity.artist_one) sanatçısından daha fazla",
"moreFromArtist": "$t(entity.artist, {\"count\": 1}) sanatçısından daha fazla",
"moreFromGeneric": "{{item}} tarafından daha fazla",
"released": "yayınlandı"
},
"albumList": {
"title": "$t(entity.album_other)",
"genreAlbums": "\"{{genre}}\" $t(entity.album_other)",
"title": "$t(entity.album, {\"count\": 2})",
"genreAlbums": "\"{{genre}}\" $t(entity.album, {\"count\": 2})",
"artistAlbums": "{{artist}} albümleri"
},
"appMenu": {
@@ -455,7 +459,7 @@
"openBrowserDevtools": "tarayıcı geliştirici araçlarını aç",
"quit": "$t(common.quit)",
"selectServer": "sunucu seç",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "{{version}} sürümü",
"privateModeOff": "gizli modu kapat",
"privateModeOn": "gizli modu aç"
@@ -530,7 +534,6 @@
"customCss_description": "özel css içeriği. Not: içerik ve uzaktan URL'ler izin verilmeyen özelliklerdir. İçeriğinizin önizlemesi aşağıda gösterilmektedir. Ayarlamadığınız ek alanlar sterilleme nedeniyle mevcuttur",
"customFontPath": "özel yazı tipi yolu",
"customFontPath_description": "uygulama için kullanılacak özel yazı tipinin yolunu ayarlar",
"disableAutomaticUpdates": "otomatik güncellemeleri devre dışı bırak",
"disableLibraryUpdateOnStartup": "başlangıçta yeni sürümler için denetimi devre dışı bırak",
"discordApplicationId": "{{discord}} uygulama kimliği",
"discordApplicationId_description": "{{discord}} \"Rich Presence\" için uygulama kimliği (varsayılan olarak {{defaultId}})",
@@ -627,9 +630,9 @@
"replayGainFallback_description": "dosyada {{ReplayGain}} etiketi yoksa db'e uygulanacak kazanç",
"replayGainMode": "{{ReplayGain}} modu",
"replayGainMode_description": "ses seviyesi kazancını dosya meta verilerinde saklanan {{ReplayGain}} değerlerine göre ayarlayın",
"replayGainMode_optionAlbum": "$t(entity.album_one)",
"replayGainMode_optionAlbum": "$t(entity.album, {\"count\": 1})",
"replayGainMode_optionNone": "$t(common.none)",
"replayGainMode_optionTrack": "$t(entity.track_one)",
"replayGainMode_optionTrack": "$t(entity.track, {\"count\": 1})",
"replayGainPreamp": "{{ReplayGain}} preamp (dB)",
"replayGainPreamp_description": "{{ReplayGain}} değerlerine uygulanan preamp kazancını ayarlar",
"sampleRate": "örnekleme hızı",
@@ -736,8 +739,8 @@
"column": {
"album": "albüm",
"albumArtist": "albüm sanatçısı",
"albumCount": "$t(entity.album_other)",
"artist": "$t(entity.artist_one)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "biyografi",
"bitrate": "bit hızı",
"bpm": "bpm (dakika başına vuruş)",
@@ -747,7 +750,7 @@
"dateAdded": "tarih eklendi",
"discNumber": "disk",
"favorite": "favori",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "son çalınan",
"path": "yol",
"playCount": "oynatılıyor",
@@ -755,7 +758,7 @@
"releaseDate": "çıkış tarihi",
"releaseYear": "yıl",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "başlık",
"trackNumber": "parça"
},
@@ -772,9 +775,9 @@
},
"label": {
"actions": "$t(common.action_other)",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"artist": "$t(entity.artist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"artist": "$t(entity.artist, {\"count\": 1})",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"bpm": "$t(common.bpm)",
@@ -784,7 +787,7 @@
"discNumber": "disk numarası",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "son çalınan",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
@@ -794,7 +797,7 @@
"releaseDate": "çıkış tarihi",
"rowIndex": "satır indeksi",
"size": "$t(common.size)",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "$t(common.title)",
"titleCombined": "$t(common.title) (birleşik)",
"trackNumber": "parça numarası",
+419 -1
View File
@@ -1,5 +1,423 @@
{
"action": {
"addToFavorites": "додати до $t(entity.favorite_other)"
"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": "пропустити"
}
}
+255 -102
View File
@@ -1,21 +1,21 @@
{
"action": {
"editPlaylist": "编辑 $t(entity.playlist_one)",
"editPlaylist": "编辑 $t(entity.playlist, {\"count\": 1})",
"moveToTop": "移至顶部",
"clearQueue": "清空播放队列",
"addToFavorites": "添加到 $t(entity.favorite_other)",
"addToPlaylist": "添加到 $t(entity.playlist_one)",
"createPlaylist": "创建 $t(entity.playlist_one)",
"removeFromPlaylist": "从 $t(entity.playlist_one) 移除",
"viewPlaylists": "查看 $t(entity.playlist_other)",
"addToFavorites": "添加到 $t(entity.favorite, {\"count\": 2})",
"addToPlaylist": "添加到 $t(entity.playlist, {\"count\": 1})",
"createPlaylist": "创建 $t(entity.playlist, {\"count\": 1})",
"removeFromPlaylist": "从 $t(entity.playlist, {\"count\": 1}) 移除",
"viewPlaylists": "查看 $t(entity.playlist, {\"count\": 2})",
"refresh": "$t(common.refresh)",
"deletePlaylist": "删除 $t(entity.playlist_one)",
"deletePlaylist": "删除 $t(entity.playlist, {\"count\": 1})",
"removeFromQueue": "从播放队列中移除",
"deselectAll": "取消全选",
"moveToBottom": "移至底部",
"setRating": "评分",
"toggleSmartPlaylistEditor": "切换 $t(entity.smartPlaylist) 编辑器",
"removeFromFavorites": "从 $t(entity.favorite_other) 移除",
"removeFromFavorites": "从 $t(entity.favorite, {\"count\": 2}) 移除",
"goToPage": "前往页面",
"openIn": {
"lastfm": "在 Last.fm 中打开",
@@ -35,8 +35,8 @@
"addOrRemoveFromSelection": "在所选内容中添加或移除",
"selectRangeOfItems": "批量选择",
"selectAll": "全选",
"createRadioStation": "创建$t(entity.radioStation_one)",
"deleteRadioStation": "删除$t(entity.radioStation_one)",
"createRadioStation": "创建$t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "删除$t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "打开应用程序目录"
},
"common": {
@@ -50,7 +50,7 @@
"left": "左",
"save": "保存",
"right": "右",
"currentSong": "当前$t(entity.track_one)",
"currentSong": "当前$t(entity.track, {\"count\": 1})",
"collapse": "折叠",
"trackNumber": "音轨编号",
"descending": "降序",
@@ -75,7 +75,7 @@
"delete": "删除",
"cancel": "取消",
"forceRestartRequired": "重启应用使更改生效…关闭通知即可重启",
"setting": "设置",
"setting_other": "设置",
"version": "版本",
"title": "标题",
"filter_other": "筛选",
@@ -92,7 +92,7 @@
"disable": "禁用",
"menu": "菜单",
"restartRequired": "需要重启应用",
"previousSong": "上一首$t(entity.track_one)",
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
"noResultsFromQuery": "未查询到匹配结果",
"quit": "退出",
"expand": "展开",
@@ -150,7 +150,12 @@
"tableColumns": "表格列",
"itemsMore": "{{count}} 更多",
"countSelected": "已选择{{count}}项",
"retry": "重试"
"retry": "重试",
"example": "示例",
"filter_single": "单项",
"mood": "氛围",
"rename": "重命名",
"filter_multiple": "多项"
},
"entity": {
"albumArtist_other": "专辑艺术家",
@@ -166,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": "循环全部",
@@ -187,7 +194,7 @@
"shuffle": "播放(随机)",
"playbackFetchNoResults": "未找到歌曲",
"playbackFetchInProgress": "正在加载歌曲…",
"addNext": "下一首播放",
"addNext": "下一",
"playbackFetchCancel": "请稍等…关闭通知以取消操作",
"play": "播放",
"repeat_off": "循环关闭",
@@ -197,7 +204,7 @@
"queue_moveToTop": "将所选项移至底部",
"queue_moveToBottom": "将所选项移至顶部",
"shuffle_off": "禁用随机播放",
"addLast": "上一曲",
"addLast": "最后",
"mute": "静音",
"skip_forward": "向前跳过",
"playbackSpeed": "播放速度",
@@ -206,7 +213,12 @@
"viewQueue": "查看播放队列",
"saveQueueToServer": "将播放队列保存到服务器",
"restoreQueueFromServer": "从服务器恢复播放队列",
"lyrics": "歌词"
"lyrics": "歌词",
"addLastShuffled": "最后(随机)",
"addNextShuffled": "下一个(随机)",
"artistRadio": "艺术家电台",
"holdToShuffle": "按住即可随机",
"trackRadio": "追踪广播"
},
"setting": {
"crossfadeStyle_description": "选择用于音频播放器的淡入淡出风格",
@@ -217,7 +229,6 @@
"audioPlayer_description": "选择用于播放的音频播放器",
"globalMediaHotkeys": "全局媒体快捷键",
"gaplessAudio_description": "调整 mpv 无缝音频设置",
"disableAutomaticUpdates": "禁用自动更新",
"followLyric_description": "滚动歌词到当前播放位置",
"audioExclusiveMode": "音频独占模式",
"font": "字体",
@@ -283,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": "应用将使用深色主题",
@@ -292,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": "页面内搜索",
@@ -333,7 +344,7 @@
"useSystemTheme_description": "使用系统定义的浅色或深色主题",
"playButtonBehavior_optionAddNext": "$t(player.addNext)",
"lyricFetch_description": "从多个互联网源获取歌词",
"lyricFetchProvider_description": "选择歌词源。 歌词源顺序与查询顺序一致",
"lyricFetchProvider_description": "选择要从中获取歌词的提供商",
"sidePlayQueueStyle_optionDetached": "不吸附",
"hotkey_zoomOut": "缩小",
"hotkey_unfavoriteCurrentSong": "取消收藏$t(common.currentSong)",
@@ -454,7 +465,7 @@
"releaseChannel": "发布通道",
"releaseChannel_description": "选择稳定版本或测试版以进行自动更新",
"mediaSession": "启用媒体会话",
"mediaSession_description": "启用 Windows 媒体会话集成,在系统音量覆盖和锁定屏幕中显示媒体控件和元数据(仅限 Windows",
"mediaSession_description": "启用媒体会话集成,在系统音量叠加层和锁屏界面显示媒体控件和元数据",
"exportImportSettings_control_description": "通过 JSON 导出和导入设置",
"exportImportSettings_control_exportText": "导出设置",
"exportImportSettings_control_importText": "导入设置",
@@ -515,7 +526,43 @@
"playerbarWaveformAlign": "波形对齐方式",
"playerbarWaveformBarWidth": "波形宽度",
"playerbarWaveformGap": "波形间距",
"transcode": "启用转码功能"
"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": "重启服务器使新端口生效",
@@ -563,18 +610,18 @@
"communityRating": "社区评分",
"path": "路径",
"favorited": "已收藏",
"albumArtist": "$t(entity.albumArtist_one)",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"releaseYear": "发布年份",
"biography": "个人简介",
"songCount": "歌曲数量",
"random": "随机",
"lastPlayed": "上次播放",
"lastPlayed": "最后播放",
"toYear": "截止年份",
"fromYear": "起始年份",
"criticRating": "评论家评分",
"trackNumber": "曲目",
"bpm": "bpm",
"artist": "$t(entity.artist_one)",
"artist": "$t(entity.artist, {\"count\": 1})",
"comment": "评论",
"isCompilation": "为合辑",
"isFavorited": "已收藏",
@@ -582,34 +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)",
"artists": "$t(entity.artist, {\"count\": 2})",
"albumArtists": "$t(entity.albumArtist, {\"count\": 2})",
"shared": "共享$t(entity.playlist, {\"count\": 2})",
"myLibrary": "我的媒体库",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "合集"
},
"fullscreenPlayer": {
"config": {
@@ -643,13 +692,14 @@
"openBrowserDevtools": "打开浏览器开发者工具",
"goBack": "返回",
"goForward": "前进",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"quit": "$t(common.quit)",
"privateModeOff": "关闭私人模式",
"privateModeOn": "开启私人模式",
"multipleMusicFolders": "已选择{{count}}个媒体库",
"noMusicFolder": "未选择任何音乐库",
"selectMusicFolder": "选择媒体库"
"selectMusicFolder": "选择媒体库",
"commandPalette": "打开命令面板"
},
"home": {
"mostPlayed": "最多播放",
@@ -658,10 +708,10 @@
"recentlyPlayed": "最近播放",
"title": "$t(common.home)",
"recentlyReleased": "最近发布",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"albumDetail": {
"moreFromArtist": "更多该$t(entity.artist_one)作品",
"moreFromArtist": "更多该$t(entity.artist, {\"count\": 1})作品",
"moreFromGeneric": "更多{{item}}作品",
"released": "已发布"
},
@@ -687,7 +737,8 @@
"discord": "Discord",
"logger": "日志记录器",
"queryBuilder": "查询构建器",
"lyricsDisplay": "歌词显示"
"lyricsDisplay": "歌词显示",
"playerFilters": "播放筛选器"
},
"globalSearch": {
"commands": {
@@ -720,43 +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": "查看全部",
"groupingTypeAll": "所有发行类型"
"groupingTypeAll": "所有发行类型",
"groupingTypePrimary": "首选发布类型"
},
"itemDetail": {
"copyPath": "将路径复制到剪贴板",
@@ -775,17 +827,28 @@
"removeServer": "移除服务器"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "广播电台"
},
"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": "添加服务器",
@@ -801,22 +864,22 @@
"input_url": "url",
"input_preferInstantMixDescription": "仅使用即时混音来获取类似的歌曲。如果您有修改此行为的插件,则很有用",
"input_preferInstantMix": "首选即时混音",
"input_preferRemoteUrl": "首选公共 URL",
"input_remoteUrl": "公共 URL",
"input_remoteUrlPlaceholder": "可选:对外功能的公共 URL"
"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)"
@@ -835,15 +898,15 @@
"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": "过期时间必须是将来的时间",
@@ -865,7 +928,9 @@
"createRadioStation": {
"input_homepageUrl": "首页地址",
"input_name": "名称",
"input_streamUrl": "串流地址"
"input_streamUrl": "串流地址",
"success": "电台创建成功",
"title": "创建广播电台"
},
"lyricsExport": {
"export": "导出歌词",
@@ -877,12 +942,14 @@
},
"shuffleAll": {
"title": "随机播放",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_played_optionAll": "所有曲目",
"input_maxYear": "截止年份",
"input_minYear": "起始年份",
"input_played_optionUnplayed": "仅未播放的曲目",
"input_played_optionPlayed": "仅已播放的曲目"
"input_played_optionPlayed": "仅已播放的曲目",
"input_limit": "有多少首歌?",
"input_played": "播放筛选器"
}
},
"table": {
@@ -916,7 +983,8 @@
"advancedSettings": "高级设置",
"autosize": "自动调整大小",
"horizontalBorders": "行边框",
"verticalBorders": "列边框"
"verticalBorders": "列边框",
"showHeader": "显示标题"
},
"view": {
"table": "表格",
@@ -934,29 +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)",
"albumCount": "$t(entity.album_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_one)(徽章)"
"genreBadge": "$t(entity.genre, {\"count\": 1})(徽章)",
"composer": "作曲家",
"titleArtist": "$t(common.title) (艺术家)"
}
},
"column": {
@@ -965,7 +1035,7 @@
"rating": "评分",
"favorite": "收藏",
"playCount": "播放次数",
"albumCount": "$t(entity.album_other)",
"albumCount": "$t(entity.album, {\"count\": 2})",
"releaseYear": "年份",
"lastPlayed": "最后播放",
"biography": "简介",
@@ -974,13 +1044,13 @@
"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)",
@@ -996,7 +1066,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"broadcast": "播送",
"ep": "迷你专辑(EP",
"single": "单曲",
@@ -1011,7 +1081,10 @@
"mixtape": "混音专辑",
"remix": "再混音(Remix",
"soundtrack": "原声带",
"audioDrama": "广播剧"
"audioDrama": "广播剧",
"djMix": "DJ混音",
"fieldRecording": "现场录制",
"spokenWord": "访谈"
}
},
"filterOperator": {
@@ -1032,7 +1105,8 @@
"notContains": "不包含",
"startsWith": "以…开头",
"inTheRangeDate": "在(日期)范围内",
"notInPlaylist": "不在…中"
"notInPlaylist": "不在…中",
"notInTheLast": "不在最后"
},
"datetime": {
"minuteShort": "分",
@@ -1085,6 +1159,85 @@
"builtIn": "内置",
"colors": "颜色",
"gradient": "渐变",
"miscellaneousSettings": "杂项设置"
"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": "自定义标签"
}
}
+221 -101
View File
@@ -20,10 +20,10 @@
"ascending": "升冪",
"disable": "禁用",
"disc": "光碟",
"dismiss": "忽略",
"dismiss": "不再顯示",
"duration": "時長",
"edit": "編輯",
"enable": "用",
"enable": "用",
"expand": "展開",
"favorite": "收藏",
"filter_other": "篩選",
@@ -40,7 +40,7 @@
"owner": "所有者",
"path": "路徑",
"playerMustBePaused": "播放器必須被暫停",
"previousSong": "上一首$t(entity.track_one)",
"previousSong": "上一首$t(entity.track, {\"count\": 1})",
"quit": "退出",
"random": "隨機",
"rating": "評分",
@@ -66,7 +66,7 @@
"channel_other": "聲道",
"configure": "配置",
"create": "創建",
"currentSong": "目前$t(entity.track_one)",
"currentSong": "目前$t(entity.track, {\"count\": 1})",
"minimize": "最小化",
"modified": "已修改",
"name": "名稱",
@@ -86,7 +86,7 @@
"preview": "預覽",
"reload": "重新載入",
"sampleRate": "取樣率",
"setting": "設定",
"setting_other": "設定",
"share": "分享",
"tags": "標籤",
"trackGain": "曲目增益",
@@ -110,7 +110,12 @@
"countSelected": "{{count}}個已選取",
"retry": "重試",
"example": "範例",
"mood": "情緒"
"mood": "情緒",
"view": "查看",
"rename": "重新命名",
"itemsMore": "{{count}} 更多",
"filter_single": "單選",
"filter_multiple": "複選"
},
"error": {
"endpointNotImplementedError": "{{serverType}} 尚未實現端點 {{endpoint}}",
@@ -167,8 +172,8 @@
"playShuffled": "$t(player.shuffle)",
"shareItem": "分享項目",
"showDetails": "取得資訊",
"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": "前往"
},
@@ -187,7 +192,7 @@
"mostPlayed": "最多播放",
"newlyAdded": "最近新增的發行",
"recentlyReleased": "最近發佈",
"genres": "$t(entity.genre_other)"
"genres": "$t(entity.genre, {\"count\": 2})"
},
"appMenu": {
"openBrowserDevtools": "打開瀏覽器開發者工具",
@@ -197,7 +202,7 @@
"goForward": "前進",
"quit": "$t(common.quit)",
"selectServer": "選擇伺服器",
"settings": "$t(common.setting_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"version": "版本 {{version}}",
"manageServers": "管理伺服器",
"privateModeOff": "關閉私人模式",
@@ -231,7 +236,7 @@
"noLyrics": "未找到歌詞"
},
"playlistList": {
"title": "$t(entity.playlist_other)"
"title": "$t(entity.playlist, {\"count\": 2})"
},
"setting": {
"hotkeysTab": "快捷鍵",
@@ -259,57 +264,62 @@
"lyricsDisplay": "歌詞顯示"
},
"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": {
"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})"
},
"sidebar": {
"albumArtists": "$t(entity.albumArtist_other)",
"albums": "$t(entity.album_other)",
"artists": "$t(entity.artist_other)",
"folders": "$t(entity.folder_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})",
"search": "$t(common.search)",
"settings": "$t(common.setting_other)",
"tracks": "$t(entity.track_other)",
"genres": "$t(entity.genre_other)",
"settings": "$t(common.setting, {\"count\": 2})",
"tracks": "$t(entity.track, {\"count\": 2})",
"genres": "$t(entity.genre, {\"count\": 2})",
"home": "$t(common.home)",
"nowPlaying": "正在播放",
"playlists": "$t(entity.playlist_other)",
"playlists": "$t(entity.playlist, {\"count\": 2})",
"myLibrary": "我的媒體庫",
"shared": "已分享 $t(entity.playlist_other)",
"favorites": "$t(entity.favorite_other)",
"radio": "$t(entity.radioStation_other)"
"shared": "已分享 $t(entity.playlist, {\"count\": 2})",
"favorites": "$t(entity.favorite, {\"count\": 2})",
"radio": "$t(entity.radioStation, {\"count\": 2})",
"collections": "收藏"
},
"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})"
},
"albumArtistDetail": {
"about": "關於{{artist}}",
"appearsOn": "出現在",
"recentReleases": "最近發行",
"viewDiscography": "查看音樂作品",
"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})",
"groupingTypeAll": "所有發佈類型",
"groupingTypePrimary": "主要發佈類型"
"groupingTypePrimary": "主要發佈類型",
"favoriteSongs": "最愛歌曲",
"favoriteSongsFrom": "{{title}} 的最愛歌曲",
"topSongsCommunity": "社群",
"topSongsPersonal": "個人"
},
"manageServers": {
"title": "管理伺服器",
@@ -328,13 +338,26 @@
"reorder": "僅當按 ID 排序時才啟用重新排序"
},
"favorites": {
"title": "$t(entity.favorite_other)"
"title": "$t(entity.favorite, {\"count\": 2})"
},
"folderList": {
"title": "$t(entity.folder_other)"
"title": "$t(entity.folder, {\"count\": 2})"
},
"radioList": {
"title": "電台"
},
"windowBar": {
"paused": "(暫停) ",
"privateMode": "(私人模式)"
},
"collections": {
"overrideExisting": "複寫現有的",
"saveAsCollection": "儲存為收藏"
},
"releasenotes": {
"commitsSinceStable": "提交自 {{stable}}",
"noNewCommits": "在此區間內沒有新的提交",
"noStableReleaseToCompare": "沒有穩定的發行可供比較"
}
},
"player": {
@@ -390,7 +413,7 @@
"accentColor": "強調色",
"accentColor_description": "設定應用程式的強調色",
"applicationHotkeys": "應用程式快捷鍵",
"applicationHotkeys_description": "設定應用程式快捷鍵。切換勾選框來設為全快捷鍵(僅桌面端)",
"applicationHotkeys_description": "設定應用程式快捷鍵。切換勾選框來設為全快捷鍵(僅桌面端)",
"audioDevice": "音訊設備",
"audioDevice_description": "選擇用於播放的音訊設備(僅 web 播放器)",
"audioExclusiveMode": "音訊獨占模式",
@@ -401,7 +424,6 @@
"crossfadeStyle_description": "選擇用於音訊播放器的淡入淡出風格",
"customFontPath": "自定字體路徑",
"customFontPath_description": "設定應用程式使用的自定字體路徑",
"disableAutomaticUpdates": "禁用自動更新",
"disableLibraryUpdateOnStartup": "禁用啟動時檢查新版本",
"discordApplicationId": "{{discord}} 應用程式 id",
"discordApplicationId_description": "{{discord}} rich presence 應用程式 id(預設為 {{defaultId}}",
@@ -423,10 +445,10 @@
"gaplessAudio": "無間隔音訊",
"gaplessAudio_description": "調整 mpv 無間隔音訊設定",
"gaplessAudio_optionWeak": "弱(建議)",
"globalMediaHotkeys": "全媒體快捷鍵",
"globalMediaHotkeys": "全媒體快捷鍵",
"hotkey_browserForward": "瀏覽器往前",
"hotkey_favoritePreviousSong": "收藏 $t(common.previousSong)",
"hotkey_globalSearch": "全搜尋",
"hotkey_globalSearch": "全搜尋",
"hotkey_localSearch": "頁面內搜尋",
"hotkey_playbackNext": "下一首",
"hotkey_playbackPause": "暫停",
@@ -456,7 +478,7 @@
"lyricFetchProvider": "歌詞來源",
"lyricOffset": "歌詞偏移(毫秒)",
"lyricOffset_description": "將歌詞偏移指定的毫秒數",
"lyricFetchProvider_description": "選擇歌詞來源。 來源順序即為搜尋的順序",
"lyricFetchProvider_description": "選擇歌詞來源",
"minimizeToTray": "最小化到系統匣",
"minimizeToTray_description": "將應用程式最小化到系統匣",
"minimumScrobbleSeconds": "最小紀錄時間(秒)",
@@ -475,9 +497,9 @@
"replayGainFallback_description": "歌曲沒有{{ReplayGain}}標簽時使用的增益(以分貝為單位)",
"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}}前置放大(分貝)",
"replayGainPreamp_description": "調整使用在{{ReplayGain}}值上的前置放大增益",
"savePlayQueue": "儲存播放佇列",
@@ -487,7 +509,7 @@
"scrobble_description": "在你的媒體伺服器中記錄播放資訊",
"showSkipButton": "顯示跳過按鈕",
"showSkipButton_description": "在播放條上顯示/隱藏跳過按鈕",
"sidebarPlaylistList": "側邊欄歌單清單",
"sidebarPlaylistList": "側邊欄播放清單列表",
"sidebarCollapsedNavigation": "側邊欄(已折疊)導航",
"sidebarCollapsedNavigation_description": "在折疊的側邊欄中顯示或隱藏導航",
"sidebarConfiguration": "側邊欄設定",
@@ -550,7 +572,7 @@
"contextMenu_description": "允許您隱藏在右鍵選單項目時顯示的項目。未選取的項目將被隱藏",
"customCssEnable": "啟用自訂CSS",
"customCssEnable_description": "允許撰寫自訂CSS",
"customCssNotice": "警告:雖然有一些清理措施(不允許 url() 和 content:),但使用自訂 CSS 仍然會透過更改介面帶來風險",
"customCssNotice": "警告:即使已限制某些用法(不允許 url() 和 content:),但使用自訂 CSS 仍然會透過更改介面帶來風險",
"customCss": "自訂CSS",
"customCss_description": "自訂 CSS 內容。注意:內容和遠端 URL 是不允許使用的屬性。您的內容預覽如下所示。由於需要進行清理,因此存在一些您未設定的其他欄位",
"discordPausedStatus": "暫停時顯示 rich presence",
@@ -610,7 +632,7 @@
"artistBackgroundBlur_description": "調整套用至藝人背景圖片的模糊程度",
"releaseChannel_optionLatest": "最新版本",
"releaseChannel_optionBeta": "測試版",
"releaseChannel_description": "選擇自動更新時要使用穩定版本或是測試版本",
"releaseChannel_description": "選擇自動更新時要使用穩定、測試或是 alpha (每日建構版) 版本",
"discordDisplayType": "{{discord}} presence 顯示類型",
"discordDisplayType_description": "變更您在狀態中正在聆聽的內容",
"discordDisplayType_songname": "歌曲名稱",
@@ -622,8 +644,8 @@
"hotkey_navigateHome": "導航至首頁",
"preventSleepOnPlayback": "防止播放時進入睡眠狀態",
"preventSleepOnPlayback_description": "在音樂播放時防止螢幕進入睡眠狀態",
"mediaSession": "啟用Media Session",
"mediaSession_description": "啟用 Media Session 整合功能,於系統音量Overlay和鎖定畫面中顯示媒體資料與控制面板",
"mediaSession": "啟用 Media Session",
"mediaSession_description": "啟用 Media Session 整合功能,於系統音量 Overlay 和鎖定畫面中顯示媒體資料與控制面板",
"releaseChannel": "發佈通道",
"analyticsDisable": "選擇退出使用情況分析",
"analyticsDisable_description": "經過匿名處理的使用情況資料將傳送給開發者,以協助改進應用程式",
@@ -706,7 +728,25 @@
"pathReplace": "檔案路徑替換",
"pathReplace_description": "替換您伺服器的預設檔案路徑",
"pathReplace_optionRemovePrefix": "移除前綴",
"pathReplace_optionAddPrefix": "增加前綴"
"pathReplace_optionAddPrefix": "增加前綴",
"sidebarPlaylistSorting": "側邊欄播放清單排序",
"homeFeatureStyle_description": "控制首頁輪播的樣式",
"homeFeatureStyle": "首頁特色輪播樣式",
"homeFeatureStyle_optionMultiple": "多重",
"homeFeatureStyle_optionSingle": "單一",
"hotkey_listPlayDefault": "清單播放",
"hotkey_listPlayLast": "清單尾端播放",
"hotkey_listPlayNext": "清單下一項播放",
"hotkey_listPlayNow": "清單立即播放",
"enableGridMultiSelect": "啟用網格多選",
"enableGridMultiSelect_description": "啟用時,允許在網格檢視中選擇多項。停用時,單擊網格項目圖片將導航到項目頁面",
"sidebarPlaylistSorting_description": "允許在側邊欄中使用拖放手動對播放清單進行排序,而不是預設的伺服器排序",
"sidebarPlaylistListFilterRegex_description": "在側邊欄中隱藏與此正規表達式匹配的播放清單",
"sidebarPlaylistListFilterRegex_placeholder": "範例: ^Daily Mix.*",
"sidebarPlaylistListFilterRegex": "播放清單過濾器正規表達式",
"blurExplicitImages": "模糊露骨圖片",
"blurExplicitImages_description": "標記為露骨的專輯和歌曲封面將被模糊",
"releaseChannel_optionAlpha": "alpha (每日建構版)"
},
"table": {
"config": {
@@ -739,28 +779,29 @@
"alternateRowColors": "隔行上色",
"horizontalBorders": "行邊框線",
"rowHoverHighlight": "滑鼠懸停Highlight",
"verticalBorders": "列邊框線"
"verticalBorders": "列邊框線",
"showHeader": "顯示標題"
},
"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})",
"bpm": "$t(common.bpm)",
"biography": "$t(common.biography)",
"bitrate": "$t(common.bitrate)",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"dateAdded": "新增日期",
"discNumber": "光碟編號",
"duration": "$t(common.duration)",
"favorite": "$t(common.favorite)",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"lastPlayed": "最後播放",
"note": "$t(common.note)",
"owner": "$t(common.owner)",
"path": "$t(common.path)",
"playCount": "播放次數",
"releaseDate": "發日期",
"releaseDate": "發日期",
"rowIndex": "行號",
"size": "$t(common.size)",
"title": "$t(common.title)",
@@ -769,12 +810,14 @@
"year": "$t(common.year)",
"rating": "$t(common.rating)",
"codec": "$t(common.codec)",
"songCount": "$t(entity.track_other)",
"albumCount": "$t(entity.album_other)",
"genreBadge": "$t(entity.genre_one) (徽章)",
"songCount": "$t(entity.track, {\"count\": 2})",
"albumCount": "$t(entity.album, {\"count\": 2})",
"genreBadge": "$t(entity.genre, {\"count\": 1}) (徽章)",
"image": "圖片",
"bitDepth": "$t(common.bitDepth)",
"sampleRate": "$t(common.sampleRate)"
"sampleRate": "$t(common.sampleRate)",
"composer": "作曲者",
"titleArtist": "$t(common.title) (藝人)"
},
"view": {
"table": "表格",
@@ -785,11 +828,11 @@
"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": "比特率",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "評論",
"dateAdded": "新增日期",
"discNumber": "光碟",
@@ -800,9 +843,9 @@
"rating": "評價",
"releaseDate": "發布日期",
"releaseYear": "年份",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"bpm": "bpm",
"songCount": "$t(entity.track_other)",
"songCount": "$t(entity.track, {\"count\": 2})",
"title": "標題",
"trackNumber": "曲目編號",
"size": "$t(common.size)",
@@ -813,23 +856,23 @@
}
},
"action": {
"addToFavorites": "新增到$t(entity.favorite_other)",
"addToFavorites": "新增到$t(entity.favorite, {\"count\": 2})",
"clearQueue": "清空播放佇列",
"createPlaylist": "創建$t(entity.playlist_one)",
"deletePlaylist": "刪除$t(entity.playlist_one)",
"addToPlaylist": "新增到$t(entity.playlist_one)",
"createPlaylist": "創建$t(entity.playlist, {\"count\": 1})",
"deletePlaylist": "刪除$t(entity.playlist, {\"count\": 1})",
"addToPlaylist": "新增到$t(entity.playlist, {\"count\": 1})",
"deselectAll": "取消全選",
"editPlaylist": "編輯 $t(entity.playlist_one)",
"editPlaylist": "編輯 $t(entity.playlist, {\"count\": 1})",
"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)",
"viewPlaylists": "查看$t(entity.playlist, {\"count\": 2})",
"moveToNext": "移至下一項",
"openIn": {
"lastfm": "在Last.fm開啟",
@@ -845,11 +888,12 @@
"moveDown": "向下移動",
"holdToMoveToTop": "按住以移動至頂部",
"holdToMoveToBottom": "按住以移動至底部",
"createRadioStation": "創建 $t(entity.radioStation_one)",
"deleteRadioStation": "刪除 $t(entity.radioStation_one)",
"createRadioStation": "創建 $t(entity.radioStation, {\"count\": 1})",
"deleteRadioStation": "刪除 $t(entity.radioStation, {\"count\": 1})",
"openApplicationDirectory": "開啟應用程式目錄",
"addOrRemoveFromSelection": "新增或移除選取項目",
"selectAll": "全選"
"selectAll": "全選",
"selectRangeOfItems": "批量選取"
},
"entity": {
"album_other": "專輯",
@@ -864,7 +908,7 @@
"genreWithCount_other": "{{count}} 種曲風",
"playlist_other": "播放清單",
"playlistWithCount_other": "{{count}} 個播放清單",
"smartPlaylist": "智慧$t(entity.playlist_one)",
"smartPlaylist": "智慧$t(entity.playlist, {\"count\": 1})",
"track_other": "曲目",
"trackWithCount_other": "{{count}} 首曲目",
"albumWithCount_other": "{{count}} 張專輯",
@@ -874,12 +918,12 @@
"radioStationWithCount_other": "{{count}} 個電台"
},
"filter": {
"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": "bpm",
"channels": "$t(common.channel_other)",
"channels": "$t(common.channel, {\"count\": 2})",
"comment": "評論",
"communityRating": "社群評分",
"criticRating": "評論家評分",
@@ -888,7 +932,7 @@
"duration": "時長",
"id": "id",
"fromYear": "從年份",
"genre": "$t(entity.genre_one)",
"genre": "$t(entity.genre, {\"count\": 1})",
"isCompilation": "為合輯",
"isFavorited": "已收藏",
"isPublic": "已公開",
@@ -907,8 +951,8 @@
"recentlyUpdated": "最近更新",
"releaseDate": "發布日期",
"songCount": "曲目數",
"album": "$t(entity.album_one)",
"albumArtist": "$t(entity.albumArtist_one)",
"album": "$t(entity.album, {\"count\": 1})",
"albumArtist": "$t(entity.albumArtist, {\"count\": 1})",
"favorited": "已收藏",
"recentlyAdded": "最近新增",
"releaseYear": "發布年份",
@@ -916,7 +960,8 @@
"title": "標題",
"toYear": "從年份",
"trackNumber": "曲目",
"explicitStatus": "$t(common.explicitStatus)"
"explicitStatus": "$t(common.explicitStatus)",
"sortName": "排序名稱"
},
"form": {
"addServer": {
@@ -938,25 +983,25 @@
"input_remoteUrlPlaceholder": "選用:對外功能的公開網址"
},
"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)",
"create": "創建 $t(entity.playlist_one) {{playlist}}",
"searchOrCreate": "搜尋$t(entity.playlist_other) 或輸入內容以建立新項目"
"title": "新增到$t(entity.playlist, {\"count\": 1})",
"create": "創建 $t(entity.playlist, {\"count\": 1}) {{playlist}}",
"searchOrCreate": "搜尋$t(entity.playlist, {\"count\": 2}) 或輸入內容以建立新項目"
},
"createPlaylist": {
"input_description": "$t(common.description)",
"input_name": "$t(common.name)",
"input_owner": "$t(common.owner)",
"input_public": "公開",
"success": "已成功創建 $t(entity.playlist_one)",
"title": "創建$t(entity.playlist_one)"
"success": "已成功創建 $t(entity.playlist, {\"count\": 1})",
"title": "創建$t(entity.playlist, {\"count\": 1})"
},
"lyricSearch": {
"input_name": "$t(common.name)",
"title": "搜尋歌詞",
"input_artist": "$t(entity.artist_one)"
"input_artist": "$t(entity.artist, {\"count\": 1})"
},
"queryEditor": {
"input_optionMatchAll": "匹配全部",
@@ -972,14 +1017,14 @@
"title": "更新伺服器"
},
"deletePlaylist": {
"input_confirm": "輸入$t(entity.playlist_one)的名稱進行確認",
"title": "刪除$t(entity.playlist_one)",
"success": "$t(entity.playlist_one)已成功刪除"
"input_confirm": "輸入$t(entity.playlist, {\"count\": 1})的名稱進行確認",
"title": "刪除$t(entity.playlist, {\"count\": 1})",
"success": "$t(entity.playlist, {\"count\": 1})已成功刪除"
},
"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": {
@@ -1001,7 +1046,7 @@
},
"shuffleAll": {
"title": "隨機播放",
"input_genre": "$t(entity.genre_one)",
"input_genre": "$t(entity.genre, {\"count\": 1})",
"input_limit": "多少曲目?",
"input_minYear": "起始年份",
"input_maxYear": "結束年份",
@@ -1028,7 +1073,7 @@
},
"releaseType": {
"primary": {
"album": "$t(entity.album_one)",
"album": "$t(entity.album, {\"count\": 1})",
"ep": "EP",
"other": "其他",
"broadcast": "廣播",
@@ -1045,7 +1090,8 @@
"live": "Live",
"mixtape": "混音帶",
"remix": "Remix",
"soundtrack": "原聲帶"
"soundtrack": "原聲帶",
"spokenWord": "訪談"
}
},
"dragDropZone": {
@@ -1157,6 +1203,80 @@
"gravity": "重力",
"peakFadeTime": "峰值淡出時間 (毫秒)",
"peakHoldTime": "峰值停留時間 (毫秒)",
"radialSpectrum": "圓形頻譜"
"radialSpectrum": "圓形頻譜",
"level": "層級",
"pasteGradient": "貼上漸層",
"pasteGradientPlaceholder": "在這裡貼上漸層JSON...",
"radial": "放射",
"radialInvert": "反轉放射",
"spinSpeed": "旋轉速度",
"radius": "半徑",
"reflexMirror": "反射鏡像",
"reflexFit": "反射貼齊",
"reflexRatio": "反射比例",
"reflexAlpha": "反射 Alpha",
"reflexBrightness": "反射亮度",
"mirror": "鏡像",
"miscellaneousSettings": "雜項設定",
"alphaBars": "Alpha 條",
"ansiBands": "ASNI 波段",
"ledBars": "LED 條",
"trueLeds": "真實 LED",
"lumiBars": "輝光條",
"outlineBars": "外框條",
"roundBars": "圓角條",
"lowResolution": "低解析",
"splitGradient": "分割漸層",
"showFPS": "顯示 FPS",
"showScaleX": "顯示 X 軸比例",
"noteLabels": "音符標籤",
"showScaleY": "顯示Y軸比例",
"options": {
"mode": {
"0": "[0] 離散頻率",
"1": "[1] 1/24th 八度音 / 240 頻段",
"2": "[2] 1/12th 八度音 / 120 頻段",
"3": "[3] 1/8th 八度音 / 80 頻段",
"4": "[4] 1/6th 八度音 / 60 頻段",
"5": "[5] 1/4th 八度音 / 40 頻段",
"6": "[6] 1/3rd 八度音 / 30 頻段",
"7": "[7] 一半八度音 / 20 頻段",
"8": "[8] 完整八度音 / 10 頻段",
"10": "[10] 線 / 區域圖表"
},
"colorMode": {
"gradient": "梯度",
"barIndex": "條-指數",
"barLevel": "條-高度"
},
"gradient": {
"classic": "經典",
"prism": "菱鏡",
"rainbow": "彩虹",
"steelblue": "鋼藍",
"orangered": "橙紅色"
},
"channelLayout": {
"single": "單一",
"dualCombined": "雙重-合併",
"dualHorizontal": "雙重-水平",
"dualVertical": "雙重-垂直"
},
"frequencyScale": {
"none": "無",
"bark": "比例刻度",
"linear": "線性比例",
"log": "Log 比例",
"mel": "Mel 比例"
},
"weightingFilter": {
"none": "無",
"a": "A",
"b": "B",
"c": "C",
"d": "D",
"z": "Z"
}
}
}
}
+28 -23
View File
@@ -78,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[];
@@ -97,18 +121,7 @@ const getRemoteLyrics = async (song: Song) => {
name: song.name,
};
const allSearchResults: InternetProviderLyricSearchResponse[] = [];
for (const source of sources) {
try {
const searchResults = await SEARCH_FETCHERS[source](params);
if (searchResults) {
allSearchResults.push(...searchResults);
}
} catch (error) {
console.error(`Error searching ${source} for lyrics:`, error);
}
}
const allSearchResults = await searchAllSources(params);
if (allSearchResults.length === 0) {
return null;
@@ -172,24 +185,16 @@ const getRemoteLyrics = async (song: Song) => {
};
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;
};
+57
View File
@@ -0,0 +1,57 @@
import { app, ipcMain, Menu } from 'electron';
import { getMainWindow } from '/@/main/index';
import { PlayerStatus } from '/@/shared/types/types';
let currentStatus: PlayerStatus = PlayerStatus.PAUSED;
const updateDockMenu = () => {
if (!app.dock) return;
const isPlaying = currentStatus === PlayerStatus.PLAYING;
const dockMenu = Menu.buildFromTemplate([
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-play-pause');
},
label: isPlaying ? 'Pause' : 'Play',
},
{
type: 'separator',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-next');
},
label: 'Next',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-previous');
},
label: 'Previous',
},
{
type: 'separator',
},
{
click: () => {
getMainWindow()?.webContents.send('renderer-player-stop');
},
label: 'Stop',
},
]);
app.dock.setMenu(dockMenu);
};
ipcMain.on('update-playback', (_event, status: PlayerStatus) => {
currentStatus = status;
updateDockMenu();
});
// Initialize dock menu after app is ready
app.whenReady().then(() => {
updateDockMenu();
});
+1
View File
@@ -0,0 +1 @@
import './dock-menu';
+141 -30
View File
@@ -18,7 +18,7 @@ import {
} from 'electron';
import electronLocalShortcut from 'electron-localshortcut';
import log from 'electron-log/main';
import { autoUpdater } from 'electron-updater';
import { AppImageUpdater, autoUpdater, MacUpdater, NsisUpdater } from 'electron-updater';
import { access, constants } from 'fs';
import path, { join } from 'path';
@@ -40,40 +40,111 @@ import './features';
import { PlayerType, TitleTheme } from '/@/shared/types/types';
export default class AppUpdater {
const ALPHA_UPDATER_CONFIG: {
bucket: string;
channel: string;
endpoint: string;
provider: 's3';
} = {
bucket: '',
channel: 'alpha',
endpoint: 'https://feishin-nightly-bucket.jeffvli.org',
provider: 's3',
};
type UpdaterInstance = AppImageUpdater | MacUpdater | NsisUpdater | typeof autoUpdater;
class AlphaAppUpdater {
constructor() {
const updater = createAlphaUpdaterInstance();
log.transports.file.level = 'info';
autoUpdater.logger = autoUpdaterLogInterface;
updater.logger = autoUpdaterLogInterface;
updater.channel = ALPHA_UPDATER_CONFIG.channel;
updater.allowPrerelease = true;
updater.disableDifferentialDownload = true;
updater.allowDowngrade = true;
updater.autoInstallOnAppQuit = true;
updater.autoRunAppAfterInstall = true;
updater.checkForUpdatesAndNotify();
}
}
const isBetaVersion = packageJson.version.includes('-beta');
const releaseChannel = store.get('release_channel');
const isNotConfigured = !releaseChannel;
console.log('Release channel: ', releaseChannel);
console.log('Is beta version: ', isBetaVersion);
if (isNotConfigured) {
console.log(
'Release channel not configured, setting to ',
isBetaVersion ? 'beta' : 'latest',
);
store.set('release_channel', isBetaVersion ? 'beta' : 'latest');
}
if (releaseChannel === 'beta') {
autoUpdater.channel = 'beta';
autoUpdater.allowPrerelease = true;
autoUpdater.disableDifferentialDownload = true;
} else if (releaseChannel === 'latest') {
autoUpdater.channel = 'latest';
autoUpdater.allowDowngrade = true;
autoUpdater.allowPrerelease = false;
class AppUpdater {
constructor() {
const effectiveChannel = store.get('release_channel') as string;
console.log('Effective update channel:', effectiveChannel);
if (effectiveChannel === 'alpha') {
return new AlphaAppUpdater();
}
configureAndGetUpdater();
autoUpdater.checkForUpdatesAndNotify();
}
}
function configureAndGetUpdater(): UpdaterInstance {
const isBetaVersion = packageJson.version.includes('-beta');
const isAlphaVersion = packageJson.version.includes('-alpha');
let releaseChannel = store.get('release_channel');
const isNotConfigured = !releaseChannel;
console.log('Release channel:', releaseChannel);
console.log('Is beta version:', isBetaVersion);
console.log('Is alpha version:', isAlphaVersion);
console.log('Is not configured:', isNotConfigured);
if (isNotConfigured) {
console.log('Release channel not configured, setting default channel');
const defaultChannel = isAlphaVersion ? 'alpha' : isBetaVersion ? 'beta' : 'latest';
store.set('release_channel', defaultChannel);
releaseChannel = defaultChannel;
}
const effectiveChannel = store.get('release_channel') as string;
if (effectiveChannel === 'alpha') {
const updater = createAlphaUpdaterInstance();
log.transports.file.level = 'info';
updater.logger = autoUpdaterLogInterface;
updater.channel = ALPHA_UPDATER_CONFIG.channel;
updater.allowPrerelease = true;
updater.disableDifferentialDownload = true;
updater.allowDowngrade = true;
updater.autoInstallOnAppQuit = true;
updater.autoRunAppAfterInstall = true;
return updater;
}
log.transports.file.level = 'info';
autoUpdater.logger = autoUpdaterLogInterface;
autoUpdater.autoInstallOnAppQuit = true;
autoUpdater.autoRunAppAfterInstall = true;
if (effectiveChannel === 'beta') {
autoUpdater.channel = 'beta';
autoUpdater.allowPrerelease = true;
autoUpdater.disableDifferentialDownload = true;
} else {
autoUpdater.channel = 'latest';
autoUpdater.allowDowngrade = true;
autoUpdater.allowPrerelease = false;
}
return autoUpdater;
}
function createAlphaUpdaterInstance(): AppImageUpdater | MacUpdater | NsisUpdater {
if (isMacOS()) {
return new MacUpdater(ALPHA_UPDATER_CONFIG);
}
if (isLinux()) {
return new AppImageUpdater(ALPHA_UPDATER_CONFIG);
}
return new NsisUpdater(ALPHA_UPDATER_CONFIG);
}
protocol.registerSchemesAsPrivileged([{ privileges: { bypassCSP: true }, scheme: 'feishin' }]);
process.on('uncaughtException', (error: any) => {
@@ -187,10 +258,20 @@ const createWinThumbarButtons = () => {
};
const createTray = () => {
tray =
isLinux() || isMacOS()
? new Tray(getAssetPath('icons/icon.png'))
: new Tray(getAssetPath('icons/icon.ico'));
let trayIcon: Electron.NativeImage | string;
if (isMacOS()) {
const iconPath = getAssetPath('icons/IconTemplate.png');
const icon = nativeImage.createFromPath(iconPath);
icon.setTemplateImage(true);
trayIcon = icon;
} else if (isLinux()) {
trayIcon = getAssetPath('icons/icon.png');
} else {
trayIcon = getAssetPath('icons/icon.ico');
}
tray = new Tray(trayIcon);
const contextMenu = Menu.buildFromTemplate([
{
@@ -349,6 +430,36 @@ async function createWindow(first = true): Promise<void> {
return mainWindow?.webContents.session.clearCache();
});
ipcMain.handle(
'app-check-for-updates',
async (): Promise<{ updateAvailable: boolean; version?: string }> => {
if (disableAutoUpdates()) {
console.log('Auto updates are disabled');
return { updateAvailable: false };
}
try {
console.log('Checking for updates');
const updater = configureAndGetUpdater();
const result = await updater.checkForUpdates();
const updateAvailable = result?.isUpdateAvailable ?? false;
console.log('Update available:', updateAvailable);
if (updateAvailable && store.get('disable_auto_updates') !== true) {
console.log('Downloading update');
updater.downloadUpdate();
}
return {
updateAvailable,
version: result?.updateInfo?.version,
};
} catch {
console.log('Error checking for updates');
return { updateAvailable: false };
}
},
);
ipcMain.on('app-restart', () => {
// Fix for .AppImage
if (process.env.APPIMAGE) {
+18 -2
View File
@@ -21,6 +21,14 @@ export default class MenuBuilder {
selector: 'orderFrontStandardAboutPanel:',
},
{ type: 'separator' },
{
accelerator: 'Command+,',
click: () => {
this.mainWindow.webContents.send('renderer-open-settings');
},
label: 'Settings',
},
{ type: 'separator' },
{ label: 'Services', submenu: [] },
{ type: 'separator' },
{
@@ -151,8 +159,8 @@ export default class MenuBuilder {
return [subMenuAbout, subMenuEdit, subMenuView, subMenuWindow, subMenuHelp];
}
buildDefaultTemplate() {
const templateDefault = [
buildDefaultTemplate(): MenuItemConstructorOptions[] {
const templateDefault: MenuItemConstructorOptions[] = [
{
label: '&File',
submenu: [
@@ -160,6 +168,14 @@ export default class MenuBuilder {
accelerator: 'Ctrl+O',
label: '&Open',
},
{
accelerator: 'Ctrl+,',
click: () => {
this.mainWindow.webContents.send('renderer-open-settings');
},
label: '&Settings...',
},
{ type: 'separator' },
{
accelerator: 'Ctrl+W',
click: () => {
+10
View File
@@ -39,6 +39,10 @@ const download = (url: string) => {
ipcRenderer.send('download-url', url);
};
const checkForUpdates = (): Promise<{ updateAvailable: boolean; version?: string }> => {
return ipcRenderer.invoke('app-check-for-updates');
};
const forceGarbageCollection = (): boolean => {
try {
if (typeof global.gc === 'function') {
@@ -57,7 +61,12 @@ const forceGarbageCollection = (): boolean => {
}
};
const rendererOpenSettings = (cb: (event: IpcRendererEvent) => void) => {
ipcRenderer.on('renderer-open-settings', cb);
};
export const utils = {
checkForUpdates,
disableAutoUpdates,
download,
forceGarbageCollection,
@@ -69,6 +78,7 @@ export const utils = {
openApplicationDirectory,
openItem,
playerErrorListener,
rendererOpenSettings,
};
export type Utils = typeof utils;
+1 -1
View File
@@ -137,7 +137,7 @@ export const contract = c.router({
},
getInstantMix: {
method: 'GET',
path: 'songs/:itemId/InstantMix',
path: 'items/:itemId/InstantMix',
query: jfType._parameters.similarSongs,
responses: {
200: jfType._response.songList,
@@ -38,6 +38,10 @@ const formatCommaDelimitedString = (value: string[]) => {
// not the POST body
const MAX_ITEMS_PER_PLAYLIST_ADD = 50;
// Defining a re-usable Collator instance for performance reasons.
const numericSortCollator = new Intl.Collator(undefined, { numeric: true });
const collator = new Intl.Collator();
const VERSION_INFO: VersionInfo = [
[
'10.9.0',
@@ -49,6 +53,18 @@ const VERSION_INFO: VersionInfo = [
['10.0.0', { [ServerFeature.TAGS]: [1] }],
];
const JF_FIELDS = {
ALBUM_ARTIST_DETAIL: 'Genres, Overview, SortName, ProviderIds',
ALBUM_ARTIST_LIST: 'Genres, DateCreated, ExternalUrls, Overview, SortName, ProviderIds',
ALBUM_DETAIL: 'Genres, DateCreated, ChildCount, People, Tags, ProviderIds',
ALBUM_LIST: 'People, Tags, Studios, SortName, UserData, ProviderIds, ChildCount',
FOLDER: 'Genres, DateCreated, MediaSources, UserData, ParentId',
GENRE: 'ItemCounts',
PLAYLIST_DETAIL: 'Genres, DateCreated, MediaSources, ChildCount, ParentId, SortName',
PLAYLIST_LIST: 'ChildCount, Genres, DateCreated, ParentId, Overview',
SONG: 'Genres, DateCreated, MediaSources, ParentId, People, Tags, SortName, UserData, ProviderIds',
} as const;
export const JellyfinController: InternalControllerEndpoint = {
addToPlaylist: async (args) => {
const { apiClientProps, body, query } = args;
@@ -226,7 +242,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server?.userId,
},
query: {
Fields: 'Genres, Overview',
Fields: JF_FIELDS.ALBUM_ARTIST_DETAIL,
},
}),
jfApiClient(apiClientProps).getSimilarArtistList({
@@ -253,7 +269,7 @@ export const JellyfinController: InternalControllerEndpoint = {
const res = await jfApiClient(apiClientProps).getAlbumArtistList({
query: {
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
ImageTypeLimit: 1,
Limit: query.limit,
ParentId: getLibraryId(query.musicFolderId),
@@ -296,7 +312,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server.userId,
},
query: {
Fields: 'Genres, DateCreated, ChildCount, People, Tags',
Fields: JF_FIELDS.ALBUM_DETAIL,
},
});
@@ -305,7 +321,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server.userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
IncludeItemTypes: 'Audio',
ParentId: query.id,
SortBy: 'ParentIndexNumber,IndexNumber,SortName',
@@ -363,7 +379,7 @@ export const JellyfinController: InternalControllerEndpoint = {
},
query: {
...artistQuery,
Fields: 'People, Tags, Studios',
Fields: JF_FIELDS.ALBUM_LIST,
GenreIds: query.genreIds ? query.genreIds.join(',') : undefined,
IncludeItemTypes: 'MusicAlbum',
IsFavorite: query.favorite,
@@ -399,7 +415,7 @@ export const JellyfinController: InternalControllerEndpoint = {
const res = await jfApiClient(apiClientProps).getArtistList({
query: {
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
ImageTypeLimit: 1,
Limit: query.limit,
ParentId: getLibraryId(query.musicFolderId),
@@ -438,7 +454,7 @@ export const JellyfinController: InternalControllerEndpoint = {
itemId: query.artistId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId',
Fields: JF_FIELDS.SONG,
Limit: query.count,
UserId: apiClientProps.server?.userId || undefined,
},
@@ -563,7 +579,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId',
Fields: JF_FIELDS.FOLDER,
ParentId: query.id,
SortBy: query.sortBy
? (songListSortMap.jellyfin[query.sortBy] as string) || 'SortName'
@@ -592,7 +608,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId',
Fields: JF_FIELDS.FOLDER,
ParentId: parentId,
},
});
@@ -679,7 +695,7 @@ export const JellyfinController: InternalControllerEndpoint = {
const res = await jfApiClient(apiClientProps).getGenreList({
query: {
EnableTotalRecordCount: true,
Fields: 'ItemCounts',
Fields: JF_FIELDS.GENRE,
Limit: query.limit === -1 ? undefined : query.limit,
ParentId: getLibraryId(query.musicFolderId),
Recursive: true,
@@ -794,7 +810,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server?.userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ChildCount, ParentId',
Fields: JF_FIELDS.PLAYLIST_DETAIL,
Ids: query.id,
},
});
@@ -817,7 +833,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server?.userId,
},
query: {
Fields: 'ChildCount, Genres, DateCreated, ParentId, Overview',
Fields: JF_FIELDS.PLAYLIST_LIST,
IncludeItemTypes: 'Playlist',
Limit: query.limit,
Recursive: true,
@@ -855,7 +871,7 @@ export const JellyfinController: InternalControllerEndpoint = {
id: query.id,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
IncludeItemTypes: 'Audio',
UserId: apiClientProps.server?.userId,
},
@@ -902,7 +918,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server?.userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
GenreIds: query.genre ? query.genre : undefined,
IncludeItemTypes: 'Audio',
IsPlayed:
@@ -974,7 +990,7 @@ export const JellyfinController: InternalControllerEndpoint = {
itemId: query.songId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId',
Fields: JF_FIELDS.SONG,
Limit: query.count,
UserId: apiClientProps.server?.userId || undefined,
},
@@ -1007,7 +1023,7 @@ export const JellyfinController: InternalControllerEndpoint = {
itemId: query.songId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ParentId',
Fields: JF_FIELDS.SONG,
Limit: query.count,
UserId: apiClientProps.server?.userId || undefined,
},
@@ -1092,11 +1108,11 @@ export const JellyfinController: InternalControllerEndpoint = {
query: {
AlbumIds: albumIdsFilter,
ArtistIds: artistIdsFilter,
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
GenreIds: query.genreIds?.join(','),
IncludeItemTypes: 'Audio',
IsFavorite: query.favorite,
Limit: query.limit,
Limit: query.limit === -1 ? undefined : query.limit,
ParentId: getLibraryId(query.musicFolderId),
Recursive: true,
SearchTerm: query.searchTerm,
@@ -1127,11 +1143,11 @@ export const JellyfinController: InternalControllerEndpoint = {
query: {
AlbumIds: albumIdsFilter,
ArtistIds: artistIdsFilter,
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
GenreIds: query.genreIds?.join(','),
IncludeItemTypes: 'Audio',
IsFavorite: query.favorite,
Limit: query.limit,
Limit: query.limit === -1 ? undefined : query.limit,
ParentId: getLibraryId(query.musicFolderId),
Recursive: true,
SearchTerm: query.searchTerm,
@@ -1250,11 +1266,12 @@ export const JellyfinController: InternalControllerEndpoint = {
if (res.body.Tags?.length) {
tags.push({
name: 'Tags',
options: res.body.Tags.sort((a, b) =>
a
.toLocaleLowerCase()
.localeCompare(b.toLocaleLowerCase(), undefined, { numeric: true }),
).map((tag) => ({ id: tag, name: tag })),
options: res.body.Tags.sort((a, b) => {
return numericSortCollator.compare(
a.toLocaleLowerCase(),
b.toLocaleLowerCase(),
);
}).map((tag) => ({ id: tag, name: tag })),
});
}
@@ -1262,7 +1279,7 @@ export const JellyfinController: InternalControllerEndpoint = {
tags.push({
name: 'Studios',
options: studioRes.body.Items.sort((a, b) =>
a.Name.toLocaleLowerCase().localeCompare(b.Name.toLocaleLowerCase()),
collator.compare(a.Name.toLocaleLowerCase(), b.Name.toLocaleLowerCase()),
).map((option) => ({ id: option.Name, name: option.Name })),
});
}
@@ -1276,17 +1293,22 @@ export const JellyfinController: InternalControllerEndpoint = {
throw new Error('No userId found');
}
const type = query.type === 'personal' ? 'personal' : 'community';
const res = await jfApiClient(apiClientProps).getTopSongsList({
params: {
userId: apiClientProps.server?.userId,
},
query: {
ArtistIds: query.artistId,
Fields: 'Genres, DateCreated, MediaSources, ParentId',
Fields: JF_FIELDS.SONG,
IncludeItemTypes: 'Audio',
Limit: query.limit,
Recursive: true,
SortBy: 'CommunityRating,SortName',
SortBy:
type === 'personal'
? JFSongListSort.PLAY_COUNT
: JFSongListSort.COMMUNITY_RATING,
SortOrder: 'Descending',
UserId: apiClientProps.server?.userId,
},
@@ -1296,15 +1318,31 @@ export const JellyfinController: InternalControllerEndpoint = {
throw new Error('Failed to get top song list');
}
return {
items: res.body.Items.map((item) =>
jfNormalize.song(
item,
apiClientProps.server,
args.context?.pathReplace,
args.context?.pathReplaceWith,
),
const items = res.body.Items.map((item) =>
jfNormalize.song(
item,
apiClientProps.server,
args.context?.pathReplace,
args.context?.pathReplaceWith,
),
);
if (type === 'personal') {
const sorted = orderBy(
items,
['playCount', 'albumId', 'trackNumber'],
['desc', 'asc', 'asc'],
);
return {
items: sorted,
startIndex: 0,
totalRecordCount: res.body.TotalRecordCount,
};
}
return {
items,
startIndex: 0,
totalRecordCount: res.body.TotalRecordCount,
};
@@ -1378,7 +1416,7 @@ export const JellyfinController: InternalControllerEndpoint = {
id: query.id,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, UserData, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
IncludeItemTypes: 'Audio',
UserId: apiClientProps.server?.userId,
},
@@ -1404,7 +1442,7 @@ export const JellyfinController: InternalControllerEndpoint = {
userId: apiClientProps.server?.userId,
},
query: {
Fields: 'Genres, DateCreated, MediaSources, ChildCount, ParentId',
Fields: JF_FIELDS.PLAYLIST_DETAIL,
Ids: query.id,
},
});
@@ -1562,7 +1600,7 @@ export const JellyfinController: InternalControllerEndpoint = {
},
query: {
EnableTotalRecordCount: true,
Fields: 'People, Tags',
Fields: JF_FIELDS.ALBUM_LIST,
ImageTypeLimit: 1,
IncludeItemTypes: 'MusicAlbum',
Limit: query.albumLimit,
@@ -1585,7 +1623,7 @@ export const JellyfinController: InternalControllerEndpoint = {
const res = await jfApiClient(apiClientProps).getAlbumArtistList({
query: {
EnableTotalRecordCount: true,
Fields: 'Genres, DateCreated, ExternalUrls, Overview',
Fields: JF_FIELDS.ALBUM_ARTIST_LIST,
ImageTypeLimit: 1,
IncludeArtists: true,
Limit: query.albumArtistLimit,
@@ -1610,7 +1648,7 @@ export const JellyfinController: InternalControllerEndpoint = {
},
query: {
EnableTotalRecordCount: true,
Fields: 'Genres, DateCreated, MediaSources, ParentId, People, Tags',
Fields: JF_FIELDS.SONG,
IncludeItemTypes: 'Audio',
Limit: query.songLimit,
Recursive: true,
@@ -1,4 +1,5 @@
import { set } from 'idb-keyval';
import orderBy from 'lodash/orderBy';
import { ndApiClient } from '/@/renderer/api/navidrome/navidrome-api';
import { ssApiClient } from '/@/renderer/api/subsonic/subsonic-api';
@@ -17,7 +18,9 @@ import {
PlaylistSongListArgs,
PlaylistSongListResponse,
ServerListItemWithCredential,
SongListSort,
songListSortMap,
SortOrder,
sortOrderMap,
tagListSortMap,
userListSortMap,
@@ -71,6 +74,10 @@ const EXCLUDED_ALBUM_TAGS = new Set<string>([
const EXCLUDED_SONG_TAGS = new Set<string>(['disctotal', 'tracktotal']);
// Defining a re-usable Collator instance for performance reasons.
const numericSortCollator = new Intl.Collator(undefined, { numeric: true });
const collator = new Intl.Collator();
// Tags that use IDs as values as opposed to the tag value
const ID_TAGS = new Set<string>(['albumversion', 'mood']);
@@ -780,16 +787,17 @@ export const NavidromeController: InternalControllerEndpoint = {
.map((data) => ({
name: data[0],
options: data[1]
.sort((a, b) =>
a.name
.toLocaleLowerCase()
.localeCompare(b.name.toLocaleLowerCase(), undefined, {
numeric: true,
}),
)
.sort((a, b) => {
return numericSortCollator.compare(
a.name.toLocaleLowerCase(),
b.name.toLocaleLowerCase(),
);
})
.map((option) => ({ id: option.id, name: option.name })),
}))
.sort((a, b) => a.name.toLocaleLowerCase().localeCompare(b.name.toLocaleLowerCase()));
.sort((a, b) =>
collator.compare(a.name.toLocaleLowerCase(), b.name.toLocaleLowerCase()),
);
const excludedAlbumTags = Array.from(EXCLUDED_ALBUM_TAGS.values());
const excludedSongTags = Array.from(EXCLUDED_SONG_TAGS.values());
@@ -802,7 +810,59 @@ export const NavidromeController: InternalControllerEndpoint = {
tags,
};
},
getTopSongs: SubsonicController.getTopSongs,
getTopSongs: async (args) => {
const { apiClientProps, query } = args;
const type = query.type === 'personal' ? 'personal' : 'community';
if (type === 'community') {
const res = await ssApiClient(apiClientProps).getTopSongsList({
query: {
artist: query.artist,
count: query.limit,
},
});
if (res.status !== 200) {
throw new Error('Failed to get top songs');
}
return {
items: (res.body.topSongs?.song || []).map((song) =>
ssNormalize.song(
song,
apiClientProps.server,
args.context?.pathReplace,
args.context?.pathReplaceWith,
),
),
startIndex: 0,
totalRecordCount: res.body.topSongs?.song?.length || 0,
};
}
const res = await NavidromeController.getSongList({
apiClientProps,
query: {
artistIds: [query.artistId],
sortBy: SongListSort.PLAY_COUNT,
sortOrder: SortOrder.DESC,
startIndex: 0,
},
});
const songsWithPlayCount = orderBy(
res.items.filter((song) => song.playCount > 0),
['playCount', 'albumId', 'trackNumber'],
['desc', 'asc', 'asc'],
);
return {
items: songsWithPlayCount,
startIndex: 0,
totalRecordCount: res.totalRecordCount,
};
},
getUserInfo: SubsonicController.getUserInfo,
getUserList: async (args) => {
const { apiClientProps, query } = args;
+7
View File
@@ -73,6 +73,13 @@ export const queryKeys: Record<
return [serverId, 'albumArtists', 'detail'] as const;
},
favoriteSongs: (serverId: string, artistId?: string) => {
if (artistId) {
return [serverId, 'albumArtists', 'favoriteSongs', artistId] as const;
}
return [serverId, 'albumArtists', 'favoriteSongs'] as const;
},
infiniteList: (serverId: string, query?: AlbumArtistListQuery) => {
const { filter, pagination } = splitPaginatedQuery(query);
if (query && pagination) {
@@ -46,6 +46,7 @@ const ALBUM_LIST_SORT_MAPPING: Record<AlbumListSort, AlbumListSortType | undefin
[AlbumListSort.RECENTLY_PLAYED]: AlbumListSortType.RECENT,
[AlbumListSort.RELEASE_DATE]: AlbumListSortType.BY_YEAR,
[AlbumListSort.SONG_COUNT]: undefined,
[AlbumListSort.SORT_NAME]: AlbumListSortType.ALPHABETICAL_BY_NAME,
[AlbumListSort.YEAR]: AlbumListSortType.BY_YEAR,
};
@@ -778,6 +779,7 @@ export const SubsonicController: InternalControllerEndpoint = {
res.body.indexes?.index?.flatMap((idx) =>
idx.artist.map((artist) => ({
artist: artist.name,
coverArt: artist.coverArt,
id: artist.id.toString(),
isDir: true,
title: artist.name,
@@ -1359,7 +1361,7 @@ export const SubsonicController: InternalControllerEndpoint = {
throw new Error('Failed to get song list');
}
const allResults =
let allResults =
(res.body.starred?.song || []).map((song) =>
ssNormalize.song(
song,
@@ -1369,6 +1371,15 @@ export const SubsonicController: InternalControllerEndpoint = {
),
) || [];
const filterArtistIds = query.albumArtistIds || query.artistIds;
if (filterArtistIds?.length) {
const idSet = new Set(filterArtistIds);
allResults = allResults.filter((song) =>
song.albumArtists?.some((aa) => idSet.has(aa.id)),
);
}
return sortAndPaginate(allResults, {
limit: query.limit,
sortBy: query.sortBy,
@@ -1792,29 +1803,54 @@ export const SubsonicController: InternalControllerEndpoint = {
getTopSongs: async (args) => {
const { apiClientProps, context, query } = args;
const res = await ssApiClient(apiClientProps).getTopSongsList({
query: {
artist: query.artist,
count: query.limit,
},
});
const type = query.type === 'personal' ? 'personal' : 'community';
if (res.status !== 200) {
throw new Error('Failed to get top songs');
}
if (type === 'community') {
const res = await ssApiClient(apiClientProps).getTopSongsList({
query: {
artist: query.artist,
count: query.limit,
},
});
return {
items:
res.body.topSongs?.song?.map((song) =>
if (res.status !== 200) {
throw new Error('Failed to get top songs');
}
return {
items: (res.body.topSongs?.song || []).map((song) =>
ssNormalize.song(
song,
apiClientProps.server,
context?.pathReplace,
context?.pathReplaceWith,
),
) || [],
),
startIndex: 0,
totalRecordCount: res.body.topSongs?.song?.length || 0,
};
}
const res = await SubsonicController.getSongList({
apiClientProps,
query: {
artistIds: [query.artistId],
sortBy: SongListSort.PLAY_COUNT,
sortOrder: SortOrder.DESC,
startIndex: 0,
},
});
const songsWithPlayCount = orderBy(
res.items.filter((song) => song.playCount > 0),
['playCount', 'albumId', 'trackNumber'],
['desc', 'asc', 'asc'],
);
return {
items: songsWithPlayCount,
startIndex: 0,
totalRecordCount: res.body.topSongs?.song?.length || 0,
totalRecordCount: res.totalRecordCount,
};
},
getUserInfo: async (args) => {
+5 -1
View File
@@ -62,7 +62,11 @@ export const getOptimizedListCount = async <
query: pageQuery,
});
client.setQueryData(pageQueryKey, pageResult);
const keyContainsRandom = JSON.stringify(pageQueryKey).toLowerCase().includes('random');
if (!keyContainsRandom) {
client.setQueryData(pageQueryKey, pageResult);
}
return pageResult.totalRecordCount ?? 0;
};
+16
View File
@@ -10,7 +10,9 @@ import isElectron from 'is-electron';
import { lazy, Suspense, useEffect, useMemo, useRef, useState } from 'react';
import i18n from '/@/i18n/i18n';
import { openSettingsModal } from '/@/renderer/features/settings/utils/open-settings-modal';
import { WebAudioContext } from '/@/renderer/features/player/context/webaudio-context';
import { useCheckForUpdates } from '/@/renderer/hooks/use-check-for-updates';
import { useSyncSettingsToMain } from '/@/renderer/hooks/use-sync-settings-to-main';
import { AppRouter } from '/@/renderer/router/app-router';
import { useCssSettings, useHotkeySettings, useLanguage } from '/@/renderer/store';
@@ -38,6 +40,7 @@ export const App = () => {
const cssRef = useRef<HTMLStyleElement | null>(null);
useSyncSettingsToMain();
useCheckForUpdates();
const [webAudio, setWebAudio] = useState<WebAudio>();
@@ -77,6 +80,19 @@ export const App = () => {
}
}, [language]);
useEffect(() => {
if (isElectron()) {
window.api.utils.rendererOpenSettings(() => {
openSettingsModal();
});
return () => {
ipc?.removeAllListeners('renderer-open-settings');
};
}
return undefined;
}, []);
const notificationStyles = useMemo(
() => ({
root: {
@@ -119,6 +119,10 @@ const CarouselItem = ({ album }: CarouselItemProps) => {
<ItemImage
className={styles.albumImage}
containerClassName={styles.albumImageContainer}
enableDebounce={false}
enableViewport={false}
explicitStatus={album.explicitStatus}
fetchPriority="high"
id={album.imageId}
itemType={LibraryItem.ALBUM}
src={imageUrl}
@@ -116,6 +116,10 @@ const CarouselItem = ({ album }: CarouselItemProps) => {
<ItemImage
className={styles.albumImage}
containerClassName={styles.albumImageContainer}
enableDebounce={false}
enableViewport={false}
explicitStatus={album.explicitStatus}
fetchPriority="high"
id={album.imageId}
itemType={LibraryItem.ALBUM}
type="itemCard"
@@ -205,11 +205,70 @@ function BaseGridCarousel(props: GridCarouselProps) {
],
);
const swipeCooldownRef = useRef(0);
const dragStartTargetRef = useRef<HTMLElement | null>(null);
const swipeCooldownMs = 300;
const swipeThreshold = 50;
const swipeVelocityThreshold = 500;
const handleDragStart = useCallback((event: MouseEvent | PointerEvent | TouchEvent) => {
dragStartTargetRef.current = (event.target as HTMLElement) || null;
}, []);
const handleDragEnd = useCallback(
(
_event: MouseEvent | PointerEvent | TouchEvent,
info: { offset: { x: number }; velocity: { x: number } },
) => {
const startTarget = dragStartTargetRef.current;
if (startTarget) {
if (startTarget.closest('button, a, input, select, textarea, [role="button"]')) {
dragStartTargetRef.current = null;
return;
}
}
const now = Date.now();
const elapsed = now - swipeCooldownRef.current;
if (elapsed < swipeCooldownMs) {
dragStartTargetRef.current = null;
return;
}
const { offset, velocity } = info;
const absOffset = Math.abs(offset.x);
const absVelocity = Math.abs(velocity.x);
if (absOffset > swipeThreshold || absVelocity > swipeVelocityThreshold) {
swipeCooldownRef.current = now;
if (offset.x > 0 && !isPrevDisabled) {
handlePrevPage();
} else if (offset.x < 0 && !isNextDisabled) {
handleNextPage();
}
}
dragStartTargetRef.current = null;
},
[handleNextPage, handlePrevPage, isNextDisabled, isPrevDisabled],
);
return (
<div className={styles.gridCarousel} ref={ref}>
{cq.isCalculated && (
<>
<div className={styles.navigation}>
<motion.div
className={styles.navigation}
drag="x"
dragConstraints={{ left: 0, right: 0 }}
dragElastic={0}
dragMomentum={false}
dragPropagation={false}
onDragEnd={handleDragEnd}
onDragStart={handleDragStart}
>
{typeof title === 'string' ? (
<Group gap="xs" justify="space-between" w="100%">
<Group gap="xs">
@@ -269,7 +328,7 @@ function BaseGridCarousel(props: GridCarouselProps) {
</Group>
</div>
)}
</div>
</motion.div>
<AnimatePresence custom={currentPage} initial={false} mode="wait">
<motion.div
animate="animate"
@@ -10,8 +10,17 @@
.navigation {
display: flex;
flex-shrink: 0;
align-items: center;
justify-content: space-between;
width: 100%;
touch-action: pan-x;
cursor: grab;
user-select: none;
}
.navigation:active {
cursor: grabbing;
}
.custom-title-container {
@@ -19,6 +19,7 @@ import {
Album,
AlbumArtist,
Artist,
Genre,
LibraryItem,
Playlist,
ServerType,
@@ -30,7 +31,7 @@ interface ItemCardControlsProps {
controls?: ItemControls;
enableExpansion?: boolean;
internalState?: ItemListStateActions;
item: Album | AlbumArtist | Artist | Playlist | Song | undefined;
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined;
itemType: LibraryItem;
showRating: boolean;
type?: 'compact' | 'default' | 'poster';
@@ -60,7 +61,7 @@ const containerProps = {
const createPlayHandler =
(
controls: ItemControls | undefined,
item: Album | AlbumArtist | Artist | Playlist | Song | undefined,
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
internalState: ItemListStateActions | undefined,
itemType: LibraryItem,
playType: Play,
@@ -108,7 +109,7 @@ const createPlayHandler =
const createFavoriteHandler =
(
controls: ItemControls | undefined,
item: Album | AlbumArtist | Artist | Playlist | Song | undefined,
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
internalState: ItemListStateActions | undefined,
itemType: LibraryItem,
) =>
@@ -133,7 +134,7 @@ const createFavoriteHandler =
const createRatingChangeHandler =
(
controls: ItemControls | undefined,
item: Album | AlbumArtist | Artist | Playlist | Song | undefined,
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
internalState: ItemListStateActions | undefined,
itemType: LibraryItem,
) =>
@@ -165,7 +166,7 @@ const moreDoubleClickHandler = (e: MouseEvent<HTMLButtonElement>) => {
const createMoreHandler =
(
controls: ItemControls | undefined,
item: Album | AlbumArtist | Artist | Playlist | Song | undefined,
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
internalState: ItemListStateActions | undefined,
itemType: LibraryItem,
) =>
@@ -183,7 +184,7 @@ const createMoreHandler =
const createExpandHandler =
(
controls: ItemControls | undefined,
item: Album | AlbumArtist | Artist | Playlist | Song | undefined,
item: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
internalState: ItemListStateActions | undefined,
itemType: LibraryItem,
) =>
@@ -28,13 +28,16 @@
overflow: hidden;
color: inherit;
text-decoration: none;
border-radius: var(--theme-radius-md);
&::before {
position: absolute;
top: 0;
left: 0;
z-index: 5;
width: 100%;
height: 100%;
pointer-events: none;
content: '';
background-color: rgb(0 0 0);
opacity: 0;
@@ -112,6 +115,29 @@
border-radius: 50%;
}
.genre-placeholder {
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
padding: var(--theme-spacing-sm);
text-align: center;
}
.genre-placeholder-text {
display: -webkit-box;
width: 100%;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
-webkit-line-clamp: 2;
font-weight: 600;
line-height: 1.2;
-webkit-box-orient: vertical;
}
.detail-container {
display: flex;
flex-direction: column;
+152 -45
View File
@@ -28,6 +28,7 @@ import {
formatRating,
} from '/@/renderer/utils/format';
import { SEPARATOR_STRING } from '/@/shared/api/utils';
import { ExplicitIndicator } from '/@/shared/components/explicit-indicator/explicit-indicator';
import { Group } from '/@/shared/components/group/group';
import { Icon } from '/@/shared/components/icon/icon';
import { Separator } from '/@/shared/components/separator/separator';
@@ -38,25 +39,31 @@ import {
Album,
AlbumArtist,
Artist,
Genre,
LibraryItem,
Playlist,
Song,
} from '/@/shared/types/domain-types';
import { DragOperation, DragTarget } from '/@/shared/types/drag-and-drop';
import { stringToColor } from '/@/shared/utils/string-to-color';
export type DataRow = {
align?: 'center' | 'end' | 'start';
format: (data: Album | AlbumArtist | Artist | Playlist | Song) => null | ReactNode | string;
format: (
data: Album | AlbumArtist | Artist | Genre | Playlist | Song,
) => null | ReactNode | string;
id: string;
isMuted?: boolean;
};
export interface ItemCardProps {
controls?: ItemControls;
data: Album | AlbumArtist | Artist | Playlist | Song | undefined;
data: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined;
enableDrag?: boolean;
enableExpansion?: boolean;
enableMultiSelect?: boolean;
enableNavigation?: boolean;
imageAsLink?: boolean;
internalState?: ItemListStateActions;
isRound?: boolean;
itemType: LibraryItem;
@@ -70,7 +77,9 @@ export const ItemCard = ({
data,
enableDrag,
enableExpansion,
enableMultiSelect,
enableNavigation = true,
imageAsLink,
internalState,
isRound,
itemType,
@@ -90,7 +99,9 @@ export const ItemCard = ({
data={data}
enableDrag={enableDrag}
enableExpansion={enableExpansion}
enableMultiSelect={enableMultiSelect}
enableNavigation={enableNavigation}
imageAsLink={imageAsLink}
imageUrl={imageUrl}
internalState={internalState}
isRound={isRound}
@@ -107,7 +118,9 @@ export const ItemCard = ({
data={data}
enableDrag={enableDrag}
enableExpansion={enableExpansion}
enableMultiSelect={enableMultiSelect}
enableNavigation={enableNavigation}
imageAsLink={imageAsLink}
imageUrl={imageUrl}
internalState={internalState}
isRound={isRound}
@@ -126,6 +139,7 @@ export const ItemCard = ({
enableDrag={enableDrag}
enableExpansion={enableExpansion}
enableNavigation={enableNavigation}
imageAsLink={imageAsLink}
imageUrl={imageUrl}
internalState={internalState}
isRound={isRound}
@@ -142,6 +156,7 @@ export interface ItemCardDerivativeProps extends Omit<ItemCardProps, 'type'> {
controls?: ItemControls;
enableExpansion?: boolean;
enableNavigation?: boolean;
imageAsLink?: boolean;
imageUrl: string | undefined;
internalState?: ItemListStateActions;
rows: DataRow[];
@@ -153,7 +168,9 @@ const CompactItemCard = ({
data,
enableDrag,
enableExpansion,
enableMultiSelect,
enableNavigation,
imageAsLink,
internalState,
isRound,
itemType,
@@ -173,29 +190,29 @@ const CompactItemCard = ({
return [];
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
return draggedItems.map((item) => item.id);
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const getItem = useCallback(() => {
if (!data) {
return [];
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
return draggedItems;
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const onDragStart = useCallback(() => {
if (!data) {
return;
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
if (internalState) {
internalState.setDragging(draggedItems);
}
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const onDrop = useCallback(() => {
if (internalState) {
@@ -329,15 +346,31 @@ const CompactItemCard = ({
const imageContainerContent = (
<>
<ItemImage
className={clsx(styles.image, {
[styles.isRound]: isRound,
})}
id={data?.imageId}
itemType={itemType}
src={(data as Album | AlbumArtist | Playlist | Song)?.imageUrl}
type="itemCard"
/>
{itemType === LibraryItem.GENRE &&
data &&
'name' in data &&
typeof (data as Genre).name === 'string' ? (
<GenreImagePlaceholder
className={clsx(styles.image, styles.genrePlaceholder, {
[styles.isRound]: isRound,
})}
name={(data as Genre).name}
/>
) : (
<ItemImage
className={clsx(styles.image, {
[styles.isRound]: isRound,
})}
enableDebounce={false}
explicitStatus={
'explicitStatus' in data && data ? data.explicitStatus : null
}
id={data?.imageId}
itemType={itemType}
src={(data as Album | AlbumArtist | Playlist | Song)?.imageUrl}
type="itemCard"
/>
)}
{isFavorite && <div className={styles.favoriteBadge} />}
{hasRating && <div className={styles.ratingBadge}>{userRating}</div>}
<AnimatePresence>
@@ -380,7 +413,7 @@ const CompactItemCard = ({
})}
ref={ref}
>
{enableNavigation && navigationPath && !internalState ? (
{enableNavigation && navigationPath && (imageAsLink ?? !internalState) ? (
<Link
className={imageContainerClassName}
draggable={false}
@@ -441,6 +474,7 @@ const DefaultItemCard = ({
data,
enableExpansion,
enableNavigation,
imageAsLink,
internalState,
isRound,
itemType,
@@ -551,13 +585,29 @@ const DefaultItemCard = ({
const imageContainerContent = (
<>
<ItemImage
className={clsx(styles.image, { [styles.isRound]: isRound })}
id={data?.imageId}
itemType={itemType}
src={(data as Album | AlbumArtist | Playlist | Song)?.imageUrl}
type="itemCard"
/>
{itemType === LibraryItem.GENRE &&
data &&
'name' in data &&
typeof (data as Genre).name === 'string' ? (
<GenreImagePlaceholder
className={clsx(styles.image, styles.genrePlaceholder, {
[styles.isRound]: isRound,
})}
name={(data as Genre).name}
/>
) : (
<ItemImage
className={clsx(styles.image, { [styles.isRound]: isRound })}
enableDebounce={false}
explicitStatus={
'explicitStatus' in data && data ? data.explicitStatus : null
}
id={data?.imageId}
itemType={itemType}
src={(data as Album | AlbumArtist | Playlist | Song)?.imageUrl}
type="itemCard"
/>
)}
{isFavorite && <div className={styles.favoriteBadge} />}
{hasRating && <div className={styles.ratingBadge}>{userRating}</div>}
<AnimatePresence>
@@ -581,7 +631,7 @@ const DefaultItemCard = ({
[styles.selected]: isSelected,
})}
>
{enableNavigation && navigationPath && !internalState ? (
{enableNavigation && navigationPath && (imageAsLink ?? !internalState) ? (
<Link
className={imageContainerClassName}
draggable={false}
@@ -657,7 +707,9 @@ const PosterItemCard = ({
data,
enableDrag,
enableExpansion,
enableMultiSelect,
enableNavigation,
imageAsLink,
internalState,
isRound,
itemType,
@@ -677,29 +729,29 @@ const PosterItemCard = ({
return [];
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
return draggedItems.map((item) => item.id);
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const getItem = useCallback(() => {
if (!data) {
return [];
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
return draggedItems;
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const onDragStart = useCallback(() => {
if (!data) {
return;
}
const draggedItems = getDraggedItems(data, internalState);
const draggedItems = getDraggedItems(data, internalState, enableMultiSelect !== false);
if (internalState) {
internalState.setDragging(draggedItems);
}
}, [data, internalState]);
}, [data, internalState, enableMultiSelect]);
const onDrop = useCallback(() => {
if (internalState) {
@@ -833,13 +885,29 @@ const PosterItemCard = ({
const imageContainerContent = (
<>
<ItemImage
className={clsx(styles.image, { [styles.isRound]: isRound })}
id={(data as { imageId: string })?.imageId}
itemType={itemType}
src={(data as { imageUrl: string })?.imageUrl}
type="itemCard"
/>
{itemType === LibraryItem.GENRE &&
data &&
'name' in data &&
typeof (data as Genre).name === 'string' ? (
<GenreImagePlaceholder
className={clsx(styles.image, styles.genrePlaceholder, {
[styles.isRound]: isRound,
})}
name={(data as Genre).name}
/>
) : (
<ItemImage
className={clsx(styles.image, { [styles.isRound]: isRound })}
enableDebounce={false}
explicitStatus={
'explicitStatus' in data && data ? data.explicitStatus : null
}
id={(data as { imageId: string })?.imageId}
itemType={itemType}
src={(data as { imageUrl: string })?.imageUrl}
type="itemCard"
/>
)}
{isFavorite && <div className={styles.favoriteBadge} />}
{hasRating && <div className={styles.ratingBadge}>{userRating}</div>}
<AnimatePresence>
@@ -866,7 +934,7 @@ const PosterItemCard = ({
})}
ref={ref}
>
{enableNavigation && navigationPath && !internalState ? (
{enableNavigation && navigationPath && (imageAsLink ?? !internalState) ? (
<Link
className={imageContainerClassName}
draggable={false}
@@ -952,6 +1020,7 @@ export const getDataRows = (type?: 'compact' | 'default' | 'poster'): DataRow[]
return [
{
format: (data) => {
const explicitStatus = 'explicitStatus' in data ? data.explicitStatus : null;
if ('name' in data && data.name) {
if ('id' in data && data.id) {
if ('_itemType' in data) {
@@ -964,6 +1033,7 @@ export const getDataRows = (type?: 'compact' | 'default' | 'poster'): DataRow[]
albumId: data.id,
})}
>
<ExplicitIndicator explicitStatus={explicitStatus} />
{data.name}
</Link>
);
@@ -977,6 +1047,18 @@ export const getDataRows = (type?: 'compact' | 'default' | 'poster'): DataRow[]
albumArtistId: data.id,
},
)}
>
<ExplicitIndicator explicitStatus={explicitStatus} />
{data.name}
</Link>
);
case LibraryItem.GENRE:
return (
<Link
state={{ item: data }}
to={generatePath(AppRoute.LIBRARY_GENRES_DETAIL, {
genreId: data.id,
})}
>
{data.name}
</Link>
@@ -993,11 +1075,21 @@ export const getDataRows = (type?: 'compact' | 'default' | 'poster'): DataRow[]
</Link>
);
default:
return data.name;
return (
<>
<ExplicitIndicator explicitStatus={explicitStatus} />
{data.name}
</>
);
}
}
}
return data.name;
return (
<>
<ExplicitIndicator explicitStatus={explicitStatus} />
{data.name}
</>
);
}
return '';
},
@@ -1209,7 +1301,7 @@ export const getDataRowsCount = () => {
return getDataRows().length;
};
const getImageUrl = (data: Album | AlbumArtist | Artist | Playlist | Song | undefined) => {
const getImageUrl = (data: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined) => {
if (data && 'imageUrl' in data) {
return data.imageUrl || undefined;
}
@@ -1217,8 +1309,23 @@ const getImageUrl = (data: Album | AlbumArtist | Artist | Playlist | Song | unde
return undefined;
};
const GenreImagePlaceholder = ({ className, name }: { className?: string; name: string }) => {
const { color, isLight } = useMemo(() => stringToColor(name), [name]);
return (
<div
className={className}
style={{
backgroundColor: color,
color: isLight ? '#000' : '#fff',
}}
>
<span className={styles.genrePlaceholderText}>{name}</span>
</div>
);
};
const getItemNavigationPath = (
data: Album | AlbumArtist | Artist | Playlist | Song | undefined,
data: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined,
itemType: LibraryItem,
): null | string => {
if (!data || !('id' in data) || !data.id) {
@@ -1237,7 +1344,7 @@ const ItemCardRow = memo(
row,
type,
}: {
data: Album | AlbumArtist | Artist | Playlist | Song | undefined;
data: Album | AlbumArtist | Artist | Genre | Playlist | Song | undefined;
index: number;
row: DataRow;
type?: 'compact' | 'default' | 'poster';
@@ -1,84 +0,0 @@
.container {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: auto minmax(0, 1fr);
gap: var(--theme-spacing-sm);
width: 100%;
height: 100%;
padding: var(--theme-spacing-sm);
container-type: inline-size;
background: var(--theme-colors-surface);
border-radius: var(--theme-radius-md);
@container (min-width: 500px) {
grid-template-columns: minmax(0, 1fr);
}
}
.image-container {
position: relative;
display: none;
height: 100%;
min-height: 0;
aspect-ratio: 1/1;
&::before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
content: '';
background-color: rgb(0 0 0);
opacity: 0;
transition: all 0.2s ease-in-out;
}
&:hover {
&::before {
opacity: 0.6;
}
}
@container (min-width: 500px) {
display: block;
}
}
.image {
aspect-ratio: 1/1;
}
.metadata-container {
display: flex;
flex-direction: column;
gap: var(--theme-spacing-sm);
width: 100%;
height: 100%;
padding: var(--theme-spacing-xs) 0;
overflow: hidden;
}
.metadata-container .header {
display: flex;
align-items: center;
justify-content: space-between;
font-weight: 600;
line-height: 1.2;
}
.metadata-container .header .title {
max-width: 70%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.metadata-container .content {
display: flex;
flex-direction: column;
gap: var(--theme-spacing-xs);
}
.metadata-container .content .tags {
}
@@ -1,146 +0,0 @@
// import { AnimatePresence } from 'motion/react';
// import { MouseEvent, useMemo, useState } from 'react';
// import { Link } from 'react-router';
// import styles from './item-detail.module.css';
// import { ItemCardControls } from '/@/renderer/components/item-card/item-card-controls';
// import { useFastAverageColor } from '/@/renderer/hooks';
// import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
// import { Badge } from '/@/shared/components/badge/badge';
// import { Divider } from '/@/shared/components/divider/divider';
// import { Group } from '/@/shared/components/group/group';
// import { Image } from '/@/shared/components/image/image';
// import { Rating } from '/@/shared/components/rating/rating';
// import { Text } from '/@/shared/components/text/text';
// import {
// Album,
// AlbumArtist,
// Artist,
// LibraryItem,
// Playlist,
// Song,
// } from '/@/shared/types/domain-types';
// import { stringToColor } from '/@/shared/utils/string-to-color';
// interface ItemDetailProps {
// data: Album | AlbumArtist | Artist | Playlist | Song | undefined;
// itemHeight: number;
// itemType: LibraryItem;
// onClick?: (e: MouseEvent<HTMLDivElement>, item: unknown, itemType: LibraryItem) => void;
// withControls?: boolean;
// }
// export const ItemDetail = ({ data, itemType, onClick, withControls }: ItemDetailProps) => {
// const imageUrl = getImageUrl(data);
// const [showControls, setShowControls] = useState(false);
// const { background } = useFastAverageColor({
// algorithm: 'simple',
// src: imageUrl,
// srcLoaded: false,
// });
// // const tags = [...(data?.genres ?? [])];
// const tags = useMemo(() => {
// if (!data) {
// return [];
// }
// const items: {
// color?: string;
// id: string;
// isLight?: boolean;
// itemType: LibraryItem;
// name: string;
// }[] = [];
// if ('albumArtists' in data && Array.isArray(data.albumArtists)) {
// data.albumArtists?.forEach((tag: { id: string; name: string }) => {
// items.push({ id: tag.id, itemType: LibraryItem.ALBUM_ARTIST, name: tag.name });
// });
// }
// if ('genres' in data && Array.isArray(data.genres)) {
// data.genres?.forEach((tag: { id: string; itemType: LibraryItem; name: string }) => {
// const { color, isLight } = stringToColor(tag.name);
// items.push({ ...tag, color, isLight });
// });
// }
// // if ('tags' in data && typeof data.tags === 'object') {
// // console.log('data.tags :>> ', data.tags);
// // Object.entries(data.tags).forEach(([key, value]) => {
// // items.push({ id: key, itemType: LibraryItem.TAG, name: value });
// // });
// // }
// return items;
// }, [data]);
// return (
// <div
// className={styles.container}
// onClick={(e) => onClick?.(e, data, itemType)}
// style={{ backgroundColor: background }}
// >
// <div
// className={styles.imageContainer}
// onMouseEnter={() => withControls && setShowControls(true)}
// onMouseLeave={() => withControls && setShowControls(false)}
// >
// <Image alt={data?.name} src={imageUrl} />
// <AnimatePresence>
// {withControls && showControls && <ItemCardControls type="compact" />}
// </AnimatePresence>
// </div>
// <div className={styles.metadataContainer}>
// <div className={styles.header}>
// <Text className={styles.title} component={Link} isLink size="lg" weight={500}>
// {data?.name}
// </Text>
// <Group>
// {data && 'userRating' in data && (
// <Rating size="xs" value={data?.userRating ?? 0} />
// )}
// {data && 'userFavorite' in data && (
// <ActionIcon
// icon="favorite"
// iconProps={{
// fill: data?.userFavorite ? 'primary' : 'default',
// }}
// size="xs"
// />
// )}
// </Group>
// </div>
// <Divider />
// <div className={styles.content}>
// <Group className={styles.tags} gap="xs">
// {tags.map((tag) => (
// <Badge
// key={tag.id}
// style={{
// backgroundColor: tag.color,
// color: tag.isLight ? 'black' : 'white',
// }}
// >
// {tag.name}
// </Badge>
// ))}
// </Group>
// </div>
// </div>
// </div>
// );
// };
// const getImageUrl = (data: Album | AlbumArtist | Artist | Playlist | Song | undefined) => {
// if (data && 'imageUrl' in data) {
// return data.imageUrl || undefined;
// }
// return undefined;
// };
@@ -7,11 +7,12 @@ import {
getServerById,
useAuthStore,
useCurrentServerId,
useGeneralSettings,
useImageRes,
useSettingsStore,
} from '/@/renderer/store';
import { BaseImage, ImageProps } from '/@/shared/components/image/image';
import { LibraryItem } from '/@/shared/types/domain-types';
import { ExplicitStatus, LibraryItem } from '/@/shared/types/domain-types';
const getUnloaderIcon = (itemType: LibraryItem) => {
switch (itemType) {
@@ -34,6 +35,7 @@ const getUnloaderIcon = (itemType: LibraryItem) => {
const BaseItemImage = (
props: Omit<ImageProps, 'id' | 'src'> & {
explicitStatus?: ExplicitStatus | null;
id?: null | string;
itemType: LibraryItem;
serverId?: null | string;
@@ -41,7 +43,8 @@ const BaseItemImage = (
type?: keyof z.infer<typeof GeneralSettingsSchema>['imageRes'];
},
) => {
const { serverId, src, ...rest } = props;
const { explicitStatus, serverId, src, ...rest } = props;
const { blurExplicitImages } = useGeneralSettings();
const imageUrl = useItemImageUrl({
id: props.id,
@@ -51,8 +54,11 @@ const BaseItemImage = (
type: props.type,
});
const isExplicit = blurExplicitImages && explicitStatus === ExplicitStatus.EXPLICIT;
return (
<BaseImage
isExplicit={isExplicit}
src={imageUrl}
unloaderIcon={getUnloaderIcon(props.itemType)}
{...rest}
@@ -2,7 +2,15 @@ import {
ItemListStateActions,
ItemListStateItemWithRequiredProperties,
} from '/@/renderer/components/item-list/helpers/item-list-state';
import { Album, AlbumArtist, Artist, Folder, Playlist, Song } from '/@/shared/types/domain-types';
import {
Album,
AlbumArtist,
Artist,
Folder,
Genre,
Playlist,
Song,
} from '/@/shared/types/domain-types';
/**
* Type guard to assert that an item has the required properties for dragging
@@ -34,7 +42,7 @@ const hasRequiredDragProperties = (
* @returns Array of items that should be dragged (with original values, asserting id, itemType, and _serverId)
*/
export const getDraggedItems = (
data: Album | AlbumArtist | Artist | Folder | Playlist | Song | undefined,
data: Album | AlbumArtist | Artist | Folder | Genre | Playlist | Song | undefined,
internalState?: ItemListStateActions,
updateSelection: boolean = true,
): ItemListStateItemWithRequiredProperties[] => {
@@ -6,10 +6,13 @@ import { ItemListStateItemWithRequiredProperties } from '/@/renderer/components/
import { DefaultItemControlProps, ItemControls } from '/@/renderer/components/item-list/types';
import { ContextMenuController } from '/@/renderer/features/context-menu/context-menu-controller';
import { usePlayer } from '/@/renderer/features/player/context/player-context';
import { useSetFavorite } from '/@/renderer/features/shared/hooks/use-set-favorite';
import { useSetRating } from '/@/renderer/features/shared/hooks/use-set-rating';
import { LibraryItem, QueueSong, Song } from '/@/shared/types/domain-types';
import { Play, TableColumn } from '/@/shared/types/types';
interface UseDefaultItemListControlsArgs {
enableMultiSelect?: boolean;
onColumnReordered?: (
columnIdFrom: TableColumn,
columnIdTo: TableColumn,
@@ -33,12 +36,14 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
const player = usePlayer();
const navigate = useNavigate();
const navigateRef = useRef(navigate);
const setFavorite = useSetFavorite();
const setRating = useSetRating();
useEffect(() => {
navigateRef.current = navigate;
}, [navigate]);
const { onColumnReordered, onColumnResized, overrides } = args || {};
const { enableMultiSelect = true, onColumnReordered, onColumnResized, overrides } = args || {};
const controls: ItemControls = useMemo(() => {
return {
@@ -187,9 +192,10 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
onColumnReordered?.(columnIdFrom, columnIdTo, edge);
},
onColumnResized: ({ columnId, width }: { columnId: TableColumn; width: number }) => {
onColumnResized?.(columnId, width);
},
onColumnResized: onColumnResized
? ({ columnId, width }: { columnId: TableColumn; width: number }) =>
onColumnResized(columnId, width)
: undefined,
onDoubleClick: ({ internalState, item, itemType, meta }: DefaultItemControlProps) => {
if (!item || !internalState) {
@@ -236,11 +242,13 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
}
const playType = (meta?.playType as Play) || Play.NOW;
const singleSongOnly = meta?.singleSongOnly === true;
// For NEXT, LAST, NEXT_SHUFFLE, and LAST_SHUFFLE, only add the clicked song
// For NOW and SHUFFLE, add a range of songs around the clicked song
// For single-song actions (e.g. image play button), or NEXT/LAST/..., only add the clicked song
// For row double-click with NOW/SHUFFLE, add a range of songs around the clicked song
let songsToAdd: Song[];
if (
singleSongOnly ||
playType === Play.NEXT ||
playType === Play.LAST ||
playType === Play.NEXT_SHUFFLE ||
@@ -301,7 +309,7 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
return;
}
player.setFavorite(item._serverId, [item.id], apiItemType, favorite);
setFavorite(item._serverId, [item.id], apiItemType, favorite);
},
onMore: ({ event, internalState, item, itemType }: DefaultItemControlProps) => {
@@ -329,6 +337,13 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
if (!rowId) return;
if (!enableMultiSelect) {
return ContextMenuController.call({
cmd: { items: [item] as any[], type: actualItemType as any },
event,
});
}
// If none selected, select this item
if (internalState.getSelected().length === 0) {
internalState.setSelected([item]);
@@ -398,12 +413,20 @@ export const useDefaultItemListControls = (args?: UseDefaultItemListControlsArgs
newRating = 0;
}
player.setRating(item._serverId, [item.id], apiItemType, newRating);
setRating(item._serverId, [item.id], apiItemType, newRating);
},
...overrides,
};
}, [onColumnReordered, onColumnResized, overrides, player]);
}, [
enableMultiSelect,
overrides,
onColumnReordered,
onColumnResized,
player,
setFavorite,
setRating,
]);
return controls;
};
@@ -1,4 +1,5 @@
import {
useMutation,
useQuery,
useQueryClient,
useSuspenseQuery,
@@ -11,6 +12,7 @@ import { queryKeys } from '/@/renderer/api/query-keys';
import { useListContext } from '/@/renderer/context/list-context';
import { eventEmitter } from '/@/renderer/events/event-emitter';
import { UserFavoriteEventPayload, UserRatingEventPayload } from '/@/renderer/events/events';
import { getListRefreshMutationKey } from '/@/renderer/features/shared/components/list-refresh-button';
import { LibraryItem } from '/@/shared/types/domain-types';
export const getListQueryKeyName = (itemType: LibraryItem): string => {
@@ -293,10 +295,10 @@ export const useItemListInfiniteLoader = ({
[onRangeChangedBase],
);
const refresh = useCallback(
async (force?: boolean) => {
const refreshMutation = useMutation({
mutationFn: async (force?: boolean) => {
// Invalidate all queries to ensure fresh data
await queryClient.invalidateQueries();
queryClient.invalidateQueries();
// Reset the infinite list data
const currentData = queryClient.getQueryData<{
@@ -320,7 +322,7 @@ export const useItemListInfiniteLoader = ({
}
// Add a delay to make the refresh visually clear
await new Promise((resolve) => setTimeout(resolve, 150));
// await new Promise((resolve) => setTimeout(resolve, 150));
// Determine which page to refetch based on current visible range
let pageToFetch = 0;
@@ -344,7 +346,12 @@ export const useItemListInfiniteLoader = ({
stopIndex,
});
},
[queryClient, itemsPerPage, onRangeChangedBase, dataQueryKey, totalItemCount, fetchPage],
mutationKey: getListRefreshMutationKey(eventKey),
});
const refresh = useCallback(
async (force?: boolean) => refreshMutation.mutateAsync(force),
[refreshMutation],
);
const updateItems = useCallback(
@@ -376,7 +383,7 @@ export const useItemListInfiniteLoader = ({
return;
}
return refresh(true);
refreshMutation.mutate(true);
};
eventEmitter.on('ITEM_LIST_REFRESH', handleRefresh);
@@ -384,7 +391,7 @@ export const useItemListInfiniteLoader = ({
return () => {
eventEmitter.off('ITEM_LIST_REFRESH', handleRefresh);
};
}, [eventKey, refresh]);
}, [eventKey, refreshMutation]);
useEffect(() => {
const handleFavorite = (payload: UserFavoriteEventPayload) => {
@@ -1,4 +1,5 @@
import {
useMutation,
useQuery,
useQueryClient,
useSuspenseQuery,
@@ -10,6 +11,7 @@ import { queryKeys } from '/@/renderer/api/query-keys';
import { useListContext } from '/@/renderer/context/list-context';
import { eventEmitter } from '/@/renderer/events/event-emitter';
import { UserFavoriteEventPayload, UserRatingEventPayload } from '/@/renderer/events/events';
import { getListRefreshMutationKey } from '/@/renderer/features/shared/components/list-refresh-button';
import { LibraryItem } from '/@/shared/types/domain-types';
const getQueryKeyName = (itemType: LibraryItem): string => {
@@ -83,7 +85,7 @@ export const useItemListPaginatedLoader = ({
[itemsPerPage, startIndex, query],
);
const { data, refetch: queryRefetch } = useQuery({
const { data } = useQuery({
gcTime: 1000 * 15,
placeholderData: { items: getInitialData(itemsPerPage) },
queryFn: async ({ signal }) => {
@@ -98,22 +100,20 @@ export const useItemListPaginatedLoader = ({
staleTime: 1000 * 15,
});
const refresh = useCallback(
async (force?: boolean) => {
const refreshMutation = useMutation({
mutationFn: async (force?: boolean) => {
const queryKey = queryKeys[getQueryKeyName(itemType)].list(serverId, queryParams);
await queryClient.invalidateQueries();
if (force) {
queryClient.setQueryData(queryKey, {
items: getInitialData(itemsPerPage),
});
}
return queryRefetch();
await queryClient.invalidateQueries();
},
[queryClient, queryRefetch, queryParams, serverId, itemType, itemsPerPage],
);
mutationKey: getListRefreshMutationKey(eventKey ?? 'paginated'),
});
const updateItems = useCallback(
(indexes: number[], value: object) => {
@@ -153,7 +153,7 @@ export const useItemListPaginatedLoader = ({
return;
}
return refresh(true);
refreshMutation.mutate(true);
};
const handleFavorite = (payload: UserFavoriteEventPayload) => {
@@ -220,7 +220,7 @@ export const useItemListPaginatedLoader = ({
eventEmitter.off('USER_FAVORITE', handleFavorite);
eventEmitter.off('USER_RATING', handleRating);
};
}, [data, eventKey, itemType, serverId, refresh, updateItems]);
}, [data, eventKey, itemType, refreshMutation, serverId, updateItems]);
return { data: data?.items || [], pageCount, totalItemCount };
};
@@ -109,6 +109,7 @@ export interface ItemListStateItem {
_itemType: LibraryItem;
_serverId: string;
id: string;
imageId: null | string;
}
export type ItemListStateItemWithRequiredProperties = Record<string, unknown> & {
@@ -26,6 +26,10 @@ const getDefaultRowsForItemType = (
return [rowMap.get('name')].filter(
(row): row is NonNullable<typeof row> => row !== undefined,
);
case LibraryItem.GENRE:
return [rowMap.get('name')].filter(
(row): row is NonNullable<typeof row> => row !== undefined,
);
case LibraryItem.PLAYLIST:
return [rowMap.get('name')].filter(
(row): row is NonNullable<typeof row> => row !== undefined,
@@ -53,6 +57,7 @@ const getRowIdFromTableColumn = (tableColumn: TableColumn): null | string => {
[TableColumn.CHANNELS]: null,
[TableColumn.CODEC]: null,
[TableColumn.COMMENT]: null,
[TableColumn.COMPOSER]: null,
[TableColumn.DATE_ADDED]: 'createdAt',
[TableColumn.DISC_NUMBER]: null,
[TableColumn.DURATION]: 'duration',
@@ -7,14 +7,19 @@ import { ItemListKey, TableColumn } from '/@/shared/types/types';
interface UseItemListColumnReorderProps {
itemListKey: ItemListKey;
tableKey?: 'detail' | 'main';
}
export const useItemListColumnReorder = ({ itemListKey }: UseItemListColumnReorderProps) => {
export const useItemListColumnReorder = ({
itemListKey,
tableKey = 'main',
}: UseItemListColumnReorderProps) => {
const { setList } = useSettingsStoreActions();
const handleColumnReordered = useCallback(
(columnIdFrom: TableColumn, columnIdTo: TableColumn, edge: Edge | null) => {
const columns = useSettingsStore.getState().lists[itemListKey]?.table.columns;
const list = useSettingsStore.getState().lists[itemListKey];
const columns = tableKey === 'detail' ? list?.detail?.columns : list?.table?.columns;
if (!columns) {
return;
@@ -83,13 +88,20 @@ export const useItemListColumnReorder = ({ itemListKey }: UseItemListColumnReord
// Insert the column at the new position
newColumns.splice(newIndex, 0, updatedMovedColumn);
setList(itemListKey, {
table: {
columns: newColumns,
},
});
if (tableKey === 'detail') {
type SetListData = Parameters<
ReturnType<typeof useSettingsStoreActions>['setList']
>[1];
setList(itemListKey, { detail: { columns: newColumns } } as SetListData);
} else {
setList(itemListKey, {
table: {
columns: newColumns,
},
});
}
},
[itemListKey, setList],
[itemListKey, setList, tableKey],
);
return { handleColumnReordered };
@@ -5,11 +5,18 @@ import { ItemListKey, TableColumn } from '/@/shared/types/types';
interface UseItemListColumnResizeProps {
itemListKey: ItemListKey;
tableKey?: 'detail' | 'main';
}
export const useItemListColumnResize = ({ itemListKey }: UseItemListColumnResizeProps) => {
export const useItemListColumnResize = ({
itemListKey,
tableKey = 'main',
}: UseItemListColumnResizeProps) => {
const { setList } = useSettingsStoreActions();
const columns = useSettingsStore((state) => state.lists[itemListKey]?.table.columns);
const columns = useSettingsStore((state) => {
const list = state.lists[itemListKey];
return tableKey === 'detail' ? list?.detail?.columns : list?.table?.columns;
});
const handleColumnResized = useCallback(
(columnId: TableColumn, width: number) => {
@@ -19,13 +26,20 @@ export const useItemListColumnResize = ({ itemListKey }: UseItemListColumnResize
column.id === columnId ? { ...column, width } : column,
);
setList(itemListKey, {
table: {
columns: updatedColumns,
},
});
if (tableKey === 'detail') {
type SetListData = Parameters<
ReturnType<typeof useSettingsStoreActions>['setList']
>[1];
setList(itemListKey, { detail: { columns: updatedColumns } } as SetListData);
} else {
setList(itemListKey, {
table: {
columns: updatedColumns,
},
});
}
},
[columns, itemListKey, setList],
[columns, itemListKey, setList, tableKey],
);
return { handleColumnResized };
@@ -1,22 +1,30 @@
import { useMemo } from 'react';
import { useSearchParams } from 'react-router';
import { useCallback, useMemo } from 'react';
import { useLocation, useNavigationType } from 'react-router';
import { parseIntParam, setSearchParam } from '/@/renderer/utils/query-params';
import { useScrollStore } from '/@/renderer/store/scroll.store';
interface UseItemListScrollPersistProps {
enabled: boolean;
}
export const useItemListScrollPersist = ({ enabled }: UseItemListScrollPersistProps) => {
const [searchParams, setSearchParams] = useSearchParams();
const location = useLocation();
const navigationType = useNavigationType();
const setOffset = useScrollStore((s) => s.setOffset);
const getOffset = useScrollStore((s) => s.getOffset);
const scrollOffset = useMemo(() => parseIntParam(searchParams, 'scrollOffset'), [searchParams]);
const scrollOffset = useMemo(() => {
if (navigationType !== 'POP') return undefined;
return getOffset(location.key);
}, [getOffset, location.key, navigationType]);
const handleOnScrollEnd = (offset: number) => {
if (!enabled) return;
setSearchParams((prev) => setSearchParam(prev, 'scrollOffset', offset), { replace: true });
};
const handleOnScrollEnd = useCallback(
(offset: number) => {
if (!enabled) return;
setOffset(location.key, offset);
},
[enabled, location.key, setOffset],
);
return { handleOnScrollEnd, scrollOffset };
};
@@ -0,0 +1,38 @@
import { ItemDetailListCellProps } from './types';
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
import { LibraryItem } from '/@/shared/types/domain-types';
export const ActionsColumn = ({ controls, internalState, song }: ItemDetailListCellProps) => {
const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
event.stopPropagation();
event.preventDefault();
const index = internalState?.findItemIndex(song.id) ?? -1;
controls?.onMore?.({
event,
index,
internalState: internalState ?? undefined,
item: song,
itemType: LibraryItem.SONG,
});
};
const handleDoubleClick = (event: React.MouseEvent<HTMLButtonElement>) => {
event.stopPropagation();
event.preventDefault();
};
return (
<ActionIcon
icon="ellipsisHorizontal"
iconProps={{
color: 'muted',
size: 'xs',
}}
onClick={handleClick}
onDoubleClick={handleDoubleClick}
size="xs"
variant="subtle"
/>
);
};
@@ -0,0 +1,23 @@
import { ItemDetailListCellProps } from './types';
import {
JOINED_ARTISTS_MUTED_PROPS,
JoinedArtists,
} from '/@/renderer/features/albums/components/joined-artists';
export const AlbumArtistColumn = ({ isRowHovered, song }: ItemDetailListCellProps) => {
const name = song.albumArtistName?.trim() ?? '';
const hasArtists = name.length > 0 || (song.albumArtists?.length ?? 0) > 0;
if (!hasArtists) return <>&nbsp;</>;
return (
<JoinedArtists
artistName={song.albumArtistName ?? ''}
artists={song.albumArtists ?? []}
linkProps={JOINED_ARTISTS_MUTED_PROPS.linkProps}
readOnly={!isRowHovered}
rootTextProps={JOINED_ARTISTS_MUTED_PROPS.rootTextProps}
/>
);
};
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const AlbumColumn = ({ song }: ItemDetailListCellProps) => song.album ?? <>&nbsp;</>;
@@ -0,0 +1,23 @@
import { ItemDetailListCellProps } from './types';
import {
JOINED_ARTISTS_MUTED_PROPS,
JoinedArtists,
} from '/@/renderer/features/albums/components/joined-artists';
export const ArtistColumn = ({ isRowHovered, song }: ItemDetailListCellProps) => {
const name = song.artistName?.trim() ?? '';
const hasArtists = name.length > 0 || (song.artists?.length ?? 0) > 0;
if (!hasArtists) return <>&nbsp;</>;
return (
<JoinedArtists
artistName={song.artistName ?? ''}
artists={song.artists ?? []}
linkProps={JOINED_ARTISTS_MUTED_PROPS.linkProps}
readOnly={!isRowHovered}
rootTextProps={JOINED_ARTISTS_MUTED_PROPS.rootTextProps}
/>
);
};
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const BitDepthColumn = ({ song }: ItemDetailListCellProps) => song.bitDepth;
@@ -0,0 +1,4 @@
import { ItemDetailListCellProps } from './types';
export const BitRateColumn = ({ song }: ItemDetailListCellProps) =>
song.bitRate != null ? `${song.bitRate} kbps` : <>&nbsp;</>;
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const BpmColumn = ({ song }: ItemDetailListCellProps) => song.bpm ?? <>&nbsp;</>;
@@ -0,0 +1,4 @@
import { ItemDetailListCellProps } from './types';
export const ChannelsColumn = ({ song }: ItemDetailListCellProps) =>
song.channels != null ? String(song.channels) : <>&nbsp;</>;
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const CodecColumn = ({ song }: ItemDetailListCellProps) => song.container ?? <>&nbsp;</>;
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const CommentColumn = ({ song }: ItemDetailListCellProps) => song.comment ?? <>&nbsp;</>;
@@ -0,0 +1,7 @@
import { ItemDetailListCellProps } from './types';
export const ComposerColumn = ({ song }: ItemDetailListCellProps) => {
const composers = song.participants?.composer;
if (!composers?.length) return <>&nbsp;</>;
return composers.map((a) => a.name).join(', ');
};
@@ -0,0 +1,6 @@
import { ItemDetailListCellProps } from './types';
import { formatDateAbsolute } from '/@/renderer/utils/format';
export const DateAddedColumn = ({ song }: ItemDetailListCellProps) =>
song.createdAt ? formatDateAbsolute(song.createdAt) : <>&nbsp;</>;
@@ -0,0 +1,11 @@
import { ItemDetailListCellProps } from './types';
interface DefaultColumnProps extends ItemDetailListCellProps {
columnId: string;
}
export const DefaultColumn = ({ columnId, song }: DefaultColumnProps) => {
const raw = (song as Record<string, unknown>)[columnId];
if (raw === undefined || raw === null || typeof raw === 'object') return <>&nbsp;</>;
return String(raw);
};
@@ -0,0 +1,3 @@
import { ItemDetailListCellProps } from './types';
export const DiscNumberColumn = ({ song }: ItemDetailListCellProps) => String(song.discNumber ?? 1);
@@ -0,0 +1,5 @@
import formatDuration from 'format-duration';
import { ItemDetailListCellProps } from './types';
export const DurationColumn = ({ song }: ItemDetailListCellProps) => formatDuration(song.duration);
@@ -0,0 +1,54 @@
import { ItemDetailListCellProps } from './types';
import { useIsMutatingCreateFavorite } from '/@/renderer/features/shared/mutations/create-favorite-mutation';
import { useIsMutatingDeleteFavorite } from '/@/renderer/features/shared/mutations/delete-favorite-mutation';
import { ActionIcon } from '/@/shared/components/action-icon/action-icon';
import { LibraryItem } from '/@/shared/types/domain-types';
export const FavoriteColumn = ({
controls,
internalState,
isMutatingFavorite,
onFavoriteClick,
song,
}: ItemDetailListCellProps) => {
const isMutatingCreateFavorite = useIsMutatingCreateFavorite();
const isMutatingDeleteFavorite = useIsMutatingDeleteFavorite();
const isMutating = isMutatingFavorite ?? (isMutatingCreateFavorite || isMutatingDeleteFavorite);
const isFavorite = song.userFavorite ?? false;
return (
<ActionIcon
disabled={isMutating}
icon="favorite"
iconProps={{
color: isFavorite ? 'primary' : 'muted',
fill: isFavorite ? 'primary' : undefined,
size: 'xs',
}}
onClick={(event) => {
event.stopPropagation();
event.preventDefault();
const index = internalState?.findItemIndex(song.id) ?? -1;
if (controls?.onFavorite) {
controls.onFavorite({
event,
favorite: !isFavorite,
index,
internalState: internalState ?? undefined,
item: song,
itemType: LibraryItem.SONG,
});
} else {
onFavoriteClick?.(song);
}
}}
onDoubleClick={(event) => {
event.stopPropagation();
event.preventDefault();
}}
size="xs"
variant="subtle"
/>
);
};
@@ -0,0 +1,12 @@
.group {
flex-wrap: nowrap;
gap: var(--theme-spacing-sm) var(--theme-spacing-xs);
min-width: 0;
padding: var(--theme-spacing-xs) 0;
overflow: hidden;
}
.group a {
cursor: pointer;
user-select: none;
}
@@ -0,0 +1,46 @@
import { useMemo } from 'react';
import { generatePath, Link } from 'react-router';
import styles from './genre-badge-column.module.css';
import { ItemDetailListCellProps } from './types';
import { AppRoute } from '/@/renderer/router/routes';
import { Badge } from '/@/shared/components/badge/badge';
import { Group } from '/@/shared/components/group/group';
import { stringToColor } from '/@/shared/utils/string-to-color';
const MAX_GENRES = 4;
export const GenreBadgeColumn = ({ song }: ItemDetailListCellProps) => {
const genres = song.genres;
const genresWithStyle = useMemo(() => {
if (!genres) return [];
return genres.slice(0, MAX_GENRES).map((genre) => {
const { color, isLight } = stringToColor(genre.name);
const path = generatePath(AppRoute.LIBRARY_GENRES_DETAIL, { genreId: genre.id });
return { ...genre, color, isLight, path };
});
}, [genres]);
if (!genresWithStyle.length) return <>&nbsp;</>;
return (
<Group className={styles.group} wrap="nowrap">
{genresWithStyle.map((genre) => (
<Badge
component={Link}
key={genre.id}
state={{ item: genre }}
style={{
backgroundColor: genre.color,
color: genre.isLight ? 'black' : 'white',
}}
to={genre.path}
>
{genre.name}
</Badge>
))}
</Group>
);
};
@@ -0,0 +1,40 @@
import { Fragment } from 'react';
import { generatePath, Link } from 'react-router';
import { ItemDetailListCellProps } from '/@/renderer/components/item-list/item-detail-list/columns/types';
import { AppRoute } from '/@/renderer/router/routes';
import { Text } from '/@/shared/components/text/text';
const TEXT_PROPS = { isMuted: true, isNoSelect: true, size: 'sm' as const } as const;
export const GenreColumn = ({ isRowHovered, song }: ItemDetailListCellProps) => {
const genres = song.genres ?? [];
if (!genres.length) return <>&nbsp;</>;
return (
<>
{genres.map((genre, index) => (
<Fragment key={genre.id}>
{isRowHovered ? (
<Text
component={Link}
isLink
state={{ item: genre }}
to={generatePath(AppRoute.LIBRARY_GENRES_DETAIL, {
genreId: genre.id,
})}
{...TEXT_PROPS}
>
{genre.name}
</Text>
) : (
<Text component="span" {...TEXT_PROPS}>
{genre.name}
</Text>
)}
{index < genres.length - 1 && ', '}
</Fragment>
))}
</>
);
};
@@ -0,0 +1,50 @@
.image-container {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
}
.compact-container {
flex: 1 1 0;
width: 100%;
min-width: 0;
height: 100%;
min-height: 0;
max-height: 100%;
aspect-ratio: unset;
padding-top: var(--theme-spacing-xs);
padding-bottom: var(--theme-spacing-xs);
overflow: hidden;
border-radius: var(--theme-radius-md);
}
.play-button-overlay {
position: absolute;
top: 50%;
left: 50%;
z-index: 10;
opacity: 0.6;
transform: translate(-50%, -50%);
transition: opacity 0.2s ease-in-out;
}
.play-button-overlay:hover {
opacity: 1;
}
.play-button-overlay button {
width: 24px;
height: 24px;
}
.compact-image {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
border-radius: var(--theme-radius-md);
}
@@ -0,0 +1,71 @@
import clsx from 'clsx';
import { useState } from 'react';
import styles from './image-column.module.css';
import { ItemDetailListCellProps } from './types';
import { ItemImage } from '/@/renderer/components/item-image/item-image';
import { PlayButton } from '/@/renderer/features/shared/components/play-button';
import {
LONG_PRESS_PLAY_BEHAVIOR,
PlayTooltip,
} from '/@/renderer/features/shared/components/play-button-group';
import { usePlayButtonBehavior } from '/@/renderer/store';
import { LibraryItem } from '/@/shared/types/domain-types';
import { Play } from '/@/shared/types/types';
export const ImageColumn = ({
controls,
internalState,
rowIndex = 0,
song,
}: ItemDetailListCellProps) => {
const playButtonBehavior = usePlayButtonBehavior();
const [isHovered, setIsHovered] = useState(false);
const handlePlay = (playType: Play) => {
if (!song || !controls?.onDoubleClick) {
return;
}
controls.onDoubleClick({
event: null,
index: rowIndex,
internalState,
item: song,
itemType: LibraryItem.SONG,
meta: { playType, singleSongOnly: true },
});
};
return (
<div
className={styles.imageContainer}
onMouseEnter={() => setIsHovered(true)}
onMouseLeave={() => setIsHovered(false)}
>
<ItemImage
className={styles.compactImage}
containerClassName={styles.compactContainer}
explicitStatus={song.explicitStatus}
id={song.imageId}
itemType={LibraryItem.SONG}
serverId={song._serverId}
type="table"
/>
{isHovered && (
<div className={clsx(styles.playButtonOverlay)}>
<PlayTooltip disabled={false} type={playButtonBehavior}>
<PlayButton
fill
onClick={() => handlePlay(playButtonBehavior)}
onLongPress={() =>
handlePlay(LONG_PRESS_PLAY_BEHAVIOR[playButtonBehavior])
}
/>
</PlayTooltip>
</div>
)}
</div>
);
};
@@ -0,0 +1,127 @@
import React, { type ReactNode } from 'react';
import type { ItemDetailListCellProps } from './types';
import { ActionsColumn } from './actions-column';
import { AlbumArtistColumn } from './album-artist-column';
import { AlbumColumn } from './album-column';
import { ArtistColumn } from './artist-column';
import { BitDepthColumn } from './bit-depth-column';
import { BitRateColumn } from './bit-rate-column';
import { BpmColumn } from './bpm-column';
import { ChannelsColumn } from './channels-column';
import { CodecColumn } from './codec-column';
import { CommentColumn } from './comment-column';
import { ComposerColumn } from './composer-column';
import { DateAddedColumn } from './date-added-column';
import { DefaultColumn } from './default-column';
import { DiscNumberColumn } from './disc-number-column';
import { DurationColumn } from './duration-column';
import { FavoriteColumn } from './favorite-column';
import { GenreBadgeColumn } from './genre-badge-column';
import { GenreColumn } from './genre-column';
import { ImageColumn } from './image-column';
import { LastPlayedColumn } from './last-played-column';
import { PathColumn } from './path-column';
import { PlayCountColumn } from './play-count-column';
import { RatingColumn } from './rating-column';
import { ReleaseDateColumn } from './release-date-column';
import { RowIndexColumn } from './row-index-column';
import { SampleRateColumn } from './sample-rate-column';
import { SizeColumn } from './size-column';
import { TitleArtistColumn } from './title-artist-column';
import { TitleColumn } from './title-column';
import { TitleCombinedColumn } from './title-combined-column';
import { TrackNumberColumn } from './track-number-column';
import { YearColumn } from './year-column';
import { TableColumn } from '/@/shared/types/types';
type CellComponent = (props: ItemDetailListCellProps) => ReactNode;
const COLUMN_MAP: Partial<Record<TableColumn, CellComponent>> = {
[TableColumn.ACTIONS]: ActionsColumn,
[TableColumn.ALBUM]: AlbumColumn,
[TableColumn.ALBUM_ARTIST]: AlbumArtistColumn,
[TableColumn.ARTIST]: ArtistColumn,
[TableColumn.BIT_DEPTH]: BitDepthColumn,
[TableColumn.BIT_RATE]: BitRateColumn,
[TableColumn.BPM]: BpmColumn,
[TableColumn.CHANNELS]: ChannelsColumn,
[TableColumn.CODEC]: CodecColumn,
[TableColumn.COMMENT]: CommentColumn,
[TableColumn.COMPOSER]: ComposerColumn,
[TableColumn.DATE_ADDED]: DateAddedColumn,
[TableColumn.DISC_NUMBER]: DiscNumberColumn,
[TableColumn.DURATION]: DurationColumn,
[TableColumn.GENRE]: GenreColumn,
[TableColumn.GENRE_BADGE]: GenreBadgeColumn,
[TableColumn.IMAGE]: ImageColumn,
[TableColumn.LAST_PLAYED]: LastPlayedColumn,
[TableColumn.PATH]: PathColumn,
[TableColumn.PLAY_COUNT]: PlayCountColumn,
[TableColumn.RELEASE_DATE]: ReleaseDateColumn,
[TableColumn.ROW_INDEX]: RowIndexColumn,
[TableColumn.SAMPLE_RATE]: SampleRateColumn,
[TableColumn.SIZE]: SizeColumn,
[TableColumn.TITLE]: TitleColumn,
[TableColumn.TITLE_ARTIST]: TitleArtistColumn,
[TableColumn.TITLE_COMBINED]: TitleCombinedColumn,
[TableColumn.TRACK_NUMBER]: TrackNumberColumn,
[TableColumn.USER_FAVORITE]: FavoriteColumn,
[TableColumn.USER_RATING]: RatingColumn,
[TableColumn.YEAR]: YearColumn,
};
export type DetailListCellComponentProps = ItemDetailListCellProps & { columnId?: string };
export function getDetailListCellComponent(
columnId: string | TableColumn,
): (props: DetailListCellComponentProps) => ReactNode {
const Component = COLUMN_MAP[columnId as TableColumn];
if (Component) {
return Component as (props: DetailListCellComponentProps) => ReactNode;
}
return (props: DetailListCellComponentProps) =>
React.createElement(DefaultColumn, {
columnId: props.columnId ?? (columnId as string),
song: props.song,
});
}
export type { ItemDetailListCellProps } from './types';
export {
ActionsColumn,
AlbumArtistColumn,
AlbumColumn,
ArtistColumn,
BitDepthColumn,
BitRateColumn,
BpmColumn,
ChannelsColumn,
CodecColumn,
CommentColumn,
ComposerColumn,
DateAddedColumn,
DefaultColumn,
DiscNumberColumn,
DurationColumn,
FavoriteColumn,
GenreBadgeColumn,
GenreColumn,
ImageColumn,
LastPlayedColumn,
PathColumn,
PlayCountColumn,
RatingColumn,
ReleaseDateColumn,
RowIndexColumn,
SampleRateColumn,
SizeColumn,
TitleArtistColumn,
TitleColumn,
TitleCombinedColumn,
TrackNumberColumn,
YearColumn,
};

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