Compare commits

...

147 Commits

Author SHA1 Message Date
663a3a58d8 fix(deps): update dependency solid-js to v1.9.10 2026-01-08 17:50:13 +00:00
82b7b24ef7 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2026-01-06 00:01:50 +01:00
732bbc17f4 chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2026-01-06 00:01:48 +01:00
29da42d9ff chore(i18n): Translated using Weblate (Italian)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2026-01-06 00:01:47 +01:00
269d0cd638 chore(i18n): Translated using Weblate (Russian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2026-01-04 05:01:48 +00:00
69e15165e3 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.3% (150 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2026-01-03 00:02:04 +01:00
Fin
7663a12ee4 chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2026-01-03 00:02:03 +01:00
dcda0b3561 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2026-01-03 00:02:02 +01:00
5f82fd9e5a chore: Update README with Warp details 2026-01-02 14:59:50 +09:00
af11fa31d3 chore(i18n): Translated using Weblate (Lithuanian)
Currently translated at 78.4% (363 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lt/
2026-01-01 12:02:01 +01:00
a049d618e5 chore(i18n): Translated using Weblate (Vietnamese)
Currently translated at 98.7% (457 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/vi/
2026-01-01 12:02:01 +01:00
41bc03a737 Revert "fix macos build (?)"
This reverts commit 2ab6eff761.
2025-12-30 22:23:14 +02:00
2ab6eff761 fix macos build (?) 2025-12-30 22:17:18 +02:00
6c881a265a fix tests 2025-12-30 22:02:23 +02:00
2b15f0a87c chore(i18n): Translated using Weblate (Persian)
Currently translated at 99.5% (461 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-30 10:00:31 +01:00
1d6ab2a82b update eslint config 2025-12-29 17:04:25 +02:00
24e82e69d1 chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-12-28 21:00:38 +00:00
b079d411de feat: apply new icon (#4215) 2025-12-29 01:39:53 +09:00
e04c8eb99f chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-26 12:00:20 +00:00
3a6b793948 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-24 02:00:23 +01:00
f5361de78d chore(i18n): Translated using Weblate (Dutch)
Currently translated at 98.4% (456 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/nl/
2025-12-24 02:00:21 +01:00
e0759afc70 chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-12-24 02:00:20 +01:00
700e4ba38e chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-12-22 19:00:35 +00:00
cc82b232ce chore(i18n): Translated using Weblate (Hindi)
Currently translated at 85.0% (394 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-12-22 19:00:34 +00:00
c1f422e325 chore(i18n): Translated using Weblate (Persian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-12-22 19:00:33 +00:00
ffaaba29d7 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-12-22 19:00:31 +00:00
9cad841efb chore(i18n): Translated using Weblate (Bosnian)
Currently translated at 27.8% (129 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/bs/
2025-12-22 19:00:30 +00:00
324ab09b5d chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-12-22 19:00:28 +00:00
0b5e9e923b chore(i18n): Translated using Weblate (Serbian)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sr/
2025-12-22 19:00:27 +00:00
f2308e567d chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-22 19:00:26 +00:00
1466c6451b chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-12-22 19:00:23 +00:00
598c708e92 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (462 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-22 19:00:22 +00:00
1f903b4f75 chore(i18n): Translated using Weblate (Russian)
Currently translated at 98.2% (455 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-12-22 19:00:20 +00:00
7951b17877 chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 98.7% (457 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-21 18:00:36 +00:00
2a39b7315b chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (463 of 463 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-21 18:00:35 +00:00
8b35a60997 chore: add svg version of icon 2025-12-20 21:58:50 +09:00
696ff0fc7a Improved compatibility 2025-12-20 21:57:47 +09:00
29736f480d fix(deps): update dependency semver to v7.7.3 (#4183)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:58:59 +09:00
f4251f3e1d fix(deps): update dependency happy-dom to v20.0.11 (#4182)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:50:59 +09:00
ae981396e5 fix(deps): update dependency @hono/zod-validator to v0.7.6 (#4178)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:50:39 +09:00
ca0b86bee7 fix(deps): update dependency color to v5.0.3 (#4179)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:30 +09:00
26ca1ec456 fix(deps): update dependency es-hangul to v2.3.8 (#4180)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:22 +09:00
017e4c2e4d chore(deps): update dependency vite-plugin-solid to v2.11.10 (#4174)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:49:01 +09:00
a89658e8c3 chore(deps): update dependency utf-8-validate to v6.0.6 (#4173)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:40 +09:00
99be7c2629 chore(deps): update dependency typescript to v5.9.3 (#4171)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:33 +09:00
200da8dfaa chore(deps): update dependency electron-vite to v4.0.1 (#4170)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:27 +09:00
9a218a6516 fix(deps): update dependency @hono/zod-openapi to v1.2.0 (#4177)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-20 18:48:20 +09:00
933ee0ef75 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.8% (150 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-20 04:00:34 +00:00
8dd7bcdf97 chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-12-20 04:00:33 +00:00
d5c7e0475b chore: extend startingPages with Mixed for you entry (#3994) 2025-12-19 16:50:07 +09:00
a5af233683 chore(deps): update dependency vite to v7.3.0 (#3869)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:38:40 +09:00
27e3796622 "feat(api-server): add /api/v1/queue/next endpoint (#4117)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-19 16:17:30 +09:00
5843e85c4d fix(deps): update dependency happy-dom to v20.0.2 [security] (#4168)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:14:13 +09:00
92a943c755 Fixes 2 sync and UI bugs in music-together plugin (#4071)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-19 16:13:56 +09:00
58a19cdaa2 feat(api-server): Add HTTPS support and custom certificate configuration (#3874) 2025-12-19 16:10:12 +09:00
b1d2112bfc fix(deps): update dependency zod to v4.2.1 (#3870)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:37 +09:00
d229bc7f00 fix(deps): update dependency @hono/node-server to v1.19.7 (#3862)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:31 +09:00
033a4d3122 chore(deps): update dependency ts-morph to v27.0.2 (#4167)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:09:24 +09:00
8d252b6375 chore(deps): update dependency discord-api-types to v0.38.37 (#3866)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:06:49 +09:00
9453c0ca8f chore(deps): update dependency @electron/universal to v3.0.2 (#4166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:06:41 +09:00
ce073b30d9 fix(deps): update dependency happy-dom to v20 [security] (#4021)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:05:43 +09:00
8f63e5e3a3 chore(deps): update dependency playwright to v1.55.1 [security] (#4026)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 16:00:12 +09:00
23853b66c6 chore(deps-dev): bump glob from 11.0.3 to 11.1.0 (#4092)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-19 15:59:56 +09:00
62a322f10d fix(deps): update dependency virtua to v0.48.2 (#3871)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:47 +09:00
9627dd2202 chore(deps): update dependency electron to v38.7.2 (#3867)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:39 +09:00
3383926faa chore(deps): update dependency glob to v11.1.0 [security] (#4091)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:59:30 +09:00
8179664064 fix(deps): update dependency hono to v4.10.3 [security] (#3880)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-12-19 15:58:25 +09:00
1a5e417f4f chore(i18n): Translated using Weblate (Swedish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sv/
2025-12-19 02:00:21 +00:00
ceb6da9bc9 chore(i18n): Translated using Weblate (Quechua)
Currently translated at 1.5% (7 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/qu/
2025-12-19 02:00:20 +00:00
fdafb2dd07 chore(i18n): Translated using Weblate (Nepali)
Currently translated at 93.4% (427 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ne/
2025-12-19 02:00:19 +00:00
c3700e0e59 chore(i18n): Added translation using Weblate (Quechua) 2025-12-18 02:42:35 +01:00
3f1c26f82d chore(i18n): Translated using Weblate (German)
Currently translated at 99.5% (455 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-12-17 21:00:21 +01:00
bb7816815c chore(i18n): Translated using Weblate (Catalan)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ca/
2025-12-17 21:00:19 +01:00
a1773fd992 chore(i18n): Translated using Weblate (Turkish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/tr/
2025-12-13 21:00:19 +00:00
1671bea942 chore(i18n): Added translation using Weblate (Kurdish (Northern)) 2025-12-11 15:44:04 +01:00
Adi
141ae03208 chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-09 14:02:30 +01:00
55c1012cda chore(i18n): Translated using Weblate (French)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2025-12-09 14:02:30 +01:00
612c5c89c9 chore(i18n): Translated using Weblate (Portuguese)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2025-12-09 14:02:29 +01:00
01bbf7e3f7 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 88.4% (404 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-12-09 14:02:29 +01:00
6a7b7d88de chore(i18n): Translated using Weblate (Georgian)
Currently translated at 32.8% (150 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-09 14:02:29 +01:00
d06896450c chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-12-08 06:00:18 +01:00
4a59afc505 chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-12-08 06:00:18 +01:00
7b0d63b6cf chore(i18n): Translated using Weblate (Georgian)
Currently translated at 31.0% (142 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-12-06 19:00:19 +01:00
c734ffe70f chore(i18n): Translated using Weblate (Spanish)
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2025-12-04 23:00:20 +01:00
3d0ad69ddb chore(i18n): Translated using Weblate (Albanian)
Currently translated at 5.0% (23 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sq/
2025-12-04 23:00:18 +01:00
6c4ae0dbfa chore(i18n): Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (457 of 457 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2025-12-03 01:00:18 +01:00
f7aaa3377a chore(i18n): Translated using Weblate (Slovak)
Currently translated at 88.3% (403 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-12-01 22:00:36 +01:00
ab1a0478cf chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-12-01 22:00:35 +01:00
127f56905c fix(album-color-theme): improve theming consistency across UI elements (#4109)
Co-authored-by: 최민우 <chaeminu0711@gmail.com>
2025-12-01 16:25:14 +09:00
8d448c667f chore(i18n): Translated using Weblate (Urdu)
Currently translated at 25.0% (114 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2025-11-29 08:01:53 +01:00
e00f33eb2d chore(i18n): Translated using Weblate (Slovak)
Currently translated at 84.4% (385 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-29 08:01:52 +01:00
8100804ced chore(i18n): Translated using Weblate (Hebrew)
Currently translated at 46.9% (214 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/he/
2025-11-28 06:02:01 +01:00
4fba3ffd92 fix(downloader): update youtubei.js and remove player_id (#4069) 2025-11-26 21:20:58 +02:00
bef8252314 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 84.4% (385 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-22 23:51:18 +01:00
a96cc5aa8a chore(i18n): Translated using Weblate (German)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-11-22 23:51:16 +01:00
b7e43e3125 chore(i18n): Translated using Weblate (Galician)
Currently translated at 23.2% (106 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/gl/
2025-11-21 21:51:18 +00:00
2d059eb353 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.6% (395 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-11-20 13:51:30 +01:00
bce0f8ad17 chore(i18n): Translated using Weblate (Hindi)
Currently translated at 86.6% (395 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hi/
2025-11-20 13:51:22 +01:00
e04a084be9 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 33.3% (152 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-11-20 13:51:21 +01:00
J
e94aa5c513 chore(i18n): Translated using Weblate (Estonian)
Currently translated at 33.3% (152 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-11-20 13:51:20 +01:00
fa2862ca9a chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 16.4% (75 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-11-17 18:51:19 +01:00
e764c69f2b chore(i18n): Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt_BR/
2025-11-15 14:51:17 +01:00
b5052d85ad chore(i18n): Translated using Weblate (Slovak)
Currently translated at 81.1% (370 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-08 09:51:16 +00:00
e4fa850871 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:55 +01:00
db4be4ae25 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:54 +01:00
55680531c5 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 77.6% (354 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-06 14:51:19 +01:00
ae4557d32c chore(i18n): Translated using Weblate (Czech)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2025-11-06 14:51:14 +01:00
f5f65e73ca chore(i18n): Translated using Weblate (Slovak)
Currently translated at 25.2% (115 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-05 08:51:18 +01:00
e9f4958252 chore(i18n): Translated using Weblate (Slovak)
Currently translated at 25.0% (114 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/sk/
2025-11-04 04:51:18 +01:00
00626bc37d chore(i18n): Translated using Weblate (Urdu)
Currently translated at 24.3% (111 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ur/
2025-11-04 04:51:13 +01:00
8e36d77245 chore(i18n): Translated using Weblate (Chinese (Traditional Han script))
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2025-11-02 20:51:14 +00:00
8f6d16ae89 chore(i18n): Translated using Weblate (Korean)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-11-02 20:51:12 +00:00
2d1d0257ef chore(i18n): Added translation using Weblate (Belarusian) 2025-10-31 19:41:59 +01:00
7b2543847a chore(i18n): Translated using Weblate (Malay)
Currently translated at 70.3% (321 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-31 19:41:57 +01:00
00af45ddee chore(i18n): Translated using Weblate (Malay)
Currently translated at 70.3% (321 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-31 19:41:57 +01:00
786961c33b chore(i18n): Translated using Weblate (Estonian)
Currently translated at 25.2% (115 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/et/
2025-10-29 13:50:16 +01:00
8dc69cd9ac chore(i18n): Translated using Weblate (Ukrainian)
Currently translated at 96.0% (438 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2025-10-29 13:50:15 +01:00
d8e0bd903e chore(i18n): Translated using Weblate (Azerbaijani)
Currently translated at 16.0% (73 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/az/
2025-10-27 16:02:51 +00:00
4f31d47097 chore(i18n): Translated using Weblate (Georgian)
Currently translated at 20.1% (92 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ka/
2025-10-23 06:02:44 +00:00
cdb1ccec76 chore(i18n): Translated using Weblate (Persian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fa/
2025-10-21 21:04:16 +00:00
4998fa1e28 Merge pull request #4019 from BigicecreamTaken/update-electron-version 2025-10-19 00:49:43 +03:00
f912598416 chore(deps): Update Electron to version 38.2.0 2025-10-18 11:33:47 +03:00
1f063c41d4 chore(i18n): Translated using Weblate (Croatian)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hr/
2025-10-16 17:07:27 +00:00
7b4a4b81ae chore(i18n): Translated using Weblate (Hungarian)
Currently translated at 95.8% (437 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/hu/
2025-10-16 17:07:26 +00:00
b7750ad50e chore(i18n): Translated using Weblate (Arabic)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ar/
2025-10-15 15:02:48 +02:00
886f2ae3b2 chore(i18n): Update translation files
Updated by "Cleanup translation files" hook in Weblate.

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2025-10-14 09:08:02 +02:00
4c2d3253e7 chore(i18n): Translated using Weblate (Tamil)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ta/
2025-10-14 09:07:55 +02:00
c03d3af289 chore(i18n): Translated using Weblate (Russian)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2025-10-14 09:07:53 +02:00
b006466eab chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-10-14 09:07:53 +02:00
39a859703d chore(i18n): Translated using Weblate (Polish)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2025-10-14 09:07:52 +02:00
d1e9f5272f chore(i18n): Translated using Weblate (Korean)
Currently translated at 99.3% (453 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2025-10-14 09:07:51 +02:00
2c16e68799 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-10-14 09:07:50 +02:00
d7381f1847 chore(i18n): Translated using Weblate (Japanese)
Currently translated at 100.0% (456 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2025-10-14 09:07:50 +02:00
97cee6ca54 chore(i18n): Translated using Weblate (German)
Currently translated at 99.7% (455 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2025-10-14 09:07:49 +02:00
b2c339a879 Update lv.json 2025-10-14 00:06:13 +03:00
7192ad74bc fix conflict 2 2025-10-13 15:07:49 +09:00
022125755b fix conflict 2025-10-13 15:02:44 +09:00
b40851e92a chore(i18n): Translated using Weblate (Latvian)
Currently translated at 66.8% (305 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/lv/
2025-10-13 05:07:26 +00:00
1590f2e309 chore(i18n): Translated using Weblate (Malay)
Currently translated at 68.8% (314 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ms/
2025-10-13 05:07:24 +00:00
b8e0d53ef3 chore: improve readability 2 2025-10-12 14:34:36 +09:00
ffa61687bf chore: improve readability 2025-10-12 14:28:29 +09:00
4f716d8e0b feat(workflows): skip pr workflows on draft prs 2025-10-12 03:51:17 +03:00
9932316be1 remove typing for mdui icons 2025-10-12 03:17:42 +03:00
86a4a1b41e proper support for tree-shakeable Lit components 2025-10-12 03:16:35 +03:00
c6c71bea9f chore(i18n): Translated using Weblate (Malayalam)
Currently translated at 11.6% (53 of 456 strings)

Translation: pear-devs/pear-desktop/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ml/
2025-10-11 23:07:34 +02:00
cbc6449621 fix preload 2025-10-11 18:18:36 +03:00
9b8daac28c Add Material UI 3 component library (#3606)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2025-10-11 00:11:38 +03:00
183 changed files with 7182 additions and 4014 deletions

View File

@ -1,5 +1,5 @@
name: Bug Report name: Bug Report
description: Report a YouTube Music bug description: Report a Pear Desktop bug
title: "[Bug]: " title: "[Bug]: "
labels: "bug :beetle:" labels: "bug :beetle:"
body: body:
@ -8,17 +8,17 @@ body:
label: Preflight Checklist label: Preflight Checklist
description: Please ensure you've completed all of the following. description: Please ensure you've completed all of the following.
options: options:
- label: I use the latest version of YouTube Music (Application). - label: I use the latest version of Pear Desktop (Application).
required: true required: true
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a bug report that matches the one I want to file, without success. - label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a bug report that matches the one I want to file, without success.
required: true required: true
- label: I understand that **th-ch/youtube-music has NO affiliation with Google or YouTube** - label: I understand that **pear-devs/pear-desktop has NO affiliation with Google or YouTube**
required: true required: true
- type: input - type: input
attributes: attributes:
label: YouTube Music (Application) Version label: Pear Desktop (Application) Version
description: | description: |
What version of the YouTube Music Application are you using? What version of the Pear Desktop Application are you using?
Note: Please check if this issue is reproducible with the latest stable release. Note: Please check if this issue is reproducible with the latest stable release.
placeholder: 2.0.0 placeholder: 2.0.0
@ -28,7 +28,7 @@ body:
attributes: attributes:
label: Checklists label: Checklists
options: options:
- label: I use the portable version of the YouTube Music Application. - label: I use the portable version of the Pear Desktop Application.
- label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com). - label: I can reproduce this issue in the [official version of (WEB) YTM](https://music.youtube.com).
- type: dropdown - type: dropdown
attributes: attributes:
@ -60,8 +60,8 @@ body:
required: true required: true
- type: input - type: input
attributes: attributes:
label: Last Known Working YouTube Music (Application) version label: Last Known Working Pear Desktop (Application) version
description: (If applicable) What is the last version of YouTube Music this worked in? description: (If applicable) What is the last version of Pear Desktop this worked in?
placeholder: 1.20.0 placeholder: 1.20.0
- type: textarea - type: textarea
attributes: attributes:
@ -92,4 +92,4 @@ body:
- type: textarea - type: textarea
attributes: attributes:
label: Additional Information label: Additional Information
description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here. description: If your problem needs further explanation, or if the issue you're seeing cannot be reproduced in a gist, please add more information here.

View File

@ -1,5 +1,5 @@
name: Feature Request name: Feature Request
description: Suggest an idea for YouTube Music description: Suggest an idea for Pear Desktop
title: "[Feature Request]: " title: "[Feature Request]: "
labels: "enhancement :sparkles:" labels: "enhancement :sparkles:"
body: body:
@ -8,9 +8,9 @@ body:
label: Preflight Checklist label: Preflight Checklist
description: Please ensure you've completed all of the following. description: Please ensure you've completed all of the following.
options: options:
- label: I use the latest version of YouTube Music (Application). - label: I use the latest version of Pear Desktop (Application).
required: true required: true
- label: I have searched the [issue tracker](https://github.com/th-ch/youtube-music/issues) for a feature request that matches the one I want to file, without success. - label: I have searched the [issue tracker](https://github.com/pear-devs/pear-desktop/issues) for a feature request that matches the one I want to file, without success.
required: true required: true
- type: textarea - type: textarea
attributes: attributes:

View File

@ -1,4 +1,4 @@
name: Build YouTube Music name: Build Pear Desktop
on: on:
push: push:
@ -10,7 +10,8 @@ env:
jobs: jobs:
build: build:
name: Build YouTube Music if: github.event.pull_request.draft == false
name: Build Pear Desktop
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: true fail-fast: true
@ -44,20 +45,20 @@ jobs:
# Only vite build without release if it is a fork, or it is a pull-request # Only vite build without release if it is a fork, or it is a pull-request
- name: Vite Build - name: Vite Build
if: github.repository == 'th-ch/youtube-music' && github.event_name == 'pull_request' if: github.repository == 'pear-devs/pear-desktop' && github.event_name == 'pull_request'
run: | run: |
pnpm build pnpm build
# Build and release if it's the main repository and is not pull-request # Build and release if it's the main repository and is not pull-request
- name: Build and release on Mac - name: Build and release on Mac
if: startsWith(matrix.os, 'macOS') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') if: startsWith(matrix.os, 'macOS') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
pnpm release:mac pnpm release:mac
- name: Build and release on Linux - name: Build and release on Linux
if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') if: startsWith(matrix.os, 'ubuntu') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
@ -71,7 +72,7 @@ jobs:
pnpm release:linux pnpm release:linux
- name: Build and release on Windows - name: Build and release on Windows
if: startsWith(matrix.os, 'windows') && (github.repository == 'th-ch/youtube-music' && github.event_name != 'pull_request') if: startsWith(matrix.os, 'windows') && (github.repository == 'pear-devs/pear-desktop' && github.event_name != 'pull_request')
env: env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: | run: |
@ -87,8 +88,8 @@ jobs:
release: release:
runs-on: ubuntu-latest runs-on: ubuntu-latest
name: Release YouTube Music name: Release Pear Desktop
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master' if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
needs: build needs: build
steps: steps:
- uses: actions/checkout@v5 - uses: actions/checkout@v5
@ -149,11 +150,11 @@ jobs:
name: ${{ env.VERSION_TAG }} name: ${{ env.VERSION_TAG }}
replacebody: true replacebody: true
body: | body: |
See [changelog](https://github.com/th-ch/youtube-music/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff. See [changelog](https://github.com/pear-devs/pear-desktop/blob/master/changelog.md#${{ env.CHANGELOG_ANCHOR }}) for the list of updates and the full diff.
Thanks to all contributors! 🏅 Thanks to all contributors! 🏅
(Note for Windows: `YouTube-Music-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `YouTube-Music-${{ env.VERSION_TAG }}.exe` is a portable version) (Note for Windows: `Pear-Desktop-Web-Setup-${{ env.VERSION_TAG }}.exe` is an installer, and `Pear-Desktop-${{ env.VERSION_TAG }}.exe` is a portable version)
- name: Update changelog - name: Update changelog
if: ${{ env.VERSION_HASH == '' }} if: ${{ env.VERSION_HASH == '' }}

View File

@ -12,6 +12,7 @@ permissions:
jobs: jobs:
dependency-review: dependency-review:
if: github.event.pull_request.draft == false
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: "Checkout Repository" - name: "Checkout Repository"

View File

@ -9,6 +9,7 @@ env:
jobs: jobs:
check-permissions: check-permissions:
if: github.event.pull_request.draft == false
name: Check if user has write access name: Check if user has write access
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:

View File

@ -7,6 +7,7 @@ env:
jobs: jobs:
eslint: eslint:
if: github.event.pull_request.draft == false
name: runner / eslint name: runner / eslint
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:

View File

@ -22,9 +22,9 @@ jobs:
- name: Submit package to Windows Package Manager Community Repository - name: Submit package to Windows Package Manager Community Repository
uses: vedantmgoyal2009/winget-releaser@main uses: vedantmgoyal2009/winget-releaser@main
with: with:
identifier: th-ch.YouTubeMusic identifier: pear-devs.PearDesktop
installers-regex: '^YouTube-Music-Web-Setup-[\d\.]+\.exe$' installers-regex: '^Pear-Desktop-Web-Setup-[\d\.]+\.exe$'
version: ${{ env.WINGET_TAG_NAME }} version: ${{ env.WINGET_TAG_NAME }}
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }} release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
token: ${{ secrets.WINGET_ACC_TOKEN }} token: ${{ secrets.WINGET_ACC_TOKEN }}
fork-user: youtube-music-winget fork-user: pear-desktop-winget

View File

@ -1,3 +1,17 @@
<div align="center" markdown="1">
<sup>Special thanks to:</sup>
<br>
<br>
<a href="https://go.warp.dev/pear-desktop">
<img alt="Warp sponsorship" width="400" src="https://github.com/user-attachments/assets/8307ea56-e872-494a-8a9c-de0e296a06ed" />
</a>
### [Warp, built for coding with multiple AI agents](https://go.warp.dev/pear-desktop)
[Available for macOS, Linux, & Windows](https://go.warp.dev/pear-desktop)<br>
</div>
<hr>
<div align="center"> <div align="center">
# :pear: Pear Desktop # :pear: Pear Desktop
@ -7,7 +21,7 @@
[![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs) [![eslint code style](https://img.shields.io/badge/code_style-eslint-5ed9c7.svg?style=for-the-badge)](https://github.com/pear-devs/pear-desktop/blob/master/eslint.config.mjs)
[![Build status](https://img.shields.io/github/actions/workflow/status/pear-devs/pear-desktop/build.yml?branch=master&style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/) [![Build status](https://img.shields.io/github/actions/workflow/status/pear-devs/pear-desktop/build.yml?branch=master&style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
[![GitHub All Releases](https://img.shields.io/github/downloads/pear-devs/pear-desktop/total?style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/) [![GitHub All Releases](https://img.shields.io/github/downloads/pear-devs/pear-desktop/total?style=for-the-badge)](https://GitHub.com/pear-devs/pear-desktop/releases/)
<!--[![AUR](https://img.shields.io/aur/version/youtube-music-bin?color=blueviolet&style=for-the-badge)](https://aur.archlinux.org/packages/youtube-music-bin)--> <!--[![AUR](https://img.shields.io/aur/version/pear-desktop-bin?color=blueviolet&style=for-the-badge)](https://aur.archlinux.org/packages/pear-desktop-bin)-->
[![Known Vulnerabilities](https://snyk.io/test/github/pear-devs/pear-desktop/badge.svg)](https://snyk.io/test/github/pear-devs/pear-desktop) [![Known Vulnerabilities](https://snyk.io/test/github/pear-devs/pear-desktop/badge.svg)](https://snyk.io/test/github/pear-devs/pear-desktop)
</div> </div>
@ -16,19 +30,19 @@
- Native look & feel extension - Native look & feel extension
> [!IMPORTANT] > [!IMPORTANT]
> ⚠️ Disclaimer > ⚠️ Disclaimer
> >
> **No Affiliation** > **No Affiliation**
> >
> This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.** > This project, and its contributors, are not affiliated with, authorized by, endorsed by, or in any way officially connected with Google LLC, YouTube, or any of their subsidiaries or affiliates. **This is an independent, non-profit, and unofficial extension developed by a team of volunteers with the goal of providing a desktop experience.**
> >
> **Trademarks** > **Trademarks**
> >
> The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders. > The names "Google" and "YouTube Music", as well as related names, marks, emblems, and images, are registered trademarks of their respective owners. Any use of these trademarks is for identification and reference purposes only and does not imply any association with the trademark holder. We have no intention of infringing upon these trademarks or causing harm to the trademark holders.
> >
> **Limitation of Liability** > **Limitation of Liability**
> >
> This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user. > This application (extension) is provided "AS IS", and you use it at your own risk. In no event shall the developers or contributors be liable for any claim, damages, or other liability, including any legal consequences, arising from, out of, or in connection with the software or the use or other dealings in the software. The responsibility for any and all outcomes of using this software rests entirely with the user.
## Content ## Content
@ -53,11 +67,11 @@
## Translation ## Translation
You can help with translation on [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/). You can help with translation on [Hosted Weblate](https://bit.ly/48n5YF7).
<a href="https://hosted.weblate.org/engage/youtube-music/"> <a href="https://bit.ly/48n5YF7/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="translation status" /> <img src="https://bit.ly/4q83L6S" alt="translation status" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="translation status 2" /> <img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
</a> </a>
## Download ## Download

View File

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Cannot load YouTube Music</title> <title>Cannot load Pear Desktop</title>
<style> <style>
body { body {
background: #000; background: #000;
@ -43,7 +43,7 @@
<body> <body>
<div class="container"> <div class="container">
<p>Cannot load YouTube Music… Internet disconnected?</p> <p>Cannot load Pear Desktop… Internet disconnected?</p>
<a class="button" href="#" onclick="reload()">Retry</a> <a class="button" href="#" onclick="reload()">Retry</a>
</div> </div>
</body> </body>

View File

@ -0,0 +1,35 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)"/>
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16"/>
</g>
<path d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z" fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round"/>
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="12"/>
<feGaussianBlur stdDeviation="12"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape"/>
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F"/>
<stop offset="1" stop-color="#DC148C"/>
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0"/>
<stop offset="0.72" stop-color="white"/>
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0.4"/>
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0"/>
<stop offset="1" stop-color="white" stop-opacity="0.5"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,67 @@
{
"fill" : {
"linear-gradient" : [
"display-p3:1.00000,1.00000,1.00000,1.00000",
"srgb:0.84314,0.84314,0.84314,1.00000"
],
"orientation" : {
"start" : {
"x" : 0.5,
"y" : 0
},
"stop" : {
"x" : 0.5,
"y" : 0.7
}
}
},
"groups" : [
{
"blur-material" : null,
"hidden" : false,
"layers" : [
{
"blend-mode-specializations" : [
{
"appearance" : "dark",
"value" : "normal"
}
],
"image-name" : "SVG Image.svg",
"name" : "transparent-icon",
"opacity-specializations" : [
{
"value" : 1
},
{
"appearance" : "dark",
"value" : 1
}
]
}
],
"name" : "group",
"opacity-specializations" : [
{
"appearance" : "dark",
"value" : 0.8
}
],
"shadow" : {
"kind" : "layer-color",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
}
}
],
"supported-platforms" : {
"circles" : [
"watchOS"
],
"squares" : "shared"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
assets/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 KiB

40
assets/icon.svg Normal file
View File

@ -0,0 +1,40 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d_18_2)">
<circle cx="512" cy="512" r="410" fill="url(#paint0_linear_18_2)" />
<circle cx="512" cy="512" r="402" stroke="url(#paint1_radial_18_2)" stroke-opacity="0.5" stroke-width="16" />
</g>
<path
d="M675 505.072C680.333 508.152 680.333 515.849 675 518.928L436.5 656.626C431.167 659.705 424.5 655.857 424.5 649.698V374.302C424.5 368.24 430.96 364.415 436.249 367.234L436.5 367.374L675 505.072Z"
fill="url(#paint2_linear_18_2)" stroke="url(#paint3_linear_18_2)" stroke-width="8" stroke-linejoin="round" />
<defs>
<filter id="filter0_d_18_2" x="78" y="90" width="868" height="868" filterUnits="userSpaceOnUse"
color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix" />
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha" />
<feOffset dy="12" />
<feGaussianBlur stdDeviation="12" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix type="matrix" values="0 0 0 0 0.866667 0 0 0 0 0.141176 0 0 0 0 0.462745 0 0 0 0.4 0" />
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_18_2" />
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_18_2" result="shape" />
</filter>
<linearGradient id="paint0_linear_18_2" x1="102" y1="102" x2="922" y2="922" gradientUnits="userSpaceOnUse">
<stop stop-color="#FF632F" />
<stop offset="1" stop-color="#DC148C" />
</linearGradient>
<radialGradient id="paint1_radial_18_2" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse"
gradientTransform="translate(512 512) rotate(45) scale(579.828)">
<stop offset="0.68" stop-color="white" stop-opacity="0" />
<stop offset="0.72" stop-color="white" />
</radialGradient>
<linearGradient id="paint2_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" />
<stop offset="1" stop-color="white" stop-opacity="0.4" />
</linearGradient>
<linearGradient id="paint3_linear_18_2" x1="512" y1="329" x2="512" y2="695" gradientUnits="userSpaceOnUse">
<stop stop-color="white" stop-opacity="0" />
<stop offset="1" stop-color="white" stop-opacity="0.5" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

607
assets/mdui.css Normal file
View File

@ -0,0 +1,607 @@
:root {
--mdui-breakpoint-xs: 0px;
--mdui-breakpoint-sm: 600px;
--mdui-breakpoint-md: 840px;
--mdui-breakpoint-lg: 1080px;
--mdui-breakpoint-xl: 1440px;
--mdui-breakpoint-xxl: 1920px;
}
:root {
--mdui-color-primary-light: 103, 80, 164;
--mdui-color-primary-container-light: 234, 221, 255;
--mdui-color-on-primary-light: 255, 255, 255;
--mdui-color-on-primary-container-light: 33, 0, 94;
--mdui-color-inverse-primary-light: 208, 188, 255;
--mdui-color-secondary-light: 98, 91, 113;
--mdui-color-secondary-container-light: 232, 222, 248;
--mdui-color-on-secondary-light: 255, 255, 255;
--mdui-color-on-secondary-container-light: 30, 25, 43;
--mdui-color-tertiary-light: 125, 82, 96;
--mdui-color-tertiary-container-light: 255, 216, 228;
--mdui-color-on-tertiary-light: 255, 255, 255;
--mdui-color-on-tertiary-container-light: 55, 11, 30;
--mdui-color-surface-light: 254, 247, 255;
--mdui-color-surface-dim-light: 222, 216, 225;
--mdui-color-surface-bright-light: 254, 247, 255;
--mdui-color-surface-container-lowest-light: 255, 255, 255;
--mdui-color-surface-container-low-light: 247, 242, 250;
--mdui-color-surface-container-light: 243, 237, 247;
--mdui-color-surface-container-high-light: 236, 230, 240;
--mdui-color-surface-container-highest-light: 230, 224, 233;
--mdui-color-surface-variant-light: 231, 224, 236;
--mdui-color-on-surface-light: 28, 27, 31;
--mdui-color-on-surface-variant-light: 73, 69, 78;
--mdui-color-inverse-surface-light: 49, 48, 51;
--mdui-color-inverse-on-surface-light: 244, 239, 244;
--mdui-color-background-light: 254, 247, 255;
--mdui-color-on-background-light: 28, 27, 31;
--mdui-color-error-light: 179, 38, 30;
--mdui-color-error-container-light: 249, 222, 220;
--mdui-color-on-error-light: 255, 255, 255;
--mdui-color-on-error-container-light: 65, 14, 11;
--mdui-color-outline-light: 121, 116, 126;
--mdui-color-outline-variant-light: 196, 199, 197;
--mdui-color-shadow-light: 0, 0, 0;
--mdui-color-surface-tint-color-light: 103, 80, 164;
--mdui-color-scrim-light: 0, 0, 0;
--mdui-color-primary-dark: 208, 188, 255;
--mdui-color-primary-container-dark: 79, 55, 139;
--mdui-color-on-primary-dark: 55, 30, 115;
--mdui-color-on-primary-container-dark: 234, 221, 255;
--mdui-color-inverse-primary-dark: 103, 80, 164;
--mdui-color-secondary-dark: 204, 194, 220;
--mdui-color-secondary-container-dark: 74, 68, 88;
--mdui-color-on-secondary-dark: 51, 45, 65;
--mdui-color-on-secondary-container-dark: 232, 222, 248;
--mdui-color-tertiary-dark: 239, 184, 200;
--mdui-color-tertiary-container-dark: 99, 59, 72;
--mdui-color-on-tertiary-dark: 73, 37, 50;
--mdui-color-on-tertiary-container-dark: 255, 216, 228;
--mdui-color-surface-dark: 20, 18, 24;
--mdui-color-surface-dim-dark: 20, 18, 24;
--mdui-color-surface-bright-dark: 59, 56, 62;
--mdui-color-surface-container-lowest-dark: 15, 13, 19;
--mdui-color-surface-container-low-dark: 29, 27, 32;
--mdui-color-surface-container-dark: 33, 31, 38;
--mdui-color-surface-container-high-dark: 43, 41, 48;
--mdui-color-surface-container-highest-dark: 54, 52, 59;
--mdui-color-surface-variant-dark: 73, 69, 79;
--mdui-color-on-surface-dark: 230, 225, 229;
--mdui-color-on-surface-variant-dark: 202, 196, 208;
--mdui-color-inverse-surface-dark: 230, 225, 229;
--mdui-color-inverse-on-surface-dark: 49, 48, 51;
--mdui-color-background-dark: 20, 18, 24;
--mdui-color-on-background-dark: 230, 225, 229;
--mdui-color-error-dark: 242, 184, 181;
--mdui-color-error-container-dark: 140, 29, 24;
--mdui-color-on-error-dark: 96, 20, 16;
--mdui-color-on-error-container-dark: 249, 222, 220;
--mdui-color-outline-dark: 147, 143, 153;
--mdui-color-outline-variant-dark: 68, 71, 70;
--mdui-color-shadow-dark: 0, 0, 0;
--mdui-color-surface-tint-color-dark: 208, 188, 255;
--mdui-color-scrim-dark: 0, 0, 0;
}
.mdui-theme-dark,
:root {
color-scheme: dark;
--mdui-color-primary: var(--mdui-color-primary-dark);
--mdui-color-primary-container: var(--mdui-color-primary-container-dark);
--mdui-color-on-primary: var(--mdui-color-on-primary-dark);
--mdui-color-on-primary-container: var(
--mdui-color-on-primary-container-dark
);
--mdui-color-inverse-primary: var(--mdui-color-inverse-primary-dark);
--mdui-color-secondary: var(--mdui-color-secondary-dark);
--mdui-color-secondary-container: var(--mdui-color-secondary-container-dark);
--mdui-color-on-secondary: var(--mdui-color-on-secondary-dark);
--mdui-color-on-secondary-container: var(
--mdui-color-on-secondary-container-dark
);
--mdui-color-tertiary: var(--mdui-color-tertiary-dark);
--mdui-color-tertiary-container: var(--mdui-color-tertiary-container-dark);
--mdui-color-on-tertiary: var(--mdui-color-on-tertiary-dark);
--mdui-color-on-tertiary-container: var(
--mdui-color-on-tertiary-container-dark
);
--mdui-color-surface: var(--mdui-color-surface-dark);
--mdui-color-surface-dim: var(--mdui-color-surface-dim-dark);
--mdui-color-surface-bright: var(--mdui-color-surface-bright-dark);
--mdui-color-surface-container-lowest: var(
--mdui-color-surface-container-lowest-dark
);
--mdui-color-surface-container-low: var(
--mdui-color-surface-container-low-dark
);
--mdui-color-surface-container: var(--mdui-color-surface-container-dark);
--mdui-color-surface-container-high: var(
--mdui-color-surface-container-high-dark
);
--mdui-color-surface-container-highest: var(
--mdui-color-surface-container-highest-dark
);
--mdui-color-surface-variant: var(--mdui-color-surface-variant-dark);
--mdui-color-on-surface: var(--mdui-color-on-surface-dark);
--mdui-color-on-surface-variant: var(--mdui-color-on-surface-variant-dark);
--mdui-color-inverse-surface: var(--mdui-color-inverse-surface-dark);
--mdui-color-inverse-on-surface: var(--mdui-color-inverse-on-surface-dark);
--mdui-color-background: var(--mdui-color-background-dark);
--mdui-color-on-background: var(--mdui-color-on-background-dark);
--mdui-color-error: var(--mdui-color-error-dark);
--mdui-color-error-container: var(--mdui-color-error-container-dark);
--mdui-color-on-error: var(--mdui-color-on-error-dark);
--mdui-color-on-error-container: var(--mdui-color-on-error-container-dark);
--mdui-color-outline: var(--mdui-color-outline-dark);
--mdui-color-outline-variant: var(--mdui-color-outline-variant-dark);
--mdui-color-shadow: var(--mdui-color-shadow-dark);
--mdui-color-surface-tint-color: var(--mdui-color-surface-tint-color-dark);
--mdui-color-scrim: var(--mdui-color-scrim-dark);
color: rgb(var(--mdui-color-on-background));
background-color: rgb(var(--mdui-color-background));
}
:root {
--mdui-elevation-level0: none;
--mdui-elevation-level1: 0 0.5px 1.5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level2: 0 0.85px 3px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 1px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level3: 0 1.25px 5px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.3333px 1.5px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level4: 0 1.85px 6.25px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.5px 1.75px 0 rgba(var(--mdui-color-shadow), 3.9%);
--mdui-elevation-level5: 0 2.75px 9px 0 rgba(var(--mdui-color-shadow), 19%),
0 0.25px 3px 0 rgba(var(--mdui-color-shadow), 3.9%);
}
:root {
--mdui-motion-easing-linear: cubic-bezier(0, 0, 1, 1);
--mdui-motion-easing-standard: cubic-bezier(0.2, 0, 0, 1);
--mdui-motion-easing-standard-accelerate: cubic-bezier(0.3, 0, 1, 1);
--mdui-motion-easing-standard-decelerate: cubic-bezier(0, 0, 0, 1);
--mdui-motion-easing-emphasized: var(--mdui-motion-easing-standard);
--mdui-motion-easing-emphasized-accelerate: cubic-bezier(0.3, 0, 0.8, 0.15);
--mdui-motion-easing-emphasized-decelerate: cubic-bezier(0.05, 0.7, 0.1, 1);
--mdui-motion-duration-short1: 50ms;
--mdui-motion-duration-short2: 100ms;
--mdui-motion-duration-short3: 150ms;
--mdui-motion-duration-short4: 200ms;
--mdui-motion-duration-medium1: 250ms;
--mdui-motion-duration-medium2: 300ms;
--mdui-motion-duration-medium3: 350ms;
--mdui-motion-duration-medium4: 400ms;
--mdui-motion-duration-long1: 450ms;
--mdui-motion-duration-long2: 500ms;
--mdui-motion-duration-long3: 550ms;
--mdui-motion-duration-long4: 600ms;
--mdui-motion-duration-extra-long1: 700ms;
--mdui-motion-duration-extra-long2: 800ms;
--mdui-motion-duration-extra-long3: 900ms;
--mdui-motion-duration-extra-long4: 1000ms;
}
.mdui-prose {
line-height: 1.75;
word-wrap: break-word;
}
.mdui-prose :first-child {
margin-top: 0;
}
.mdui-prose :last-child {
margin-bottom: 0;
}
.mdui-prose code,
.mdui-prose kbd,
.mdui-prose pre,
.mdui-prose pre tt,
.mdui-prose samp {
font-family: Consolas, Courier, 'Courier New', monospace;
}
.mdui-prose caption {
text-align: left;
}
.mdui-prose [draggable='true'],
.mdui-prose [draggable] {
cursor: move;
}
.mdui-prose [draggable='false'] {
cursor: inherit;
}
.mdui-prose dl,
.mdui-prose form,
.mdui-prose ol,
.mdui-prose p,
.mdui-prose ul {
margin-top: 1.25em;
margin-bottom: 1.25em;
}
.mdui-prose a {
text-decoration: none;
outline: 0;
color: rgb(var(--mdui-color-primary));
}
.mdui-prose a:focus,
.mdui-prose a:hover {
border-bottom: 0.0625rem solid rgb(var(--mdui-color-primary));
}
.mdui-prose small {
font-size: 0.875em;
}
.mdui-prose strong {
font-weight: 600;
}
.mdui-prose blockquote {
margin: 1.6em 2em;
padding-left: 1em;
border-left: 0.25rem solid rgb(var(--mdui-color-surface-variant));
}
@media only screen and (max-width: 599.98px) {
.mdui-prose blockquote {
margin: 1.6em 0;
}
}
.mdui-prose blockquote footer {
font-size: 86%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose mark {
color: inherit;
background-color: rgb(var(--mdui-color-secondary-container));
border-bottom: 0.0625rem solid rgb(var(--mdui-color-secondary));
margin: 0 0.375rem;
padding: 0.125rem;
}
.mdui-prose h1,
.mdui-prose h2,
.mdui-prose h3,
.mdui-prose h4,
.mdui-prose h5,
.mdui-prose h6 {
font-weight: 400;
}
.mdui-prose h1 small,
.mdui-prose h2 small,
.mdui-prose h3 small,
.mdui-prose h4 small,
.mdui-prose h5 small,
.mdui-prose h6 small {
font-weight: inherit;
font-size: 65%;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose h1 strong,
.mdui-prose h2 strong,
.mdui-prose h3 strong,
.mdui-prose h4 strong,
.mdui-prose h5 strong,
.mdui-prose h6 strong {
font-weight: 600;
}
.mdui-prose h1 {
font-size: 2.5em;
margin-top: 0;
margin-bottom: 1.25em;
line-height: 1.1111;
}
.mdui-prose h2 {
font-size: 1.875em;
margin-top: 2.25em;
margin-bottom: 1.125em;
line-height: 1.3333;
}
.mdui-prose h3 {
font-size: 1.5em;
margin-top: 2em;
margin-bottom: 1em;
line-height: 1.6;
}
.mdui-prose h4 {
font-size: 1.25em;
margin-top: 1.875em;
margin-bottom: 0.875em;
line-height: 1.5;
}
.mdui-prose h2 + *,
.mdui-prose h3 + *,
.mdui-prose h4 + *,
.mdui-prose hr + * {
margin-top: 0;
}
.mdui-prose code,
.mdui-prose kbd {
font-size: 0.875em;
color: rgb(var(--mdui-color-on-surface-container));
background-color: rgba(var(--mdui-color-surface-variant), 0.28);
padding: 0.125rem 0.375rem;
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose kbd {
font-size: 0.9em;
}
.mdui-prose abbr[title] {
text-decoration: none;
cursor: help;
border-bottom: 0.0625rem dotted rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ins,
.mdui-prose u {
text-decoration: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose del {
text-decoration: line-through;
}
.mdui-prose hr {
margin-top: 3em;
margin-bottom: 3em;
border: none;
border-bottom: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose pre {
margin-top: 1.7143em;
margin-bottom: 1.7143em;
}
.mdui-prose pre code {
padding: 0.8571em 1.1429em;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
background-color: rgb(var(--mdui-color-surface-container));
color: rgb(var(--mdui-color-on-surface-container));
border-radius: var(--mdui-shape-corner-extra-small);
}
.mdui-prose ol,
.mdui-prose ul {
padding-left: 1.625em;
}
.mdui-prose ul {
list-style-type: disc;
}
.mdui-prose ol {
list-style-type: decimal;
}
.mdui-prose ol[type='A'] {
list-style-type: upper-alpha;
}
.mdui-prose ol[type='a'] {
list-style-type: lower-alpha;
}
.mdui-prose ol[type='I'] {
list-style-type: upper-roman;
}
.mdui-prose ol[type='i'] {
list-style-type: lower-roman;
}
.mdui-prose ol[type='1'] {
list-style-type: decimal;
}
.mdui-prose li {
margin-top: 0.5em;
margin-bottom: 0.5em;
}
.mdui-prose ol > li,
.mdui-prose ul > li {
padding-left: 0.375em;
}
.mdui-prose ol > li > p,
.mdui-prose ul > li > p {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose ol > li > :first-child,
.mdui-prose ul > li > :first-child {
margin-top: 1.25em;
}
.mdui-prose ol > li > :last-child,
.mdui-prose ul > li > :last-child {
margin-bottom: 1.25em;
}
.mdui-prose ol > li::marker {
font-weight: 400;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ul > li::marker {
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose ol ol,
.mdui-prose ol ul,
.mdui-prose ul ol,
.mdui-prose ul ul {
margin-top: 0.75em;
margin-bottom: 0.75em;
}
.mdui-prose fieldset,
.mdui-prose img {
border: none;
}
.mdui-prose figure,
.mdui-prose img,
.mdui-prose video {
margin-top: 2em;
margin-bottom: 2em;
max-width: 100%;
}
.mdui-prose figure > * {
margin-top: 0;
margin-bottom: 0;
}
.mdui-prose figcaption {
font-size: 0.875em;
line-height: 1.4286;
margin-top: 0.8571em;
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose figcaption:empty::before {
z-index: -1;
cursor: text;
content: attr(placeholder);
color: rgb(var(--mdui-color-on-surface-variant));
}
.mdui-prose table {
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table {
width: 100%;
overflow-x: auto;
margin-top: 2em;
margin-bottom: 2em;
border: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
border-radius: var(--mdui-shape-corner-large);
}
.mdui-table table {
margin-top: 0;
margin-bottom: 0;
border: none;
border-radius: 0;
}
.mdui-prose table,
.mdui-table table {
width: 100%;
text-align: left;
border-collapse: collapse;
border-spacing: 0;
}
.mdui-prose td,
.mdui-prose th,
.mdui-table td,
.mdui-table th {
border-top: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:first-child),
.mdui-prose th:not(:first-child),
.mdui-table td:not(:first-child),
.mdui-table th:not(:first-child) {
border-left: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose td:not(:last-child),
.mdui-prose th:not(:last-child),
.mdui-table td:not(:last-child),
.mdui-table th:not(:last-child) {
border-right: 0.0625rem solid rgb(var(--mdui-color-surface-variant));
}
.mdui-prose tfoot td,
.mdui-prose tfoot th,
.mdui-prose thead td,
.mdui-prose thead th,
.mdui-table tfoot td,
.mdui-table tfoot th,
.mdui-table thead td,
.mdui-table thead th {
position: relative;
vertical-align: middle;
padding: 1.125rem 1rem;
font-weight: var(--mdui-typescale-title-medium-weight);
letter-spacing: var(--mdui-typescale-title-medium-tracking);
line-height: var(--mdui-typescale-title-medium-line-height);
color: rgb(var(--mdui-color-on-surface-variant));
box-shadow: var(--mdui-elevation-level1);
}
.mdui-prose tbody td,
.mdui-prose tbody th,
.mdui-table tbody td,
.mdui-table tbody th {
padding: 0.875rem 1rem;
}
.mdui-prose tbody th,
.mdui-table tbody th {
vertical-align: middle;
font-weight: inherit;
}
.mdui-prose tbody td,
.mdui-table tbody td {
vertical-align: baseline;
}
.mdui-prose tbody:first-child tr:first-child td,
.mdui-prose thead:first-child tr:first-child th,
.mdui-table tbody:first-child tr:first-child td,
.mdui-table thead:first-child tr:first-child th {
border-top: 0;
}
:root {
--mdui-shape-corner-none: 0;
--mdui-shape-corner-extra-small: 0.25rem;
--mdui-shape-corner-small: 0.5rem;
--mdui-shape-corner-medium: 0.75rem;
--mdui-shape-corner-large: 1rem;
--mdui-shape-corner-extra-large: 1.75rem;
--mdui-shape-corner-full: 1000rem;
}
:root {
--mdui-state-layer-hover: 0.08;
--mdui-state-layer-focus: 0.12;
--mdui-state-layer-pressed: 0.12;
--mdui-state-layer-dragged: 0.16;
}
:root {
--mdui-typescale-display-large-weight: 400;
--mdui-typescale-display-medium-weight: 400;
--mdui-typescale-display-small-weight: 400;
--mdui-typescale-display-large-line-height: 4rem;
--mdui-typescale-display-medium-line-height: 3.25rem;
--mdui-typescale-display-small-line-height: 2.75rem;
--mdui-typescale-display-large-size: 3.5625rem;
--mdui-typescale-display-medium-size: 2.8125rem;
--mdui-typescale-display-small-size: 2.25rem;
--mdui-typescale-display-large-tracking: 0rem;
--mdui-typescale-display-medium-tracking: 0rem;
--mdui-typescale-display-small-tracking: 0rem;
--mdui-typescale-headline-large-weight: 400;
--mdui-typescale-headline-medium-weight: 400;
--mdui-typescale-headline-small-weight: 400;
--mdui-typescale-headline-large-line-height: 2.5rem;
--mdui-typescale-headline-medium-line-height: 2.25rem;
--mdui-typescale-headline-small-line-height: 2rem;
--mdui-typescale-headline-large-size: 2rem;
--mdui-typescale-headline-medium-size: 1.75rem;
--mdui-typescale-headline-small-size: 1.5rem;
--mdui-typescale-headline-large-tracking: 0rem;
--mdui-typescale-headline-medium-tracking: 0rem;
--mdui-typescale-headline-small-tracking: 0rem;
--mdui-typescale-title-large-weight: 400;
--mdui-typescale-title-medium-weight: 500;
--mdui-typescale-title-small-weight: 500;
--mdui-typescale-title-large-line-height: 1.75rem;
--mdui-typescale-title-medium-line-height: 1.5rem;
--mdui-typescale-title-small-line-height: 1.25rem;
--mdui-typescale-title-large-size: 1.375rem;
--mdui-typescale-title-medium-size: 1rem;
--mdui-typescale-title-small-size: 0.875rem;
--mdui-typescale-title-large-tracking: 0rem;
--mdui-typescale-title-medium-tracking: 0.009375rem;
--mdui-typescale-title-small-tracking: 0.00625rem;
--mdui-typescale-label-large-weight: 500;
--mdui-typescale-label-medium-weight: 500;
--mdui-typescale-label-small-weight: 500;
--mdui-typescale-label-large-line-height: 1.25rem;
--mdui-typescale-label-medium-line-height: 1rem;
--mdui-typescale-label-small-line-height: 0.375rem;
--mdui-typescale-label-large-size: 0.875rem;
--mdui-typescale-label-medium-size: 0.75rem;
--mdui-typescale-label-small-size: 0.6875rem;
--mdui-typescale-label-large-tracking: 0.00625rem;
--mdui-typescale-label-medium-tracking: 0.03125rem;
--mdui-typescale-label-small-tracking: 0.03125rem;
--mdui-typescale-body-large-weight: 400;
--mdui-typescale-body-medium-weight: 400;
--mdui-typescale-body-small-weight: 400;
--mdui-typescale-body-large-line-height: 1.5rem;
--mdui-typescale-body-medium-line-height: 1.25rem;
--mdui-typescale-body-small-line-height: 1rem;
--mdui-typescale-body-large-size: 1rem;
--mdui-typescale-body-medium-size: 0.875rem;
--mdui-typescale-body-small-size: 0.75rem;
--mdui-typescale-body-large-tracking: 0.009375rem;
--mdui-typescale-body-medium-tracking: 0.015625rem;
--mdui-typescale-body-small-tracking: 0.025rem;
}
.mdui-lock-screen {
overflow: hidden !important;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
assets/tray-paused.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

BIN
assets/tray-white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
assets/tray.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
appId: com.github.th-ch.youtube-music appId: "com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063"
productName: YouTube Music productName: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063"
files: files:
- '!*' - '!*'
- dist - dist
@ -20,7 +20,7 @@ mac:
arch: arch:
- x64 - x64
- arm64 - arm64
icon: assets/generated/icons/mac/icon.icns icon: assets/generated/icons/mac/icon.icon
compression: maximum compression: maximum
win: win:
icon: assets/generated/icons/win/icon.ico icon: assets/generated/icons/win/icon.ico
@ -43,7 +43,7 @@ linux:
category: AudioVideo category: AudioVideo
desktop: desktop:
entry: entry:
StartupWMClass: com.github.th_ch.youtube_music StartupWMClass: "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063"
target: target:
- target: AppImage - target: AppImage
arch: arch:
@ -76,14 +76,10 @@ linux:
- arm64 - arm64
- armv7l - armv7l
appImage: appImage:
description: >- description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
YouTube Music Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo category: AudioVideo
flatpak: flatpak:
description: >- description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
YouTube Music Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
category: AudioVideo category: AudioVideo
runtimeVersion: '24.08' runtimeVersion: '24.08'
baseVersion: '24.08' baseVersion: '24.08'
@ -98,7 +94,7 @@ flatpak:
- '--talk-name=org.freedesktop.Notifications' - '--talk-name=org.freedesktop.Notifications'
- '--talk-name=org.gnome.SessionManager' - '--talk-name=org.gnome.SessionManager'
- '--talk-name=org.kde.StatusNotifierWatcher' - '--talk-name=org.kde.StatusNotifierWatcher'
- '--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*' - "--own-name=org.mpris.MediaPlayer2.\u0059\u006f\u0075\u0074\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063.*"
deb: deb:
depends: depends:
- libgtk-3-0 - libgtk-3-0

View File

@ -159,7 +159,8 @@ export default defineConfig({
}, },
server: { server: {
cors: { cors: {
origin: 'https://music.youtube.com', origin:
'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
}, },
}, },
}; };

View File

@ -18,51 +18,89 @@ export default tsEslint.config(
{ {
plugins: { plugins: {
stylistic, stylistic,
importPlugin importPlugin,
}, },
languageOptions: { languageOptions: {
parser: tsEslint.parser, parser: tsEslint.parser,
parserOptions: { parserOptions: {
project: true, project: ['tsconfig.json', 'tsconfig.test.json'],
sourceType: 'module', sourceType: 'module',
ecmaVersion: 'latest' ecmaVersion: 'latest',
} },
}, },
rules: { rules: {
'stylistic/arrow-parens': ['error', 'always'], 'stylistic/arrow-parens': ['error', 'always'],
'stylistic/object-curly-spacing': ['error', 'always'], 'stylistic/object-curly-spacing': ['error', 'always'],
'stylistic/jsx-pascal-case': 'error', 'stylistic/jsx-pascal-case': 'error',
'stylistic/jsx-curly-spacing': ['error', { when: 'never', children: true }], 'stylistic/jsx-curly-spacing': [
'error',
{ when: 'never', children: true },
],
'stylistic/jsx-sort-props': 'error', 'stylistic/jsx-sort-props': 'error',
'prettier/prettier': ['error', { singleQuote: true, semi: true, tabWidth: 2, trailingComma: 'all', quoteProps: 'preserve' }], 'prettier/prettier': [
'error',
{
singleQuote: true,
semi: true,
tabWidth: 2,
trailingComma: 'all',
quoteProps: 'preserve',
},
],
'@typescript-eslint/no-floating-promises': 'off', '@typescript-eslint/no-floating-promises': 'off',
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }], '@typescript-eslint/no-misused-promises': [
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], 'off',
{ checksVoidReturn: false },
],
'@typescript-eslint/no-unused-vars': [
'warn',
{ argsIgnorePattern: '^_' },
],
'@typescript-eslint/no-non-null-assertion': 'off', '@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/consistent-type-imports': ['error', { '@typescript-eslint/consistent-type-imports': [
fixStyle: 'inline-type-imports', 'error',
prefer: 'type-imports', {
disallowTypeAnnotations: false, fixStyle: 'inline-type-imports',
}], prefer: 'type-imports',
disallowTypeAnnotations: false,
},
],
'importPlugin/first': 'error', 'importPlugin/first': 'error',
'importPlugin/newline-after-import': 'off', 'importPlugin/newline-after-import': 'off',
'importPlugin/no-default-export': 'off', 'importPlugin/no-default-export': 'off',
'importPlugin/no-duplicates': 'error', 'importPlugin/no-duplicates': 'error',
'importPlugin/no-unresolved': ['error', { ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'] }], 'importPlugin/no-unresolved': [
'importPlugin/order': ['error', { 'error',
'groups': ['builtin', 'external', ['internal', 'index', 'sibling'], 'parent', 'type'], {
'newlines-between': 'always-and-inside-groups', ignore: ['^virtual:', '\\?inline$', '\\?raw$', '\\?asset&asarUnpack'],
'alphabetize': { order: 'ignore', caseInsensitive: false } },
}], ],
'importPlugin/order': [
'error',
{
'groups': [
'builtin',
'external',
['internal', 'index', 'sibling'],
'parent',
'type',
],
'newlines-between': 'always-and-inside-groups',
'alphabetize': { order: 'ignore', caseInsensitive: false },
},
],
'importPlugin/prefer-default-export': 'off', 'importPlugin/prefer-default-export': 'off',
'camelcase': ['error', { properties: 'never' }], 'camelcase': ['error', { properties: 'never' }],
'class-methods-use-this': 'off', 'class-methods-use-this': 'off',
'stylistic/lines-around-comment': ['error', { 'stylistic/lines-around-comment': [
beforeBlockComment: false, 'error',
afterBlockComment: false, {
beforeLineComment: false, beforeBlockComment: false,
afterLineComment: false, afterBlockComment: false,
}], beforeLineComment: false,
afterLineComment: false,
},
],
'stylistic/max-len': 'off', 'stylistic/max-len': 'off',
'stylistic/no-mixed-operators': 'warn', // prettier does not support no-mixed-operators 'stylistic/no-mixed-operators': 'warn', // prettier does not support no-mixed-operators
'stylistic/no-multi-spaces': ['error', { ignoreEOLComments: true }], 'stylistic/no-multi-spaces': ['error', { ignoreEOLComments: true }],
@ -70,16 +108,20 @@ export default tsEslint.config(
'no-void': 'error', 'no-void': 'error',
'no-empty': 'off', 'no-empty': 'off',
'prefer-promise-reject-errors': 'off', 'prefer-promise-reject-errors': 'off',
'stylistic/quotes': ['error', 'single', { 'stylistic/quotes': [
avoidEscape: true, 'error',
allowTemplateLiterals: false, 'single',
}], {
avoidEscape: true,
allowTemplateLiterals: 'never',
},
],
'stylistic/quote-props': ['error', 'consistent'], 'stylistic/quote-props': ['error', 'consistent'],
'stylistic/semi': ['error', 'always'], 'stylistic/semi': ['error', 'always'],
}, },
settings: { settings: {
'import/parsers': { 'import/parsers': {
'@typescript-eslint/parser': ['.ts'] '@typescript-eslint/parser': ['.ts'],
}, },
'import/resolver': { 'import/resolver': {
typescript: {}, typescript: {},

View File

@ -1,6 +1,6 @@
The MIT License (MIT) The MIT License (MIT)
Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/th-ch/youtube-music) Copyright (c) th-ch <th-ch@users.noreply.github.com> (https://github.com/pear-devs/pear-desktop)
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -1,17 +1,17 @@
{ {
"name": "youtube-music", "name": "\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063",
"desktopName": "com.github.th_ch.youtube_music", "desktopName": "com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063",
"productName": "YouTube Music", "productName": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063",
"version": "3.11.0", "version": "3.11.0",
"description": "YouTube Music Desktop App - including custom plugins", "description": "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App - including custom plugins",
"main": "./dist/main/index.js", "main": "./dist/main/index.js",
"type": "module", "type": "module",
"license": "MIT", "license": "MIT",
"repository": "th-ch/youtube-music", "repository": "pear-devs/pear-desktop",
"author": { "author": {
"name": "th-ch", "name": "th-ch",
"email": "th-ch@users.noreply.github.com", "email": "th-ch@users.noreply.github.com",
"url": "https://github.com/th-ch/youtube-music" "url": "https://github.com/pear-devs/pear-desktop"
}, },
"scripts": { "scripts": {
"test": "pnpm playwright test", "test": "pnpm playwright test",
@ -45,11 +45,11 @@
}, },
"pnpm": { "pnpm": {
"overrides": { "overrides": {
"vite": "npm:rolldown-vite@7.1.8", "vite": "npm:rolldown-vite@7.3.0",
"node-gyp": "11.4.2", "node-gyp": "11.4.2",
"xml2js": "0.6.2", "xml2js": "0.6.2",
"node-fetch": "3.3.2", "node-fetch": "3.3.2",
"@electron/universal": "3.0.1", "@electron/universal": "3.0.2",
"@babel/runtime": "7.28.4" "@babel/runtime": "7.28.4"
}, },
"patchedDependencies": { "patchedDependencies": {
@ -57,7 +57,8 @@
"@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch", "@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch",
"kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch", "kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch",
"file-type@16.5.4": "patches/file-type@16.5.4.patch", "file-type@16.5.4": "patches/file-type@16.5.4.patch",
"electron-is@3.0.0": "patches/electron-is@3.0.0.patch" "electron-is@3.0.0": "patches/electron-is@3.0.0.patch",
"mdui@2.1.4": "patches/mdui@2.1.4.patch"
}, },
"neverBuiltDependencies": [] "neverBuiltDependencies": []
}, },
@ -71,22 +72,23 @@
"@foobar404/wave": "2.0.5", "@foobar404/wave": "2.0.5",
"@ghostery/adblocker-electron": "2.11.6", "@ghostery/adblocker-electron": "2.11.6",
"@ghostery/adblocker-electron-preload": "2.11.6", "@ghostery/adblocker-electron-preload": "2.11.6",
"@hono/node-server": "1.19.1", "@hono/node-server": "1.19.7",
"@hono/node-ws": "1.2.0", "@hono/node-ws": "1.2.0",
"@hono/swagger-ui": "0.5.2", "@hono/swagger-ui": "0.5.2",
"@hono/zod-openapi": "1.1.0", "@hono/zod-openapi": "1.2.0",
"@hono/zod-validator": "0.7.2", "@hono/zod-validator": "0.7.6",
"@jellybrick/dbus-next": "0.10.3", "@jellybrick/dbus-next": "0.10.3",
"@jellybrick/electron-better-web-request": "1.0.4", "@jellybrick/electron-better-web-request": "2.0.0",
"@jellybrick/mpris-service": "2.1.5", "@jellybrick/mpris-service": "2.1.5",
"@jimp/plugin-color": "1.6.0", "@jimp/plugin-color": "1.6.0",
"@mdui/icons": "^1.0.3",
"@skyra/jaro-winkler": "1.1.1", "@skyra/jaro-winkler": "1.1.1",
"@xhayper/discord-rpc": "1.3.0", "@xhayper/discord-rpc": "1.3.0",
"async-mutex": "0.5.0", "async-mutex": "0.5.0",
"bgutils-js": "3.2.0", "bgutils-js": "3.2.0",
"butterchurn": "3.0.0-beta.5", "butterchurn": "3.0.0-beta.5",
"butterchurn-presets": "3.0.0-beta.4", "butterchurn-presets": "3.0.0-beta.4",
"color": "5.0.0", "color": "5.0.3",
"conf": "14.0.0", "conf": "14.0.0",
"custom-electron-prompt": "1.5.8", "custom-electron-prompt": "1.5.8",
"deepmerge-ts": "7.1.5", "deepmerge-ts": "7.1.5",
@ -97,14 +99,14 @@
"electron-store": "10.1.0", "electron-store": "10.1.0",
"electron-unhandled": "5.0.0", "electron-unhandled": "5.0.0",
"electron-updater": "6.6.2", "electron-updater": "6.6.2",
"es-hangul": "2.3.5", "es-hangul": "2.3.8",
"fast-average-color": "9.5.0", "fast-average-color": "9.5.0",
"fast-equals": "5.2.2", "fast-equals": "5.2.2",
"fflate": "0.8.2", "fflate": "0.8.2",
"filenamify": "6.0.0", "filenamify": "6.0.0",
"hanja": "1.1.5", "hanja": "1.1.5",
"happy-dom": "18.0.1", "happy-dom": "20.0.11",
"hono": "4.9.6", "hono": "4.10.3",
"howler": "2.2.4", "howler": "2.2.4",
"html-to-text": "9.0.5", "html-to-text": "9.0.5",
"i18next": "25.5.2", "i18next": "25.5.2",
@ -115,25 +117,25 @@
"kuroshiro": "1.2.0", "kuroshiro": "1.2.0",
"kuroshiro-analyzer-kuromoji": "1.1.0", "kuroshiro-analyzer-kuromoji": "1.1.0",
"lazy-var": "2.2.2", "lazy-var": "2.2.2",
"mdui": "2.1.4",
"node-html-parser": "7.0.1", "node-html-parser": "7.0.1",
"node-id3": "0.2.9", "node-id3": "0.2.9",
"peerjs": "1.5.5", "peerjs": "1.5.5",
"semver": "7.7.2", "semver": "7.7.3",
"serve": "14.2.5", "serve": "14.2.5",
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
"socks": "2.8.7", "socks": "2.8.7",
"solid-element": "1.9.1", "solid-element": "1.9.1",
"solid-floating-ui": "0.3.1", "solid-floating-ui": "0.3.1",
"solid-js": "1.9.9", "solid-js": "1.9.10",
"solid-styled-components": "0.28.5", "solid-styled-components": "0.28.5",
"solid-transition-group": "0.3.0", "solid-transition-group": "0.3.0",
"tiny-pinyin": "1.3.2", "tiny-pinyin": "1.3.2",
"tinyld": "1.3.4", "tinyld": "1.3.4",
"virtua": "0.42.3", "virtua": "0.48.2",
"vudio": "2.1.1", "vudio": "2.1.1",
"x11": "2.3.0", "x11": "2.3.0",
"youtubei.js": "15.0.1", "youtubei.js": "^16.0.1",
"zod": "4.1.5" "zod": "4.2.1"
}, },
"devDependencies": { "devDependencies": {
"@electron-toolkit/tsconfig": "1.0.1", "@electron-toolkit/tsconfig": "1.0.1",
@ -151,12 +153,12 @@
"builtin-modules": "5.0.0", "builtin-modules": "5.0.0",
"cross-env": "10.0.0", "cross-env": "10.0.0",
"del-cli": "6.0.0", "del-cli": "6.0.0",
"discord-api-types": "0.38.23", "discord-api-types": "0.38.37",
"electron": "38.0.0", "electron": "38.7.2",
"electron-builder": "26.0.12", "electron-builder": "26.4.0",
"electron-builder-squirrel-windows": "26.0.12", "electron-builder-squirrel-windows": "26.0.12",
"electron-devtools-installer": "4.0.0", "electron-devtools-installer": "4.0.0",
"electron-vite": "4.0.0", "electron-vite": "4.0.1",
"eslint": "9.35.0", "eslint": "9.35.0",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-import-resolver-exports": "1.0.0-beta.5", "eslint-import-resolver-exports": "1.0.0-beta.5",
@ -164,17 +166,16 @@
"eslint-plugin-import": "2.32.0", "eslint-plugin-import": "2.32.0",
"eslint-plugin-prettier": "5.5.4", "eslint-plugin-prettier": "5.5.4",
"eslint-plugin-solid": "0.14.5", "eslint-plugin-solid": "0.14.5",
"glob": "11.0.3", "glob": "11.1.0",
"node-gyp": "11.4.2", "node-gyp": "11.4.2",
"playwright": "1.55.0", "ts-morph": "27.0.2",
"ts-morph": "27.0.0", "typescript": "5.9.3",
"typescript": "5.9.2",
"typescript-eslint": "8.43.0", "typescript-eslint": "8.43.0",
"utf-8-validate": "6.0.5", "utf-8-validate": "6.0.6",
"vite": "npm:rolldown-vite@7.1.8", "vite": "npm:rolldown-vite@7.3.0",
"vite-plugin-inspect": "11.3.3", "vite-plugin-inspect": "11.3.3",
"vite-plugin-resolve": "2.5.2", "vite-plugin-resolve": "2.5.2",
"vite-plugin-solid": "2.11.8", "vite-plugin-solid": "2.11.10",
"ws": "8.18.3" "ws": "8.18.3"
}, },
"auto-changelog": { "auto-changelog": {

40
patches/mdui@2.1.4.patch Normal file
View File

@ -0,0 +1,40 @@
diff --git a/jsx.en.d.ts b/jsx.en.d.ts
index 514d455dcdb436aaf7b2ee88deaefe01943c8b4b..48dff045dead4315936afd931336198996c88217 100644
--- a/jsx.en.d.ts
+++ b/jsx.en.d.ts
@@ -1,12 +1,8 @@
-import React from 'react';
import { JQ } from '@mdui/jq';
-type HTMLElementProps = React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>;
+type HTMLElementProps = import("solid-js").JSX.HTMLAttributes<HTMLElement>;
-declare global {
- namespace React {
- namespace JSX {
- interface IntrinsicElements {
+export interface IntrinsicElements {
/**
* Avatar Component
*
@@ -3296,7 +3292,4 @@ declare global {
*/
'order'?: number;
} & HTMLElementProps;
- }
- }
- }
}
diff --git a/package.json b/package.json
index 3fa3eeb471ce4c31d7ac1c9bcb2d6823947e91ca..c4b062020bf20b8db34ccfea500fa682a4af19a6 100644
--- a/package.json
+++ b/package.json
@@ -60,5 +60,8 @@
"tslib": "^2.8.1",
"@mdui/shared": "^1.0.8",
"@mdui/jq": "^3.0.3"
+ },
+ "peerDependencies": {
+ "solid-js": "^1.9.7"
}
}

1456
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -50,7 +50,7 @@ export const defaultConfig: DefaultConfig = {
x: -1, x: -1,
y: -1, y: -1,
}, },
'url': 'https://music.youtube.com', 'url': 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
'options': { 'options': {
tray: false, tray: false,
appVisible: true, appVisible: true,

View File

@ -112,7 +112,10 @@ const migrations = {
'>=2.1.3'(store: IStore) { '>=2.1.3'(store: IStore) {
const listenAlong = store.get('plugins.discord.listenAlong'); const listenAlong = store.get('plugins.discord.listenAlong');
if (listenAlong !== undefined) { if (listenAlong !== undefined) {
store.set('plugins.discord.playOnYouTubeMusic', listenAlong); store.set(
'plugins.discord.playOn\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u004d\u0075\u0073\u0069\u0063',
listenAlong,
);
store.delete('plugins.discord.listenAlong'); store.delete('plugins.discord.listenAlong');
} }
}, },

View File

@ -2,6 +2,9 @@ import i18next, { init, t as i18t, changeLanguage } from 'i18next';
import { languageResources } from 'virtual:i18n'; import { languageResources } from 'virtual:i18n';
export const APPLICATION_NAME =
'\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063';
export const loadI18n = async () => export const loadI18n = async () =>
await init({ await init({
resources: await languageResources(), resources: await languageResources(),

View File

@ -2,10 +2,10 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "فشل تشغيل الاضافة {{pluginName}}::{{contextName}}", "execute-failed": "فشل بدأ الاضافة {{pluginName}}::{{contextName}}",
"executed-at-ms": "تم تشغيل الاضافة {{pluginName}}::{{contextName}} خلال {{ms}} جزء من الثانية", "executed-at-ms": "تم بدأ الاضافة {{pluginName}}::{{contextName}} خلال {{ms}} جزء من الثانية",
"initialize-failed": "فشل تنفيذ الاضافة \"{{pluginName}}\"", "initialize-failed": "فشل تشغيل الاضافة \"{{pluginName}}\"",
"load-all": "جاري تحميل جميع الاضافات", "load-all": "جار تحميل جميع الاضافات",
"load-failed": "فشل في تحميل الاضافة \"{{pluginName}}\"", "load-failed": "فشل في تحميل الاضافة \"{{pluginName}}\"",
"loaded": "تم تحميل الاضافة \"{{pluginName}}\"", "loaded": "تم تحميل الاضافة \"{{pluginName}}\"",
"unload-failed": "فشل ازالة الاضافة \"{{pluginName}}\"", "unload-failed": "فشل ازالة الاضافة \"{{pluginName}}\"",
@ -30,21 +30,21 @@
"receive-command": "تم الحصول على أمر عن طريق: \"{{command}}\"" "receive-command": "تم الحصول على أمر عن طريق: \"{{command}}\""
}, },
"theme": { "theme": {
"css-file-not-found": "ملف \"{{cssFile}}\" غير متواجد,سيتم التجاهل" "css-file-not-found": "ملف \"{{cssFile}}\" غير متواجد، سيتم التجاهل"
}, },
"unresponsive": { "unresponsive": {
"details": "خطء عدم استجابة!\n{{error}}" "details": "خطء عدم استجابة!\n{{error}}"
}, },
"when-ready": { "when-ready": {
"clearing-cache-after-20s": "ازالة بيانات التطبيق المخزنة" "clearing-cache-after-20s": "ازالة ذاكرة التخزين المؤقت للتطبيق"
}, },
"window": { "window": {
"tried-to-render-offscreen": "تم محاولة فتح الصفحة خارج الشاشة, حجم الصفحة={{windowSize}}, حجم الشاشة={{displaySize}}, مكان={{position}}" "tried-to-render-offscreen": "تم محاولة فتح الصفحة خارج الشاشة, حجم الصفحة={{windowSize}}, حجم النافذة={{displaySize}}, المكان={{position}}"
} }
}, },
"dialog": { "dialog": {
"hide-menu-enabled": { "hide-menu-enabled": {
"detail": "تم اخفاء القائمة, استخدم 'Alt' لاظهار القائمة (أو 'Escape' اذا كنت تستخدم القائمة داخل التطبيق)", "detail": "تم اخفاء القائمة, استخدم 'Alt' لاظهار القائمة (أو 'Escape' اذا كنت تستخدم القائمة التي داخل التطبيق)",
"message": "اخفاء القائمة مفعل", "message": "اخفاء القائمة مفعل",
"title": "تم تفعيل اخفاء القائمة" "title": "تم تفعيل اخفاء القائمة"
}, },
@ -65,27 +65,27 @@
}, },
"detail": "نأسف على الإزعاج! يرجى اختيار ما يجب القيام به:", "detail": "نأسف على الإزعاج! يرجى اختيار ما يجب القيام به:",
"message": "التطبيق لا يستجيب", "message": "التطبيق لا يستجيب",
"title": "الصفحة لا تستجيب" "title": "النافذة لا تستجيب"
}, },
"update-available": { "update-available": {
"buttons": { "buttons": {
"disable": "ايقاف التحديثات", "disable": "ايقاف التحديثات",
"download": حميل", "download": نزيل",
"ok": "موافق" "ok": "حسنا"
}, },
"detail": "يوجد نسخة جديدة يمكن تحميلها من خلال {{downloadLink}}", "detail": "يوجد نسخة جديدة يمكن تنزيلها من {{downloadLink}}",
"message": "يوجد نسخة حديثة", "message": "يوجد نسخة جديدة",
"title": "يوجد تحديث" "title": "يوجد تحديث"
} }
}, },
"menu": { "menu": {
"about": "عنا", "about": "عنا",
"navigation": { "navigation": {
"label": "التنقل", "label": "شريط التنقل",
"submenu": { "submenu": {
"copy-current-url": "نسخ الرابط الحالي", "copy-current-url": "نسخ الرابط الحالي",
"go-back": "العودة للخلف", "go-back": "عودة",
"go-forward": "التقدم", "go-forward": "تقدم",
"quit": "الخروج", "quit": "الخروج",
"restart": "اعادة تشغيل التطبيق" "restart": "اعادة تشغيل التطبيق"
} }
@ -96,28 +96,28 @@
"advanced-options": { "advanced-options": {
"label": "الاعدادات المتقدمة", "label": "الاعدادات المتقدمة",
"submenu": { "submenu": {
"auto-reset-app-cache": "إعادة تعيين ذاكرة التخزين المؤقت للتطبيق عند بدء التشغيل", "auto-reset-app-cache": "إعادة ضبط ذاكرة التخزين المؤقت للتطبيق عند بدء التشغيل",
"disable-hardware-acceleration": "تعطيل تسريع الأجهزة", "disable-hardware-acceleration": "اطفاء تسريع الأجهزة",
"edit-config-json": "تعديل ملف الاعدادات", "edit-config-json": "تعديل ملف الاعدادات",
"override-user-agent": "تجاوز وكيل المستخدم", "override-user-agent": "تجاوز وكيل المستخدم",
"restart-on-config-changes": "اعادة التشغيل بعد تعديل الاعدادات", "restart-on-config-changes": "اعادة التشغيل بعد تعديل الاعدادات",
"set-proxy": { "set-proxy": {
"label": "تعيين الوكيل", "label": "تعيين الوكيل",
"prompt": { "prompt": {
"label": "أدخل عنوان الوكيل: (اتركه فارغًا للتعطيل)", "label": "أدخل عنوان الوكيل: (اتركه فارغًا لإطفائه)",
"placeholder": "مثال: SOCKS5://127.0.0.1:9999", "placeholder": "مثال: SOCKS5://127.0.0.1:9999",
"title": "اضافة الوكيل" "title": "ضع proxy"
} }
}, },
"toggle-dev-tools": "تثبيت أدوات التطوير" "toggle-dev-tools": "تثبيت أدوات التطوير"
} }
}, },
"always-on-top": "دائما في القمة", "always-on-top": "دائما في المقدمة",
"auto-update": "تحديث تلقائي", "auto-update": "تحديث تلقائي",
"hide-menu": { "hide-menu": {
"dialog": { "dialog": {
"message": "سيتم إخفاء القائمة عند التشغيل التالي، استخدم [Alt] لإظهارها (أو ضع علامة اختيار على [`] في حالة استخدام القائمة داخل التطبيق)", "message": "سيتم إخفاء القائمة عند التشغيل التالي، استخدم [Alt] لإظهارها (أو اضغط [`] في حالة استخدام القائمة التي داخل التطبيق)",
"title": "إخفاء القائمة ممكن" "title": "إخفاء القائمة مفعل"
}, },
"label": "إخفاء القائمة" "label": "إخفاء القائمة"
}, },
@ -131,20 +131,20 @@
"to-help-translate": "تريد المساعدة في الترجمة؟ اضغط هنا" "to-help-translate": "تريد المساعدة في الترجمة؟ اضغط هنا"
} }
}, },
"resume-on-start": "تكملة الأغنية الأخيرة عند بدأ التشغيل", "resume-on-start": "استأنف الأغنية الأخيرة عند بدأ التشغيل",
"single-instance-lock": "قفل مثيل واحد", "single-instance-lock": "قفل مثيل واحد",
"start-at-login": "‎ابدأ عند تسجيل الدخول", "start-at-login": "‎ابدأ عند تسجيل الدخول",
"starting-page": { "starting-page": {
"label": "صفحة البداية", "label": "صفحة البداية",
"unset": "الغاء" "unset": "عدم تعيين"
}, },
"tray": { "tray": {
"label": "قائمة", "label": "قائمة",
"submenu": { "submenu": {
"disabled": "غير مفعل", "disabled": "غير مفعل",
"enabled-and-hide-app": "تمكين وإخفاء التطبيق", "enabled-and-hide-app": "مفعل وإخفاء التطبيق",
"enabled-and-show-app": مكين وأظهر التطبيق", "enabled-and-show-app": فعل وأظهر التطبيق",
"play-pause-on-click": "تشغيل/إيقاف مؤقت عند النقر" "play-pause-on-click": "تشغيل/إيقاف عند النقر"
} }
}, },
"visual-tweaks": { "visual-tweaks": {
@ -153,7 +153,8 @@
"custom-window-title": { "custom-window-title": {
"label": "عنوان نافذة مخصص", "label": "عنوان نافذة مخصص",
"prompt": { "prompt": {
"placeholder": "مثال: YouTube Music" "label": "ادخل عنوان مخصص للنافذة: (اتركه فارغًا إلغاء التفعيل)",
"placeholder": "مثال: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -162,7 +163,7 @@
"hide": "اخفاء", "hide": "اخفاء",
"label": "أزرار الاعجاب" "label": "أزرار الاعجاب"
}, },
"remove-upgrade-button": "ازالة زرار التطوير", "remove-upgrade-button": "ازالة زر التطوير",
"theme": { "theme": {
"dialog": { "dialog": {
"button": { "button": {
@ -207,8 +208,8 @@
"restart": "إعادة تشغيل التطبيق", "restart": "إعادة تشغيل التطبيق",
"show": "عرض النافدة", "show": "عرض النافدة",
"tooltip": { "tooltip": {
"default": "يوتيوب اغاني", "default": "{{applicationName}}",
"with-song-info": "أغاني يوتيوب: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -232,25 +233,25 @@
"description": "يطبق ثيمًا ديناميكيًا وتأثيرات بصرية بناء على ألوان الألبوم", "description": "يطبق ثيمًا ديناميكيًا وتأثيرات بصرية بناء على ألوان الألبوم",
"menu": { "menu": {
"color-mix-ratio": { "color-mix-ratio": {
"label": "‬نسبة قوة اللون", "label": "‬نسبة قوة مزيج الألوان",
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}٪"
} }
} }
}, },
"name": "ثيم ألوان الألبوم" "name": "سمة ألوان الألبوم"
}, },
"ambient-mode": { "ambient-mode": {
"description": "يطبق تأثير إضاءة عن طريق إسقاط ألوان ناعمة من الفيديو على خلفية شاشتك", "description": "يطبق تأثير إضاءة عن طريق إسقاط ألوان ناعمة من الفيديو على خلفية شاشتك",
"menu": { "menu": {
"blur-amount": { "blur-amount": {
"label": "مقدار التمويه", "label": "مقدار الطمس",
"submenu": { "submenu": {
"pixels": "{{blurAmount}} بكسل" "pixels": "{{blurAmount}} بكسل"
} }
}, },
"buffer": { "buffer": {
"label": "تخزين الصوت الؤقت", "label": "تخزين الصوت المؤقت",
"submenu": { "submenu": {
"buffer": "{{buffer}}" "buffer": "{{buffer}}"
} }
@ -258,7 +259,7 @@
"opacity": { "opacity": {
"label": "الشفافية", "label": "الشفافية",
"submenu": { "submenu": {
"percent": "{{opacity}}%" "percent": "{{opacity}}٪"
} }
}, },
"quality": { "quality": {
@ -270,7 +271,7 @@
"size": { "size": {
"label": "الحجم", "label": "الحجم",
"submenu": { "submenu": {
"percent": "{{size}}%" "percent": "{{size}}٪"
} }
}, },
"smoothness-transition": { "smoothness-transition": {
@ -286,30 +287,30 @@
"name": "الوضع المحيطي" "name": "الوضع المحيطي"
}, },
"amuse": { "amuse": {
"description": "تكامل دعم YouTube Music مع ويدجت Amuse لعرض الأغنية قيد التشغيل، من إنتاج 6K Labs", "description": "تكامل دعم {{applicationName}} مع ويدجت Amuse لعرض الأغنية التي قيد التشغيل، من إنتاج 6K Labs",
"name": "تلسيه", "name": "تلسيه",
"response": { "response": {
"query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية." "query": "خادم Amuse API قيد التشغيل. استخدم GET /query للحصول على معلومات الأغنية."
} }
}, },
"api-server": { "api-server": {
"description": "يضيف خادم للتحكم في المشغل", "description": "يضيف API للتحكم في المشغل",
"dialog": { "dialog": {
"request": { "request": {
"buttons": { "buttons": {
"allow": "سماح", "allow": "سماح",
"deny": "رفض" "deny": "رفض"
}, },
"message": "السماح لـ {{ID}} ({{origin}}) بالوصول إلى واجهة برمجة التطبيقات (API)؟", "message": "السماح لـ {{ID}} ({{origin}}) بالوصول إلى الAPI؟",
"title": "طلب السماح بالوصول إلى واجهة برمجة التطبيقات(API)" "title": "طلب السماح بالوصول إلى الAPI"
} }
}, },
"menu": { "menu": {
"auth-strategy": { "auth-strategy": {
"label": "نهج التفويض", "label": "استراتيجية التفويض",
"submenu": { "submenu": {
"auth-at-first": { "auth-at-first": {
"label": "التفويض المبدئي عند الطلب الأول" "label": "التفويض عند الطلب الأول"
}, },
"none": { "none": {
"label": "بدون تفويض" "label": "بدون تفويض"
@ -340,10 +341,10 @@
"name": "ضاغط الصوت" "name": "ضاغط الصوت"
}, },
"auth-proxy-adapter": { "auth-proxy-adapter": {
"description": "دعم استخدام خدمات وكيل المصادقة", "description": "دعم استخدام خدمات proxy للإثبات",
"menu": { "menu": {
"disable": "تعطيل مكيف الوكيل", "disable": "تعطيل مكيف الوكيل",
"enable": "تفعيل مكيف الوكيل", "enable": "تفعيل مكيف proxy للصداقة",
"hostname": { "hostname": {
"label": "إسم المستضيف" "label": "إسم المستضيف"
}, },
@ -351,28 +352,28 @@
"label": "المدخل" "label": "المدخل"
} }
}, },
"name": "مكيّف وسيط المصادقة", "name": "مكيّف proxy للمصادقة",
"prompt": { "prompt": {
"hostname": { "hostname": {
"label": "أدخل اسم المستضيف لخادم الوسيط المحلي (يتطلب إعادة التشغيل):", "label": "أدخل اسم المستضيف لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "إسم مستضيف الوسيط" "title": "إسم مستضيف proxy"
}, },
"port": { "port": {
"label": "أدخل مدخلًا لخادم الوسيط المحلي (يتطلب إعادة التشغيل):", "label": "أدخل مدخلًا لخادم proxy المحلي (يتطلب إعادة التشغيل):",
"title": "مدخل الوسيط" "title": "مدخل proxy"
} }
} }
}, },
"blur-nav-bar": { "blur-nav-bar": {
"description": "يجعل شريط التنقل شفاف و ضبابي", "description": "يجعل شريط التنقل شفاف و مطموس",
"name": "تغبيش شريط التنقل" "name": "طمس شريط التنقل"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "تجاوز تَحَقّق اليوتيوب من السن", "description": "تجاوز تَحَقّق مشغل الموسيقى من السن",
"name": "تجاوز التحقق من السن" "name": "تجاوز التحقق من السن"
}, },
"captions-selector": { "captions-selector": {
"description": "محدد ترجمات المقاطع الصوتية لYoutube Music", "description": "محدد ترجمات المقاطع الصوتية ل{{applicationName}}",
"menu": { "menu": {
"autoload": "اختار اخر ترجمة مستخدمة تلقائيا", "autoload": "اختار اخر ترجمة مستخدمة تلقائيا",
"disable-captions": "لا توجد ترجمات بشكل افتراضي" "disable-captions": "لا توجد ترجمات بشكل افتراضي"
@ -390,7 +391,7 @@
}, },
"toast": { "toast": {
"caption-changed": "تم تغيير الترجمة الى {{language}}", "caption-changed": "تم تغيير الترجمة الى {{language}}",
"caption-disabled": "الترجمة معطلة", "caption-disabled": "الترجمة غير مفعلة",
"no-captions": "الترجمة لهاته الأغنية غير متاحة" "no-captions": "الترجمة لهاته الأغنية غير متاحة"
} }
}, },
@ -408,25 +409,33 @@
"options": { "options": {
"multi-input": { "multi-input": {
"fade-in-duration": "مدة التداخل (بأجزاء الثانية)", "fade-in-duration": "مدة التداخل (بأجزاء الثانية)",
"fade-out-duration": "مدة التلاشي (جزء ثانية)", "fade-out-duration": "مدة التلاشي (بأجزاء الثانية)",
"fade-scaling": { "fade-scaling": {
"label": "توسيع التداخل", "label": "توسيع التداخل",
"linear": "خطي", "linear": "خطي",
"logarithmic": "لوغاريتمي" "logarithmic": "لوغاريتمي"
}, },
"seconds-before-end": "التلاشي قبل النهاية بـ N ثوانٍ" "seconds-before-end": "التداخل قبل النهاية بـ N ثوانٍ"
}, },
"title": "خيارات التداخل" "title": "خيارات التداخل"
} }
} }
}, },
"custom-output-device": { "custom-output-device": {
"description": "ضبط مخرج جهاز وسائط مخصص للأغاني",
"menu": { "menu": {
"device-selector": "اختر جهاز" "device-selector": "اختر جهاز"
},
"name": "جهاز اخراج مخصص",
"prompt": {
"device-selector": {
"label": "اختر جهاز الوسائط الذي سيتم استخدامه للاخراج",
"title": "اختر الجهاز الإخراج"
}
} }
}, },
"disable-autoplay": { "disable-autoplay": {
"description": "يجعل الأغنية تبدأ في وضع \"الإيقاف المؤقت\"", "description": "يجعل الأغنية تبدأ في وضع \"الإيقاف\"",
"menu": { "menu": {
"apply-once": "ينطبق فقط عند بدء التشغيل" "apply-once": "ينطبق فقط عند بدء التشغيل"
}, },
@ -444,13 +453,21 @@
"clear-activity": "مسح النشاط", "clear-activity": "مسح النشاط",
"clear-activity-after-timeout": "مسح النشاط بعد انتهاء المهلة", "clear-activity-after-timeout": "مسح النشاط بعد انتهاء المهلة",
"connected": "متصل", "connected": "متصل",
"disconnected": "قطع الاتصال", "disconnected": "غير متصل",
"hide-duration-left": "إخفاء المدة المتبقية", "hide-duration-left": "إخفاء المدة المتبقية",
"hide-github-button": "إخفاء زر رابط GitHub", "hide-github-button": "إخفاء زر رابط GitHub",
"play-on-youtube-music": "شغل في YouTube Music", "play-on-application": "شغل في {{applicationName}}",
"set-inactivity-timeout": "ضبط مهلة عدم النشاط" "set-inactivity-timeout": "ضبط مهلة عدم النشاط",
"set-status-display-type": {
"label": "نص الحالة",
"submenu": {
"artist": "جار السمع ل{artist}",
"application": "جار السمع ل{{applicationName}}",
"title": "جار السمع ل{song title}"
}
}
}, },
"name": "حالة ديسكورد", "name": "Discord Rich Presence",
"prompt": { "prompt": {
"set-inactivity-timeout": { "set-inactivity-timeout": {
"label": "أدخل مهلة عدم النشاط بالثواني:", "label": "أدخل مهلة عدم النشاط بالثواني:",
@ -465,70 +482,70 @@
"buttons": { "buttons": {
"ok": "حسنا" "ok": "حسنا"
}, },
"message": "نعتذر، فشل التحميل…", "message": "اه! نعتذر، فشل التنزيل…",
"title": "خطأ في التحميل!" "title": "خطأ في التنزيل!"
}, },
"start-download-playlist": { "start-download-playlist": {
"buttons": { "buttons": {
"ok": "حسنا" "ok": "حسنا"
}, },
"detail": "({{playlistSize}} أغنية)", "detail": "({{playlistSize}} أغنية)",
"message": حميل القائمة {{playlistTitle}}", "message": نزيل القائمة {{playlistTitle}}",
"title": "بدأ التحميل" "title": "تم بدأ التنزيل"
} }
}, },
"feedback": { "feedback": {
"conversion-progress": "التحويل: {{percent}}%", "conversion-progress": "التحويل: {{percent}}٪",
"converting": "جارٍ التحويل…", "converting": "جارٍ التحويل…",
"done": "تم: {{filePath}}", "done": "تم: {{filePath}}",
"download-info": حميل {{artist}} - {{title}} {{videoId}}", "download-info": نزيل {{artist}} - {{title}} {{videoId}}",
"download-progress": حميل: {{percent}}%", "download-progress": نزيل: {{percent}}٪",
"downloading": "تحميل…", "downloading": "جار التنزيل…",
"downloading-counter": "تنزيل {{current}}/{{total}}…", "downloading-counter": "جار التنزيل {{current}}/{{total}}…",
"downloading-playlist": "يتم تحميل القائمة \"{{playlistTitle}}\" - {{playlistSize}} أغاني ({{playlistId}})", "downloading-playlist": "جار تنزيل القائمة \"{{playlistTitle}}\" - {{playlistSize}} أغاني ({{playlistId}})",
"error-while-downloading": "خطأ في تحميل \"{{author}} - {{title}}\": {{error}}", "error-while-downloading": "خطأ في تنزيل \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "الملف {{playlistFolder}} موجود بالفعل", "folder-already-exists": "الملف {{playlistFolder}} موجود بالفعل",
"getting-playlist-info": "الحصول على معلومات القائمة…", "getting-playlist-info": "جار الحصول على معلومات القائمة…",
"loading": "جار التحميل…", "loading": "جارِ التنزيل…",
"playlist-has-only-one-song": "تحتوي قائمة التشغيل على عنصر واحد فقط، يتم تحميله الأن", "playlist-has-only-one-song": "تحتوي قائمة التشغيل على عنصر واحد فقط، جار تنزيله الأن",
"playlist-id-not-found": "لم يتم العثور على معرف قائمة التشغيل", "playlist-id-not-found": "لم يتم العثور على معرف قائمة التشغيل",
"playlist-is-empty": "قائمة التشغيل فارغة", "playlist-is-empty": "قائمة التشغيل فارغة",
"playlist-is-mix-or-private": "حدث خطأ أثناء الحصول على معلومات قائمة التشغيل: تأكد من أنها ليست قائمة تشغيل خاصة أو قائمة تشغيل \"مختلطة لك\"\n\n{{error}}", "playlist-is-mix-or-private": "حدث خطأ أثناء الحصول على معلومات قائمة التشغيل: تأكد من أنها ليست قائمة تشغيل خاصة أو قائمة تشغيل \"مختلطة لك\"\n\n{{error}}",
"preparing-file": "يتم تجهيز الملف…", "preparing-file": "جار تجهيز الملف…",
"saving": "يتم الحفظ…", "saving": "جار الحفظ…",
"trying-to-get-playlist-id": "محاولة الحصول على معرف قائمة التشغيل: {{playlistId}}", "trying-to-get-playlist-id": "جار محاولة الحصول على معرف قائمة التشغيل: {{playlistId}}",
"video-id-not-found": "لم يتم ايجاد الفيديو", "video-id-not-found": "لم يتم ايجاد الفيديو",
"writing-id3": "كتابة علامات ID3…" "writing-id3": "جار كتابة علامات ID3…"
} }
}, },
"description": "يقوم بتنزيل ملفات MP3/مصدر الصوت مباشرة من الواجهة", "description": "يقوم بتنزيل ملفات MP3/مصدر الصوت مباشرة من الواجهة",
"menu": { "menu": {
"choose-download-folder": "اختر مكان التحميل", "choose-download-folder": "اختر مكان التنزيل",
"download-finish-settings": { "download-finish-settings": {
"label": حميل عند الانتهاء", "label": نزيل عند الانتهاء",
"prompt": { "prompt": {
"last-percent": "بعد ( عدد مجهول ) بالمئة", "last-percent": "بعد x بالمئة",
"last-seconds": "آخر (x) ثانية", "last-seconds": "آخر x ثانية",
"title": "تكوين وقت التحميل" "title": "تكوين وقت التنزيل"
}, },
"submenu": { "submenu": {
"advanced": "متقدم", "advanced": "متقدم",
"enabled": "مفعل", "enabled": "مفعل",
"mode": "وضع الوقت", "mode": "وضع الوقت",
"percent": "النسبة", "percent": "نسبة",
"seconds": "ثواني" "seconds": "ثواني"
} }
}, },
"download-playlist": حميل قائمة التشغيل", "download-playlist": نزيل قائمة التشغيل",
"presets": "الإعدادات المسبقة", "presets": "الإعدادات المسبقة",
"skip-existing": "تخطي الملفات الموجودة" "skip-existing": "تخطي الملفات الموجودة بالفعل"
}, },
"name": "أداة التنزيل", "name": "أداة التنزيل",
"renderer": { "renderer": {
"can-not-update-progress": "لا يمكن تحديث التقدم" "can-not-update-progress": "لا يمكن تحديث التقدم"
}, },
"templates": { "templates": {
"button": حميل" "button": نزيل"
} }
}, },
"equalizer": { "equalizer": {
@ -552,11 +569,11 @@
"menu": { "menu": {
"hide-dom-window-controls": "إخفاء عناصر التحكم في نافذة DOM" "hide-dom-window-controls": "إخفاء عناصر التحكم في نافذة DOM"
}, },
"name": "قائمة داخل التطبيق" "name": "قائمة التي داخل التطبيق"
}, },
"lumiastream": { "lumiastream": {
"description": "يضيف دعم Lumia Stream", "description": "يضيف دعم Lumia Stream",
"name": "Lumia Stream [بيتا]" "name": "Lumia Stream [تجريبي]"
}, },
"lyrics-genius": { "lyrics-genius": {
"description": "يضيف دعم الكلمات لمعظم الأغاني", "description": "يضيف دعم الكلمات لمعظم الأغاني",
@ -575,17 +592,17 @@
}, },
"internal": { "internal": {
"save": "حفظ", "save": "حفظ",
"track-source": "مصدر الاغنية", "track-source": "تتبع مصدر الاغنية",
"unknown-user": "مستخدم مجهول" "unknown-user": "مستخدم مجهول"
}, },
"menu": { "menu": {
"click-to-copy-id": "نسخ معرف المستضيف", "click-to-copy-id": "نسخ معرف المستضيف",
"close": "إغلاق \"الموسيقى معًا\"", "close": "إغلاق الموسيقى معًا",
"connected-users": "المستخدمون المتصلون", "connected-users": "المستخدمون المتصلون",
"disconnect": "قطع اتصال من \"الموسيقى معًا\"", "disconnect": "قطع اتصال من الموسيقى معًا",
"empty-user": "لا يوجد مستعملون متصلون", "empty-user": "لا يوجد مستعملون متصلون",
"host": "مضيف \"الموسيقى معًا\"", "host": "مضيف الموسيقى معًا",
"join": "الانضمام إلى \"الموسيقى معا\"", "join": "الانضمام إلى الموسيقى معا",
"permission": { "permission": {
"all": "السماح للضيوف بالتحكم في قائمة التشغيل والمشغل", "all": "السماح للضيوف بالتحكم في قائمة التشغيل والمشغل",
"host-only": "فقط المضيف يستطيع التحكم بالقائمة و المشغل", "host-only": "فقط المضيف يستطيع التحكم بالقائمة و المشغل",
@ -593,29 +610,29 @@
}, },
"set-permission": "تغيير إذن التحكم", "set-permission": "تغيير إذن التحكم",
"status": { "status": {
"disconnected": "قطع الاتصال", "disconnected": "غير متصل",
"guest": "متصل كضيف", "guest": "متصل كضيف",
"host": "متصل كمضيف" "host": "متصل كمضيف"
} }
}, },
"name": "الموسيقى معا [بيتا]", "name": "الموسيقى معا [تجريبي]",
"toast": { "toast": {
"add-song-failed": "فشل في إضافة أغنية", "add-song-failed": "فشل في إضافة أغنية",
"closed": "تم إغلاق \"الموسيقى معا\"", "closed": "تم إغلاق الموسيقى معا",
"disconnected": "تم قطع اتصال \"الموسيقى معًا\"", "disconnected": "تم قطع اتصال الموسيقى معًا",
"host-failed": "فشل في استضافة \"الموسيقى معا\"", "host-failed": "فشل في استضافة الموسيقى معا",
"id-copied": "تم نسخ معرف المضيف", "id-copied": "تم نسخ معرف المضيف",
"id-copy-failed": م يتم نسخ معرف المضيف", "id-copy-failed": "فشل نسخ معرف المضيف",
"join-failed": "فشل الانضمام إلى \"الموسيقى معا\"", "join-failed": "فشل الانضمام إلى الموسيقى معا",
"joined": "تم الانضمام إلى \"الموسيقى معا\"", "joined": "تم الانضمام إلى الموسيقى معا",
"permission-changed": "تم تغيير إذن \"الموسيقى معًا\" إلى \"{{permission}}\"", "permission-changed": "تم تغيير إذن الموسيقى معًا إلى \"{{permission}}\"",
"remove-song-failed": "فشل في إزالة الأغنية", "remove-song-failed": "فشل في إزالة الأغنية",
"user-connected": "{{name}} انضم إلى \"الموسيقى معًا\"", "user-connected": "{{name}} انضم إلى الموسيقى معًا",
"user-disconnected": "{{name}} غادر \"الموسيقى معًا\"" "user-disconnected": "{{name}} غادر الموسيقى معًا"
} }
}, },
"navigation": { "navigation": {
"description": "أسهم التنقل \"التالي/السابق\" مدمجة مباشرة في الواجهة، كما في متصفحك", "description": "أسهم التنقل \"التالي/السابق\" مدمجة مباشرة في الواجهة، كما في متصفحك المفضل",
"name": "التنقل", "name": "التنقل",
"templates": { "templates": {
"back": { "back": {
@ -631,31 +648,31 @@
"name": "لا يوجد تسجيل دخول بجوجل" "name": "لا يوجد تسجيل دخول بجوجل"
}, },
"notifications": { "notifications": {
"description": "عرض إشعار عندما تبدأ الأغنية بالتشغيل (الإشعارات التفاعلية متوفرة على ويندوز)", "description": "عرض إشعار عندما تبدأ الأغنية (الإشعارات التفاعلية متوفرة على ويندوز)",
"menu": { "menu": {
"interactive": "إشعارات تفاعلية", "interactive": "إشعارات تفاعلية",
"interactive-settings": { "interactive-settings": {
"label": "إعدادات تفاعلية", "label": "إعدادات تفاعلية",
"submenu": { "submenu": {
"hide-button-text": "إخفاء زر النص", "hide-button-text": "إخفاء نص الزر",
"refresh-on-play-pause": "تحديث عند التشغيل/الإيقاف المؤقت", "refresh-on-play-pause": "اعادة تحميل عند التشغيل/الإيقاف",
"tray-controls": "فتح/إغلاق عند النقر على علامة الشريط" "tray-controls": "فتح/إغلاق عند النقر على علامة الشريط"
} }
}, },
"priority": "أولوية الإشعار", "priority": "أولوية الإشعار",
"toast-style": "تنسيق التوست", "toast-style": "تنسيق النخب",
"unpause-notification": "إظهار إشعار عند استئناف التشغيل" "unpause-notification": "إظهار إشعار عند استئناف التشغيل"
}, },
"name": "الإشعارات" "name": "الإشعارات"
}, },
"performance-improvement": { "performance-improvement": {
"description": "تحسين الأداء عبر تفعيل السكربتات التجريبية", "description": "تحسين الأداء عبر تفعيل السكربتات التجريبية",
"name": "تحسين الأداء [بيتا]" "name": "تحسين الأداء [تجريبي]"
}, },
"picture-in-picture": { "picture-in-picture": {
"description": "يسمح بتحويل التطبيق إلى وضع الصورة داخل الصورة", "description": "يسمح بتحويل التطبيق إلى وضع الصورة داخل الصورة",
"menu": { "menu": {
"always-on-top": "دائمًا في الأعلى", "always-on-top": "دائمًا في المقدمة",
"hotkey": { "hotkey": {
"label": "مفتاح اختصار", "label": "مفتاح اختصار",
"prompt": { "prompt": {
@ -670,7 +687,7 @@
"save-window-size": "حفظ حجم النافذة", "save-window-size": "حفظ حجم النافذة",
"use-native-pip": "استخدام وضع الصورة داخل الصورة الأصلي للمتصفح" "use-native-pip": "استخدام وضع الصورة داخل الصورة الأصلي للمتصفح"
}, },
"name": "الصورة داخل الصورة", "name": "وضع الصورة داخل الصورة",
"templates": { "templates": {
"button": "وضع الصورة داخل الصورة" "button": "وضع الصورة داخل الصورة"
} }
@ -683,7 +700,7 @@
} }
}, },
"precise-volume": { "precise-volume": {
"description": "التحكم في مستوى الصوت بدقة باستخدام عجلة الفأرة/مفاتيح الاختصار، مع واجهة مستخدم مخصصة وقابلة للتخصيص وخطوات صوتية قابلة للتعديل", "description": "التحكم في مستوى الصوت بدقة باستخدام عجلة الفأرة/مفاتيح الاختصار، مع واجهة مستخدم مخصصة وخطوات صوتية قابلة للتخصيص",
"menu": { "menu": {
"arrows-shortcuts": "عناصر التحكم بأسهم المفاتيح", "arrows-shortcuts": "عناصر التحكم بأسهم المفاتيح",
"custom-volume-steps": "تعيين خطوات صوتية خاصة", "custom-volume-steps": "تعيين خطوات صوتية خاصة",
@ -728,8 +745,8 @@
"dialog": { "dialog": {
"lastfm": { "lastfm": {
"auth-failed": { "auth-failed": {
"message": "فشل المصادقة مع Last.fm\nإخفاء النافذة المنبثقة حتى إعادة التشغيل التالية.", "message": "فشل التفويض مع Last.fm\nإخفاء النافذة المصغرة حتى إعادة التشغيل التالية.",
"title": "فشلت المصادقة" "title": "فشل التفويض"
} }
} }
}, },
@ -740,6 +757,7 @@
"listenbrainz": { "listenbrainz": {
"token": "أدخل رمز مستخدم ListenBrainz" "token": "أدخل رمز مستخدم ListenBrainz"
}, },
"scrobble-alternative-artist": "استخدم فنانين بديلين",
"scrobble-alternative-title": "استخدم عناوين بديلة", "scrobble-alternative-title": "استخدم عناوين بديلة",
"scrobble-other-media": "Scrobble الوسائط الأخرى" "scrobble-other-media": "Scrobble الوسائط الأخرى"
}, },
@ -758,12 +776,12 @@
} }
}, },
"shortcuts": { "shortcuts": {
"description": "يسمح بضبط اختصارات لوحة المفاتيح العالمية للتحكم في التشغيل (تشغيل/إيقاف مؤقت/التالي/السابق) وإيقاف تشغيل OSD الوسائط عن طريق تجاوز مفاتيح الوسائط، وتشغيل Ctrl/CMD + F للبحث، وتفعيل دعم Linux MPRIS لمفاتيح الوسائط، واختصارات مخصصة للمستخدمين المتقدمين", "description": "يسمح بضبط اختصارات لوحة المفاتيح للتحكم في التشغيل (تشغيل/إيقاف/التالي/السابق) وإيقاف تشغيل OSD الوسائط عن طريق تجاوز مفاتيح الوسائط، وتشغيل Ctrl/CMD + F للبحث، وتفعيل دعم Linux MPRIS لمفاتيح الوسائط، واختصارات مخصصة للمستخدمين المتقدمين",
"menu": { "menu": {
"override-media-keys": "تجاوز مفاتيح الوسائط", "override-media-keys": "تجاوز مفاتيح الوسائط",
"set-keybinds": "تعيين عناصر التحكم بالأغاني" "set-keybinds": "تعيين عناصر التحكم بالأغاني"
}, },
"name": "الاختصارات (& MPRIS)", "name": "الاختصارات (و MPRIS)",
"prompt": { "prompt": {
"keybind": { "keybind": {
"keybind-options": { "keybind-options": {
@ -772,17 +790,17 @@
"previous": "السابق" "previous": "السابق"
}, },
"label": "اختر اختصارات لوحة المفاتيح للتحكم في الأغاني:", "label": "اختر اختصارات لوحة المفاتيح للتحكم في الأغاني:",
"title": "اختصارات لوحة المفاتيح العالمية" "title": "اختصارات لوحة المفاتيح"
} }
} }
}, },
"skip-disliked-songs": { "skip-disliked-songs": {
"description": "تخطي الأغاني غير المرغوب فيها", "description": "يتخطى الأغاني الغير معجب فيها",
"name": "تخطي الأغاني الغير مرغوب فيها" "name": "تخطي الأغاني الغير معجب فيها"
}, },
"skip-silences": { "skip-silences": {
"description": "تخطي أقسام الصمت تلقائيًا في الأغاني", "description": "تخطي أقسام التي ليس لها صوت تلقائيًا في الأغاني",
"name": "تخطي فترات الصمت" "name": "تخطي الفترات التي ليس لها صوت"
}, },
"sponsorblock": { "sponsorblock": {
"description": "تخطي تلقائيًا الأجزاء غير الموسيقية مثل المقدمة/الختام أو أجزاء مقاطع الفيديو الموسيقية حيث لا يتم تشغيل الأغنية", "description": "تخطي تلقائيًا الأجزاء غير الموسيقية مثل المقدمة/الختام أو أجزاء مقاطع الفيديو الموسيقية حيث لا يتم تشغيل الأغنية",
@ -796,7 +814,7 @@
}, },
"menu": { "menu": {
"default-text-string": { "default-text-string": {
"label": "المسافة الافتراضي بين كلمات الأغاني", "label": "المسافة الافتراضية بين كلمات الأغاني",
"tooltip": "اختر الحرف الافتراضي لاستخدامه في الفجوة بين كلمات الأغنية" "tooltip": "اختر الحرف الافتراضي لاستخدامه في الفجوة بين كلمات الأغنية"
}, },
"line-effect": { "line-effect": {
@ -816,14 +834,22 @@
}, },
"scale": { "scale": {
"label": "تحجيم", "label": "تحجيم",
"tooltip": "تكبير السطر الحالي" "tooltip": "حجم السطر الحالي"
} }
}, },
"tooltip": "اختر التأثير لتطبيقه على السطر الحالي" "tooltip": "اختر التأثير لتطبيقه على السطر الحالي"
}, },
"precise-timing": { "precise-timing": {
"label": "اجعل كلمات الأغنية متزامنة بشكل مثالي", "label": "اجعل كلمات الأغنية متزامنة بشكل مثالي",
"tooltip": "احسب بدقة الملي ثانية عرض السطر التالي (قد يكون له تأثير طفيف على الأداء)" "tooltip": "احسب بدقة الملي ثانية عرض السطر التالي (قد يكون له تأثير صغير على الأداء)"
},
"preferred-provider": {
"label": "المزود المفضل",
"none": {
"label": "لا شيء",
"tooltip": "لا يوجد مزود مفضل"
},
"tooltip": "اختر المزود المفضل للإستخدام"
}, },
"romanization": { "romanization": {
"label": "اجعل الكلمات رومانية", "label": "اجعل الكلمات رومانية",
@ -850,7 +876,7 @@
} }
}, },
"taskbar-mediacontrol": { "taskbar-mediacontrol": {
"description": "التحكم في المشغل من شريط المهام ويندوز", "description": "التحكم في المشغل من شريط مهام ويندوز",
"name": "التحكم بالوسائط من شريط المهام" "name": "التحكم بالوسائط من شريط المهام"
}, },
"touchbar": { "touchbar": {
@ -858,12 +884,21 @@
"name": "شريط اللمس (TouchBar)" "name": "شريط اللمس (TouchBar)"
}, },
"transparent-player": { "transparent-player": {
"description": "يجعل نافذة التطبيق شفافة",
"menu": { "menu": {
"type": { "opacity": {
"label": "الشفافية",
"submenu": { "submenu": {
"acrylic": "زجاجي", "percent": "{{opacity}}٪"
"mica": "حجري", }
"none": "لاشيء" },
"type": {
"label": "النوع",
"submenu": {
"acrylic": "أكريليك",
"mica": "ميكا",
"none": "لاشيء",
"tabbed": "بديل ميكا"
} }
} }
}, },
@ -892,13 +927,13 @@
"mode": { "mode": {
"label": "وضع", "label": "وضع",
"submenu": { "submenu": {
"custom": "تبديل مخصص", "custom": "زر مخصص",
"disabled": "غير مفعل", "disabled": "غير مفعل",
"native": "تبديل طبيعي" "native": "زر طبيعي"
} }
} }
}, },
"name": "تفعيل الفيديو", "name": "زر الفيديو",
"templates": { "templates": {
"button-song": "أغنية", "button-song": "أغنية",
"button-video": "فيديو" "button-video": "فيديو"
@ -907,7 +942,7 @@
"visualizer": { "visualizer": {
"description": "يضيف معاينًا بصريًا للمشغل", "description": "يضيف معاينًا بصريًا للمشغل",
"menu": { "menu": {
"visualizer-type": "نوع المعاينة المصرية" "visualizer-type": "نوع المعاين البصري"
}, },
"name": "معاين بصري" "name": "معاين بصري"
} }

View File

@ -116,7 +116,54 @@
"auto-update": "Avtomatik Yeniləmə", "auto-update": "Avtomatik Yeniləmə",
"hide-menu": { "hide-menu": {
"dialog": { "dialog": {
"message": "Menu will be hidden on next launch, use [Alt] to show it (or backtick [`] if using in-app-menu)" "message": "Menyu növbəti açılışda gizlədiləcək, göstərmək üçün [Alt] düyməsini basın (proqramdaxili menyudan istifadə edildikdə isə, [`] düyməsi).",
"title": "Menyu gizlətmə aktivdir"
},
"label": "Menyunu gizlət"
},
"language": {
"dialog": {
"message": "Dil yenidən başlatmadan sonra dəyişiləcək",
"title": "Dil dəyişdirildi"
},
"label": "Dil",
"submenu": {
"to-help-translate": "Tərcüməyə kömək etmək istəyirsiniz? Buraya basın"
}
},
"resume-on-start": "Tətbiq başladıqda son mahnıdan davam et",
"single-instance-lock": "Tək proqram kilidi",
"start-at-login": "Giriş səhifəsində başlat",
"starting-page": {
"label": "Giriş səhifəsi",
"unset": "Təyin edilməyib"
},
"tray": {
"submenu": {
"disabled": "Deaktiv edilib"
}
},
"visual-tweaks": {
"label": "Vizual düzəlişlər",
"submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "Nümunə: {{applicationName}}"
}
},
"like-buttons": {
"default": "Standart",
"hide": "Gizlət"
},
"remove-upgrade-button": "Yeniləmə düyməsini sil",
"theme": {
"dialog": {
"button": {
"cancel": "Ləğv et",
"remove": "Sil"
}
}
}
} }
} }
} }

View File

@ -0,0 +1 @@
{}

View File

@ -154,7 +154,7 @@
"label": "Персонализирано заглавие на прозорец", "label": "Персонализирано заглавие на прозорец",
"prompt": { "prompt": {
"label": "Въведи персонализирано заглавие: (остави празно за да изключиш)", "label": "Въведи персонализирано заглавие: (остави празно за да изключиш)",
"placeholder": "Пример: Youtube Music" "placeholder": "Пример: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Рестартирай приложението", "restart": "Рестартирай приложението",
"show": "Покажи прозорец", "show": "Покажи прозорец",
"tooltip": { "tooltip": {
"default": "YouTube Музика", "default": "{{applicationName}}",
"with-song-info": "YouTube Музика: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Атмосферен режим" "name": "Атмосферен режим"
}, },
"amuse": { "amuse": {
"description": "Добавя поддръжка на YouTube Music за джаджата Amuse Now Play от 6K Labs", "description": "Добавя поддръжка на {{applicationName}} за джаджата Amuse Now Play от 6K Labs",
"name": "Забавление", "name": "Забавление",
"response": { "response": {
"query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента." "query": "Сървърът на Amuse API работи. Изпратете GET /query за информация за песента."
@ -369,11 +369,11 @@
"name": "Размазанa навигационна лента" "name": "Размазанa навигационна лента"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Избягване на възрастова верификация на YouTube", "description": "Избягване на възрастова верификация на Music Player",
"name": "Избягване на възрастови ограничения" "name": "Избягване на възрастови ограничения"
}, },
"captions-selector": { "captions-selector": {
"description": "Избор на надписи за аудио тракове в YouTube Music", "description": "Избор на надписи за аудио тракове в {{applicationName}}",
"menu": { "menu": {
"autoload": "Автоматично избиране на последно използвания надпис", "autoload": "Автоматично избиране на последно използвания надпис",
"disable-captions": "Без надписи по подразбиране" "disable-captions": "Без надписи по подразбиране"
@ -456,14 +456,14 @@
"disconnected": "Прекъснато", "disconnected": "Прекъснато",
"hide-duration-left": "Скрий оставащото време", "hide-duration-left": "Скрий оставащото време",
"hide-github-button": "Скрий бутона за линк към GitHub", "hide-github-button": "Скрий бутона за линк към GitHub",
"play-on-youtube-music": "Възпроизведи в YouTube Music", "play-on-application": "Възпроизведи в {{applicationName}}",
"set-inactivity-timeout": "Задай таймаут за неактивност", "set-inactivity-timeout": "Задай таймаут за неактивност",
"set-status-display-type": { "set-status-display-type": {
"label": "Статус текст", "label": "Статус текст",
"submenu": { "submenu": {
"artist": "Слушам {artist}", "artist": "Слушам {artist}",
"title": "Слушам {song title}", "title": "Слушам {song title}",
"youtube-music": "Слушам YouTube Music" "application": "Слушам {{applicationName}}"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "কাস্টম উইন্ডো টাইটেল", "label": "কাস্টম উইন্ডো টাইটেল",
"prompt": { "prompt": {
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)", "label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
"placeholder": "উদাহরণস্বরূপ: YouTube Music" "placeholder": "উদাহরণস্বরূপ: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "অ্যাপ পুনরায় চালু করুন", "restart": "অ্যাপ পুনরায় চালু করুন",
"show": "উইন্ডো দেখান", "show": "উইন্ডো দেখান",
"tooltip": { "tooltip": {
"default": "ইউটিউব মিউজিক", "default": "{{applicationName}}",
"with-song-info": "ইউটিউব মিউজিক: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -443,7 +443,7 @@
"disconnected": "সংযোগ বিচ্ছিন্ন", "disconnected": "সংযোগ বিচ্ছিন্ন",
"hide-duration-left": "অবশিষ্ট সময় লুকান", "hide-duration-left": "অবশিষ্ট সময় লুকান",
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান", "hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
"play-on-youtube-music": "ইউটিউব মিউজিকে চালান", "play-on-application": "ইউটিউব মিউজিকে চালান",
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন" "set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
}, },
"name": "ডিসকর্ড রিচ প্রেজেন্স", "name": "ডিসকর্ড রিচ প্রেজেন্স",

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naslov prozora", "label": "Prilagođeni naslov prozora",
"prompt": { "prompt": {
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)", "label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
"placeholder": "Primjer: YouTube Music" "placeholder": "Primjer: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -184,9 +184,31 @@
} }
}, },
"plugins": { "plugins": {
"enabled": "Omogući", "enabled": "Omogućeno",
"label": "Dodaci", "label": "Dodaci",
"new": "Novo" "new": "Novo"
},
"view": {
"label": "Pogled",
"submenu": {
"force-reload": "Silom Ponovo Učitaj",
"reload": "Ponovo Učitaj",
"reset-zoom": "Stvarna Veličina",
"toggle-fullscreen": "Uključi/Isključi Prikaz Cijelog Ekrana",
"zoom-in": "Uvećaj",
"zoom-out": "Umanji"
}
}
},
"tray": {
"next": "Slijedeće",
"play-pause": "Plej/Pauza",
"previous": "Prethodno",
"quit": "Izlaz",
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Pokaži prozor",
"tooltip": {
"default": "{{applicationName}}"
} }
} }
}, },
@ -197,6 +219,53 @@
"label": "Kvalitet" "label": "Kvalitet"
} }
} }
},
"discord": {
"menu": {
"set-status-display-type": {
"submenu": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {muzičar}",
"title": "Slušate {naziv pesme}"
}
}
},
"name": "Diskord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Unesi ograničenje neaktivnosti u sekundama:",
"title": "Postavi ograničenje neaktivnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ufff! Izvinite, preuzimanje nije uspelo…",
"title": "Greška u preuzimanju!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{Playlist Size}} pjesme)",
"message": "Preuzimanje Plejliste {{playlist Title}}",
"title": "Preuzimanje počelo"
}
},
"feedback": {
"conversion-progress": "Pretvaranje: {{percent}}%",
"converting": "Pretvaranje…",
"done": "Gotovo: {{file Path}}",
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Preuzimanje: {{percent}}%",
"downloading": "Preuzimanje…"
}
}
} }
} }
} }

View File

@ -2,7 +2,7 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "Ha fallat l'execució de l'extensió {{pluginName}}::{{contextName}}", "execute-failed": "Error en l'execució de l'extensió {{pluginName}}::{{contextName}}",
"executed-at-ms": "L'extensió {{pluginName}}::{{contextName}} s'ha executat als {{ms}}ms", "executed-at-ms": "L'extensió {{pluginName}}::{{contextName}} s'ha executat als {{ms}}ms",
"initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"", "initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"",
"load-all": "Carregant totes les extensions", "load-all": "Carregant totes les extensions",
@ -154,7 +154,7 @@
"label": "Títol personalitzat de la finestra", "label": "Títol personalitzat de la finestra",
"prompt": { "prompt": {
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)", "label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
"placeholder": "Exemple: YouTube Music" "placeholder": "Exemple: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reinicia l'aplicació", "restart": "Reinicia l'aplicació",
"show": "Mostra la finestra", "show": "Mostra la finestra",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Activar el tema en la barra de progrés"
}, },
"name": "Tema de color de l'àlbum" "name": "Tema de color de l'àlbum"
}, },
@ -287,7 +288,7 @@
"name": "Mode ambient" "name": "Mode ambient"
}, },
"amuse": { "amuse": {
"description": "Afegeix suport a Youtube Music per el widget \"now playing\" d'Amuse per 6K Labs", "description": "Afegeix suport a {{applicationName}} per el widget \"now playing\" d'Amuse per 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó." "query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
@ -369,11 +370,11 @@
"name": "Desenfoca la barra de navegació" "name": "Desenfoca la barra de navegació"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Esquiva la verificació d'edat de YouTube", "description": "Esquiva la verificació d'edat de Music Player",
"name": "Esquiva les restriccions d'edat" "name": "Esquiva les restriccions d'edat"
}, },
"captions-selector": { "captions-selector": {
"description": "Selector de subtítols per les pistes d'àudio de YouTube Music", "description": "Selector de subtítols per les pistes d'àudio de {{applicationName}}",
"menu": { "menu": {
"autoload": "Selecciona automàticament l'últim subtítol emprat", "autoload": "Selecciona automàticament l'últim subtítol emprat",
"disable-captions": "Sense subtítols per defecte" "disable-captions": "Sense subtítols per defecte"
@ -456,14 +457,14 @@
"disconnected": "Desconnectat", "disconnected": "Desconnectat",
"hide-duration-left": "Amaga la durada restant", "hide-duration-left": "Amaga la durada restant",
"hide-github-button": "Amaga el botó de l'enllaç a GitHub", "hide-github-button": "Amaga el botó de l'enllaç a GitHub",
"play-on-youtube-music": "Reprodueix a YouTube Music", "play-on-application": "Reprodueix a {{applicationName}}",
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat", "set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
"set-status-display-type": { "set-status-display-type": {
"label": "Text d'estat", "label": "Text d'estat",
"submenu": { "submenu": {
"artist": "Escoltant {artist}", "artist": "Escoltant {artist}",
"title": "Escoltant {song title}", "application": "Escoltant {{applicationName}}",
"youtube-music": "Escoltant YouTube Music" "title": "Escoltant {song title}"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Vlastní název okna", "label": "Vlastní název okna",
"prompt": { "prompt": {
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)", "label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
"placeholder": "Příklad: Hudba YouTube" "placeholder": "Příklad: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restartovat aplikaci", "restart": "Restartovat aplikaci",
"show": "Zobrazit okno", "show": "Zobrazit okno",
"tooltip": { "tooltip": {
"default": "Youtube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Ambientní režim" "name": "Ambientní režim"
}, },
"amuse": { "amuse": {
"description": "Přídá YouTube Music podporu pro Amuse právě hraje widget od 6K Labs", "description": "Přídá {{applicationName}} podporu pro Amuse právě hraje widget od 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce." "query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
@ -337,7 +337,7 @@
} }
}, },
"audio-compressor": { "audio-compressor": {
"description": "Apply compression k audiu (snižuje hlasitost nejhlasitěších částí signálu and zvyšuje hlasitost nejjemnějších částí)", "description": "Aplikuje kompresi k audiu (snižuje hlasitost nejhlasitěších částí signálu a zvyšuje hlasitost nejjemnějších částí)",
"name": "Audio kompresor" "name": "Audio kompresor"
}, },
"auth-proxy-adapter": { "auth-proxy-adapter": {
@ -369,11 +369,11 @@
"name": "Rozmazaný navigační panel" "name": "Rozmazaný navigační panel"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Obejít ověření věku na YouTube", "description": "Obejít ověření věku na Music Player",
"name": "Obejít věková omezení" "name": "Obejít věková omezení"
}, },
"captions-selector": { "captions-selector": {
"description": "Titulkový selector pro zvukové stopy v YouTube Music", "description": "Titulkový selector pro zvukové stopy v {{applicationName}}",
"menu": { "menu": {
"autoload": "Automaticky vybrat naposledy použité titulky", "autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení" "disable-captions": "Žádné titulky ve vychozím nastavení"
@ -456,14 +456,14 @@
"disconnected": "Odpojeno", "disconnected": "Odpojeno",
"hide-duration-left": "Skrýt zbývající duration", "hide-duration-left": "Skrýt zbývající duration",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub", "hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-youtube-music": "Hrát na YouTube Music", "play-on-application": "Hrát na {{applicationName}}",
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu", "set-inactivity-timeout": "Nastavit timeout pro neaktivitu",
"set-status-display-type": { "set-status-display-type": {
"label": "Text statusu", "label": "Text statusu",
"submenu": { "submenu": {
"artist": "Poslouchám: {artist}", "artist": "Poslouchám: {artist}",
"title": "Poslouchám {song title}", "application": "Poslouchám {{applicationName}}",
"youtube-music": "Poslouchám YouTube Music" "title": "Poslouchám {song title}"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Tilpasset vindues titel", "label": "Tilpasset vindues titel",
"prompt": { "prompt": {
"label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)", "label": "Indtast tilpasset vindues titel: (lad være top for deaktiveret)",
"placeholder": "Eksempel: YouTube Music" "placeholder": "Eksempel: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -206,8 +206,8 @@
"restart": "Genstart app", "restart": "Genstart app",
"show": "Vis vindue", "show": "Vis vindue",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },

View File

@ -3,7 +3,7 @@
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "Erweiterung {{pluginName}}::{{contextName}} konnte nicht ausgeführt werden", "execute-failed": "Erweiterung {{pluginName}}::{{contextName}} konnte nicht ausgeführt werden",
"executed-at-ms": "Erweiterung {{pluginName}}::{{contextName}} ausgeführt in {{ms}}ms", "executed-at-ms": "Erweiterung {{pluginName}}::{{contextName}} in {{ms}}ms ausgeführt",
"initialize-failed": "Initialisierung der Erweiterung \"{{pluginName}}\" fehlgeschlagen", "initialize-failed": "Initialisierung der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
"load-all": "Lade alle Erweiterungen", "load-all": "Lade alle Erweiterungen",
"load-failed": "Laden der Erweiterung \"{{pluginName}}\" fehlgeschlagen", "load-failed": "Laden der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
@ -154,7 +154,7 @@
"label": "Benutzerdefinierter Fenstertitel", "label": "Benutzerdefinierter Fenstertitel",
"prompt": { "prompt": {
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)", "label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
"placeholder": "Beispiel: YouTube Music" "placeholder": "Beispiel: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Anwendung neu starten", "restart": "Anwendung neu starten",
"show": "Fenster anzeigen", "show": "Fenster anzeigen",
"tooltip": { "tooltip": {
"default": "YouTube Musik", "default": "{{applicationName}}",
"with-song-info": "YouTube Musik: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Suchleisten-Design aktivieren"
}, },
"name": "Thema aus Albumfarbe" "name": "Thema aus Albumfarbe"
}, },
@ -287,7 +288,7 @@
"name": "Ambiente-Modus" "name": "Ambiente-Modus"
}, },
"amuse": { "amuse": {
"description": "Fügt Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu", "description": "Fügt {{applicationName}} Unterstützung für das Amuse \"Spielt gerade\"-Widget von 6K Labs hinzu",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API-Server läuft. /query für Liedinformationen." "query": "Amuse API-Server läuft. /query für Liedinformationen."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Hostname" "label": "Hostname"
}, },
"https": {
"label": "HTTPS & Zertifikate",
"submenu": {
"cert": {
"dialogTitle": "HTTPS Zertifikat Datei auswählen",
"label": "Zertifikate Datei (.crt/.pem)"
},
"enable-https": {
"label": "HTTPS aktivieren"
},
"key": {
"dialogTitle": "HTTPS privaten Schlüssel Datei auswählen",
"label": "Privater Schlüssel Datei (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
@ -369,11 +386,11 @@
"name": "Verschwommene Navigationsleiste" "name": "Verschwommene Navigationsleiste"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Youtubes Altersbestätigung umgehen", "description": "Music Player Altersbestätigung umgehen",
"name": "Altersbeschränkungen umgehen" "name": "Altersbeschränkungen umgehen"
}, },
"captions-selector": { "captions-selector": {
"description": "Untertitelwähler für YouTube Music-Audio-Lieder", "description": "Untertitelwähler für {{applicationName}}-Audio-Lieder",
"menu": { "menu": {
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel", "autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
"disable-captions": "Standardmäßig keine Untertitel" "disable-captions": "Standardmäßig keine Untertitel"
@ -456,14 +473,14 @@
"disconnected": "Getrennt", "disconnected": "Getrennt",
"hide-duration-left": "Verbleibende Zeit verstecken", "hide-duration-left": "Verbleibende Zeit verstecken",
"hide-github-button": "Knopf mit Link zu GitHub ausblenden", "hide-github-button": "Knopf mit Link zu GitHub ausblenden",
"play-on-youtube-music": "Auf YouTube Music abspielen", "play-on-application": "Auf {{applicationName}} abspielen",
"set-inactivity-timeout": "Inaktivitätstimeout setzen", "set-inactivity-timeout": "Inaktivitätstimeout setzen",
"set-status-display-type": { "set-status-display-type": {
"label": "Status Text", "label": "Status Text",
"submenu": { "submenu": {
"application": "Hört {{applicationName}}",
"artist": "Hört {artist} zu", "artist": "Hört {artist} zu",
"title": "Du hörst {song title}", "title": "Du hörst {song title}"
"youtube-music": "Hört YouTube Music"
} }
} }
}, },
@ -606,7 +623,7 @@
"permission": { "permission": {
"all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen", "all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen",
"host-only": "Nur der Host kann die Playlist und den Player kontrollieren", "host-only": "Nur der Host kann die Playlist und den Player kontrollieren",
"playlist": "Gäste das Kontrollieren der Playlist erlauben" "playlist": "Gästen das Kontrollieren der Playlist erlauben"
}, },
"set-permission": "Kontrollberechtigung ändern", "set-permission": "Kontrollberechtigung ändern",
"status": { "status": {
@ -866,12 +883,12 @@
}, },
"name": "Synchronisierte Texte", "name": "Synchronisierte Texte",
"refetch-btn": { "refetch-btn": {
"fetching": "Hole Songtext...", "fetching": "Laden...",
"normal": "Songtext neu holen" "normal": "Songtext neu laden"
}, },
"warnings": { "warnings": {
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.", "duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein", "inexact": "⚠️ - Es ist möglich, dass der Songtext für diesen Song nicht übereinstimmt.",
"instrumental": "⚠️ - Das ist ein instrumentales Lied" "instrumental": "⚠️ - Das ist ein instrumentales Lied"
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Προσαρμοσμένος τίτλος παραθύρου", "label": "Προσαρμοσμένος τίτλος παραθύρου",
"prompt": { "prompt": {
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)", "label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
"placeholder": "Παράδειγμα: YouTube Music" "placeholder": "Παράδειγμα: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Επανεκκίνηση εφαρμογής", "restart": "Επανεκκίνηση εφαρμογής",
"show": "Εμφάνιση παραθύρου", "show": "Εμφάνιση παραθύρου",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Λειτουργία περιβάλλοντος" "name": "Λειτουργία περιβάλλοντος"
}, },
"amuse": { "amuse": {
"description": "Προσθέτει υποστήριξη YouTube Music στο widget Amuse now playing από την 6K Labs", "description": "Προσθέτει υποστήριξη {{applicationName}} στο widget Amuse now playing από την 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι." "query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
@ -369,11 +369,11 @@
"name": "Θόλωμα γραμμής πλοήγησης" "name": "Θόλωμα γραμμής πλοήγησης"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Παράκαμψη επαλήθευσης ηλικίας στο YouTube", "description": "Παράκαμψη επαλήθευσης ηλικίας στο Music Player",
"name": "Παράκαμψη ηλικιακών περιορισμών" "name": "Παράκαμψη ηλικιακών περιορισμών"
}, },
"captions-selector": { "captions-selector": {
"description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του YouTube", "description": "Επιλογέας λεζάντας για μουσικά κομμάτια ήχου του {{applicationName}}",
"menu": { "menu": {
"autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας", "autoload": "Αυτόματη επιλογή της τελευταίας χρησιμοποιούμενης λεζάντας",
"disable-captions": "Χωρίς λεζάντες από προεπιλογή" "disable-captions": "Χωρίς λεζάντες από προεπιλογή"
@ -443,7 +443,7 @@
"disconnected": "Αποσυνδεδεμένο", "disconnected": "Αποσυνδεδεμένο",
"hide-duration-left": "Απόκρυψη της διάρκειας που απομένει", "hide-duration-left": "Απόκρυψη της διάρκειας που απομένει",
"hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub", "hide-github-button": "Απόκρυψη κουμπιού συνδέσμου GitHub",
"play-on-youtube-music": "Αναπαραγωγή στο YouTube Music", "play-on-application": "Αναπαραγωγή στο {{applicationName}}",
"set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας" "set-inactivity-timeout": "Ορισμός χρονικού ορίου αδράνειας"
}, },
"name": "Discord Πλούσια παρουσία", "name": "Discord Πλούσια παρουσία",

View File

@ -160,7 +160,7 @@
"label": "Custom window title", "label": "Custom window title",
"prompt": { "prompt": {
"label": "Enter custom window title: (leave empty to disable)", "label": "Enter custom window title: (leave empty to disable)",
"placeholder": "Example: YouTube Music" "placeholder": "Example: {{applicationName}}"
} }
}, },
"remove-upgrade-button": "Remove upgrade button", "remove-upgrade-button": "Remove upgrade button",
@ -208,8 +208,8 @@
"restart": "Restart App", "restart": "Restart App",
"show": "Show window", "show": "Show window",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Enable seekbar theming"
}, },
"name": "Album Color Theme" "name": "Album Color Theme"
}, },
@ -287,7 +288,7 @@
"name": "Ambient Mode" "name": "Ambient Mode"
}, },
"amuse": { "amuse": {
"description": "Adds YouTube Music support for the Amuse now playing widget by 6K Labs", "description": "Adds {{applicationName}} support for the Amuse now playing widget by 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API server is running. GET /query to get song info." "query": "Amuse API server is running. GET /query to get song info."
@ -322,6 +323,22 @@
}, },
"port": { "port": {
"label": "Port" "label": "Port"
},
"https": {
"label": "HTTPS & Certificates",
"submenu": {
"enable-https": {
"label": "Enable HTTPS"
},
"cert": {
"label": "Certificate file (.crt/.pem)",
"dialogTitle": "Select HTTPS certificate file"
},
"key": {
"label": "Private key file (.key/.pem)",
"dialogTitle": "Select HTTPS private key file"
}
}
} }
}, },
"name": "API Server [Beta]", "name": "API Server [Beta]",
@ -369,11 +386,11 @@
"name": "Blur Navigation Bar" "name": "Blur Navigation Bar"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Bypass YouTube's age verification", "description": "Bypass Music Player's age verification",
"name": "Bypass Age Restrictions" "name": "Bypass Age Restrictions"
}, },
"captions-selector": { "captions-selector": {
"description": "Caption selector for YouTube Music audio tracks", "description": "Caption selector for {{applicationName}} audio tracks",
"menu": { "menu": {
"autoload": "Automatically select last used caption", "autoload": "Automatically select last used caption",
"disable-captions": "No captions by default" "disable-captions": "No captions by default"
@ -456,12 +473,12 @@
"disconnected": "Disconnected", "disconnected": "Disconnected",
"hide-duration-left": "Hide duration left", "hide-duration-left": "Hide duration left",
"hide-github-button": "Hide GitHub link Button", "hide-github-button": "Hide GitHub link Button",
"play-on-youtube-music": "Play on YouTube Music", "play-on-application": "Play on {{applicationName}}",
"set-inactivity-timeout": "Set inactivity timeout", "set-inactivity-timeout": "Set inactivity timeout",
"set-status-display-type": { "set-status-display-type": {
"label": "Status text", "label": "Status text",
"submenu": { "submenu": {
"youtube-music": "Listening to YouTube Music", "application": "Listening to {{applicationName}}",
"artist": "Listening to {artist}", "artist": "Listening to {artist}",
"title": "Listening to {song title}" "title": "Listening to {song title}"
} }

View File

@ -3,11 +3,11 @@
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}", "execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}",
"executed-at-ms": "Complemento {{pluginName}}::{{contextName}} Ejecutó en {{ms}}ms", "executed-at-ms": "Complemento {{pluginName}}::{{contextName}} se ejecutó en {{ms}}ms",
"initialize-failed": "Error al inicializar el complemento \"{{pluginName}}\"", "initialize-failed": "Error al inicializar el complemento \"{{pluginName}}\"",
"load-all": "Cargando todos los complementos", "load-all": "Cargando todos los complementos",
"load-failed": "Error al cargar el complemento \"{{pluginName}}\"", "load-failed": "Error al cargar el complemento \"{{pluginName}}\"",
"loaded": "Complementos \"{{pluginName}}\" cargado", "loaded": "Complementos \"{{pluginName}}\" cargados",
"unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"", "unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"",
"unloaded": "Complemento \"{{pluginName}}\" descargado" "unloaded": "Complemento \"{{pluginName}}\" descargado"
} }
@ -154,7 +154,7 @@
"label": "Título de ventana personalizado", "label": "Título de ventana personalizado",
"prompt": { "prompt": {
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)", "label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
"placeholder": "Ejemplo: YouTube Music" "placeholder": "Ejemplo: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar la aplicación", "restart": "Reiniciar la aplicación",
"show": "Mostrar ventana", "show": "Mostrar ventana",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Habilitar temas a la barra de búsqueda"
}, },
"name": "Tema de color del álbum" "name": "Tema de color del álbum"
}, },
@ -287,7 +288,7 @@
"name": "Modo ambiente" "name": "Modo ambiente"
}, },
"amuse": { "amuse": {
"description": "Agrega soporte a YouTube Music para el widget \"reproduciendo\" de Amuse por 6K Labs", "description": "Agrega soporte a {{applicationName}} para el widget \"reproduciendo\" de Amuse por 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción." "query": "El servidor API de Amuse se está ejecutando. Usa GET /query para obtener información de la canción."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Nombre del host" "label": "Nombre del host"
}, },
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecciona el archivo de certificado HTTPS",
"label": "Archivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecciona el archivo de clave privada HTTPS",
"label": "Archivo de clave privada (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Puerto" "label": "Puerto"
} }
@ -369,11 +386,11 @@
"name": "Desenfocar barra de navegación" "name": "Desenfocar barra de navegación"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Saltarse la verificación de edad de YouTube", "description": "Saltarse la verificación de edad de Music Player",
"name": "Saltarse las restricciones de edad" "name": "Saltarse las restricciones de edad"
}, },
"captions-selector": { "captions-selector": {
"description": "Selector de subtítulos para pistas de audio de YouTube Music", "description": "Selector de subtítulos para pistas de audio de {{applicationName}}",
"menu": { "menu": {
"autoload": "Seleccionar automáticamente el último subtítulo utilizado", "autoload": "Seleccionar automáticamente el último subtítulo utilizado",
"disable-captions": "Sin subtítulos por defecto" "disable-captions": "Sin subtítulos por defecto"
@ -456,14 +473,14 @@
"disconnected": "Desconectado", "disconnected": "Desconectado",
"hide-duration-left": "Ocultar la duración restante", "hide-duration-left": "Ocultar la duración restante",
"hide-github-button": "Ocultar el botón de enlace a GitHub", "hide-github-button": "Ocultar el botón de enlace a GitHub",
"play-on-youtube-music": "Reproducir en YouTube Music", "play-on-application": "Reproducir en {{applicationName}}",
"set-inactivity-timeout": "Establecer tiempo de inactividad", "set-inactivity-timeout": "Establecer tiempo de inactividad",
"set-status-display-type": { "set-status-display-type": {
"label": "Texto de estado", "label": "Texto de estado",
"submenu": { "submenu": {
"application": "Escuchando {{applicationName}}",
"artist": "Escuchando a {artist}", "artist": "Escuchando a {artist}",
"title": "Escuchando {song title}", "title": "Escuchando {song title}"
"youtube-music": "Escuchando YouTube Music"
} }
} }
}, },

View File

@ -31,6 +31,15 @@
}, },
"theme": { "theme": {
"css-file-not-found": "CSS faili „{{cssFile}}“ pole olemas, seega eirame eelistust" "css-file-not-found": "CSS faili „{{cssFile}}“ pole olemas, seega eirame eelistust"
},
"unresponsive": {
"details": "Tõrge ei vasta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Programmi vahemälu kustutamine"
},
"window": {
"tried-to-render-offscreen": "Akent prooviti renderdada väljaspool ekraani, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
} }
}, },
"dialog": { "dialog": {
@ -89,9 +98,29 @@
"submenu": { "submenu": {
"auto-reset-app-cache": "Rakenduse käivitamisel lähtesta puhverdatud andmed", "auto-reset-app-cache": "Rakenduse käivitamisel lähtesta puhverdatud andmed",
"disable-hardware-acceleration": "Lülita raudvaraline kiirendamine välja", "disable-hardware-acceleration": "Lülita raudvaraline kiirendamine välja",
"edit-config-json": "Muuda config.json faili" "edit-config-json": "Muuda config.json faili",
"override-user-agent": "Jõudlusta User-Agent",
"restart-on-config-changes": "Taaskäivita pärast konfiguratsiooni muutmist",
"set-proxy": {
"label": "Määra proxy",
"prompt": {
"label": "Sisesta proxy aadress: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: SOCKS5://127.0.0.1:9999",
"title": "Määra proxy"
}
},
"toggle-dev-tools": "Lülita sisse arendaja tööriistad"
} }
}, },
"always-on-top": "Alati esiplaanil",
"auto-update": "Automaatsed uuendused",
"hide-menu": {
"dialog": {
"message": "Järgmisel käivitamisel jääb menüü peidetuks, kasutage [Alt] klahvi, et näidata (või [`], kui kasutate rakendusesisest menüüd)",
"title": "Menüü peitmine on sisse lülitatud"
},
"label": "Peida menüü"
},
"language": { "language": {
"dialog": { "dialog": {
"message": "Keele muutmine jõustub peale uuesti käivitamist", "message": "Keele muutmine jõustub peale uuesti käivitamist",
@ -102,15 +131,69 @@
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin" "to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
} }
}, },
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist" "resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist",
"single-instance-lock": "Ühe instantsi lukk",
"start-at-login": "Käivita sisselogimisel",
"starting-page": {
"label": "Avaleht",
"unset": "Määramata"
},
"tray": {
"label": "Trey",
"submenu": {
"disabled": "Välja lülitatud",
"enabled-and-hide-app": "Sisse lülitatud ja rakendus peidetud",
"enabled-and-show-app": "Sisse lülitatud ja rakendus nähtav",
"play-pause-on-click": "Mängi/Peata klõpsates"
}
},
"visual-tweaks": {
"label": "Visuaalsed muudatused",
"submenu": {
"custom-window-title": {
"label": "Kohandatud akna tiitel",
"prompt": {
"label": "Sisesta kohandatud akna tiitel: (jäta täitmata, et välja lülitada)",
"placeholder": "Näide: {{applicationName}}"
}
},
"like-buttons": {
"default": "Vaikimisi",
"force-show": "Sunni näitama",
"hide": "Peida",
"label": "Meeldib nupud"
},
"remove-upgrade-button": "Eemalda upgrade nupp",
"theme": {
"dialog": {
"button": {
"cancel": "Katkesta",
"remove": "Eemalda"
},
"remove-theme": "Kas oled kindel, et soovid enda loodud kujunduse eemaldada?",
"remove-theme-message": "Sellega saab sinu loodud kujundus eemdladatud"
},
"label": "Kujundus",
"submenu": {
"import-css-file": "Impordi kohandatud CSS fail",
"no-theme": "Ilma kujunduseta"
}
}
}
}
} }
}, },
"plugins": { "plugins": {
"enabled": "Kasutusel",
"label": "Lisamoodulid", "label": "Lisamoodulid",
"new": "UUS" "new": "UUS"
}, },
"view": { "view": {
"label": "Vaata",
"submenu": { "submenu": {
"force-reload": "Laadi sundkorras uuesti",
"reload": "Laadi uuesti",
"reset-zoom": "Tegelik suurus",
"toggle-fullscreen": "Lülita täisekraanivaade sisse/välja", "toggle-fullscreen": "Lülita täisekraanivaade sisse/välja",
"zoom-in": "Suumi sisse", "zoom-in": "Suumi sisse",
"zoom-out": "Suumi välja" "zoom-out": "Suumi välja"
@ -125,8 +208,8 @@
"restart": "Käivita rakendus uuesti", "restart": "Käivita rakendus uuesti",
"show": "Näita akent", "show": "Näita akent",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -142,8 +225,28 @@
}, },
"name": "Reklaamiblokeerija" "name": "Reklaamiblokeerija"
}, },
"ambient-mode": { "album-actions": {
"description": "Lisab Undislike, Ebameeldiv, Meeldiv ja Unlike nupud selle rakendamiseks kõikidele loendisse või albumisse kuuluvatele lauludele.",
"name": "Albumi aktsioonid"
},
"album-color-theme": {
"description": "Rakendab dünaamilist teemat ja visuaalseid efekte, mis põhinevad albumi värvipalettil",
"menu": { "menu": {
"color-mix-ratio": {
"label": "Värvide segamissuhe",
"submenu": {
"percent": "{{suhe}}%"
}
}
},
"name": "Albumi värviteema"
},
"ambient-mode": {
"description": "Rakendab valgusefekti, projitseerides videost õrnad värvid ekraani taustale",
"menu": {
"blur-amount": {
"label": "Hägusus"
},
"opacity": { "opacity": {
"submenu": { "submenu": {
"percent": "{{opacity}}%" "percent": "{{opacity}}%"

View File

@ -2,7 +2,7 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "اجرای افزونه {{pluginName}}::{{contextName}} با خطا مواجه شد", "execute-failed": "اجراى {{اسمزمىنه}}::{{اسمپلاگىن}} با خطا مواجه شد",
"executed-at-ms": "افزونه {{pluginName}}::{{contextName}} در {{ms}} میلی‌ثانیه اجرا شد", "executed-at-ms": "افزونه {{pluginName}}::{{contextName}} در {{ms}} میلی‌ثانیه اجرا شد",
"initialize-failed": "افزونه \"{{pluginName}}\" با خطا در حین مقداردهی اولیه مواجه شد", "initialize-failed": "افزونه \"{{pluginName}}\" با خطا در حین مقداردهی اولیه مواجه شد",
"load-all": "در حال بارگذاری تمامی افزونه‌ها", "load-all": "در حال بارگذاری تمامی افزونه‌ها",
@ -150,6 +150,13 @@
"visual-tweaks": { "visual-tweaks": {
"label": "تغییرات ظاهری", "label": "تغییرات ظاهری",
"submenu": { "submenu": {
"custom-window-title": {
"label": "عنوان پنجره سفارشى",
"prompt": {
"label": "عنوان پنجره سفارشى را وارد کنىد: (خالى بزارىد تا غىرفعال شود)",
"placeholder": "مثال :{{applicationName}}"
}
},
"like-buttons": { "like-buttons": {
"default": "پیش‌فرض", "default": "پیش‌فرض",
"force-show": "اجبار به نمایش", "force-show": "اجبار به نمایش",
@ -201,8 +208,8 @@
"restart": "راه‌اندازی مجدد برنامه", "restart": "راه‌اندازی مجدد برنامه",
"show": "نمایش پنجره", "show": "نمایش پنجره",
"tooltip": { "tooltip": {
"default": "یوتیوب موسیقی", "default": "{{applicationName}}",
"with-song-info": "یوتیوب موسیقی: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -280,7 +287,7 @@
"name": "حالت محیطی" "name": "حالت محیطی"
}, },
"amuse": { "amuse": {
"description": "حالا ویجت Amuse از YouTube Music هم پشتیبانی می‌کنه! (توسط 6K Labs)", "description": "حالا ویجت Amuse از {{applicationName}} هم پشتیبانی می‌کنه! (توسط 6K Labs)",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید." "query": "سرور Amuse فعال است. برای دریافت اطلاعات آهنگ، از آدرس /query استفاده کنید."
@ -313,6 +320,22 @@
"hostname": { "hostname": {
"label": "نام میزبان" "label": "نام میزبان"
}, },
"https": {
"label": "HTTPS و گواهینامه‌ها",
"submenu": {
"cert": {
"dialogTitle": "پرونده گواهینامه HTTPS را انتخاب کنید",
"label": "پرونده گواهینامه (crt/.pem.)"
},
"enable-https": {
"label": "فعال کردن HTTPS"
},
"key": {
"dialogTitle": "پرونده کلید خصوصی HTTPS را انتخاب کنید",
"label": "پرونده کلید خصوصی (key/.pem)"
}
}
},
"port": { "port": {
"label": "پورت" "label": "پورت"
} }
@ -362,11 +385,11 @@
"name": "محو کردن نوار کنترل" "name": "محو کردن نوار کنترل"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "دور زدن تأیید سن یوتیوب", "description": "دور زدن تأیید سن مىوزىک پلىر",
"name": "دور زدن محدودیت‌های سنی" "name": "دور زدن محدودیت‌های سنی"
}, },
"captions-selector": { "captions-selector": {
"description": "انتخاب زیرنویس برای آهنگ‌های یوتیوب موسیقی", "description": "انتخاب زیرنویس برای آهنگ‌های پىر دسکتاپ",
"menu": { "menu": {
"autoload": "به طور خودکار انتخاب آخرین زیرنویس استفاده شده", "autoload": "به طور خودکار انتخاب آخرین زیرنویس استفاده شده",
"disable-captions": "بدون زیرنویس به صورت پیش‌فرض" "disable-captions": "بدون زیرنویس به صورت پیش‌فرض"
@ -414,6 +437,19 @@
} }
} }
}, },
"custom-output-device": {
"description": "ىک اسپىکر براى پخش آهنگها انتخاب کنىد",
"menu": {
"device-selector": "دستگاه را انتخاب کنىد"
},
"name": "اسپىکر دلخواه",
"prompt": {
"device-selector": {
"label": "اسپىکر دلخواه را انتخاب کنىد",
"title": "اسپىکر دلخواهتان را انتخاب کنىد"
}
}
},
"disable-autoplay": { "disable-autoplay": {
"description": "شروع آهنگ در حالت \"توقف\"", "description": "شروع آهنگ در حالت \"توقف\"",
"menu": { "menu": {
@ -436,8 +472,16 @@
"disconnected": "اتصال قطع شد", "disconnected": "اتصال قطع شد",
"hide-duration-left": "مخفی کردن مدت زمان باقی‌مانده", "hide-duration-left": "مخفی کردن مدت زمان باقی‌مانده",
"hide-github-button": "مخفی کردن دکمه لینک گیت هاب", "hide-github-button": "مخفی کردن دکمه لینک گیت هاب",
"play-on-youtube-music": "پخش در یوتیوب موزیک", "play-on-application": "پخش در یوتیوب موزیک",
"set-inactivity-timeout": "تنظیم زمان عدم فعالیت" "set-inactivity-timeout": "تنظیم زمان عدم فعالیت",
"set-status-display-type": {
"label": "متن وضعىت",
"submenu": {
"application": "به پىر دسکتاپ گوش مىکند",
"artist": "به {artist} گوش مىکند",
"title": "به {song title} گوش مىکند"
}
}
}, },
"name": "Discord Rich Presence", "name": "Discord Rich Presence",
"prompt": { "prompt": {
@ -729,6 +773,7 @@
"listenbrainz": { "listenbrainz": {
"token": "توکن کاربری ListenBrainz را وارد کنید" "token": "توکن کاربری ListenBrainz را وارد کنید"
}, },
"scrobble-alternative-artist": "از هنرمند دىگرى استفاده کنىد",
"scrobble-alternative-title": "از عناوین جایگزین استفاده کنید", "scrobble-alternative-title": "از عناوین جایگزین استفاده کنید",
"scrobble-other-media": "ردیابی رسانه‌های دیگر" "scrobble-other-media": "ردیابی رسانه‌های دیگر"
}, },
@ -814,6 +859,14 @@
"label": "هماهنگ‌سازی کامل متن ترانه‌", "label": "هماهنگ‌سازی کامل متن ترانه‌",
"tooltip": "محاسبه دقیق نمایش خط بعدی تا میلی‌ثانیه (ممکن است تاثیر کمی بر عملکرد داشته باشد)" "tooltip": "محاسبه دقیق نمایش خط بعدی تا میلی‌ثانیه (ممکن است تاثیر کمی بر عملکرد داشته باشد)"
}, },
"preferred-provider": {
"label": "منبع دلخواه",
"none": {
"label": "هىچکدام",
"tooltip": "منبح دلخواهى انتخاب نشده"
},
"tooltip": "منبع دلخواهتان را انتخاب کنىد"
},
"romanization": { "romanization": {
"label": "اشعار رومی شده", "label": "اشعار رومی شده",
"tooltip": "اگر اشعار به زبانی متفاوت هستند، سعی کنید نسخه لاتین را نمایش دهید." "tooltip": "اگر اشعار به زبانی متفاوت هستند، سعی کنید نسخه لاتین را نمایش دهید."
@ -846,6 +899,27 @@
"description": "افزودن ویجت TouchBar برای کاربران macOS", "description": "افزودن ویجت TouchBar برای کاربران macOS",
"name": "نوار لمسی" "name": "نوار لمسی"
}, },
"transparent-player": {
"description": "پنجره برنامه را شفاف مىکند",
"menu": {
"opacity": {
"label": "تارى",
"submenu": {
"percent": "%{{تارى}}"
}
},
"type": {
"label": "نوع",
"submenu": {
"acrylic": "اکرىلىک",
"mica": "مىکا",
"none": "هىچکدام",
"tabbed": "نوار دار"
}
}
},
"name": "پلىر شفاف"
},
"tuna-obs": { "tuna-obs": {
"description": "ادغام با پلاگین Tuna در OBS", "description": "ادغام با پلاگین Tuna در OBS",
"name": "Tuna OBS" "name": "Tuna OBS"

View File

@ -154,7 +154,7 @@
"label": "Mukautettu ikkunan otsikko", "label": "Mukautettu ikkunan otsikko",
"prompt": { "prompt": {
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)", "label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
"placeholder": "Esimerkki: YouTube Music" "placeholder": "Esimerkki: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uudelleen käynnistä appi", "restart": "Uudelleen käynnistä appi",
"show": "Näytä ikkuna", "show": "Näytä ikkuna",
"tooltip": { "tooltip": {
"default": "Youtube Music", "default": "{{applicationName}}",
"with-song-info": "Youtube Music {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Tunnelmallinen Tila" "name": "Tunnelmallinen Tila"
}, },
"amuse": { "amuse": {
"description": "Lisää YouTube Music tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs", "description": "Lisää {{applicationName}} tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot." "query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
@ -369,11 +369,11 @@
"name": "Sumenna Siirtymäpalkki" "name": "Sumenna Siirtymäpalkki"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Ohita YouTuben iän vahvistus", "description": "Ohita Music Player iän vahvistus",
"name": "Ohita Ikään Perustuvat Rajoitukset" "name": "Ohita Ikään Perustuvat Rajoitukset"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube Music ääniraitojen tekstitysten valitsin", "description": "{{applicationName}} ääniraitojen tekstitysten valitsin",
"menu": { "menu": {
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys", "autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä" "disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
@ -443,7 +443,7 @@
"disconnected": "Yhteys katkaistu", "disconnected": "Yhteys katkaistu",
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto", "hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
"hide-github-button": "Piilota \"linkki GitHubiin\" -nappi", "hide-github-button": "Piilota \"linkki GitHubiin\" -nappi",
"play-on-youtube-music": "Kuuntele palvelussa YouTube Music", "play-on-application": "Kuuntele palvelussa {{applicationName}}",
"set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu" "set-inactivity-timeout": "Aseta toimettomuuden aikakatkaisu"
}, },
"name": "Discord Aktiviteetti (Rich Presence)", "name": "Discord Aktiviteetti (Rich Presence)",

View File

@ -154,7 +154,7 @@
"label": "Custom na window title", "label": "Custom na window title",
"prompt": { "prompt": {
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)", "label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
"placeholder": "Halimbawa: YouTube Music" "placeholder": "Halimbawa: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "I-restart ang App", "restart": "I-restart ang App",
"show": "Ipakita ang window", "show": "Ipakita ang window",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Ambient Mode" "name": "Ambient Mode"
}, },
"amuse": { "amuse": {
"description": "Nagdaragdag ng suporta sa YouTube Music para sa Amuse now playing widget ng 6K Labs", "description": "Nagdaragdag ng suporta sa {{applicationName}} para sa Amuse now playing widget ng 6K Labs",
"response": { "response": {
"query": "Tumatakbo ang Amuse API server. Gamitin ang GET /query para makuha ang impo ng kanta." "query": "Tumatakbo ang Amuse API server. Gamitin ang GET /query para makuha ang impo ng kanta."
} }
@ -365,11 +365,11 @@
"name": "Palabuin ang Bar ng Nabigasyon" "name": "Palabuin ang Bar ng Nabigasyon"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "I-bypass ang pag-verify ng edad ng YouTube", "description": "I-bypass ang pag-verify ng edad ng Music Player",
"name": "I-bypass ang Restriksyon sa Edad" "name": "I-bypass ang Restriksyon sa Edad"
}, },
"captions-selector": { "captions-selector": {
"description": "Tagapili ng caption para sa mga audio track ng YouTube Music", "description": "Tagapili ng caption para sa mga audio track ng {{applicationName}}",
"menu": { "menu": {
"autoload": "Awtomatikong piliin ang huling ginamit na caption", "autoload": "Awtomatikong piliin ang huling ginamit na caption",
"disable-captions": "Walang mga caption bilang default" "disable-captions": "Walang mga caption bilang default"
@ -446,13 +446,13 @@
"disconnected": "Nadiskonekta", "disconnected": "Nadiskonekta",
"hide-duration-left": "Itago ang natitirang oras", "hide-duration-left": "Itago ang natitirang oras",
"hide-github-button": "Itago ang button na GitHub link", "hide-github-button": "Itago ang button na GitHub link",
"play-on-youtube-music": "Patugtugin sa YouTube Music", "play-on-application": "Patugtugin sa {{applicationName}}",
"set-inactivity-timeout": "I-set ang inactivity timeout", "set-inactivity-timeout": "I-set ang inactivity timeout",
"set-status-display-type": { "set-status-display-type": {
"submenu": { "submenu": {
"artist": "Nakikinig sa {artist}", "artist": "Nakikinig sa {artist}",
"title": "Nakikinig sa {song title}", "title": "Nakikinig sa {song title}",
"youtube-music": "Kumikinig sa YouTube Music" "application": "Kumikinig sa {{applicationName}}"
} }
} }
}, },

View File

@ -153,8 +153,8 @@
"custom-window-title": { "custom-window-title": {
"label": "Titre de fenêtre personnalisé", "label": "Titre de fenêtre personnalisé",
"prompt": { "prompt": {
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)", "label": "Entrer un titre de fenêtre : (Laissé vide pour désactiver)",
"placeholder": "Exemple : YouTube Musique" "placeholder": "Exemple : {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Redémarrer l'application", "restart": "Redémarrer l'application",
"show": "Afficher la fenêtre", "show": "Afficher la fenêtre",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}} : {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Activer le thème sur la barre de progression"
}, },
"name": "Thème de couleur d'album" "name": "Thème de couleur d'album"
}, },
@ -287,10 +288,10 @@
"name": "Mode ambiant" "name": "Mode ambiant"
}, },
"amuse": { "amuse": {
"description": "Ajout de la prise en charge de YouTube Music pour le widget Amuse now playing de 6K Labs", "description": "Ajout de la prise en charge de {{applicationName}} pour le widget Amuse now playing de 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Le serveur API Amuse est en cours d'exécution. Envoyez une requête GET /query pour obtenir des informations sur la chanson." "query": "Le serveur API d'Amuse est en cours d'exécution. GET /query pour obtenir des informations sur les chansons."
} }
}, },
"api-server": { "api-server": {
@ -302,7 +303,7 @@
"deny": "Interdire" "deny": "Interdire"
}, },
"message": "Autoriser {{ID}} ({{origin}}) à accéder à l'API?", "message": "Autoriser {{ID}} ({{origin}}) à accéder à l'API?",
"title": "Requête d'autorisation d'API" "title": "Demande d'autorisation à l'API"
} }
}, },
"menu": { "menu": {
@ -310,7 +311,7 @@
"label": "Plan d'autorisation", "label": "Plan d'autorisation",
"submenu": { "submenu": {
"auth-at-first": { "auth-at-first": {
"label": "Autoriser à la première requête" "label": "Autoriser lors de la première requête"
}, },
"none": { "none": {
"label": "Pas d'autorisation" "label": "Pas d'autorisation"
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Nom de l'hôte" "label": "Nom de l'hôte"
}, },
"https": {
"label": "HTTPS & Certificats",
"submenu": {
"cert": {
"dialogTitle": "Sélectionner le fichier de certificat HTTPS",
"label": "Fichier de certificat (.crt/.pem)"
},
"enable-https": {
"label": "Activer HTTPS"
},
"key": {
"dialogTitle": "Sélectionner le fichier de clé privée HTTPS",
"label": "Fichier de clé privée (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
@ -331,7 +348,7 @@
"title": "Nom d'hôte" "title": "Nom d'hôte"
}, },
"port": { "port": {
"label": "Entrez le port du serveur de l'API :", "label": "Entrez le port du serveur API :",
"title": "Port" "title": "Port"
} }
} }
@ -369,11 +386,11 @@
"name": "Barre de navigation floue" "name": "Barre de navigation floue"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Contourner la vérification de l'âge de YouTube", "description": "Contourner la vérification de l'âge de Music Player",
"name": "Contourner les restrictions dâge" "name": "Contourner les restrictions dâge"
}, },
"captions-selector": { "captions-selector": {
"description": "Sélecteur de sous-titres pour les pistes audio YouTube Music", "description": "Sélecteur de sous-titres pour les pistes audio {{applicationName}}",
"menu": { "menu": {
"autoload": "Sélectionner automatiquement la dernière légende utilisée", "autoload": "Sélectionner automatiquement la dernière légende utilisée",
"disable-captions": "Pas de sous-titres par défaut" "disable-captions": "Pas de sous-titres par défaut"
@ -392,7 +409,7 @@
"toast": { "toast": {
"caption-changed": "Sous-titres changés en {{language}}", "caption-changed": "Sous-titres changés en {{language}}",
"caption-disabled": "Sous-titres désactivés", "caption-disabled": "Sous-titres désactivés",
"no-captions": "Aucun sous-titre disponible pour cette chanson" "no-captions": "Aucun sous-titres disponibles pour cette chanson"
} }
}, },
"compact-sidebar": { "compact-sidebar": {
@ -456,14 +473,14 @@
"disconnected": "Déconnecté", "disconnected": "Déconnecté",
"hide-duration-left": "Masquer la durée restante", "hide-duration-left": "Masquer la durée restante",
"hide-github-button": "Masquer le bouton du lien GitHub", "hide-github-button": "Masquer le bouton du lien GitHub",
"play-on-youtube-music": "Jouer sur YouTube Music", "play-on-application": "Jouer sur {{applicationName}}",
"set-inactivity-timeout": "Définir le délai d'inactivité", "set-inactivity-timeout": "Définir le délai d'inactivité",
"set-status-display-type": { "set-status-display-type": {
"label": "Texte d'état", "label": "Texte d'état",
"submenu": { "submenu": {
"application": "Écoute {{applicationName}}",
"artist": "Écoute {artiste}", "artist": "Écoute {artiste}",
"title": "Écoute {titre de la chanson}", "title": "Écoute {titre de la chanson}"
"youtube-music": "Écoute YouTube Music"
} }
} }
}, },
@ -482,8 +499,8 @@
"buttons": { "buttons": {
"ok": "Ok" "ok": "Ok"
}, },
"message": "Argh ! Désolé, le téléchargement a échoué…", "message": "Argh! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !" "title": "Erreur de téléchargement!"
}, },
"start-download-playlist": { "start-download-playlist": {
"buttons": { "buttons": {
@ -491,30 +508,30 @@
}, },
"detail": "({{playlistSize}} chansons)", "detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}", "message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé" "title": "Téléchargement commencé"
} }
}, },
"feedback": { "feedback": {
"conversion-progress": "Conversion : {{percent}} %", "conversion-progress": "Conversion : {{percent}}%",
"converting": "Conversion…", "converting": "Conversion…",
"done": "Terminé : {{filePath}}", "done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}", "download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Téléchargé: {{percent}}%", "download-progress": "Téléchargé : {{percent}}%",
"downloading": "Télécharge…", "downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…", "downloading-counter": "Télécharge {{current}}/{{total}}…",
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\"  {{playlistSize}} chansons ({{playlistId}})", "downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\" - {{playlistSize}} chansons ({{playlistId}})",
"error-while-downloading": "Erreur lors du téléchargement de \"{{author}} - {{title}}\" : {{error}}", "error-while-downloading": "Erreur lors du téléchargement de \"{{author}} - {{title}}\" : {{error}}",
"folder-already-exists": "Le dossier {{playlistFolder}} existe déjà", "folder-already-exists": "Le dossier {{playlistFolder}} existe déjà",
"getting-playlist-info": "Obtention d'informations sur la liste de lecture…", "getting-playlist-info": "Obtention des données de la playlist…",
"loading": "Chargement…", "loading": "Chargement…",
"playlist-has-only-one-song": "La liste de lecture ne contient qu'un seul élément, téléchargement du morceau seul", "playlist-has-only-one-song": "La playlist ne contient qu'un seul élément, téléchargement du morceau seul",
"playlist-id-not-found": "Aucun ID de liste de lecture trouvé", "playlist-id-not-found": "Aucun ID de playlist trouvé",
"playlist-is-empty": "La liste de lecture est vide", "playlist-is-empty": "La playlist est vide",
"playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la liste de lecture: assurez-vous qu'il ne s'agit pas d'une liste privée ou \"Mixée pour vous\"\n\n{{error}}", "playlist-is-mix-or-private": "Erreur lors de l'obtention des informations sur la playlist : assurez-vous qu'il ne s'agit pas d'une playlist privée ou \"Mixée pour vous\"\n\n{{error}}",
"preparing-file": "Péparer des fichier…", "preparing-file": "Préparation des fichier…",
"saving": "Sauvegarde…", "saving": "Sauvegarde…",
"trying-to-get-playlist-id": "Obtention de l'ID de la liste de lecture: {{playlistId}}", "trying-to-get-playlist-id": "Obtention de l'ID de la playlist : {{playlistId}}",
"video-id-not-found": "Vidéo non trouvée", "video-id-not-found": "Vidéo introuvable",
"writing-id3": "Écriture des balises ID3…" "writing-id3": "Écriture des balises ID3…"
} }
}, },
@ -524,19 +541,19 @@
"download-finish-settings": { "download-finish-settings": {
"label": "Télécharger une fois terminé", "label": "Télécharger une fois terminé",
"prompt": { "prompt": {
"last-percent": "Après x pour cent", "last-percent": "Après x pourcents",
"last-seconds": "Dernières x secondes", "last-seconds": "Dernières x secondes",
"title": "Configurer quand télécharger" "title": "Configurer quand télécharger"
}, },
"submenu": { "submenu": {
"advanced": "Avancé", "advanced": "Avancé",
"enabled": "Activé", "enabled": "Activé",
"mode": "Mode de temps", "mode": "Unité de temps",
"percent": "Pourcent", "percent": "Pourcent",
"seconds": "Secondes" "seconds": "Secondes"
} }
}, },
"download-playlist": "Télécharger la liste de lecture", "download-playlist": "Télécharger la playlist",
"presets": "Préconfigurations", "presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants" "skip-existing": "Passer les fichiers existants"
}, },
@ -573,7 +590,7 @@
}, },
"lumiastream": { "lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream", "description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [Bêta]" "name": "Lumia Stream [Beta]"
}, },
"lyrics-genius": { "lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons", "description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
@ -604,9 +621,9 @@
"host": "Hôte du Music Together", "host": "Hôte du Music Together",
"join": "Rejoindre le Music Together", "join": "Rejoindre le Music Together",
"permission": { "permission": {
"all": "Autorisez les invités à contrôler la musique et le player", "all": "Autorisez les invités à contrôler la playlist et le lecteur",
"host-only": "Seulement l'hôte peut contrôler les playlists et le lecteur", "host-only": "Seulement l'hôte peut contrôler la playlist et le lecteur",
"playlist": "Autoriser les invités à contrôler les playlists" "playlist": "Autoriser les invités à contrôler la playlist"
}, },
"set-permission": "Changer les permissions de contrôle", "set-permission": "Changer les permissions de contrôle",
"status": { "status": {
@ -624,7 +641,7 @@
"id-copied": "Identifiant de l'hôte copié dans le presse papier", "id-copied": "Identifiant de l'hôte copié dans le presse papier",
"id-copy-failed": "Echec de la copie de l'identifiant de l'hôte dans le presse papier", "id-copy-failed": "Echec de la copie de l'identifiant de l'hôte dans le presse papier",
"join-failed": "Echec en rejoignant le Music Together", "join-failed": "Echec en rejoignant le Music Together",
"joined": "Rejoint le Music Together", "joined": "Music Together rejoint",
"permission-changed": "Permission du Music Together changé à \"{{permission}}\"", "permission-changed": "Permission du Music Together changé à \"{{permission}}\"",
"remove-song-failed": "Echec du retrait de la piste", "remove-song-failed": "Echec du retrait de la piste",
"user-connected": "{{name}} à rejoint le Music Together", "user-connected": "{{name}} à rejoint le Music Together",
@ -636,7 +653,7 @@
"name": "Navigation", "name": "Navigation",
"templates": { "templates": {
"back": { "back": {
"title": "Revenir à la page précédente" "title": "Aller à la page précédente"
}, },
"forward": { "forward": {
"title": "Aller à la page suivante" "title": "Aller à la page suivante"
@ -656,7 +673,7 @@
"submenu": { "submenu": {
"hide-button-text": "Masquer le texte du bouton", "hide-button-text": "Masquer le texte du bouton",
"refresh-on-play-pause": "Actualiser lors de la lecture/pause", "refresh-on-play-pause": "Actualiser lors de la lecture/pause",
"tray-controls": "Ouvrir/Fermer sur le plateau, cliquez" "tray-controls": "Ouvrir/Fermer au clic sur licône de la barre des tâches"
} }
}, },
"priority": "Priorité des notifications", "priority": "Priorité des notifications",
@ -670,30 +687,30 @@
"name": "Amélioration des performances [Beta]" "name": "Amélioration des performances [Beta]"
}, },
"picture-in-picture": { "picture-in-picture": {
"description": "Permet de basculer lapplication en mode image dans image", "description": "Permet de basculer lapplication en mode picture-in-picture",
"menu": { "menu": {
"always-on-top": "Toujours en haut", "always-on-top": "Toujours au dessus",
"hotkey": { "hotkey": {
"label": "Raccourci clavier", "label": "Raccourci clavier",
"prompt": { "prompt": {
"keybind-options": { "keybind-options": {
"hotkey": "Raccourci clavier" "hotkey": "Raccourci clavier"
}, },
"label": "Choisissez un raccourci clavier pour activer le mode Image dans l'image", "label": "Choisissez un raccourci clavier pour activer le mode picture-in-picture",
"title": "Touche de raccourci Image dans l'image" "title": "Touche de raccourci picture-in-picture"
} }
}, },
"save-window-position": "Enregistrer la position de la fenêtre", "save-window-position": "Enregistrer la position de la fenêtre",
"save-window-size": "Enregistrer la taille de la fenêtre", "save-window-size": "Enregistrer la taille de la fenêtre",
"use-native-pip": "Utiliser le mode image dans image natif du navigateur" "use-native-pip": "Utiliser le mode PiP natif du navigateur"
}, },
"name": "Image dans l'image", "name": "Picture-in-picture",
"templates": { "templates": {
"button": "Image dans l'image" "button": "Picture-in-picture"
} }
}, },
"playback-speed": { "playback-speed": {
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson", "description": "Écoutez vite, écoutez lentement! Ajoute un curseur qui contrôle la vitesse de la chanson",
"name": "Vitesse de lecture", "name": "Vitesse de lecture",
"templates": { "templates": {
"button": "Vitesse" "button": "Vitesse"
@ -726,14 +743,14 @@
"backend": { "backend": {
"dialog": { "dialog": {
"quality-changer": { "quality-changer": {
"detail": "Qualité actuelle: {{quality}}", "detail": "Qualité actuelle : {{quality}}",
"message": "Choisissez la qualité vidéo :", "message": "Choisissez la qualité vidéo :",
"title": "Choisissez la qualité vidéo" "title": "Choisissez la qualité vidéo"
} }
} }
}, },
"description": "Permet de changer la qualité vidéo avec un bouton sur la vidéo", "description": "Permet de changer la qualité vidéo avec un bouton sur l'overlay vidéo",
"name": "Changeur de qualité vidéo", "name": "Sélecteur de qualité vidéo",
"renderer": { "renderer": {
"quality-settings-button": { "quality-settings-button": {
"label": "Ouvrir le sélecteur de qualité du lecteur" "label": "Ouvrir le sélecteur de qualité du lecteur"
@ -745,7 +762,7 @@
"dialog": { "dialog": {
"lastfm": { "lastfm": {
"auth-failed": { "auth-failed": {
"message": "Erreur lors de l'authetification avec Last.fm\nCachez la popup jusqu'au prochain redémarrage.", "message": "Erreur lors de l'authetification avec Last.fm\nCacher la popup jusqu'au prochain redémarrage.",
"title": "Authentification échouée" "title": "Authentification échouée"
} }
} }
@ -761,7 +778,7 @@
"scrobble-alternative-title": "Utiliser des titres alternatifs", "scrobble-alternative-title": "Utiliser des titres alternatifs",
"scrobble-other-media": "Scrobbler d'autres médias" "scrobble-other-media": "Scrobbler d'autres médias"
}, },
"name": "Scrobble", "name": "Scrobbler",
"prompt": { "prompt": {
"lastfm": { "lastfm": {
"api-key": "Clé API de Last.fm", "api-key": "Clé API de Last.fm",
@ -769,7 +786,7 @@
}, },
"listenbrainz": { "listenbrainz": {
"token": { "token": {
"label": "Entrez votre token utilisateur ListenBrainz:", "label": "Entrez votre token utilisateur ListenBrainz :",
"title": "Token ListenBrainz" "title": "Token ListenBrainz"
} }
} }
@ -795,8 +812,8 @@
} }
}, },
"skip-disliked-songs": { "skip-disliked-songs": {
"description": "Passer les musiques que je n'aime pas", "description": "Passe les titres \"Je n'aime pas\"",
"name": "Passer les chansons « Je n'aime pas »" "name": "Passer les titres \"Je n'aime pas\""
}, },
"skip-silences": { "skip-silences": {
"description": "Ignorer automatiquement les sections de silence dans les chansons", "description": "Ignorer automatiquement les sections de silence dans les chansons",
@ -810,12 +827,12 @@
"description": "Ajoute des paroles synchronisées aux chansons, grâce à LRClib par exemple.", "description": "Ajoute des paroles synchronisées aux chansons, grâce à LRClib par exemple.",
"errors": { "errors": {
"fetch": "⚠️\tUne erreur s'est produite en allant chercher les paroles.\n\tMerci de réessayer plus tard.", "fetch": "⚠️\tUne erreur s'est produite en allant chercher les paroles.\n\tMerci de réessayer plus tard.",
"not-found": "⚠️ Aucune paroles trouvées pour cette musique." "not-found": "⚠️ Aucune paroles trouvées pour ce titre."
}, },
"menu": { "menu": {
"default-text-string": { "default-text-string": {
"label": "Caractère par défaut entre les paroles", "label": "Caractère par défaut entre les paroles",
"tooltip": "Choisi le caractère par défaut à utiliser pour l'espace entre les paroles" "tooltip": "Choisi le caractère par défaut à utiliser pour les blancs entre les paroles"
}, },
"line-effect": { "line-effect": {
"label": "Effet de ligne", "label": "Effet de ligne",
@ -826,7 +843,7 @@
}, },
"focus": { "focus": {
"label": "Focus", "label": "Focus",
"tooltip": "Rend seulement la ligne actuelle blanche" "tooltip": "Rend blanche seulement la ligne actuelle"
}, },
"offset": { "offset": {
"label": "Décalage", "label": "Décalage",
@ -849,7 +866,7 @@
"label": "Aucun", "label": "Aucun",
"tooltip": "Aucun fournisseur privilégié" "tooltip": "Aucun fournisseur privilégié"
}, },
"tooltip": "Choisissez le fournisseur par défaut à utiliser" "tooltip": "Choisissez le fournisseur à utiliser par défaut"
}, },
"romanization": { "romanization": {
"label": "Romaniser les paroles", "label": "Romaniser les paroles",
@ -861,7 +878,7 @@
}, },
"show-time-codes": { "show-time-codes": {
"label": "Afficher les timecodes", "label": "Afficher les timecodes",
"tooltip": "Affiche à côté de chaque paroles son timecode" "tooltip": "Affiche le timecode à côté de chaque paroles"
} }
}, },
"name": "Paroles Synchronisées", "name": "Paroles Synchronisées",
@ -872,7 +889,7 @@
"warnings": { "warnings": {
"duration-mismatch": "⚠️ - Les paroles peuvent ne pas être synchronisées à cause d'une différence de durée.", "duration-mismatch": "⚠️ - Les paroles peuvent ne pas être synchronisées à cause d'une différence de durée.",
"inexact": "⚠️ - Les paroles de cette chanson peuvent ne pas être exactes", "inexact": "⚠️ - Les paroles de cette chanson peuvent ne pas être exactes",
"instrumental": "⚠️ - Cette musique n'a pas de paroles" "instrumental": "⚠️ - C'est un titre instrumental"
} }
}, },
"taskbar-mediacontrol": { "taskbar-mediacontrol": {
@ -909,7 +926,7 @@
"name": "Tuna OBS" "name": "Tuna OBS"
}, },
"unobtrusive-player": { "unobtrusive-player": {
"description": "Empêche le lecteur de s'afficher quand un chanson est en lecture", "description": "Empêche le lecteur de s'afficher quand un titre est en cours de lecture",
"name": "Lecteur Non-Intrusif" "name": "Lecteur Non-Intrusif"
}, },
"video-toggle": { "video-toggle": {
@ -933,7 +950,7 @@
} }
} }
}, },
"name": "Basculer la vidéo", "name": "Bouton de bascule vidéo",
"templates": { "templates": {
"button-song": "Musique", "button-song": "Musique",
"button-video": "Vidéo" "button-video": "Vidéo"

View File

@ -53,8 +53,158 @@
"later": "Despois", "later": "Despois",
"restart-now": "Reiniciar Agora" "restart-now": "Reiniciar Agora"
}, },
"detail": "O plugin \"{{pluginName}}\" precisa dun reinicio para tomar efecto" "detail": "O plugin \"{{pluginName}}\" precisa dun reinicio para tomar efecto",
"message": "\"{{pluginName}}\" precisa reiniciar",
"title": "Requírese reinicio"
},
"unresponsive": {
"buttons": {
"quit": "Saír",
"relaunch": "Lanzar de novo",
"wait": "Agardar"
},
"detail": "Desculpa o inconveniente! Por favor escolle que facer:",
"message": "A aplicación non responde",
"title": "A xanela non responde"
},
"update-available": {
"buttons": {
"disable": "Desactivar actualizacións",
"download": "Descarregar",
"ok": "OK"
},
"detail": "Está dispoñíbel unha nova versión que se pode descarregar de {{downloadLink}}",
"message": "Hai una nova versión dispoñíbel",
"title": "Actualización dispoñíbel"
} }
},
"menu": {
"about": "Sobre",
"navigation": {
"label": "Navegación",
"submenu": {
"copy-current-url": "Copiar o URL actual",
"go-back": "Atrás",
"go-forward": "Adiante",
"quit": "Saír",
"restart": "Reiniciar a aplicación"
}
},
"options": {
"label": "Opcións",
"submenu": {
"advanced-options": {
"label": "Opcións avanzadas",
"submenu": {
"auto-reset-app-cache": "Reiniciar a caché cando a aplicación arrinque",
"disable-hardware-acceleration": "Desactivar a aceleración hardware",
"edit-config-json": "Editar config.json",
"override-user-agent": "Substituír o User-Agent",
"restart-on-config-changes": "Reiniciar ao alterar a configuración",
"set-proxy": {
"label": "Configurar o proxy",
"prompt": {
"label": "Introducir o enderezo do proxy (deixar baleiro para desactivalo)",
"placeholder": "Exemplo: SOCKS5://127.0.0.1:9999",
"title": "Configurar o proxy"
}
},
"toggle-dev-tools": "Activar ou desactivar as DevTools"
}
},
"always-on-top": "Sempre en primeiro plano",
"auto-update": "Actualización automática",
"hide-menu": {
"dialog": {
"message": "O menú ocultarase no próximo inicio; use [Alt] para mostralo (ou a tecla [`] se emprega o menú integrado)",
"title": "Ocultar Menú activado"
},
"label": "Ocultar Menú"
},
"language": {
"dialog": {
"message": "A lingua hase mudar despois do reinicio",
"title": "Mudouse a lingua"
},
"label": "Lingua",
"submenu": {
"to-help-translate": "Quere axudar a traducir? Prema aquí"
}
},
"resume-on-start": "Retomar a última canción ao iniciar a aplicación",
"single-instance-lock": "Bloqueo de instancia única",
"start-at-login": "Iniciar co inicio de sesión",
"starting-page": {
"label": "Páxina de inicio",
"unset": "Sen definir"
},
"tray": {
"label": "Bandexa",
"submenu": {
"disabled": "Desactivado",
"enabled-and-hide-app": "Activado e ocultar a aplicación",
"enabled-and-show-app": "Activado e mostrar a aplicación",
"play-pause-on-click": "Reproducir/Pausar ao premer"
}
},
"visual-tweaks": {
"label": "Axustes visuais",
"submenu": {
"custom-window-title": {
"label": "Título de xanela personalizado",
"prompt": {
"label": "Introduza o título personalizado da xanela (deixe baleiro para desactivala)",
"placeholder": "Exemplo: {{applicationName}}"
}
},
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar a visualización",
"hide": "Agochar",
"label": "Botóns de Gústame"
},
"remove-upgrade-button": "Retirar o botón de anovación",
"theme": {
"dialog": {
"button": {
"cancel": "Cancelar",
"remove": "Retirar"
},
"remove-theme": "Estás certo que queres retirar o tema personalizado?",
"remove-theme-message": "Isto ha retirar o tema personalizado"
},
"label": "Tema",
"submenu": {
"import-css-file": "Importar arquivo CSS personalizado",
"no-theme": "Sen tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Activado",
"label": "Complementos",
"new": "NOVO"
},
"view": {
"label": "Vista",
"submenu": {
"force-reload": "Forzar recarga",
"reload": "Recargar",
"reset-zoom": "Tamaño real",
"toggle-fullscreen": "Alternar Pantalla Completa",
"zoom-in": "Achegarse",
"zoom-out": "Afastarse"
}
}
},
"tray": {
"next": "Seguinte",
"play-pause": "Reproducir/Pausar",
"previous": "Anterior",
"quit": "Saír"
} }
} }
} }

View File

@ -150,6 +150,11 @@
"visual-tweaks": { "visual-tweaks": {
"label": "תיקונים חזותיים", "label": "תיקונים חזותיים",
"submenu": { "submenu": {
"custom-window-title": {
"prompt": {
"placeholder": "לדוגמה: שולחן כתיבה אגסי"
}
},
"like-buttons": { "like-buttons": {
"default": "ברירת מחדל", "default": "ברירת מחדל",
"force-show": "הפעל בכוח", "force-show": "הפעל בכוח",
@ -201,8 +206,8 @@
"restart": "הפעל מחדש", "restart": "הפעל מחדש",
"show": "הראה חלון", "show": "הראה חלון",
"tooltip": { "tooltip": {
"default": "יוטיוב מיוזיק", "default": "{{applicationName}}",
"with-song-info": "יוטיוב מיוזיק: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -212,7 +217,7 @@
"name": "הגבר מהירות פרסומת" "name": "הגבר מהירות פרסומת"
}, },
"adblocker": { "adblocker": {
"description": "חסום את כל המודעות והמעקב מחוץ לקופסה", "description": "חסום את כל המודעות והמעקבים",
"menu": { "menu": {
"blocker": "חוסם" "blocker": "חוסם"
}, },
@ -244,6 +249,7 @@
} }
}, },
"buffer": { "buffer": {
"label": "חוצץ",
"submenu": { "submenu": {
"buffer": "{{buffer}}" "buffer": "{{buffer}}"
} }
@ -279,7 +285,7 @@
"name": "מצב אווירה" "name": "מצב אווירה"
}, },
"amuse": { "amuse": {
"description": "מוסיף תמיכה ב-YouTube Music עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs", "description": "מוסיף תמיכה ב-{{applicationName}} עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
"name": "משעשע", "name": "משעשע",
"response": { "response": {
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query." "query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
@ -365,7 +371,7 @@
"name": "עקוף את ההחמרות של הגיל" "name": "עקוף את ההחמרות של הגיל"
}, },
"captions-selector": { "captions-selector": {
"description": "בורר כתוביות עבור רצועות אודיו של YouTube Music", "description": "בורר כתוביות עבור רצועות אודיו של {{applicationName}}",
"menu": { "menu": {
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה", "autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
"disable-captions": "ברירת מחד ללא כתוביות" "disable-captions": "ברירת מחד ללא כתוביות"
@ -380,6 +386,11 @@
}, },
"templates": { "templates": {
"title": "פתח בחירת כתוביות" "title": "פתח בחירת כתוביות"
},
"toast": {
"caption-changed": "תרגום שונה ל {{שפה}}",
"caption-disabled": "תרגום בוטל",
"no-captions": "אין תרגום זמין לשיר הזה"
} }
}, },
"compact-sidebar": { "compact-sidebar": {
@ -391,9 +402,11 @@
"menu": { "menu": {
"advanced": "מתקדם" "advanced": "מתקדם"
}, },
"name": "התפיידות צלב[בית]",
"prompt": { "prompt": {
"options": { "options": {
"multi-input": { "multi-input": {
"fade-in-duration": "תתפייד בזמן[מילישניות]",
"fade-scaling": { "fade-scaling": {
"linear": "לינארי", "linear": "לינארי",
"logarithmic": "לוגריתמי" "logarithmic": "לוגריתמי"
@ -419,7 +432,7 @@
"connected": "מחובר", "connected": "מחובר",
"disconnected": "מנותק", "disconnected": "מנותק",
"hide-github-button": "הסתר את לחצן הקישור של GitHub", "hide-github-button": "הסתר את לחצן הקישור של GitHub",
"play-on-youtube-music": "הפעל ביוטיוב מיוזיק", "play-on-application": "הפעל ביוטיוב מיוזיק",
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות" "set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "कस्टम विंडो टाइटल", "label": "कस्टम विंडो टाइटल",
"prompt": { "prompt": {
"label": "कस्टम विंडो टाइटल डालें: (डिसएबल करने के लिए खाली छोड़ें)", "label": "कस्टम विंडो टाइटल डालें: (डिसएबल करने के लिए खाली छोड़ें)",
"placeholder": "उदाहरण: यूट्यूब संगीत" "placeholder": "उदाहरण: पियर डेस्कटॉप"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "ऐप पुनः प्रारंभ करें", "restart": "ऐप पुनः प्रारंभ करें",
"show": "ऐप दिखाए", "show": "ऐप दिखाए",
"tooltip": { "tooltip": {
"default": "यूट्यूब म्यूजिक", "default": "{{applicationName}}",
"with-song-info": "यूट्यूब म्यूजिक: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "अम्बिएन्ट मोड्" "name": "अम्बिएन्ट मोड्"
}, },
"amuse": { "amuse": {
"description": "6K लैब्स द्वारा Amuse now playing विजेट के लिए YouTube म्यूजिक समर्थन जोड़ा गया", "description": "6K लैब्स द्वारा Amuse now playing विजेट के लिए Music Player म्यूजिक समर्थन जोड़ा गया",
"name": "मन बहलाना", "name": "मन बहलाना",
"response": { "response": {
"query": "अमयूस ए.पि.ऐ. चल रहा है। गाने की जान्कारि होने के लिये GET /query कीजिये।" "query": "अमयूस ए.पि.ऐ. चल रहा है। गाने की जान्कारि होने के लिये GET /query कीजिये।"
@ -369,11 +369,11 @@
"name": "नेविगेशन बार को ब्लर करें" "name": "नेविगेशन बार को ब्लर करें"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "YouTube आयु की जांच को बायपास करें", "description": "Music Player आयु की जांच को बायपास करें",
"name": "आयु प्रतिबंध को बायपास करें" "name": "आयु प्रतिबंध को बायपास करें"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता", "description": "{{applicationName}} म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
"menu": { "menu": {
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें", "autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं" "disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
@ -426,7 +426,13 @@
"menu": { "menu": {
"device-selector": "डिवाइस चुनें" "device-selector": "डिवाइस चुनें"
}, },
"name": "अपनी पसंद का आउटपुट डिवाइस" "name": "अपनी पसंद का आउटपुट डिवाइस",
"prompt": {
"device-selector": {
"label": "उपयोग किए जाने वाला आउटपुट मीडिया चुने",
"title": "आउटपुट डिवाइस चुनें"
}
}
}, },
"disable-autoplay": { "disable-autoplay": {
"description": "गीत को \"रुके हुए \" मोड में शुरू करता है", "description": "गीत को \"रुके हुए \" मोड में शुरू करता है",
@ -450,8 +456,16 @@
"disconnected": "डिस्कनेक्ट किया गया", "disconnected": "डिस्कनेक्ट किया गया",
"hide-duration-left": "शेष अवधि छिपाएँ", "hide-duration-left": "शेष अवधि छिपाएँ",
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ", "hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
"play-on-youtube-music": "YouTube म्यूज़िक पर चलाएँ", "play-on-application": "{{applicationName}} म्यूज़िक पर चलाएँ",
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें" "set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें",
"set-status-display-type": {
"label": "स्टेटस टेक्स्ट",
"submenu": {
"application": "{{applicationName}} सुन रहे है",
"artist": "{artist} को सुन रहे है",
"title": "{song title} सुन रहे है"
}
}
}, },
"name": "डिस्कॉर्ड रिच प्रेजेंस", "name": "डिस्कॉर्ड रिच प्रेजेंस",
"prompt": { "prompt": {
@ -743,6 +757,7 @@
"listenbrainz": { "listenbrainz": {
"token": "listenbrainz उपयोगकर्ता टोकन दर्ज करें" "token": "listenbrainz उपयोगकर्ता टोकन दर्ज करें"
}, },
"scrobble-alternative-artist": "वैकल्पिक आर्टिस्ट का उपयोग करें",
"scrobble-alternative-title": "वैकल्पिक शीर्षक का उपयोग करें", "scrobble-alternative-title": "वैकल्पिक शीर्षक का उपयोग करें",
"scrobble-other-media": "अन्य मीडिया स्क्रोबल करें" "scrobble-other-media": "अन्य मीडिया स्क्रोबल करें"
}, },
@ -788,9 +803,12 @@
"name": "साइलेंस स्किप करें" "name": "साइलेंस स्किप करें"
}, },
"sponsorblock": { "sponsorblock": {
"description": "Intro/Outro जैसे गैर-संगीत भागों को स्किप करता है", "description": "गाने के वीडियो में जहाँ म्यूजिक नहीं चलता, जैसे शुरुआत या अंत के हिस्से, उन्हें अपने आप स्किप कर देता है",
"name": "SponsorBlock" "name": "SponsorBlock"
}, },
"synced-lyrics": {
"description": "LRClib जैसे सोर्सेज के उपयोग से, गानों के लिए सिंक किए गए लिरिक्स देता है।"
},
"video-toggle": { "video-toggle": {
"menu": { "menu": {
"align": { "align": {

View File

@ -55,7 +55,7 @@
}, },
"detail": "\"{{pluginName}}\" plugin zahtjeva ponovno pokretanje da bi postao aktivan", "detail": "\"{{pluginName}}\" plugin zahtjeva ponovno pokretanje da bi postao aktivan",
"message": "\"{{pluginName}}\" se treba ponovo pokreniti", "message": "\"{{pluginName}}\" se treba ponovo pokreniti",
"title": "Ponovno Pokrećanje je Potrebno" "title": "Potrebno Ponovno Pokretanje"
}, },
"unresponsive": { "unresponsive": {
"buttons": { "buttons": {
@ -128,7 +128,7 @@
}, },
"label": "Jezik", "label": "Jezik",
"submenu": { "submenu": {
"to-help-translate": "Želite pomoć za prijevodom? Kliknite ovdje" "to-help-translate": "Želite pomoći sa prijevodom? Kliknite ovdje"
} }
}, },
"resume-on-start": "Nastavi zadnju pjesmu kad se aplikacija pokrene", "resume-on-start": "Nastavi zadnju pjesmu kad se aplikacija pokrene",
@ -150,6 +150,13 @@
"visual-tweaks": { "visual-tweaks": {
"label": "Vizualna podešavanja", "label": "Vizualna podešavanja",
"submenu": { "submenu": {
"custom-window-title": {
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesi prilagođeni naslov prozora: (ostavi prazno za onemogućiti)",
"placeholder": "Primjer: {{applicationName}}"
}
},
"like-buttons": { "like-buttons": {
"default": "Zadano", "default": "Zadano",
"force-show": "Prisilno prikaži", "force-show": "Prisilno prikaži",
@ -201,8 +208,8 @@
"restart": "Ponovo Pokreni Aplikaciju", "restart": "Ponovo Pokreni Aplikaciju",
"show": "Prikaži prozor", "show": "Prikaži prozor",
"tooltip": { "tooltip": {
"default": "YouTube Glazba", "default": "{{applicationName}}",
"with-song-info": "YouTube Glazba: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -230,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
}, },
"name": "Boja teme albuma" "name": "Boja teme albuma"
}, },
@ -280,8 +288,8 @@
"name": "Ambijentalni Način" "name": "Ambijentalni Način"
}, },
"amuse": { "amuse": {
"description": "Dodaje podršku za YouTube Glazbu za widget \"sada reproducira\" od Amuse od strane 6K Labs", "description": "Dodaje podršku za {{applicationName}} za widget \"sada reproducira\" od Amuse od strane 6K Labs",
"name": "Amuse", "name": "Zabavljati",
"response": { "response": {
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi." "query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
} }
@ -313,6 +321,22 @@
"hostname": { "hostname": {
"label": "Naziv hosta" "label": "Naziv hosta"
}, },
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Biraj HTTPS sertifikat datoteku",
"label": "Sertifikat datoteka (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Biraj privatni ključ datoteku za HTTPS",
"label": "Privatni ključ datoteka (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
@ -362,11 +386,11 @@
"name": "Zamagli Navigacijsku Traku" "name": "Zamagli Navigacijsku Traku"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Zaobiđi YouTubeovu provjeru dobi", "description": "Zaobiđi Music Player provjeru dobi",
"name": "Zaobiđi dobna ograničenja" "name": "Zaobiđi dobna ograničenja"
}, },
"captions-selector": { "captions-selector": {
"description": "Izbornik titlova za audiozapise od YouTube Musica", "description": "Izbornik titlova za audiozapise od {{applicationName}}a",
"menu": { "menu": {
"autoload": "Automatski izaberi posljednje korištene titlove", "autoload": "Automatski izaberi posljednje korištene titlove",
"disable-captions": "Bez titlova" "disable-captions": "Bez titlova"
@ -383,7 +407,7 @@
"title": "Otvori izbornik za titlove" "title": "Otvori izbornik za titlove"
}, },
"toast": { "toast": {
"caption-changed": "Titlovi su promenjeni u {{language}}", "caption-changed": "Titlovi su promijenjeni u {{language}}",
"caption-disabled": "Titlovi su isključeni", "caption-disabled": "Titlovi su isključeni",
"no-captions": "Za ovu pjesmu nisu dostupni titlovi" "no-captions": "Za ovu pjesmu nisu dostupni titlovi"
} }
@ -414,8 +438,21 @@
} }
} }
}, },
"custom-output-device": {
"description": "Konfiguriraj prilagođeni izlazni medijski uređaj za pjesme",
"menu": {
"device-selector": "Odaberi Uređaj"
},
"name": "Prilagođeni uređaj za izlaz",
"prompt": {
"device-selector": {
"label": "Odaberi izlazni medijski uređaj za korištenje",
"title": "Odaberi izlazni uređaj"
}
}
},
"disable-autoplay": { "disable-autoplay": {
"description": "Postavlja da pjesma počne pauzirana", "description": "Pokreće pjesmu u pauziranom načinu rada",
"menu": { "menu": {
"apply-once": "Primjenjuje se samo pri pokretanju aplikacije" "apply-once": "Primjenjuje se samo pri pokretanju aplikacije"
}, },
@ -436,10 +473,18 @@
"disconnected": "Odspojen", "disconnected": "Odspojen",
"hide-duration-left": "Sakrij preostalo vrijeme", "hide-duration-left": "Sakrij preostalo vrijeme",
"hide-github-button": "Sakrij gumb sa GitHub poveznicom", "hide-github-button": "Sakrij gumb sa GitHub poveznicom",
"play-on-youtube-music": "Reproduciraj na YouTube Musicu", "play-on-application": "Reproduciraj na {{applicationName}}u",
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)" "set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)",
"set-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"application": "Slušate {{applicationName}}",
"artist": "Slušate {glazbenika}",
"title": "Slušate {naslov pjesme}"
}
}
}, },
"name": "Discord Rich Presence", "name": "Bogata prisutnost Discorda",
"prompt": { "prompt": {
"set-inactivity-timeout": { "set-inactivity-timeout": {
"label": "Postavi vremensko ograničenje neaktivnosti u sekundama:", "label": "Postavi vremensko ograničenje neaktivnosti u sekundama:",
@ -479,10 +524,10 @@
"folder-already-exists": "Mapa {{playlistFolder}} već postoji", "folder-already-exists": "Mapa {{playlistFolder}} već postoji",
"getting-playlist-info": "Dobavljaju se informacije o playlisti…", "getting-playlist-info": "Dobavljaju se informacije o playlisti…",
"loading": "Učitavanje…", "loading": "Učitavanje…",
"playlist-has-only-one-song": "Playlista ima samo jedan stavku, preuzeti će se direktno", "playlist-has-only-one-song": "Playlista ima samo jednu stavku, preuzeti će se direktno",
"playlist-id-not-found": "Nije pronađen ID playliste", "playlist-id-not-found": "Nije pronađen ID playliste",
"playlist-is-empty": "Playlista je prazna", "playlist-is-empty": "Playlista je prazna",
"playlist-is-mix-or-private": "Pogreška pri dobivanju informacija o playlisti: provjerite da nije ili privatna ili \"Za vas\" playlista\n\n{{error}}", "playlist-is-mix-or-private": "Pogreška pri dobavljanju informacija o playlisti: provjerite da nije privatna ili \"Za vas\" playlista\n\n{{error}}",
"preparing-file": "Priprema se datoteka…", "preparing-file": "Priprema se datoteka…",
"saving": "Spremanje…", "saving": "Spremanje…",
"trying-to-get-playlist-id": "Pokušavam dobaviti playlist ID: {{playlistId}}", "trying-to-get-playlist-id": "Pokušavam dobaviti playlist ID: {{playlistId}}",
@ -533,7 +578,7 @@
"name": "Ekvalizator" "name": "Ekvalizator"
}, },
"exponential-volume": { "exponential-volume": {
"description": "Čini klizač glasnoće (volume slider) eksponencijalnim za lakše odabranje niže glasnoće.", "description": "Čini klizač glasnoće (volume slider) eksponencijalnim za lakši odabir niže glasnoće.",
"name": "Eksponencijalna Glasnoća" "name": "Eksponencijalna Glasnoća"
}, },
"in-app-menu": { "in-app-menu": {
@ -552,7 +597,7 @@
"menu": { "menu": {
"romanized-lyrics": "Romanizirani tekstovi pjesme" "romanized-lyrics": "Romanizirani tekstovi pjesme"
}, },
"name": "Genius teksovi pjesme", "name": "Genius tekstovi",
"renderer": { "renderer": {
"fetched-lyrics": "Dobavljen tekst pjesme s Genius-a" "fetched-lyrics": "Dobavljen tekst pjesme s Genius-a"
} }
@ -729,6 +774,7 @@
"listenbrainz": { "listenbrainz": {
"token": "Unesi korisnički žeton za ListenBrainz" "token": "Unesi korisnički žeton za ListenBrainz"
}, },
"scrobble-alternative-artist": "Izaberite druge glazbenike",
"scrobble-alternative-title": "Koristi alternativne naslove", "scrobble-alternative-title": "Koristi alternativne naslove",
"scrobble-other-media": "Učetkaj druge medije" "scrobble-other-media": "Učetkaj druge medije"
}, },
@ -781,7 +827,7 @@
"description": "Obezbjeđava sinkronizirane lirike pjesama, korištenjem dobavljača poput LRClib.", "description": "Obezbjeđava sinkronizirane lirike pjesama, korištenjem dobavljača poput LRClib.",
"errors": { "errors": {
"fetch": "⚠️\tDošlo je do greške prilikom dobavljanja stihova pjesme.\n\tMolimo vas da probate ponovno kasnije.", "fetch": "⚠️\tDošlo je do greške prilikom dobavljanja stihova pjesme.\n\tMolimo vas da probate ponovno kasnije.",
"not-found": "⚠️ Tekst za ovu pjesmu nije pronađen." "not-found": "⚠️ Tekst ove pjesme nije pronađen."
}, },
"menu": { "menu": {
"default-text-string": { "default-text-string": {
@ -789,7 +835,7 @@
"tooltip": "Odaberi zadane karaktere koji će biti korišteni za razmake između stihova pjesama" "tooltip": "Odaberi zadane karaktere koji će biti korišteni za razmake između stihova pjesama"
}, },
"line-effect": { "line-effect": {
"label": "Efekat crte", "label": "Efekt crte",
"submenu": { "submenu": {
"fancy": { "fancy": {
"label": "Kitnjast", "label": "Kitnjast",
@ -808,15 +854,23 @@
"tooltip": "Promjeni razmjeru trenutne crte" "tooltip": "Promjeni razmjeru trenutne crte"
} }
}, },
"tooltip": "Odaberi efekat koji će biti primjenjen na trenutnoj crti" "tooltip": "Odaberi efekt koji će biti primijenjen na trenutnoj crti"
}, },
"precise-timing": { "precise-timing": {
"label": "Napravi da tekst pjesme bude izvrsno usklađen", "label": "Napravi da tekst pjesme bude izvrsno usklađen",
"tooltip": "Izračunaj do milisekunde prikaz sljedeće crteteksta (može malo utjecati na učinak)" "tooltip": "Izračunaj do milisekunde prikaz sljedeće crteteksta (može malo utjecati na učinak)"
}, },
"preferred-provider": {
"label": "Željeni davatelj usluga",
"none": {
"label": "Nema / prazno",
"tooltip": "Nema željenog pružatelja usluga"
},
"tooltip": "Odaberite zadanog pružatelja usluga kojeg ćete koristiti"
},
"romanization": { "romanization": {
"label": "Romanizuj stihove pjesama", "label": "Romanizuj stihove pjesama",
"tooltip": "Ako je tekst pjesme na drugom jeziku, probajte da ga prikažete na latinici." "tooltip": "Ako je tekst pjesme na drugom jeziku, probajte ga prikazati na latinici."
}, },
"show-lyrics-even-if-inexact": { "show-lyrics-even-if-inexact": {
"label": "Prikaži tekst pjesme čak i ako je netačan", "label": "Prikaži tekst pjesme čak i ako je netačan",
@ -827,14 +881,14 @@
"tooltip": "Prikaži vremenske oznake pored teksta pjesme" "tooltip": "Prikaži vremenske oznake pored teksta pjesme"
} }
}, },
"name": "Sinkronizovani stihovi pjesama", "name": "Sinkronizirani stihovi pjesama",
"refetch-btn": { "refetch-btn": {
"fetching": "Dobavljanje...", "fetching": "Dobavljanje...",
"normal": "Ponovo dobavite tekst pjesme" "normal": "Ponovo dobavite tekst pjesme"
}, },
"warnings": { "warnings": {
"duration-mismatch": "⚠️ - Tekst pjesme možda nije usklađen zbog neuklapanja u daljini trajanja.", "duration-mismatch": "⚠️ - Tekst pjesme možda nije usklađen zbog neuklapanja u daljini trajanja.",
"inexact": "⚠️ - Tekst za ovu pjesmu možda nije tačan", "inexact": "⚠️ - Tekst ove pjesme možda nije točan",
"instrumental": "⚠️ - Ovo je instrumentalna glazba" "instrumental": "⚠️ - Ovo je instrumentalna glazba"
} }
}, },
@ -846,6 +900,27 @@
"description": "Dodaje dodatak dodirne trake za macOS korisnike", "description": "Dodaje dodatak dodirne trake za macOS korisnike",
"name": "Dodirna Traka" "name": "Dodirna Traka"
}, },
"transparent-player": {
"description": "Učinit će prozor aplikacije prozirnim",
"menu": {
"opacity": {
"label": "Neprozirnost",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Vrsta",
"submenu": {
"acrylic": "Akrilni",
"mica": "Tinjac",
"none": "Nema / prazno",
"tabbed": "U karticama"
}
}
},
"name": "Prozirni Svirač"
},
"tuna-obs": { "tuna-obs": {
"description": "Integracija sa OBS-ovim Tuna dodatkom", "description": "Integracija sa OBS-ovim Tuna dodatkom",
"name": "Tuna OBS" "name": "Tuna OBS"

View File

@ -154,7 +154,7 @@
"label": "Saját ablak cím", "label": "Saját ablak cím",
"prompt": { "prompt": {
"label": "Kérem az egyéni ablak címét: (hagyd üresen a kikapcsoláshoz)", "label": "Kérem az egyéni ablak címét: (hagyd üresen a kikapcsoláshoz)",
"placeholder": "Példa: Youtube Music" "placeholder": "Példa: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "YT Music újraindítása", "restart": "YT Music újraindítása",
"show": "Ablak megjelenítése", "show": "Ablak megjelenítése",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Ambient mód" "name": "Ambient mód"
}, },
"amuse": { "amuse": {
"description": "Hozzáadja a YouTube Music támogatását az Amuse \"now playing\" widgethez a 6K Labs által", "description": "Hozzáadja a {{applicationName}} támogatását az Amuse \"now playing\" widgethez a 6K Labs által",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Az Amuse API szerver fut. Használja a GET /query kérést a dalinformációk lekéréséhez." "query": "Az Amuse API szerver fut. Használja a GET /query kérést a dalinformációk lekéréséhez."
@ -367,11 +367,11 @@
"name": "Navigációs sáv elmosása" "name": "Navigációs sáv elmosása"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "A YouTube korellenőrzését kihagyja, ezáltal nem kel meg erősíteni a zene meghallgatása elött. (Automatikusan megerősítve lesz.)", "description": "A Music Player korellenőrzését kihagyja, ezáltal nem kel meg erősíteni a zene meghallgatása elött. (Automatikusan megerősítve lesz.)",
"name": "Korellenőrzés kihagyása" "name": "Korellenőrzés kihagyása"
}, },
"captions-selector": { "captions-selector": {
"description": "Felirat választó a YouTube Music zenékhez", "description": "Felirat választó a {{applicationName}} zenékhez",
"menu": { "menu": {
"autoload": "Automatikusan kiválasztja az utoljára használt feliratot", "autoload": "Automatikusan kiválasztja az utoljára használt feliratot",
"disable-captions": "Alapértelmezetten nincsenek feliratok" "disable-captions": "Alapértelmezetten nincsenek feliratok"
@ -453,14 +453,14 @@
"disconnected": "Nincs Kapcsolódva", "disconnected": "Nincs Kapcsolódva",
"hide-duration-left": "Hátralévő idő elrejtése", "hide-duration-left": "Hátralévő idő elrejtése",
"hide-github-button": "GitHub url gombjának elrejtése", "hide-github-button": "GitHub url gombjának elrejtése",
"play-on-youtube-music": "Lejátszás a YouTube Music-on", "play-on-application": "Lejátszás a {{applicationName}}-on",
"set-inactivity-timeout": "Inaktivitási időkorlát beállítása", "set-inactivity-timeout": "Inaktivitási időkorlát beállítása",
"set-status-display-type": { "set-status-display-type": {
"label": "Tevékenység szöveg", "label": "Tevékenység szöveg",
"submenu": { "submenu": {
"artist": "Hallgatja: {artist}", "artist": "Hallgatja: {artist}",
"title": "Hallgatja: {song title}", "application": "Hallgatja: {{applicationName}}",
"youtube-music": "Hallgatja: YouTube Music" "title": "Hallgatja: {song title}"
} }
} }
}, },
@ -730,7 +730,7 @@
} }
}, },
"description": "Lehetővé teszi a videó minőségének megváltoztatását egy gombbal a videó fedvényen", "description": "Lehetővé teszi a videó minőségének megváltoztatását egy gombbal a videó fedvényen",
"name": "Videóminőség modosító" "name": "Videóminőség módosító"
}, },
"scrobbler": { "scrobbler": {
"description": "Scrobbling támogatás hozzáadása (pl. last.fm, ListenBrainz)", "description": "Scrobbling támogatás hozzáadása (pl. last.fm, ListenBrainz)",

View File

@ -154,7 +154,7 @@
"label": "Judul jendela kustom", "label": "Judul jendela kustom",
"prompt": { "prompt": {
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)", "label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
"placeholder": "Contoh: YouTube Music" "placeholder": "Contoh: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restart aplikasi", "restart": "Restart aplikasi",
"show": "Tampilkan jendela", "show": "Tampilkan jendela",
"tooltip": { "tooltip": {
"default": "YouTube Musik", "default": "{{applicationName}}",
"with-song-info": "YouTube Musik: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Mode ambient" "name": "Mode ambient"
}, },
"amuse": { "amuse": {
"description": "Menambahkan dukungan YouTube Music untuk widget Amuse yang sedang diputar oleh 6K Labs", "description": "Menambahkan dukungan {{applicationName}} untuk widget Amuse yang sedang diputar oleh 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu." "query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu."
@ -369,11 +369,11 @@
"name": "Buramkan Bar Navigasi" "name": "Buramkan Bar Navigasi"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Lewati verifikasi umur dari YouTube", "description": "Lewati verifikasi umur dari Music Player",
"name": "Lewati batasan umur" "name": "Lewati batasan umur"
}, },
"captions-selector": { "captions-selector": {
"description": "Pemilih caption untuk trek audio YouTube Music", "description": "Pemilih caption untuk trek audio {{applicationName}}",
"menu": { "menu": {
"autoload": "Pilih caption terakhir secara otomatis", "autoload": "Pilih caption terakhir secara otomatis",
"disable-captions": "Tidak ada caption secara default" "disable-captions": "Tidak ada caption secara default"
@ -456,14 +456,14 @@
"disconnected": "Terputus", "disconnected": "Terputus",
"hide-duration-left": "Sembunyikan sisa durasi", "hide-duration-left": "Sembunyikan sisa durasi",
"hide-github-button": "Sembunyikan tombol link GitHub", "hide-github-button": "Sembunyikan tombol link GitHub",
"play-on-youtube-music": "Mainkan di YouTube Music", "play-on-application": "Mainkan di {{applicationName}}",
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif", "set-inactivity-timeout": "Tetapkan batas waktu tidak aktif",
"set-status-display-type": { "set-status-display-type": {
"label": "Teks status", "label": "Teks status",
"submenu": { "submenu": {
"artist": "Sedang mendengarkan {artist}", "artist": "Sedang mendengarkan {artist}",
"title": "Sedang mendengarkan {song title}", "title": "Sedang mendengarkan {song title}",
"youtube-music": "Sedang mendengarkan YouTube Music" "application": "Sedang mendengarkan {{applicationName}}"
} }
} }
}, },

View File

@ -201,8 +201,8 @@
"restart": "Endurræstu Forritið", "restart": "Endurræstu Forritið",
"show": "Sýna glugga", "show": "Sýna glugga",
"tooltip": { "tooltip": {
"default": "YouTube Tónlist", "default": "{{applicationName}}",
"with-song-info": "YouTube Tónlist: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -331,11 +331,11 @@
"name": "Þoka Leiðsagnarstika" "name": "Þoka Leiðsagnarstika"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Framhjá aldursstaðfestingu YouTube", "description": "Framhjá aldursstaðfestingu Music Player",
"name": "Farið Framhjá Aldurstakmörkunum" "name": "Farið Framhjá Aldurstakmörkunum"
}, },
"captions-selector": { "captions-selector": {
"description": "Skjátextavali fyrir YouTube Tónlist hljóðrásir", "description": "Skjátextavali fyrir {{applicationName}} hljóðrásir",
"menu": { "menu": {
"autoload": "Veldu sjálfkrafa síðast notaða myndatexta", "autoload": "Veldu sjálfkrafa síðast notaða myndatexta",
"disable-captions": "Engir skjátextar sjálfgefið" "disable-captions": "Engir skjátextar sjálfgefið"
@ -400,7 +400,7 @@
"disconnected": "Aftengt", "disconnected": "Aftengt",
"hide-duration-left": "Fela tímalengd til vinstri", "hide-duration-left": "Fela tímalengd til vinstri",
"hide-github-button": "Fela GitHub tengilhnapp", "hide-github-button": "Fela GitHub tengilhnapp",
"play-on-youtube-music": "Spilaðu á YouTube Tónlist", "play-on-application": "Spilaðu á {{applicationName}}",
"set-inactivity-timeout": "Stilltu tímamörk fyrir óvirkni" "set-inactivity-timeout": "Stilltu tímamörk fyrir óvirkni"
}, },
"name": "Discord Rík Nærvera", "name": "Discord Rík Nærvera",

View File

@ -154,7 +154,7 @@
"label": "Personalizza titolo finestra", "label": "Personalizza titolo finestra",
"prompt": { "prompt": {
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)", "label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
"placeholder": "Esempio: YouTube Music" "placeholder": "Esempio: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Riavvia l'app", "restart": "Riavvia l'app",
"show": "Mostra finestra", "show": "Mostra finestra",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Abilita tematizzazione della seekbar"
}, },
"name": "Tema abbinato a colore album" "name": "Tema abbinato a colore album"
}, },
@ -287,7 +288,7 @@
"name": "Modalità Ambiente" "name": "Modalità Ambiente"
}, },
"amuse": { "amuse": {
"description": "Aggiunge il supporto a YouTube Music per il widget Amuse Now Playing di 6K Labs", "description": "Aggiunge il supporto a {{applicationName}} per il widget Amuse Now Playing di 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani." "query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Hostname" "label": "Hostname"
}, },
"https": {
"label": "HTTPS & Certificati",
"submenu": {
"cert": {
"dialogTitle": "Seleziona file di certificato HTTPS",
"label": "File di certificato (.crt/.pem)"
},
"enable-https": {
"label": "Abilita HTTPS"
},
"key": {
"dialogTitle": "Seleziona il file della chiave privata HTTPS",
"label": "File della chiave privata (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Porta" "label": "Porta"
} }
@ -369,11 +386,11 @@
"name": "Barra di navigazione trasparente" "name": "Barra di navigazione trasparente"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Bypassa la verifica dell'età di YouTube", "description": "Bypassa la verifica dell'età di Music Player",
"name": "Aggira i limiti d'età" "name": "Aggira i limiti d'età"
}, },
"captions-selector": { "captions-selector": {
"description": "Selettore sottotitolo per le tracce audio di YouTube", "description": "Selettore sottotitolo per le tracce audio di {{applicationName}}",
"menu": { "menu": {
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato", "autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
"disable-captions": "Disattiva i sottotitoli" "disable-captions": "Disattiva i sottotitoli"
@ -456,14 +473,14 @@
"disconnected": "Disconnesso", "disconnected": "Disconnesso",
"hide-duration-left": "Nascondi la durata rimasta", "hide-duration-left": "Nascondi la durata rimasta",
"hide-github-button": "Nascondi il pulsante link a GitHub", "hide-github-button": "Nascondi il pulsante link a GitHub",
"play-on-youtube-music": "Riproduci su YouTube Music", "play-on-application": "Riproduci su {{applicationName}}",
"set-inactivity-timeout": "Imposta il timeout di inattività", "set-inactivity-timeout": "Imposta il timeout di inattività",
"set-status-display-type": { "set-status-display-type": {
"label": "Testo dello status", "label": "Testo dello status",
"submenu": { "submenu": {
"application": "Ascoltando {{applicationName}}",
"artist": "Stai ascoltando {artist}", "artist": "Stai ascoltando {artist}",
"title": "Stai ascoltando {song title}", "title": "Stai ascoltando {song title}"
"youtube-music": "Ascoltando YouTube Music"
} }
} }
}, },
@ -866,7 +883,7 @@
}, },
"name": "Testi sincronizzati", "name": "Testi sincronizzati",
"refetch-btn": { "refetch-btn": {
"fetching": "Sto recuperando...", "fetching": "Caricamento...",
"normal": "Recupera i testi" "normal": "Recupera i testi"
}, },
"warnings": { "warnings": {

View File

@ -154,7 +154,7 @@
"label": "カスタムウィンドウタイトル", "label": "カスタムウィンドウタイトル",
"prompt": { "prompt": {
"label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)", "label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)",
"placeholder": "例: YouTube Music" "placeholder": "例: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "アプリを再起動", "restart": "アプリを再起動",
"show": "ウィンドウを表示", "show": "ウィンドウを表示",
"tooltip": { "tooltip": {
"default": "YouTube ミュージック", "default": "{{applicationName}}",
"with-song-info": "YouTube ミュージック: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "アンビエント モード" "name": "アンビエント モード"
}, },
"amuse": { "amuse": {
"description": "6K LabsのAmuse再生中ウィジェットがYouTube Musicに対応しました", "description": "6K LabsのAmuse再生中ウィジェットが{{applicationName}}に対応しました",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "AmuseのAPIサーバーが稼働中です。GET /query で楽曲情報を取得できます。" "query": "AmuseのAPIサーバーが稼働中です。GET /query で楽曲情報を取得できます。"
@ -369,11 +369,11 @@
"name": "ナビゲーションバーの曇り効果" "name": "ナビゲーションバーの曇り効果"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "ユーチューブの年齢制限を迂回します", "description": "音楽プレーヤーの年齢確認をバイパスする",
"name": "年齢制限迂回" "name": "年齢制限迂回"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube Musicトラック用字幕選択機", "description": "{{applicationName}}トラック用字幕選択機",
"menu": { "menu": {
"autoload": "最後の字幕を自動に選択", "autoload": "最後の字幕を自動に選択",
"disable-captions": "デフォルトで字幕を無効化" "disable-captions": "デフォルトで字幕を無効化"
@ -456,14 +456,14 @@
"disconnected": "切断済み", "disconnected": "切断済み",
"hide-duration-left": "残りの再生時間を隠す", "hide-duration-left": "残りの再生時間を隠す",
"hide-github-button": "GitHubリンクボタンを隠す", "hide-github-button": "GitHubリンクボタンを隠す",
"play-on-youtube-music": "YouTube Musicで再生", "play-on-application": "{{applicationName}}で再生",
"set-inactivity-timeout": "タイムアウト時間を設定", "set-inactivity-timeout": "タイムアウト時間を設定",
"set-status-display-type": { "set-status-display-type": {
"label": "ステータステキスト", "label": "ステータステキスト",
"submenu": { "submenu": {
"artist": "{artist}を聴いている", "artist": "{artist}を聴いている",
"title": "{曲名}を聴いている", "application": "{{applicationName}}を聴く",
"youtube-music": "YouTube Musicを聴く" "title": "{曲名}を聴いている"
} }
} }
}, },

View File

@ -2,7 +2,7 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "პლაგინის დაყენების შეცდომა {{pluginName}}::{{contextName}}", "execute-failed": "დამატების შესრულების შეცდომა {{pluginName}}::{{contextName}}",
"executed-at-ms": "პლაგინი {{pluginName}}::{{contextName}} გაეშვა {{ms}} მილიწამში", "executed-at-ms": "პლაგინი {{pluginName}}::{{contextName}} გაეშვა {{ms}} მილიწამში",
"initialize-failed": "პლაგინის ინიციალიზაცია ვერ მოხდა\"{{pluginName}}\"", "initialize-failed": "პლაგინის ინიციალიზაცია ვერ მოხდა\"{{pluginName}}\"",
"load-all": "იტვირთება ყველა პლაგინი", "load-all": "იტვირთება ყველა პლაგინი",
@ -37,26 +37,45 @@
}, },
"when-ready": { "when-ready": {
"clearing-cache-after-20s": "აპლიკაციის ქეშის გაწმენდვა" "clearing-cache-after-20s": "აპლიკაციის ქეშის გაწმენდვა"
},
"window": {
"tried-to-render-offscreen": "ფანჯარამ სცადა, ეკრანსმიღმა გახსნილიყო, ფანჯრის ზომა={{windowSize}}, ეკრანის ზომა={{displaySize}}, მდებარეობა={{position}}"
} }
}, },
"dialog": { "dialog": {
"hide-menu-enabled": {
"detail": "მენიუ დამალულია, გამოიყენეთ 'Alt', რათა გამოაჩინოთ ის (ან 'Escape' თუ იყენებთ აპლიკაციის შიგნითა მენიუს)",
"message": "მენიუს დამალვა ჩართულია",
"title": "მენიუს დამალვა ჩართულია"
},
"need-to-restart": { "need-to-restart": {
"buttons": { "buttons": {
"later": "მოგვიანებით" "later": "მოგვიანებით",
} "restart-now": "გადატვირთვა ახლავე"
},
"detail": "„{{pluginName}}“ დანამატის ძალაში შესასვლელად გადატვირთვა საჭიროა",
"message": "\"{{pluginName}}\" საჭიროებს გადატვირთვას",
"title": "საჭიროებს გადატვირთვას"
}, },
"unresponsive": { "unresponsive": {
"buttons": { "buttons": {
"quit": "გასვლა", "quit": "გასვლა",
"relaunch": "თავიდან გაშვება", "relaunch": "თავიდან გაშვება",
"wait": "მოცდა" "wait": "მოცდა"
} },
"detail": "ბოდიშს გიხდით მოუხერხელობისათვის! გთხოვთ აირჩიეთ რა უნდა გაკეთდეს:",
"message": "აპლიკაცია არ პასუხობს",
"title": "ფანჯარა არ პასუხობს"
}, },
"update-available": { "update-available": {
"buttons": { "buttons": {
"disable": "განახლებების გამორთვა",
"download": "გადმოწერა", "download": "გადმოწერა",
"ok": "დიახ" "ok": "დიახ"
} },
"detail": "ახალი ვერსიაა ხელმისაწვდომი, მისი ჩამოტვირთვა შესაძლებელია {{downloadLink}}-დან",
"message": "ახალი ვერსია ხელმისაწვდომია",
"title": "განახლება ხელმისაწვდომია"
} }
}, },
"menu": { "menu": {
@ -64,19 +83,63 @@
"navigation": { "navigation": {
"label": "ნავიგაცია", "label": "ნავიგაცია",
"submenu": { "submenu": {
"quit": "გასვლა" "copy-current-url": "მიმდინარე URL-ის დაკოპირება",
"go-back": "უკან დაბრუნება",
"go-forward": "წინ გადასვლა",
"quit": "გასვლა",
"restart": "აპლიკაციის გადატვირთვა"
} }
}, },
"options": { "options": {
"label": "მორგება", "label": "მორგება",
"submenu": { "submenu": {
"language": { "advanced-options": {
"label": "ენა" "label": "გაფართოებული პარამეტრები",
"submenu": {
"auto-reset-app-cache": "აპლიკაციის ქეშის გადატვირთვა როცა აპლიკაცია დაიწყება",
"disable-hardware-acceleration": "აპარატურული აჩქარების გამორთვა",
"edit-config-json": "config.json-ის რედაქტირება",
"override-user-agent": "მომხმარებლის აგენტის შეცვლა",
"restart-on-config-changes": "გადატვირთვა კონფიგურაციის ცვლილებების დროს",
"set-proxy": {
"label": "პროქსის დაყენება",
"prompt": {
"label": "შეიყვანეთ პროქსის მისამართი: (გამორთვისთვის დატოვეთ ცარიელი)",
"placeholder": "მაგალითი: SOCKS5://127.0.0.1:9999",
"title": "პროქსის დაყენება"
}
},
"toggle-dev-tools": "DevTools-ის გადართვა"
}
}, },
"always-on-top": "მუდამ ზემოთ",
"auto-update": "ავტომატური განახლება",
"hide-menu": {
"dialog": {
"message": "მენიუ შემდეგი გაშვებისას დაიმალება, მის საჩვენებლად გამოიყენეთ [Alt] (ან თუ აპლიკაციის მენიუს იყენებთ, უკან დააწკაპუნეთ [`])",
"title": "მენიუს დამალვა ჩაირთო"
},
"label": "მენიუს დამალვა"
},
"language": {
"dialog": {
"message": "გადატვირთვის შემდეგ ენა შეიცვლება",
"title": "ენა შეიცვალა"
},
"label": "ენა",
"submenu": {
"to-help-translate": "გსურთ დაგვეხმაროთ თარგმნაში? დააწკაპუნეთ აქ"
}
},
"resume-on-start": "აპლიკაციის თავიდან გაშვებისას ბოლო სიმღერა დაუკრას",
"single-instance-lock": "ერთჯერადი ინსტანციის საკეტი",
"start-at-login": "შესვლაზე დაწყება",
"starting-page": { "starting-page": {
"label": "საწყისი გვერდი",
"unset": "მოხსნა" "unset": "მოხსნა"
}, },
"tray": { "tray": {
"label": "უჯრა",
"submenu": { "submenu": {
"disabled": "გამორთულია" "disabled": "გამორთულია"
} }
@ -156,11 +219,15 @@
"submenu": { "submenu": {
"percent": "{{size}}%" "percent": "{{size}}%"
} }
},
"use-fullscreen": {
"label": "სრული ეკრანის გამოყენება"
} }
} },
"name": "გარემოს რეჟიმი"
}, },
"amuse": { "amuse": {
"name": "Amuse" "name": "გაკვირვება"
}, },
"api-server": { "api-server": {
"dialog": { "dialog": {
@ -261,6 +328,13 @@
"status": { "status": {
"disconnected": "გათიშული" "disconnected": "გათიშული"
} }
},
"toast": {
"closed": "Music Together-ის ორგანიზატორი დაიხურა",
"disconnected": "Music Together-ის კავშირი გათიშულია",
"host-failed": "Music Together-ის გამოცხადება ვერ მოხერხდა",
"id-copied": "გამოსაცხადებელი ID დაკოპირებულია ბუფერში",
"id-copy-failed": "გამოსაცხადებელი ID-ის ვერ დაკოპირდა ბუფერში"
} }
}, },
"navigation": { "navigation": {
@ -303,6 +377,30 @@
} }
} }
} }
},
"video-toggle": {
"menu": {
"mode": {
"label": "რეჟიმი",
"submenu": {
"custom": "მორგებული გადამრთველი",
"disabled": "გამორთულია",
"native": "ადგილობრივი გადართვა"
}
}
},
"name": "ვიდეოს გადართვა",
"templates": {
"button-song": "სიმღერა",
"button-video": "ვიდეო"
}
},
"visualizer": {
"description": "პლეიერს ვიზუალიზატორს უმატებს",
"menu": {
"visualizer-type": "ვიზუალიზატორის ტიპი"
},
"name": "ვიზუალიზატორი"
} }
} }
} }

View File

@ -0,0 +1 @@
{}

View File

@ -154,7 +154,7 @@
"label": "사용자 정의 앱 제목", "label": "사용자 정의 앱 제목",
"prompt": { "prompt": {
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)", "label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
"placeholder": "예: YouTube Music" "placeholder": "예: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -171,7 +171,7 @@
"remove": "제거" "remove": "제거"
}, },
"remove-theme": "사용자 정의 테마를 제거하시겠습니까?", "remove-theme": "사용자 정의 테마를 제거하시겠습니까?",
"remove-theme-message": "사용자 정의 테마를 제거하시겠습니까?" "remove-theme-message": "이 설정을 변경하면 커스텀 테마가 삭제됩니다"
}, },
"label": "테마", "label": "테마",
"submenu": { "submenu": {
@ -208,8 +208,8 @@
"restart": "앱 재시작", "restart": "앱 재시작",
"show": "창 표시", "show": "창 표시",
"tooltip": { "tooltip": {
"default": "유튜브 뮤직", "default": "{{applicationName}}",
"with-song-info": "유튜브 뮤직: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "재생바 색조 변경 활성화"
}, },
"name": "앨범 컬러 기반 테마" "name": "앨범 컬러 기반 테마"
}, },
@ -287,8 +288,8 @@
"name": "앰비언트 모드" "name": "앰비언트 모드"
}, },
"amuse": { "amuse": {
"description": "6K Labs Amuse의 'now playing' 위젯에 YouTube Music 지원 추가", "description": "6K Labs Amuse의 'now playing' 위젯에 {{applicationName}} 지원 추가",
"name": "Amuse", "name": "Amuseio AB",
"response": { "response": {
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요." "query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
} }
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "호스트 명" "label": "호스트 명"
}, },
"https": {
"label": "HTTPS 및 인증서",
"submenu": {
"cert": {
"dialogTitle": "HTTPS 인증서 파일을 선택해 주세요",
"label": "인증서 파일(.crt/.pem)"
},
"enable-https": {
"label": "HTTPS 활성화"
},
"key": {
"dialogTitle": "HTTPS 개인 키 파일을 선택해 주세요",
"label": "개인 키 파일(.key/.pem)"
}
}
},
"port": { "port": {
"label": "포트" "label": "포트"
} }
@ -369,11 +386,11 @@
"name": "탐색 바 흐림 효과" "name": "탐색 바 흐림 효과"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "유튜브의 나이 제한을 우회합니다", "description": "음악 플레이어의 연령 확인 우회합니다",
"name": "나이 제한 우회" "name": "나이 제한 우회"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube Music 트랙용 자막 선택기입니다", "description": "{{applicationName}} 트랙용 자막 선택기입니다",
"menu": { "menu": {
"autoload": "마지막으로 사용한 자막을 자동으로 선택", "autoload": "마지막으로 사용한 자막을 자동으로 선택",
"disable-captions": "기본 자막 제거" "disable-captions": "기본 자막 제거"
@ -456,14 +473,14 @@
"disconnected": "연결 해제 됨", "disconnected": "연결 해제 됨",
"hide-duration-left": "남은 재생 시간 숨기기", "hide-duration-left": "남은 재생 시간 숨기기",
"hide-github-button": "GitHub 링크 버튼 숨기기", "hide-github-button": "GitHub 링크 버튼 숨기기",
"play-on-youtube-music": "유튜브 뮤직에서 재생", "play-on-application": "{{applicationName}} 에서 재생",
"set-inactivity-timeout": "비활성 시간 제한 설정", "set-inactivity-timeout": "비활성 시간 제한 설정",
"set-status-display-type": { "set-status-display-type": {
"label": "상태 텍스트", "label": "상태 텍스트",
"submenu": { "submenu": {
"application": "{{applicationName}} 듣는 중",
"artist": "{아티스트} 듣는 중", "artist": "{아티스트} 듣는 중",
"title": "{곡 제목} 듣는 중", "title": "{곡 제목} 듣는 중"
"youtube-music": "YouTube Music 듣는 중"
} }
} }
}, },

View File

@ -151,8 +151,10 @@
"label": "Vizualiniai patobulinimai", "label": "Vizualiniai patobulinimai",
"submenu": { "submenu": {
"custom-window-title": { "custom-window-title": {
"label": "Pasirinktinis lango pavadinimas",
"prompt": { "prompt": {
"placeholder": "Pavyzdys: YouTube Music" "label": "Įveskite pasirinktinį lango pavadinimą: (palikite tuščią, jei norite išjungti)",
"placeholder": "Pavyzdys: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -206,8 +208,8 @@
"restart": "Perkrauti programą", "restart": "Perkrauti programą",
"show": "Rodyti langą", "show": "Rodyti langą",
"tooltip": { "tooltip": {
"default": "Youtube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -285,7 +287,7 @@
"name": "Aplinkos rėžimas" "name": "Aplinkos rėžimas"
}, },
"amuse": { "amuse": {
"description": "Prideda Youtube Muzika palaikyma Amuse grojimo valdikliui pagal 6K Labs", "description": "Prideda {{applicationName}} palaikyma Amuse grojimo valdikliui pagal 6K Labs",
"name": "Amuse (Platforma Dainininkams)", "name": "Amuse (Platforma Dainininkams)",
"response": { "response": {
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija." "query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
@ -343,11 +345,11 @@
"name": "Sulieti Navigacijos Lentą" "name": "Sulieti Navigacijos Lentą"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Apeiti \"Youtube\" amžiaus patikrinimą", "description": "Apeiti \"Music Player\" amžiaus patikrinimą",
"name": "Apeiti Amžiaus Apribojimus" "name": "Apeiti Amžiaus Apribojimus"
}, },
"captions-selector": { "captions-selector": {
"description": "„YouTube Music“ Garso takelių antraščių parinkiklis", "description": "„{{applicationName}}“ Garso takelių antraščių parinkiklis",
"menu": { "menu": {
"autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę", "autoload": "Automatiškai pasirinkti paskutinę naudotą antraštę",
"disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės" "disable-captions": "Pagal numatytuosius nustatymus išjungti antraštės"
@ -427,13 +429,13 @@
"disconnected": "Atsijungta", "disconnected": "Atsijungta",
"hide-duration-left": "Slėpti kiek liko laiko", "hide-duration-left": "Slėpti kiek liko laiko",
"hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką", "hide-github-button": "Slėpti \"GitHub\" nuorodos mygtuką",
"play-on-youtube-music": "Leisti ant \"Youtube Music\"", "play-on-application": "Leisti ant \"{{applicationName}}\"",
"set-inactivity-timeout": "Nustatyti neveiklumo laiką", "set-inactivity-timeout": "Nustatyti neveiklumo laiką",
"set-status-display-type": { "set-status-display-type": {
"submenu": { "submenu": {
"application": "Klausosi {{applicationName}}",
"artist": "Klausosi {artist]", "artist": "Klausosi {artist]",
"title": "Klausosi {song title}", "title": "Klausosi {song title}"
"youtube-music": "Klausosi Youtube Music"
} }
} }
}, },

View File

@ -150,13 +150,20 @@
"visual-tweaks": { "visual-tweaks": {
"label": "Vizuāli Iestatījumi", "label": "Vizuāli Iestatījumi",
"submenu": { "submenu": {
"custom-window-title": {
"label": "Pielāgots loga nosaukums",
"prompt": {
"label": "Ievadiet pielāgotu loga nosaukumu: (atstājiet tukšu, lai atspējotu)",
"placeholder": "Piemērs: Pear mūzika"
}
},
"like-buttons": { "like-buttons": {
"default": "Noklusējums", "default": "Noklusējums",
"force-show": "Vienmēr rādīt", "force-show": "Vienmēr rādīt",
"hide": "Paslēpt", "hide": "Paslēpt",
"label": "Like pogas" "label": "Like pogas"
}, },
"remove-upgrade-button": "Noslēpt YouTube Premium pogu", "remove-upgrade-button": "Noslēpt Premium pogu",
"theme": { "theme": {
"dialog": { "dialog": {
"button": { "button": {
@ -201,8 +208,8 @@
"restart": "Restartēt Lietotni", "restart": "Restartēt Lietotni",
"show": "Rādīt logu", "show": "Rādīt logu",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -280,7 +287,7 @@
"name": "Ambientais Režīms" "name": "Ambientais Režīms"
}, },
"amuse": { "amuse": {
"description": "Pievieno YouTube Music atblastu priekš Amuse \"tagad spēlē\" no 6K Labs", "description": "Pievieno {{applicationName}} atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info." "query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
@ -362,11 +369,11 @@
"name": "Izplūdusi Navigācijas Josla" "name": "Izplūdusi Navigācijas Josla"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Apiet YouTube vecuma pārbaudi", "description": "Apiet Music Player vecuma pārbaudi",
"name": "Apiet Vecuma Ierobežojumus" "name": "Apiet Vecuma Ierobežojumus"
}, },
"captions-selector": { "captions-selector": {
"description": "Subtitru izvēlne priekš YouTube Music audio ceļiem", "description": "Subtitru izvēlne priekš {{applicationName}} audio ceļiem",
"menu": { "menu": {
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus", "autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
"disable-captions": "Bez subtitriem pēc noklusējuma" "disable-captions": "Bez subtitriem pēc noklusējuma"
@ -414,6 +421,19 @@
} }
} }
}, },
"custom-output-device": {
"description": "Pielāgotas izvades multivides ierīces konfigurēšana dziesmām",
"menu": {
"device-selector": "Izvēlieties ierīci"
},
"name": "Pielāgota izvades ierīce",
"prompt": {
"device-selector": {
"label": "Izvēlieties izmantojamo izvades multivides ierīci",
"title": "Izvēlieties izvades ierīci"
}
}
},
"disable-autoplay": { "disable-autoplay": {
"description": "Palaiž dziesmu nopauzētu", "description": "Palaiž dziesmu nopauzētu",
"menu": { "menu": {
@ -436,8 +456,15 @@
"disconnected": "Atvienojies", "disconnected": "Atvienojies",
"hide-duration-left": "Paslēpt cik palika laika", "hide-duration-left": "Paslēpt cik palika laika",
"hide-github-button": "Paslēpt GitHub saites pogu", "hide-github-button": "Paslēpt GitHub saites pogu",
"play-on-youtube-music": "Atskaņot uz YouTube Music", "play-on-application": "Atskaņot uz {{applicationName}}",
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru" "set-inactivity-timeout": "Iestatīt neaktivitātes taimeru",
"set-status-display-type": {
"label": "Statusa teksts",
"submenu": {
"artist": "Klausos {mākslinieku}",
"title": "Klausos {dziesmas nosaukums}"
}
}
}, },
"name": "Discord Rich Presence", "name": "Discord Rich Presence",
"prompt": { "prompt": {
@ -485,9 +512,114 @@
"playlist-is-mix-or-private": "Neizdevās iegūt atskaņošanas saraksta informāciju: pārliecinieties, ka tas nav privāts vai \"Jums izveidotā izlase\" saraksts.\n\n{{error}}", "playlist-is-mix-or-private": "Neizdevās iegūt atskaņošanas saraksta informāciju: pārliecinieties, ka tas nav privāts vai \"Jums izveidotā izlase\" saraksts.\n\n{{error}}",
"preparing-file": "Faila sagatavošana…", "preparing-file": "Faila sagatavošana…",
"saving": "Saglabāšana…", "saving": "Saglabāšana…",
"trying-to-get-playlist-id": "Mēģinu iegūt atskaņošanas saraksta ID: {{playlistId}}",
"video-id-not-found": "Video nav atrasts", "video-id-not-found": "Video nav atrasts",
"writing-id3": "Rakstam ID3 tegus…" "writing-id3": "Rakstam ID3 tegus…"
} }
},
"description": "Lejupielādē MP3/avota audio tieši no saskarnes",
"menu": {
"choose-download-folder": "Izvēlieties lejupielādes mapi",
"download-finish-settings": {
"label": "Lejupielādēt pēc pabeigšanas",
"prompt": {
"last-percent": "Pēc x procentiem",
"last-seconds": "Pēdējās x sekundes",
"title": "Konfigurējiet lejupielādes laiku"
},
"submenu": {
"advanced": "Paplašināts",
"enabled": "Iespējots",
"mode": "Laika režīms",
"percent": "Procenti",
"seconds": "Sekundes"
}
},
"download-playlist": "Lejupielādēt atskaņošanas sarakstu",
"presets": "Iepriekšiestatījumi",
"skip-existing": "Izlaist esošos failus"
},
"name": "Lejupielādētājs",
"renderer": {
"can-not-update-progress": "Nevar atjaunināt progresu"
},
"templates": {
"button": "Lejupielādēt"
}
},
"equalizer": {
"description": "Pievieno atskaņotājam ekvalaizeru",
"menu": {
"presets": {
"label": "Iepriekšiestatījumi",
"list": {
"bass-booster": "Basu pastiprinātājs"
}
}
},
"name": "Ekvalaizers"
},
"exponential-volume": {
"description": "Padara skaļuma slīdni eksponenciālu, lai būtu vieglāk izvēlēties zemākus skaļumus.",
"name": "Eksponenciālais apjoms"
},
"in-app-menu": {
"description": "Piešķir izvēļņu joslām greznu, tumšu vai albuma krāsas izskatu",
"menu": {
"hide-dom-window-controls": "Slēpt DOM loga vadīklas"
},
"name": "Lietotnes izvēlne"
},
"lumiastream": {
"description": "Pievieno Lumia Stream atbalstu",
"name": "Lumia Stream [Beta versija]"
},
"lyrics-genius": {
"description": "Pievieno dziesmu tekstu atbalstu lielākajai daļai dziesmu",
"menu": {
"romanized-lyrics": "Romanizēti dziesmu teksti"
},
"name": "Dziesmu vārdu ģēnijs",
"renderer": {
"fetched-lyrics": "Iegūti dziesmu vārdi priekš oriģināla"
}
},
"music-together": {
"description": "Kopīgojiet atskaņošanas sarakstu ar citiem. Kad vadītājs atskaņo dziesmu, visi pārējie dzirdēs to pašu dziesmu.",
"dialog": {
"enter-host": "Ievadiet resursdatora ID"
},
"internal": {
"save": "Saglabāt",
"track-source": "Dziesmas avots",
"unknown-user": "Nezināms lietotājs"
},
"menu": {
"click-to-copy-id": "Kopēt resursdatora ID",
"close": "Aizvērt mūziku kopā",
"connected-users": "Savienotie lietotāji",
"disconnect": "Atvienojiet mūziku kopā",
"empty-user": "Nav pievienotu lietotāju",
"host": "Kopklausīšanās vadītājs",
"join": "Pievienojieties mūzikai kopā",
"permission": {
"all": "Atļaut viesiem kontrolēt atskaņošanas sarakstu un atskaņotāju",
"host-only": "Tikai resursdators var kontrolēt atskaņošanas sarakstu un atskaņotāju",
"playlist": "Atļaut viesiem kontrolēt atskaņošanas sarakstu"
},
"set-permission": "Izmainīt kontroles piekļuvi",
"status": {
"disconnected": "Atvienots",
"guest": "Pieslēdzies kā viesis",
"host": "Pieslēdzies kā vadītājs"
}
},
"name": "Mūzika Kopā [Beta]",
"toast": {
"add-song-failed": "Neizdevās pievienot dziesmu",
"closed": "Mūzika Kopā slēgta",
"disconnected": "Mūzika Kopā atvienota",
"host-failed": "Neizdevās uzsākt Mūziku Kopā"
} }
} }
} }

View File

@ -27,7 +27,7 @@
"loaded": "i18n ലോഡ് ചെയ്തു" "loaded": "i18n ലോഡ് ചെയ്തു"
}, },
"second-instance": { "second-instance": {
"receive-command": "പ്രോട്ടോക്കോളിലൂടെ കമാൻഡ് ലഭിച്ചു : \"{{command}}\"" "receive-command": "പ്രോട്ടോക്കോളിലൂടെ കമാൻഡ് ലഭിച്ചു : \"{{command}}\""
}, },
"theme": { "theme": {
"css-file-not-found": "\"{{cssFile}}\" എന്ന CSS file നിലവിൽ ഇല്ല. ഉപേക്ഷിക്കുന്നു" "css-file-not-found": "\"{{cssFile}}\" എന്ന CSS file നിലവിൽ ഇല്ല. ഉപേക്ഷിക്കുന്നു"

View File

@ -53,7 +53,7 @@
"later": "Nanti", "later": "Nanti",
"restart-now": "Restart Sekarang" "restart-now": "Restart Sekarang"
}, },
"detail": "Plugin {{pluginName}} perlu dimulakan semula untuk berkuatkuasa", "detail": "\"{{pluginName}}\" plugin memerlukan mula semula untuk ambil keberkesanan",
"message": "\"{{pluginName}}\" perlu dimulakan semula", "message": "\"{{pluginName}}\" perlu dimulakan semula",
"title": "Mulakan Semula Diperlukan" "title": "Mulakan Semula Diperlukan"
}, },
@ -74,7 +74,7 @@
"ok": "OK" "ok": "OK"
}, },
"detail": "Versi baharu kini tersedia dan boleh dimuat turun di {{downloadLink}}", "detail": "Versi baharu kini tersedia dan boleh dimuat turun di {{downloadLink}}",
"message": "Versi baharu tersedia", "message": "Versi baharu kini tersedia",
"title": "Kemas Kini Tersedia" "title": "Kemas Kini Tersedia"
} }
}, },
@ -154,7 +154,7 @@
"label": "Tajuk tetingkap tersuai", "label": "Tajuk tetingkap tersuai",
"prompt": { "prompt": {
"label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)", "label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)",
"placeholder": "Contoh: YouTube Music" "placeholder": "Contoh: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Mulakan Semula Aplikasi", "restart": "Mulakan Semula Aplikasi",
"show": "Papar tetingkap", "show": "Papar tetingkap",
"tooltip": { "tooltip": {
"default": "YouTube Muzik", "default": "{{applicationName}}",
"with-song-info": "YouTube Muzik : {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Mod Sekitaran" "name": "Mod Sekitaran"
}, },
"amuse": { "amuse": {
"description": "Menambahkan sokongan YouTube Music untuk widget sedang dimain Amuse oleh 6K Labs", "description": "Menambahkan sokongan {{applicationName}} untuk widget sedang dimain Amuse oleh 6K Labs",
"name": "Terhibur", "name": "Terhibur",
"response": { "response": {
"query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu." "query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu."
@ -369,11 +369,11 @@
"name": "Kaburkan Bar navigasi" "name": "Kaburkan Bar navigasi"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Pintas verifikasi umur Youtube", "description": "Pintas verifikasi umur Music Player",
"name": "Pintas Sekatan Umur" "name": "Pintas Sekatan Umur"
}, },
"captions-selector": { "captions-selector": {
"description": "Pemilih kapsyen untuk trek audio Youtube Music", "description": "Pemilih kapsyen untuk trek audio {{applicationName}}",
"menu": { "menu": {
"autoload": "Pilih kapsyen terakhir diguna secara automatik", "autoload": "Pilih kapsyen terakhir diguna secara automatik",
"disable-captions": "Tiada kapsyen secara lalai" "disable-captions": "Tiada kapsyen secara lalai"
@ -456,14 +456,14 @@
"disconnected": "Tidak disambungkan", "disconnected": "Tidak disambungkan",
"hide-duration-left": "Sembunyikan tempoh yang tinggal", "hide-duration-left": "Sembunyikan tempoh yang tinggal",
"hide-github-button": "Sembunyikan Butang pautan GitHub", "hide-github-button": "Sembunyikan Butang pautan GitHub",
"play-on-youtube-music": "Main di YouTube Music", "play-on-application": "Main di {{applicationName}}",
"set-inactivity-timeout": "Tetapkan tamat masa tidak aktif", "set-inactivity-timeout": "Tetapkan tamat masa tidak aktif",
"set-status-display-type": { "set-status-display-type": {
"label": "Teks status", "label": "Teks status",
"submenu": { "submenu": {
"artist": "Sedang mendengar {artist}", "artist": "Sedang mendengar {artist}",
"title": "Sedang mendengar {tajuk lagu}", "application": "Mendengar {{applicationName}}",
"youtube-music": "Mendengar YouTube Music" "title": "Sedang mendengar {tajuk lagu}"
} }
} }
}, },
@ -499,7 +499,7 @@
"converting": "Menukarkan…", "converting": "Menukarkan…",
"done": "Selesai: {{filePath}}", "done": "Selesai: {{filePath}}",
"download-info": "Memuat turun {{artist}} - {{title}} [{{videoId}}", "download-info": "Memuat turun {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Muat turun: {{peratus}}%", "download-progress": "Muat turun: {{percent}}%",
"downloading": "Memuat turun…", "downloading": "Memuat turun…",
"downloading-counter": "Memuat turun {{current}}/{{total}}…", "downloading-counter": "Memuat turun {{current}}/{{total}}…",
"downloading-playlist": "Memuat turun senarai main \"{{playlistTitle}}\" - {{playlistSize}} lagu ({{playlistId}})", "downloading-playlist": "Memuat turun senarai main \"{{playlistTitle}}\" - {{playlistSize}} lagu ({{playlistId}})",
@ -510,7 +510,7 @@
"playlist-has-only-one-song": "Senarai main hanya mempunyai satu item, memuat turunnya terus", "playlist-has-only-one-song": "Senarai main hanya mempunyai satu item, memuat turunnya terus",
"playlist-id-not-found": "ID senarai main tidak dijumpai", "playlist-id-not-found": "ID senarai main tidak dijumpai",
"playlist-is-empty": "Senarai main kosong", "playlist-is-empty": "Senarai main kosong",
"playlist-is-mix-or-private": "Ralat dalam mendapatkan senarai info main: pastikan ia tidak peribadi atau di dalam senarai main \"Campuran untuk anda\"\n\n{{ralat}}", "playlist-is-mix-or-private": "Ralat dalam mendapatkan senarai info main: pastikan ia tidak peribadi atau di dalam senarai main \"Campuran untuk anda\"\n\n{{error}}",
"preparing-file": "Menyediakan fail…", "preparing-file": "Menyediakan fail…",
"saving": "Menyimpan…", "saving": "Menyimpan…",
"trying-to-get-playlist-id": "Mencuba untuk mendapatkan ID senarai main: {{playlistId}}", "trying-to-get-playlist-id": "Mencuba untuk mendapatkan ID senarai main: {{playlistId}}",
@ -548,7 +548,29 @@
"button": "Memuat turun" "button": "Memuat turun"
} }
}, },
"equalizer": {
"description": "Menambahkan penyamaan kepada pemain",
"menu": {
"presets": {
"label": "Pratetap",
"list": {
"bass-booster": "Penggalak bass"
}
}
}
},
"exponential-volume": {
"description": "Menjadikan gelangsar kelantangan eksponen supaya lebih mudah memilih kelantangan yang lebih rendah."
},
"in-app-menu": {
"description": "Memberi bar menu rupa yang mewah, gelap atau warna album",
"menu": {
"hide-dom-window-controls": "Sembunyikan kawalan tetingkap DOM"
},
"name": "Menu Dalam Apl"
},
"lumiastream": { "lumiastream": {
"description": "Menambah sokongan Lumia Stream",
"name": "Lumia Stream [Beta]" "name": "Lumia Stream [Beta]"
}, },
"lyrics-genius": { "lyrics-genius": {
@ -563,15 +585,68 @@
}, },
"music-together": { "music-together": {
"description": "Kongsi senarai main dengan orang lain. Apabila hos memainkan lagu, semua orang akan mendengar lagu yang sama", "description": "Kongsi senarai main dengan orang lain. Apabila hos memainkan lagu, semua orang akan mendengar lagu yang sama",
"dialog": {
"enter-host": "Masukkan ID Hos"
},
"internal": { "internal": {
"save": "Simpan", "save": "Simpan",
"unknown-user": "Pengguna tidak diketahui" "unknown-user": "Pengguna tidak diketahui"
}, },
"menu": { "menu": {
"close": "Tutup Music Together" "click-to-copy-id": "Salin ID Hos",
"close": "Tutup Music Together",
"connected-users": "Pengguna yang telah berhubung",
"disconnect": "Putuskan Sambungan Music Together",
"empty-user": "Tiada pengguna yang disambungkan",
"host": "Hos Music Together",
"join": "Sertai Music Together",
"permission": {
"all": "Benarkan tetamu mengawal senarai main dan pemain",
"host-only": "Hanya hos boleh mengawal senarai main dan pemain",
"playlist": "Benarkan tetamu mengawal senarai main"
},
"set-permission": "Tukar Kebenaran Kawalan",
"status": {
"disconnected": "Terputus",
"guest": "Disambungkan sebagai Tetamu",
"host": "Disambungkan sebagai Hos"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Gagal menambah lagu",
"closed": "Music Together ditutup",
"disconnected": "Music Together terputus",
"host-failed": "Gagal untuk menjadi hos Music Together",
"id-copied": "ID hos disalin ke papan keratan",
"id-copy-failed": "Gagal menyalin ID Hos ke papan keratan"
}
},
"navigation": {
"name": "Navigasi"
},
"notifications": {
"name": "Notifikasi"
},
"scrobbler": {
"dialog": {
"lastfm": {
"auth-failed": {
"title": "Atuntikasi Gagal"
}
}
},
"prompt": {
"lastfm": {
"api-key": "kunci API Last.fm",
"api-secret": "rahasia API Last.fm"
}
} }
}, },
"synced-lyrics": { "synced-lyrics": {
"errors": {
"not-found": "⚠️ Tak ada liriks untuk lagu ini."
},
"menu": { "menu": {
"show-lyrics-even-if-inexact": { "show-lyrics-even-if-inexact": {
"label": "Tunjukkan lirik walaupun tidak tepat", "label": "Tunjukkan lirik walaupun tidak tepat",

View File

@ -257,11 +257,11 @@
"name": "Tilslør navigasjonsfelt" "name": "Tilslør navigasjonsfelt"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Omgå YouTube sin aldersgrenser", "description": "Omgå Music Player sin aldersgrenser",
"name": "Omgå aldersgrense" "name": "Omgå aldersgrense"
}, },
"captions-selector": { "captions-selector": {
"description": "Undertekstverktøy for lydspor i YouTube Music", "description": "Undertekstverktøy for lydspor i {{applicationName}}",
"menu": { "menu": {
"autoload": "Auto-velg sist brukte undertekst", "autoload": "Auto-velg sist brukte undertekst",
"disable-captions": "Ingen undertekst som forvalg" "disable-captions": "Ingen undertekst som forvalg"
@ -326,7 +326,7 @@
"disconnected": "Frakoblet", "disconnected": "Frakoblet",
"hide-duration-left": "Skjul gjenværende tid", "hide-duration-left": "Skjul gjenværende tid",
"hide-github-button": "Skjul GitHub-lenkeknapp", "hide-github-button": "Skjul GitHub-lenkeknapp",
"play-on-youtube-music": "Spill på YouTube Music", "play-on-application": "Spill på {{applicationName}}",
"set-inactivity-timeout": "Sett tid før tidsavbrudd" "set-inactivity-timeout": "Sett tid før tidsavbrudd"
}, },
"name": "Rik tilstedeværelse for Discord", "name": "Rik tilstedeværelse for Discord",

View File

@ -150,6 +150,13 @@
"visual-tweaks": { "visual-tweaks": {
"label": "भिजुअल ट्वीक्स", "label": "भिजुअल ट्वीक्स",
"submenu": { "submenu": {
"custom-window-title": {
"label": "अनुकूलन विन्डो शीर्षक",
"prompt": {
"label": "अनुकूलन विन्डो शीर्षक प्रविष्ट गर्नुहोस्: (असक्षम पार्न खाली छोड्नुहोस्)",
"placeholder": "उदाहरण: पियर डेस्कटप"
}
},
"like-buttons": { "like-buttons": {
"default": "पूर्वनिर्धारित", "default": "पूर्वनिर्धारित",
"force-show": "देखाउनुहोस", "force-show": "देखाउनुहोस",
@ -179,7 +186,7 @@
"plugins": { "plugins": {
"enabled": "सक्षम गरियो", "enabled": "सक्षम गरियो",
"label": "प्लगइनहरू", "label": "प्लगइनहरू",
"new": "NEW" "new": "नयाँ"
}, },
"view": { "view": {
"label": "हेर्नुहोस्", "label": "हेर्नुहोस्",
@ -201,8 +208,8 @@
"restart": "एप पुनः सुरु गर्नुहोस्", "restart": "एप पुनः सुरु गर्नुहोस्",
"show": "विन्डो देखाउनुहोस्", "show": "विन्डो देखाउनुहोस्",
"tooltip": { "tooltip": {
"default": "युट्युब मिउजिक", "default": "{{applicationName}}",
"with-song-info": "युट्युब मिउजिक:{{artist}}-{{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -436,7 +443,7 @@
"disconnected": "डिसकन्एक्टेड", "disconnected": "डिसकन्एक्टेड",
"hide-duration-left": "बाकी समय लुकाऊ", "hide-duration-left": "बाकी समय लुकाऊ",
"hide-github-button": "GitHub लिंक लुकाऊ", "hide-github-button": "GitHub लिंक लुकाऊ",
"play-on-youtube-music": "YouTube music मा बजाउ", "play-on-application": "{{applicationName}} मा बजाउ",
"set-inactivity-timeout": "इनएक्टिभिटी टाइमआउट राख" "set-inactivity-timeout": "इनएक्टिभिटी टाइमआउट राख"
}, },
"name": "डिसकार्ड रिच प्रीसेंस", "name": "डिसकार्ड रिच प्रीसेंस",

View File

@ -5,10 +5,10 @@
"execute-failed": "Mislukt om plugin {{pluginName}}::{{contextName}} uit te voeren", "execute-failed": "Mislukt om plugin {{pluginName}}::{{contextName}} uit te voeren",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} uitgevoerd in {{ms}}ms", "executed-at-ms": "Plugin {{pluginName}}::{{contextName}} uitgevoerd in {{ms}}ms",
"initialize-failed": "Initialisatie van plugin \"{{pluginName}}\" mislukt", "initialize-failed": "Initialisatie van plugin \"{{pluginName}}\" mislukt",
"load-all": "Alle plugins laden", "load-all": "Alle plugins aan het laden",
"load-failed": "Mislukt om plugin \"{{pluginName}}\" te laden", "load-failed": "Mislukt om plugin \"{{pluginName}}\" te laden",
"loaded": "Plugin \"{{pluginName}}\" geladen", "loaded": "Plugin \"{{pluginName}}\" geladen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te lossen", "unload-failed": "Mislukt om plugin \"{{pluginName}}\" te ontladen",
"unloaded": "Plugin \"{{pluginName}}\" gelost" "unloaded": "Plugin \"{{pluginName}}\" gelost"
} }
} }
@ -154,7 +154,7 @@
"label": "Aangepaste venstertitel", "label": "Aangepaste venstertitel",
"prompt": { "prompt": {
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)", "label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
"placeholder": "Voorbeeld: Youtube Music" "placeholder": "Voorbeeld: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Herstarten App", "restart": "Herstarten App",
"show": "Weergeven Venster", "show": "Weergeven Venster",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Omgevingsmodus" "name": "Omgevingsmodus"
}, },
"amuse": { "amuse": {
"description": "Voegt YouTube Music ondersteuning toe voor de Amuse now playing widget van 6K Labs", "description": "Voegt {{applicationName}} ondersteuning toe voor de Amuse now playing widget van 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API server loopt. Gebruik /query voor nummer informatie." "query": "Amuse API server loopt. Gebruik /query voor nummer informatie."
@ -369,11 +369,11 @@
"name": "Vervagen Navigatiebalk" "name": "Vervagen Navigatiebalk"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Omzeil de leeftijdsverificatie van YouTube", "description": "Omzeil de leeftijdsverificatie van Music Player",
"name": "Leeftijdsbeperkingen Omzeilen" "name": "Leeftijdsbeperkingen Omzeilen"
}, },
"captions-selector": { "captions-selector": {
"description": "Ondertitelkeuze voor YouTube Music-audiotracks", "description": "Ondertitelkeuze voor {{applicationName}}-audiotracks",
"menu": { "menu": {
"autoload": "Automatisch de laatst gebruikte ondertitel selecteren", "autoload": "Automatisch de laatst gebruikte ondertitel selecteren",
"disable-captions": "Standaard geen ondertitels" "disable-captions": "Standaard geen ondertitels"
@ -456,14 +456,14 @@
"disconnected": "Verbinding verbroken", "disconnected": "Verbinding verbroken",
"hide-duration-left": "Verberg resterende tijd", "hide-duration-left": "Verberg resterende tijd",
"hide-github-button": "GitHub-knop verbergen", "hide-github-button": "GitHub-knop verbergen",
"play-on-youtube-music": "Afspelen op YouTube Music", "play-on-application": "Afspelen op {{applicationName}}",
"set-inactivity-timeout": "Inactiviteitstime-out instellen", "set-inactivity-timeout": "Inactiviteitstime-out instellen",
"set-status-display-type": { "set-status-display-type": {
"label": "Status tekst", "label": "Status tekst",
"submenu": { "submenu": {
"application": "Naar {{applicationName}} aan het luisteren",
"artist": "Naar {artist} aan het luisteren", "artist": "Naar {artist} aan het luisteren",
"title": "Naar {song title} aan het luisteren", "title": "Naar {song title} aan het luisteren"
"youtube-music": "Naar Youtube Music aan het luisteren"
} }
} }
}, },

View File

@ -153,8 +153,8 @@
"custom-window-title": { "custom-window-title": {
"label": "Niestandardowy tytuł okna", "label": "Niestandardowy tytuł okna",
"prompt": { "prompt": {
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć):", "label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć)",
"placeholder": "Przykład: YouTube Music" "placeholder": "Przykład: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uruchom ponownie aplikację", "restart": "Uruchom ponownie aplikację",
"show": "Pokaż okno", "show": "Pokaż okno",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "{{title}} (autorstwa {{artist}}) - YT Music" "with-song-info": "{{artist}} - (autorstwa {{artist}}) - {{applicationName}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Zezwól stylowanie paska wyszukiwań"
}, },
"name": "Motyw kolorów albumu" "name": "Motyw kolorów albumu"
}, },
@ -287,14 +288,14 @@
"name": "Tryb otoczenia" "name": "Tryb otoczenia"
}, },
"amuse": { "amuse": {
"description": "Wspiera integrację YouTube Music z widgetami Amuse (od 6K Labs)", "description": "Wspiera integrację {{applicationName}} z widgetami Amuse (od 6K Labs)",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze." "query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze."
} }
}, },
"api-server": { "api-server": {
"description": "Pozwala na kontrolowanie YouTube Music poprzez podłączenie specjalnego serwera API", "description": "Pozwala na kontrolowanie {{applicationName}} poprzez podłączenie specjalnego serwera API",
"dialog": { "dialog": {
"request": { "request": {
"buttons": { "buttons": {
@ -320,11 +321,27 @@
"hostname": { "hostname": {
"label": "Nazwa hosta (IP)" "label": "Nazwa hosta (IP)"
}, },
"https": {
"label": "HTTPS i Certyfikaty",
"submenu": {
"cert": {
"dialogTitle": "Wybierz plik certyfikatu HTTPS",
"label": "Certyfikat (.crt/.pem)"
},
"enable-https": {
"label": "Zezwól HTTPS"
},
"key": {
"dialogTitle": "Wybierz plik prywatnego klucza HTTPS",
"label": "Klucz prywatny (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
}, },
"name": "YouTube Music API", "name": "{{applicationName}} API",
"prompt": { "prompt": {
"hostname": { "hostname": {
"label": "Wpisz nazwę hosta (IP, np. 0.0.0.0), który będzie użyty do serwera API:", "label": "Wpisz nazwę hosta (IP, np. 0.0.0.0), który będzie użyty do serwera API:",
@ -373,7 +390,7 @@
"name": "Omiń ograniczenia wiekowe" "name": "Omiń ograniczenia wiekowe"
}, },
"captions-selector": { "captions-selector": {
"description": "Selektor napisów dla ścieżek audio YouTube Music", "description": "Selektor napisów dla ścieżek audio {{applicationName}}",
"menu": { "menu": {
"autoload": "Automatycznie wybierz ostatnio używanych napisów", "autoload": "Automatycznie wybierz ostatnio używanych napisów",
"disable-captions": "Domyślnie, brak napisów" "disable-captions": "Domyślnie, brak napisów"
@ -429,7 +446,7 @@
"name": "Niestandardowe urządzenie wyjścia", "name": "Niestandardowe urządzenie wyjścia",
"prompt": { "prompt": {
"device-selector": { "device-selector": {
"label": "Wybierz wyjście audio które ma być użyte", "label": "Wybierz urządzenie wyjściowe",
"title": "Wybierz wyjście audio" "title": "Wybierz wyjście audio"
} }
} }
@ -447,7 +464,7 @@
"connected": "Połączono z Discordem", "connected": "Połączono z Discordem",
"disconnected": "Odłączono od Discorda" "disconnected": "Odłączono od Discorda"
}, },
"description": "Pokaż znajomym z Discorda czego słuchasz dzięki Rich Presence", "description": "Pokaż znajomym z Discorda czego słuchasz, dzięki technologii Rich Presence",
"menu": { "menu": {
"auto-reconnect": "Automatyczne wznawianie połączenia", "auto-reconnect": "Automatyczne wznawianie połączenia",
"clear-activity": "Wyczyść aktywność", "clear-activity": "Wyczyść aktywność",
@ -456,18 +473,18 @@
"disconnected": "Odłączono", "disconnected": "Odłączono",
"hide-duration-left": "Ukryj pozostały czas trwania", "hide-duration-left": "Ukryj pozostały czas trwania",
"hide-github-button": "Ukryj przycisk do GitHub", "hide-github-button": "Ukryj przycisk do GitHub",
"play-on-youtube-music": "Odtwórz w YouTube Music", "play-on-application": "Odtwórz w {{applicationName}}",
"set-inactivity-timeout": "Ustaw limit czasu bezczynności", "set-inactivity-timeout": "Ustaw limit czasu bezczynności",
"set-status-display-type": { "set-status-display-type": {
"label": "Opis statusu", "label": "Opis statusu",
"submenu": { "submenu": {
"application": "Słucha {{applicationName}}",
"artist": "Słucha {artist}", "artist": "Słucha {artist}",
"title": "Słucha {song title}", "title": "Słucha {song title}"
"youtube-music": "Słucha YouTube Music"
} }
} }
}, },
"name": "Discord Rich Presence", "name": "Aktywność w Discord",
"prompt": { "prompt": {
"set-inactivity-timeout": { "set-inactivity-timeout": {
"label": "Podaj limit czasu bezczynności w sekundach:", "label": "Podaj limit czasu bezczynności w sekundach:",

View File

@ -33,25 +33,25 @@
"css-file-not-found": "Arquivo CSS \"{{cssFile}}\" não existe, ignorando" "css-file-not-found": "Arquivo CSS \"{{cssFile}}\" não existe, ignorando"
}, },
"unresponsive": { "unresponsive": {
"details": "Erro de falta de resposta!\n{{error}}" "details": "Erro por falta de resposta!\n{{error}}"
}, },
"when-ready": { "when-ready": {
"clearing-cache-after-20s": "Limpando cache do aplicativo" "clearing-cache-after-20s": "Limpando cache do aplicativo"
}, },
"window": { "window": {
"tried-to-render-offscreen": "A janela tentou renderizar fora da tela, tamanho da janela={{windowSize}}, tamanho da tela={{displaySize}}, posição={{position}}" "tried-to-render-offscreen": "A janela tentou renderizar fora dos parâmetros da tela, tamanho da janela={{windowSize}}, tamanho da tela={{displaySize}}, posição={{position}}"
} }
}, },
"dialog": { "dialog": {
"hide-menu-enabled": { "hide-menu-enabled": {
"detail": "O menu está oculto, use 'Alt' para mostrá-lo (ou 'Esc' ao usar o menu dentro do aplicativo)", "detail": "O menu está oculto, use 'Alt' para mostrá-lo (ou 'Esc' ao usar o menu dentro do aplicativo)",
"message": "Ocultar menu está ativado", "message": "Ocultar Menu está ativado",
"title": "Ocultar menu ativado" "title": "Ocultar Menu ativado"
}, },
"need-to-restart": { "need-to-restart": {
"buttons": { "buttons": {
"later": "Depois", "later": "Depois",
"restart-now": "Reiniciar agora" "restart-now": "Reiniciar Agora"
}, },
"detail": "O plugin \"{{pluginName}}\" requer uma reinicialização para entrar em vigor", "detail": "O plugin \"{{pluginName}}\" requer uma reinicialização para entrar em vigor",
"message": "\"{{pluginName}}\" precisa reiniciar", "message": "\"{{pluginName}}\" precisa reiniciar",
@ -84,7 +84,7 @@
"label": "Navegação", "label": "Navegação",
"submenu": { "submenu": {
"copy-current-url": "Copiar URL atual", "copy-current-url": "Copiar URL atual",
"go-back": "Voltar", "go-back": "Retornar",
"go-forward": "Avançar", "go-forward": "Avançar",
"quit": "Sair", "quit": "Sair",
"restart": "Reiniciar aplicativo" "restart": "Reiniciar aplicativo"
@ -154,7 +154,7 @@
"label": "Título da janela customizado", "label": "Título da janela customizado",
"prompt": { "prompt": {
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)", "label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
"placeholder": "Exemplo: Youtube Music" "placeholder": "Exemplo: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar aplicativo", "restart": "Reiniciar aplicativo",
"show": "Mostrar janela", "show": "Mostrar janela",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Ativar personalização da barra de progresso"
}, },
"name": "Tema da cor do álbum" "name": "Tema da cor do álbum"
}, },
@ -287,7 +288,7 @@
"name": "Modo ambiente" "name": "Modo ambiente"
}, },
"amuse": { "amuse": {
"description": "Adiciona suporte ao YouTube Music ao widget 'Reproduzindo agora' do Amuse da 6K Labs", "description": "Adiciona suporte ao {{applicationName}} ao widget 'Reproduzindo agora' do Amuse da 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Servidor API do Amuse em execução. GET /query para obter informações da música." "query": "Servidor API do Amuse em execução. GET /query para obter informações da música."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Nome do anfitrião" "label": "Nome do anfitrião"
}, },
"https": {
"label": "HTTPS & Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecione o certificado do HTTPS",
"label": "Arquivo de certificado (.crt/.pem)"
},
"enable-https": {
"label": "Habilitar HTTPS"
},
"key": {
"dialogTitle": "Selecione a chave privada do HTTPS",
"label": "Arquivo de chave privada (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Porta" "label": "Porta"
} }
@ -369,11 +386,11 @@
"name": "Desfocar barra de navegação" "name": "Desfocar barra de navegação"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Pular a verificação de idade do YouTube", "description": "Pular a verificação de idade do Music Player",
"name": "Ignorar restrições de idade" "name": "Ignorar restrições de idade"
}, },
"captions-selector": { "captions-selector": {
"description": "Seletor de legendas para faixas de áudio do YouTube Music", "description": "Seletor de legendas para faixas de áudio do {{applicationName}}",
"menu": { "menu": {
"autoload": "Selecionar automaticamente a última legenda usada", "autoload": "Selecionar automaticamente a última legenda usada",
"disable-captions": "Sem legendas por padrão" "disable-captions": "Sem legendas por padrão"
@ -456,14 +473,14 @@
"disconnected": "Desconectado", "disconnected": "Desconectado",
"hide-duration-left": "Ocultar duração restante", "hide-duration-left": "Ocultar duração restante",
"hide-github-button": "Ocultar botão do GitHub", "hide-github-button": "Ocultar botão do GitHub",
"play-on-youtube-music": "Reproduzir no YouTube Music", "play-on-application": "Reproduzir no {{applicationName}}",
"set-inactivity-timeout": "Definir tempo limite de inatividade", "set-inactivity-timeout": "Definir tempo limite de inatividade",
"set-status-display-type": { "set-status-display-type": {
"label": "Texto de status", "label": "Texto de status",
"submenu": { "submenu": {
"application": "Ouvindo {{applicationName}}",
"artist": "Ouvindo {artist}", "artist": "Ouvindo {artist}",
"title": "Ouvindo {song title}", "title": "Ouvindo {song title}"
"youtube-music": "Ouvindo YouTube Music"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Título de janela personalizado", "label": "Título de janela personalizado",
"prompt": { "prompt": {
"label": "Introduza um título: (deixe em branco para desativar)", "label": "Introduza um título: (deixe em branco para desativar)",
"placeholder": "Exemplo: YouTube Music" "placeholder": "Exemplo: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar aplicação", "restart": "Reiniciar aplicação",
"show": "Mostrar janela", "show": "Mostrar janela",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Ativar temas na barra de reprodução"
}, },
"name": "Tema de cores do álbum" "name": "Tema de cores do álbum"
}, },
@ -287,7 +288,7 @@
"name": "Modo ambiente" "name": "Modo ambiente"
}, },
"amuse": { "amuse": {
"description": "Adiciona suporte ao YouTube Music para o widget Amuse now playing de 6K Labs", "description": "Adiciona suporte ao {{applicationName}} para o widget Amuse now playing de 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa." "query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Nome do anfitrião" "label": "Nome do anfitrião"
}, },
"https": {
"label": "HTTPS e Certificados",
"submenu": {
"cert": {
"dialogTitle": "Selecionar arquivo do certificado HTTPS",
"label": "Arquivo do certificado (.crt/.pem)"
},
"enable-https": {
"label": "Ativar HTTPS"
},
"key": {
"dialogTitle": "Selecionar arquivo da chave privada HTTPS",
"label": "Arquivo da chave privada (.key/.pen)"
}
}
},
"port": { "port": {
"label": "Porta" "label": "Porta"
} }
@ -369,11 +386,11 @@
"name": "Barra de navegação desfocada" "name": "Barra de navegação desfocada"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Ignorar verificação de idade do YouTube", "description": "Ignorar verificação de idade do Music Player",
"name": "Ignorar restrições de idade" "name": "Ignorar restrições de idade"
}, },
"captions-selector": { "captions-selector": {
"description": "Seletor de legendas para as faixas de áudio do YouTube Music", "description": "Seletor de legendas para as faixas de áudio do {{applicationName}}",
"menu": { "menu": {
"autoload": "Selecionar automaticamente a última legenda utilizada", "autoload": "Selecionar automaticamente a última legenda utilizada",
"disable-captions": "Sem legendas por omissão" "disable-captions": "Sem legendas por omissão"
@ -456,14 +473,14 @@
"disconnected": "Desconectado", "disconnected": "Desconectado",
"hide-duration-left": "Ocultar tempo restante", "hide-duration-left": "Ocultar tempo restante",
"hide-github-button": "Ocultar botão GitHub", "hide-github-button": "Ocultar botão GitHub",
"play-on-youtube-music": "Reproduzir em YouTube Music", "play-on-application": "Reproduzir em {{applicationName}}",
"set-inactivity-timeout": "Definir tempo de inatividade", "set-inactivity-timeout": "Definir tempo de inatividade",
"set-status-display-type": { "set-status-display-type": {
"label": "Texto de estado", "label": "Texto de estado",
"submenu": { "submenu": {
"application": "A reproduzir {{applicationName}}",
"artist": "A ouvir {artist}", "artist": "A ouvir {artist}",
"title": "A ouvir {song title}", "title": "A ouvir {song title}"
"youtube-music": "A reproduzir YouTube Music"
} }
} }
}, },

View File

@ -0,0 +1,15 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Pluginta mana ruwayta atirqanchu {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin nisqa {{pluginName}}::{{contextName}} ejecutado en {{ms}}ms",
"initialize-failed": "Plugin qallariyta mana atirqanchu \"{{pluginName}}\"",
"load-all": "Llapanta cargaspa",
"load-failed": "Pluginta mana kargayta atirqanchu \"{{pluginName}}\"",
"loaded": "Plugin nisqa \"{{pluginName}}\" cargado",
"unload-failed": "Pluginta mana uraykachiyta atirqanchu \"{{pluginName}}\""
}
}
}
}

View File

@ -154,7 +154,7 @@
"label": "Titlul ferestrei personalizate", "label": "Titlul ferestrei personalizate",
"prompt": { "prompt": {
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)", "label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
"placeholder": "Exemplu: Youtube Music" "placeholder": "Exemplu: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reporneste aplicatia", "restart": "Reporneste aplicatia",
"show": "Arata fereastra", "show": "Arata fereastra",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Mod ambiental" "name": "Mod ambiental"
}, },
"amuse": { "amuse": {
"description": "Adauga suport Youtube Music pentru Amuse se redă acum widget de 6K Labs", "description": "Adauga suport {{applicationName}} pentru Amuse se redă acum widget de 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Server-ul API-ului Amuse rulează. GET /query pentru a obține informații despre melodie." "query": "Server-ul API-ului Amuse rulează. GET /query pentru a obține informații despre melodie."
@ -369,11 +369,11 @@
"name": "Estompează Bara de Navigație" "name": "Estompează Bara de Navigație"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Treci peste verificarea de vârstă a YouTube-ului", "description": "Treci peste verificarea de vârstă a Music Player",
"name": "Ignoră restricțiile de vârstă" "name": "Ignoră restricțiile de vârstă"
}, },
"captions-selector": { "captions-selector": {
"description": "Selector de subtitrări pentru piesele audio de pe YouTube Music", "description": "Selector de subtitrări pentru piesele audio de pe {{applicationName}}",
"menu": { "menu": {
"autoload": "Selectează automat ultima subtitrare folosită", "autoload": "Selectează automat ultima subtitrare folosită",
"disable-captions": "Fără subtitrări în mod implicit" "disable-captions": "Fără subtitrări în mod implicit"
@ -456,14 +456,14 @@
"disconnected": "Deconectat", "disconnected": "Deconectat",
"hide-duration-left": "Ascunde timpul rămas", "hide-duration-left": "Ascunde timpul rămas",
"hide-github-button": "Ascunde butonul cu link-ul GitHub", "hide-github-button": "Ascunde butonul cu link-ul GitHub",
"play-on-youtube-music": "Redă pe YouTube Music", "play-on-application": "Redă pe {{applicationName}}",
"set-inactivity-timeout": "Setează intervalul de inactivitate", "set-inactivity-timeout": "Setează intervalul de inactivitate",
"set-status-display-type": { "set-status-display-type": {
"label": "Text stare", "label": "Text stare",
"submenu": { "submenu": {
"artist": "Ascultând {artist}", "artist": "Ascultând {artist}",
"title": "Ascultând {song title}", "title": "Ascultând {song title}",
"youtube-music": "Ascultând YouTube Music" "application": "Ascultând {{applicationName}}"
} }
} }
}, },

View File

@ -2,13 +2,13 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "Ошибка загрузки плагина {{pluginName}}::{{contextName}}", "execute-failed": "Ошибка при выполнении плагина {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс", "executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс",
"initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"", "initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"",
"load-all": "Загружаем все плагины", "load-all": "Загружаем все плагины",
"load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"", "load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"",
"loaded": "Плагин \"{{pluginName}}\" загружен", "loaded": "Плагин \"{{pluginName}}\" загружен",
"unload-failed": "Ошибка выгрузки плагина \"{{pluginName}}\"", "unload-failed": "Ошибка при выгрузке плагина \"{{pluginName}}\"",
"unloaded": "Плагин \"{{pluginName}}\" выгружен" "unloaded": "Плагин \"{{pluginName}}\" выгружен"
} }
} }
@ -44,7 +44,7 @@
}, },
"dialog": { "dialog": {
"hide-menu-enabled": { "hide-menu-enabled": {
"detail": "Меню скрыто, 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)", "detail": "Меню скрыто, используйте 'Alt' чтобы показать его ('Escape' если используете внутреннее меню приложения)",
"message": "Скрытие меню включено", "message": "Скрытие меню включено",
"title": "Включено скрытие меню" "title": "Включено скрытие меню"
}, },
@ -53,8 +53,8 @@
"later": "Позже", "later": "Позже",
"restart-now": "Перезапустить сейчас" "restart-now": "Перезапустить сейчас"
}, },
"detail": "Перезапустите приложение для включения плагина {{pluginName}}", "detail": "Для вступления изменений в силу плагину \"{{pluginName}}\" требуется перезапуск",
"message": "Перезапуск для применения плагина {{pluginName}}", "message": "Требуется перезапуск плагина \"{{pluginName}}\"",
"title": "Нужен перезапуск" "title": "Нужен перезапуск"
}, },
"unresponsive": { "unresponsive": {
@ -100,7 +100,7 @@
"disable-hardware-acceleration": "Отключить аппаратное ускорение", "disable-hardware-acceleration": "Отключить аппаратное ускорение",
"edit-config-json": "Редактировать config.json", "edit-config-json": "Редактировать config.json",
"override-user-agent": "Переопределить User-Agent", "override-user-agent": "Переопределить User-Agent",
"restart-on-config-changes": "Перезапускать при изменениях конфига", "restart-on-config-changes": "Перезапускать при изменениях конфигурации",
"set-proxy": { "set-proxy": {
"label": "Задать прокси", "label": "Задать прокси",
"prompt": { "prompt": {
@ -154,7 +154,7 @@
"label": "Собственное название окна", "label": "Собственное название окна",
"prompt": { "prompt": {
"label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)", "label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)",
"placeholder": "Например: YouTube Music" "placeholder": "Например: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -163,7 +163,7 @@
"hide": "Скрывать", "hide": "Скрывать",
"label": "Кнопка лайка" "label": "Кнопка лайка"
}, },
"remove-upgrade-button": "Убрать кнопку Youtube Premium", "remove-upgrade-button": "Убрать кнопку Premium",
"theme": { "theme": {
"dialog": { "dialog": {
"button": { "button": {
@ -208,8 +208,8 @@
"restart": "Перезапустить приложение", "restart": "Перезапустить приложение",
"show": "Показать окно", "show": "Показать окно",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Включить тематическое оформление полосы прокрутки"
}, },
"name": "Цветовая тема альбома" "name": "Цветовая тема альбома"
}, },
@ -287,7 +288,7 @@
"name": "Режим Ambient" "name": "Режим Ambient"
}, },
"amuse": { "amuse": {
"description": "Добавляет поддержку виджета Amuse „сейчас играет“ от 6K Labs", "description": "Добавляет {{applicationName}} поддержку виджета Amuse „сейчас играет“ от 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Сервер Amuse API запущен. GET /query чтобы получить информацию о треке." "query": "Сервер Amuse API запущен. GET /query чтобы получить информацию о треке."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Имя хоста" "label": "Имя хоста"
}, },
"https": {
"label": "HTTPS и сертификаты",
"submenu": {
"cert": {
"dialogTitle": "Выберите файл сертификата HTTPS",
"label": "Файл сертификата (.crt/.pem)"
},
"enable-https": {
"label": "Включить HTTPS"
},
"key": {
"dialogTitle": "Выберите файл приватного ключа HTTPS",
"label": "Файл приватного ключа (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Порт" "label": "Порт"
} }
@ -369,11 +386,11 @@
"name": "Размытие панели навигации" "name": "Размытие панели навигации"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Обход проверки возраста на YouTube", "description": "Обход проверки возраста на Music Player",
"name": "Обход возрастных ограничений" "name": "Обход возрастных ограничений"
}, },
"captions-selector": { "captions-selector": {
"description": "Выбор субтитров для аудиотреков в YouTube Music", "description": "Выбор субтитров для аудиотреков в {{applicationName}}",
"menu": { "menu": {
"autoload": "Автоматически выбирать последние использованные субтитры", "autoload": "Автоматически выбирать последние использованные субтитры",
"disable-captions": "Без субтитров по умолчанию" "disable-captions": "Без субтитров по умолчанию"
@ -456,14 +473,14 @@
"disconnected": "Отключено", "disconnected": "Отключено",
"hide-duration-left": "Скрыть сколько осталось времени", "hide-duration-left": "Скрыть сколько осталось времени",
"hide-github-button": "Скрыть ссылку на GitHub", "hide-github-button": "Скрыть ссылку на GitHub",
"play-on-youtube-music": "Воспроизвести на YouTube Music", "play-on-application": "Воспроизвести на {{applicationName}}",
"set-inactivity-timeout": "Поставить таймер неактивности", "set-inactivity-timeout": "Поставить таймер неактивности",
"set-status-display-type": { "set-status-display-type": {
"label": "Текст статуса", "label": "Текст статуса",
"submenu": { "submenu": {
"application": "Слушает {{applicationName}}",
"artist": "Слушает {исполнитель}", "artist": "Слушает {исполнитель}",
"title": "Слушает {название трека}", "title": "Слушает {название трека}"
"youtube-music": "Слушает YouTube Music"
} }
} }
}, },

View File

@ -201,8 +201,8 @@
"restart": "නැවත ආරම්භ කරන්න", "restart": "නැවත ආරම්භ කරන්න",
"show": "තිරය පෙන්වන්න", "show": "තිරය පෙන්වන්න",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },

View File

@ -59,7 +59,7 @@
}, },
"unresponsive": { "unresponsive": {
"buttons": { "buttons": {
"quit": "Skončiť", "quit": "Ukončiť",
"relaunch": "Spustiť znova", "relaunch": "Spustiť znova",
"wait": "Počkajte" "wait": "Počkajte"
}, },
@ -70,7 +70,7 @@
"update-available": { "update-available": {
"buttons": { "buttons": {
"disable": "Vypnúť aktualizácie", "disable": "Vypnúť aktualizácie",
"download": "Sťiahnuť", "download": "Stiahnuť",
"ok": "OK" "ok": "OK"
}, },
"detail": "Nová verzia je k dispozícii a je možné ju stiahnuť na {{downloadLink}}", "detail": "Nová verzia je k dispozícii a je možné ju stiahnuť na {{downloadLink}}",
@ -141,9 +141,9 @@
"tray": { "tray": {
"label": "Panel oznámení", "label": "Panel oznámení",
"submenu": { "submenu": {
"disabled": "Vypnuý", "disabled": "Vypnutý",
"enabled-and-hide-app": "Zapnutý , a skryť okno aplikácie", "enabled-and-hide-app": "Povolené a skry aplikáciu",
"enabled-and-show-app": "Spustené a ukáž aplikáciu", "enabled-and-show-app": "Povolené a ukáž aplikáciu",
"play-pause-on-click": "Prehrať/Pozastaviť na stlačenie" "play-pause-on-click": "Prehrať/Pozastaviť na stlačenie"
} }
}, },
@ -154,7 +154,7 @@
"label": "Vlastný názov okna", "label": "Vlastný názov okna",
"prompt": { "prompt": {
"label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)", "label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)",
"placeholder": "Napríklad: YouTube Music" "placeholder": "Napríklad: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -185,11 +185,13 @@
}, },
"plugins": { "plugins": {
"enabled": "Zapnuté", "enabled": "Zapnuté",
"label": "Rozšírenia",
"new": "NOVÝ" "new": "NOVÝ"
}, },
"view": { "view": {
"label": "Náhľad",
"submenu": { "submenu": {
"force-reload": "Natvrdo obnoviť", "force-reload": "Nasilu obnoviť",
"reload": "Obnoviť", "reload": "Obnoviť",
"reset-zoom": "Ozajstná veľkosť", "reset-zoom": "Ozajstná veľkosť",
"toggle-fullscreen": "Prepnúť režim Celej Obrazovky", "toggle-fullscreen": "Prepnúť režim Celej Obrazovky",
@ -206,9 +208,665 @@
"restart": "Reštartovať aplikáciu", "restart": "Reštartovať aplikáciu",
"show": "Zobraziť okno", "show": "Zobraziť okno",
"tooltip": { "tooltip": {
"default": "YouTube Hudba", "default": "{{applicationName}}",
"with-song-info": "Youtube Hudba: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
},
"plugins": {
"ad-speedup": {
"description": "Ak sa spustí reklama, stlmí sa zvuk a nastaví sa rýchlosť prehrávania na 16x",
"name": "Zrýchľovač reklám"
},
"adblocker": {
"description": "Blokovať všetky reklamy a sledovania hneď od začiatku",
"menu": {
"blocker": "Blokovač"
},
"name": "Blokovač reklám"
},
"album-actions": {
"description": "Pridáva Undislike, Dislike, Like, a Unlike tlačítka k aplikovaniu tohto ku všetkým pesničkám v zozname pesničiek alebo albume",
"name": "Možnosti albumu"
},
"album-color-theme": {
"description": "Aplikuje dynamický motív a vizuálne efekty na základe palety farieb albumu",
"menu": {
"color-mix-ratio": {
"label": "Pomer miešania farieb",
"submenu": {
"percent": "{{ratio}}%"
}
},
"enable-seekbar": "Povoliť farebnú tému aj v seekbare"
},
"name": "Farebná téma albumu"
},
"ambient-mode": {
"description": "Aplikuje svetelné efekty pomocou vrhania jemných farieb z videa, do vášho pozadia obrazovky",
"menu": {
"blur-amount": {
"label": "Hodnota rozmazania",
"submenu": {
"pixels": "{{blurAmount}} pixelov"
}
},
"buffer": {
"label": "Vyrovnávacia pamäť",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Nepriehľadnosť",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Kvalita",
"submenu": {
"pixels": "{{quality}} pixelov"
}
},
"size": {
"label": "Veľkosť",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Plynulý prechod",
"submenu": {
"during": "Počas {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Používanie režimu celej obrazovky"
}
},
"name": "Ambientný mód"
},
"amuse": {
"description": "Pridáva {{applicationName}} podporu pre Amuse práve prehráva widget od 6K Labs",
"name": "Amuse",
"response": {
"query": "Amuse API server beží. GET /query to get song info."
}
},
"api-server": {
"description": "Pridáva API server na ovládanie prehrávača",
"dialog": {
"request": {
"buttons": {
"allow": "Povoliť",
"deny": "Zakázať"
},
"message": "Povoliť {{ID}} ({{origin}}) prístup cez API?",
"title": "Žiadosť o autorizáciu API"
}
},
"menu": {
"auth-strategy": {
"label": "Stratégia autorizácie",
"submenu": {
"auth-at-first": {
"label": "Overiť pri prvom dotaze"
},
"none": {
"label": "Žiadna autorizácia"
}
}
},
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "API Server [Beta]",
"prompt": {
"hostname": {
"label": "Zadajte názov hostname(napr. 0.0.0.0) pre server API:",
"title": "Hostname"
},
"port": {
"label": "Zadajte port pre server API:",
"title": "Port"
}
}
},
"audio-compressor": {
"description": "Aplikovať kompresiu k audiu (znižuje hlasitosť najhlasnejších častí signálu a zvyšuje hlasitosť najjemnejších častí)",
"name": "Audio kompresor"
},
"auth-proxy-adapter": {
"description": "Podpora používania autentifikačných proxy služieb",
"menu": {
"disable": "Vypnúť Proxy Adaptér",
"enable": "Zapnúť Proxy Adaptér",
"hostname": {
"label": "Hostname"
},
"port": {
"label": "Port"
}
},
"name": "Adaptér autentifikačného proxy servera",
"prompt": {
"hostname": {
"label": "Zadajte hostname pre lokálny proxy server (vyžaduje reštart):",
"title": "Proxy Hostname"
},
"port": {
"label": "Zadajte port pre lokálny proxy server (vyžaduje reštart):",
"title": "Proxy Port"
}
}
},
"blur-nav-bar": {
"description": "Navigačnú lištu nastaví ako priehľadnú a rozmazanú",
"name": "Rozmazať navigačnú lištu"
},
"bypass-age-restrictions": {
"description": "Obísť overenie veku v hudobnom prehrávači",
"name": "Obísť vekové obmedzenia"
},
"captions-selector": {
"description": "Selektor titulkov pre zvukové stopy {{applicationName}}",
"menu": {
"autoload": "Automatický výber naposledy použitých titulkov",
"disable-captions": "Žiadne titulky"
},
"name": "Selektor titulkov",
"prompt": {
"selector": {
"label": "Aktuálny jazyk titulkov: {{language}}",
"none": "Žiadne",
"title": "Výber jazyka titulkov"
}
},
"templates": {
"title": "Otvoriť selektor titulkov"
},
"toast": {
"caption-changed": "Titulky zmenené na {{language}}",
"caption-disabled": "Deaktivované titulky",
"no-captions": "Pre túto skladbu nie sú dostupné žiadne titulky"
}
},
"compact-sidebar": {
"description": "Vždy nastaviť bočný panel do kompaktného režimu",
"name": "Kompaktný bočný panel"
},
"crossfade": {
"description": "Prelínanie medzi skladbami",
"menu": {
"advanced": "Pokročilé"
},
"name": "Prelínanie [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Trvanie nábehu (ms)",
"fade-out-duration": "Trvanie doznievania (ms)",
"fade-scaling": {
"label": "Škálovanie prelínania",
"linear": "Lineárny",
"logarithmic": "Logaritmický"
},
"seconds-before-end": "Prechod N sekúnd pred koncom"
},
"title": "Možnosti prelínania"
}
}
},
"custom-output-device": {
"description": "Nastavte vlastné výstupné médium pre skladby",
"menu": {
"device-selector": "Výber Zariadenia"
},
"name": "Vlastné výstupné zariadenie",
"prompt": {
"device-selector": {
"label": "Vyberte výstupné médium, ktoré chcete použiť",
"title": "Výber výstupného zariadenia"
}
}
},
"disable-autoplay": {
"description": "Spustí skladbu v režime „pozastavené“",
"menu": {
"apply-once": "Platí len pri spustení"
},
"name": "Zakázať automatické prehrávanie"
},
"discord": {
"backend": {
"already-connected": "Pokus o pripojenie s aktívnym pripojením",
"connected": "Pripojené k Discordu",
"disconnected": "Odpojené od Discordu"
},
"description": "Ukážte svojim priateľom, čo počúvate, s funkciou Rich Presence",
"menu": {
"auto-reconnect": "Automatické opätovné pripojenie",
"clear-activity": "Zmazať aktivitu",
"clear-activity-after-timeout": "Zmazať aktivitu po uplynutí časového limitu",
"connected": "Pripojené",
"disconnected": "Odpojené",
"hide-duration-left": "Skryť zostávajúcu dobu trvania",
"hide-github-button": "Skryť tlačidlo s odkazom na GitHub",
"play-on-application": "Spustiť na {{applicationName}}",
"set-inactivity-timeout": "Nastaviť časový limit nečinnosti",
"set-status-display-type": {
"label": "Text stavu",
"submenu": {
"artist": "Aktuálne si prehráva {artist}",
"application": "Počúvať {{applicationName}}",
"title": "Aktuálne si prehráva {song title}"
}
}
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Zadajte časový limit nečinnosti v sekundách:",
"title": "Nastaviť časový limit nečinnosti"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Ach! Ospravedlňujeme sa, sťahovanie sa nepodarilo…",
"title": "Chyba pri sťahovaní!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} skladieb)",
"message": "Sťahovanie zoznamu {{playlistTitle}}",
"title": "Sťahovanie začalo"
}
},
"feedback": {
"conversion-progress": "Konverzia: {{percent}}%",
"converting": "Konvertujem…",
"done": "Hotovo: {{filePath}}",
"download-info": "Sťahujem {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Sťahovanie: {{percent}}%",
"downloading": "Sťahujem…",
"downloading-counter": "Sťahujem {{current}}/{{total}}…",
"downloading-playlist": "Sťahujem zoznam „{{playlistTitle}}“ - {{playlistSize}} skladieb ({{playlistId}})",
"error-while-downloading": "Chyba pri sťahovaní „{{author}} - {{title}}“: {{error}}",
"folder-already-exists": "Priečinok {{playlistFolder}} už existuje",
"getting-playlist-info": "Získavanie informácií o zozname…",
"loading": "Načítavam…",
"playlist-has-only-one-song": "Zoznam obsahuje len jednu položku, ktorá sa stiahne priamo",
"playlist-id-not-found": "Nebolo nájdené žiadne ID zoznamu",
"playlist-is-empty": "Zoznam je prázdny",
"playlist-is-mix-or-private": "Chyba pri získavaní informácií o zozname: uistite sa, že nejde o súkromný zoznam alebo zoznam „Pre Vás“\n\n{{error}}",
"preparing-file": "Pripravujem súbor…",
"saving": "Ukladám…",
"trying-to-get-playlist-id": "Snažím sa získať ID zoznam: {{playlistId}}",
"video-id-not-found": "Video nebolo nájdené",
"writing-id3": "Zapisujem ID3 značky…"
}
},
"description": "Sťahuje MP3 / zdrojový zvuk priamo z rozhrania",
"menu": {
"choose-download-folder": "Vyberte priečinok na sťahovanie",
"download-finish-settings": {
"label": "Stiahnuť po skončení",
"prompt": {
"last-percent": "Po x percentách",
"last-seconds": "Posledných x sekúnd",
"title": "Nastavte, kedy sa má stiahnuť"
},
"submenu": {
"advanced": "Rozšírené",
"enabled": "Povolené",
"mode": "Časový režim",
"percent": "Percento",
"seconds": "Sekundy"
}
},
"download-playlist": "Stiahnuť zoznam",
"presets": "Predvoľby",
"skip-existing": "Preskočiť už existujúce súbory"
},
"name": "Sťahovač",
"renderer": {
"can-not-update-progress": "Nie je možné aktualizovať priebeh"
},
"templates": {
"button": "Stiahnuť"
}
},
"equalizer": {
"description": "Pridáva ekvalizér do prehrávača",
"menu": {
"presets": {
"label": "Predvoľby",
"list": {
"bass-booster": "Zosilňovač basov"
}
}
},
"name": "Ekvalizér"
},
"exponential-volume": {
"description": "Zmení slider hlasitosti na exponenciálny, aby bolo ľahšie vybrať nižšiu hlasitosť.",
"name": "Exponenciálna hlasitosť"
},
"in-app-menu": {
"description": "Dodáva lištám ponúk elegantný, tmavý alebo farebný vzhľad albumu",
"menu": {
"hide-dom-window-controls": "Skryť ovládacie prvky DOM"
},
"name": "Aplikačné menu"
},
"lumiastream": {
"description": "Pridáva Lumia Stream podporu",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Pridáva podporu textov pre väčšinu piesní",
"menu": {
"romanized-lyrics": "Romanizované texty piesní"
},
"name": "Texty Genius",
"renderer": {
"fetched-lyrics": "Načítané texty piesní pre Genius"
}
},
"music-together": {
"description": "Zdieľajte zoznam s ostatnými. Keď hostiteľ prehrá skladbu, všetci ostatní budú počuť tú istú skladbu",
"dialog": {
"enter-host": "Zadajte Host ID"
},
"internal": {
"save": "Uložiť",
"track-source": "Sledovať zdroj",
"unknown-user": "Neznámy užívateľ"
},
"menu": {
"click-to-copy-id": "Kopírovať Host ID",
"close": "Zatvoriť Music Together",
"connected-users": "Pripojení užívatelia",
"disconnect": "Odpojiť Music Together",
"empty-user": "Žiadni pripojení užívatelia",
"host": "Music Together Host",
"join": "Pripojiť sa k Music Together",
"permission": {
"all": "Umožniť hosťom ovládať zoznam a prehrávač",
"host-only": "Len hostiteľ môže ovládať zoznam skladieb a prehrávač",
"playlist": "Umožniť hosťom ovládať zoznam"
},
"set-permission": "Povolenie na kontrolu zmien",
"status": {
"disconnected": "Odpojené",
"guest": "Pripojený ako hosť",
"host": "Pripojený ako hostiteľ"
}
},
"name": "Music Together [Beta]",
"toast": {
"add-song-failed": "Nepodarilo sa pridať skladbu",
"closed": "Music Together ukončené",
"disconnected": "Music Together odpojené",
"host-failed": "Nepodarilo sa hosťovať Music Together",
"id-copied": "Host ID bolo skopírované do schránky",
"id-copy-failed": "Nepodarilo sa skopírovať Host ID do schránky",
"join-failed": "Nepodarilo sa pripojiť k Music Together",
"joined": "Pripojený k Music Together",
"permission-changed": "Povolenie Music Together zmenené na „{{permission}}“",
"remove-song-failed": "Nepodarilo sa odstrániť skladbu",
"user-connected": "{{name}} sa pripojil k Music Together",
"user-disconnected": "{{name}} opustil Music Together"
}
},
"navigation": {
"description": "Šípky pre navigáciu vpred/vzad sú priamo integrované do rozhrania, rovnako ako vo vašom obľúbenom prehliadači",
"name": "Navigácia",
"templates": {
"back": {
"title": "Prejsť na predchádzajúcu stránku"
},
"forward": {
"title": "Prejsť na nasledujúcu stránku"
}
}
},
"no-google-login": {
"description": "Odstrániť tlačidlá a odkazy na prihlásenie do služby Google z rozhrania",
"name": "Žiadne prihlásenie do Google"
},
"notifications": {
"description": "Zobraziť upozornenie pri spustení prehrávania skladby (interaktívne upozornenia sú k dispozícii v systéme Windows)",
"menu": {
"interactive": "Interaktívne oznámenia",
"interactive-settings": {
"label": "Interaktívne nastavenia",
"submenu": {
"hide-button-text": "Skryť text tlačidla",
"refresh-on-play-pause": "Obnoviť pri prehrávaní/pozastavení",
"tray-controls": "Otvoriť/Zatvoriť kliknutím na lištu"
}
},
"priority": "Priorita oznámenia",
"toast-style": "Štýl toastu",
"unpause-notification": "Zobraziť upozornenie pri obnovení"
},
"name": "Upozornenia"
},
"performance-improvement": {
"description": "Zlepšite výkon povolením experimentálnych skriptov",
"name": "Zlepšenie výkonu [Beta]"
},
"picture-in-picture": {
"description": "Umožňuje prepnúť aplikáciu do režimu obraz v obraze",
"menu": {
"always-on-top": "Vždy na vrchu",
"hotkey": {
"label": "Klávesová skratka",
"prompt": {
"keybind-options": {
"hotkey": "Klávesová skratka"
},
"label": "Vyberte klávesovú skratku pre prepínanie obraz v obraze",
"title": "Obraz v obraze klávesová skratka"
}
},
"save-window-position": "Uložiť pozíciu okna",
"save-window-size": "Uložiť veľkosť okna",
"use-native-pip": "Použiť natívne PiP prehliadača"
},
"name": "Obraz v obraze",
"templates": {
"button": "Obraz v obraze"
}
},
"playback-speed": {
"description": "Počúvajte rýchlo, počúvajte pomaly! Pridáva slider, ktorý ovláda rýchlosť skladby",
"name": "Rýchlosť prehrávania",
"templates": {
"button": "Rýchlosť"
}
},
"precise-volume": {
"description": "Presne ovládajte hlasitosť pomocou kolieska myši/klávesových skratiek, s vlastným HUD a prispôsobiteľnými krokmi hlasitosti",
"menu": {
"arrows-shortcuts": "Ovládanie pomocou šípok",
"custom-volume-steps": "Nastavenie vlastných krokov hlasitosti",
"global-shortcuts": "Globálne klávesové skratky"
},
"name": "Presná hlasitosť",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Znížiť hlasitosť",
"increase": "Zvýšiť hlasitosť"
},
"label": "Vybrať globálne klávesové skratky:",
"title": "Globálne klávesové skratky pre hlasitosť"
},
"volume-steps": {
"label": "Vybrať kroky zvýšenia/zníženia hlasitosti",
"title": "Kroky hlasitosti"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Aktuálna kvalita: {{quality}}",
"message": "Výber kvality videa:",
"title": "Výber kvality videa"
}
}
},
"description": "Umožňuje zmeniť kvalitu videa pomocou tlačidla v prekrytí videa",
"name": "Zmena kvality videa",
"renderer": {
"quality-settings-button": {
"label": "Otvoriť nastavenia kvality prehrávača"
}
}
},
"scrobbler": {
"description": "Pridať podporu scrobbling (napr. last.fm, Listenbrainz)",
"dialog": {
"lastfm": {
"auth-failed": {
"message": "Nepodarilo sa autentifikovať s Last.fm\nSkryť vyskakovacie okno do ďalšieho reštartu.",
"title": "Autentifikácia zlyhala"
}
}
},
"menu": {
"lastfm": {
"api-settings": "Last.fm API Nastavenia"
},
"listenbrainz": {
"token": "Vložiť ListenBrainz používateľský token"
},
"scrobble-alternative-artist": "Použiť alternatívnych umelcov",
"scrobble-alternative-title": "Použiť alternatívne názvy",
"scrobble-other-media": "Scrobble iných médií"
},
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Last.fm API kľúč",
"api-secret": "Last.fm API tajomstvo"
},
"listenbrainz": {
"token": {
"label": "Vlož svoj ListenBrainz používateľský token:",
"title": "ListenBrainz token"
}
}
}
},
"shortcuts": {
"description": "Povoľuje nastaviť globálne klávesové skratky pre prehrávanie (Prehrať/Pozastaviť/Ďalšie/Predošlé) a vypínať media OSD prepisovaním media kľúčov, zapne Ctrl/CMD + F pre vyhľadávanie, zapne Linux MPRIS podporu pre media kľúče a vlastné klávesové skratky pre pokročilých používateľov.",
"menu": {
"override-media-keys": "Prepísať Media Kľúče",
"set-keybinds": "Globálne ovládanie skladieb"
},
"name": "Skratky (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Ďalšia",
"play-pause": "Prehrať / Pauza",
"previous": "Predošlá"
},
"label": "Zvoliť globálne klávesové skratky na ovládanie skladieb:",
"title": "Globálne klávesové skratky"
}
}
},
"skip-disliked-songs": {
"description": "Preskakuje skladby označené Nepáči sa",
"name": "Preskakovať skladby označené Nepáči sa"
},
"skip-silences": {
"description": "Automaticky preskakovať tiché časti v hudbe",
"name": "Preskakuj tiché časti"
},
"sponsorblock": {
"description": "Automaticky preskakuje nehudbné časti ako intro/outro, alebo tie časti videoklipov v ktorých nehrá hudba",
"name": "Sponzorský blok"
},
"synced-lyrics": {
"description": "Poskytuje synchronizované texty k skladbám, pričom používa poskytovateľov ako LRClib.",
"errors": {
"fetch": "⚠️\t\tPri získavaní textu sa vyskytla chyba. \n\tSkúste znova neskôr.",
"not-found": "⚠Pre túto skladbu nebol nájdený žiadny text."
},
"menu": {
"line-effect": {
"submenu": {
"offset": {
"label": "Offset"
}
}
},
"precise-timing": {
"label": "Dokonale synchronizovať text piesne"
},
"preferred-provider": {
"label": "Preferovaný Poskytovateľ",
"none": {
"label": "Žiadne",
"tooltip": "Žiadny preferovaný poskytovateľ"
}
}
}
},
"touchbar": {
"name": "Dotykový Panel"
},
"transparent-player": {
"description": "Nastaví okno aplikácie ako priehľadné"
},
"video-toggle": {
"menu": {
"align": {
"submenu": {
"left": "Vľavo",
"middle": "Stred",
"right": "Vpravo"
}
},
"mode": {
"submenu": {
"disabled": "Vypnuté",
"native": "Natívny prepínač"
}
}
},
"name": "Prepínač Videa",
"templates": {
"button-song": "Skladba",
"button-video": "Video"
}
},
"visualizer": {
"description": "Pridá do prehrávača vizualizér",
"menu": {
"visualizer-type": "Typ Vizualizéra"
},
"name": "Vizualizér"
}
} }
} }

View File

@ -201,8 +201,8 @@
"restart": "Ponovni zagon", "restart": "Ponovni zagon",
"show": "Pokaži okno", "show": "Pokaži okno",
"tooltip": { "tooltip": {
"default": "YouTube Glasba", "default": "{{applicationName}}",
"with-song-info": "YouTube Glasba: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -335,7 +335,7 @@
"name": "Preskoči starostno omejitev" "name": "Preskoči starostno omejitev"
}, },
"captions-selector": { "captions-selector": {
"description": "Izberi podnapise za YouTube Music zvočne posnetke", "description": "Izberi podnapise za {{applicationName}} zvočne posnetke",
"menu": { "menu": {
"autoload": "Avtomatsko uporabi zadnje izbrane podnapise", "autoload": "Avtomatsko uporabi zadnje izbrane podnapise",
"disable-captions": "Avtomatsko brez podnapisov" "disable-captions": "Avtomatsko brez podnapisov"
@ -400,7 +400,7 @@
"disconnected": "Prekinjena povezava", "disconnected": "Prekinjena povezava",
"hide-duration-left": "Skrij preostali čas", "hide-duration-left": "Skrij preostali čas",
"hide-github-button": "Skrij povezavo do GitHub-a", "hide-github-button": "Skrij povezavo do GitHub-a",
"play-on-youtube-music": "Predvajaj v YouTube Music", "play-on-application": "Predvajaj v {{applicationName}}",
"set-inactivity-timeout": "Nastavite časovno omejitev neaktivnosti" "set-inactivity-timeout": "Nastavite časovno omejitev neaktivnosti"
}, },
"name": "Discord bogata prisotnost (Rich Presence)", "name": "Discord bogata prisotnost (Rich Presence)",

View File

@ -3,7 +3,56 @@
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "Dështoi në ekzekutimin e plugin-it {{pluginName}}::{{contextName}}", "execute-failed": "Dështoi në ekzekutimin e plugin-it {{pluginName}}::{{contextName}}",
"executed-at-ms": "Shtojca {{pluginName}}::{{contextName}} u ekzekutua në {{ms}}ms" "executed-at-ms": "Shtojca {{pluginName}}::{{contextName}} u ekzekutua në {{ms}}ms",
"initialize-failed": "Dështoi ekzekutimi i plugin-it \"{{pluginName}}\"",
"load-all": "Duke ngarkuar të gjithe plugins",
"load-failed": "Dështoi në ngarkimin e plugin-it \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" u ngarkua",
"unload-failed": "Shkarkimi i plugin-it \"{{pluginName}}\" dështoi",
"unloaded": "Plugin \"{{pluginName}}\" u shkarkua"
}
}
},
"language": {
"name": "Emri i gjuhës në anglisht. p.sh. japonisht, koreanisht, anglisht, rusisht"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Ngarkimi përfundoi. DevTools u hap."
},
"i18n": {
"loaded": "i18n i ngarkuar"
},
"second-instance": {
"receive-command": "U mor komanda mbi protokollin: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Skedari CSS \"{{cssFile}}\" nuk ekziston, duke u injoruar"
},
"unresponsive": {
"details": "Gabim i Papërgjigjes!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Duke pastruar memorien e përkohshme të aplikacionit"
},
"window": {
"tried-to-render-offscreen": "Dritarja u përpoq të renderohej jashtë ekranit, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menuja është e fshehur, përdorni 'Alt' për ta shfaqur (ose 'Escape' nëse përdorni Menunë brenda aplikacionit)",
"message": "Fshehja e menusë është aktivizuar",
"title": "Fshih Menunë Aktivizuar"
},
"need-to-restart": {
"buttons": {
"later": "Më vonë",
"restart-now": "Rinisni Tani"
},
"detail": "\"{{pluginName}}\" kërkon një restart që të hyjë në fuqi",
"message": "\"{{pluginName}}\" kerkon restart"
} }
} }
} }

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naziv prozora", "label": "Prilagođeni naziv prozora",
"prompt": { "prompt": {
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)", "label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
"placeholder": "Primer: YouTube Muzika" "placeholder": "Primer: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Ponovo pokreni aplikaciju", "restart": "Ponovo pokreni aplikaciju",
"show": "Prikaži prozor", "show": "Prikaži prozor",
"tooltip": { "tooltip": {
"default": "YouTube Muzika", "default": "{{applicationName}}",
"with-song-info": "YouTube Muzika: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
}, },
"name": "Paleta boja albuma" "name": "Paleta boja albuma"
}, },
@ -287,7 +288,7 @@
"name": "Ambijentalni režim" "name": "Ambijentalni režim"
}, },
"amuse": { "amuse": {
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u YouTube Muziku", "description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u {{applicationName}}",
"name": "Zabavi", "name": "Zabavi",
"response": { "response": {
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri." "query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Ime host-a" "label": "Ime host-a"
}, },
"https": {
"label": "HTTPS i Sertifikati",
"submenu": {
"cert": {
"dialogTitle": "Izaberi HTTPS datoteku sertifikata",
"label": "Datoteka sertifikata (.crt/.pem)"
},
"enable-https": {
"label": "Omogući HTTPS"
},
"key": {
"dialogTitle": "Izaberi HTTPS datoteku privatnog ključa",
"label": "Datoteka privatnog ključa (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
@ -369,11 +386,11 @@
"name": "Zamuti navigacioni meni" "name": "Zamuti navigacioni meni"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Preskoči starosnu verifikaciju za YouTube", "description": "Preskoči starosnu verifikaciju za Music Player",
"name": "Preskoči starosna ograničenja" "name": "Preskoči starosna ograničenja"
}, },
"captions-selector": { "captions-selector": {
"description": "Odabir prevoda za numere/audio trake na YouTube Muzici", "description": "Odabir prevoda za numere/audio trake na {{applicationName}}",
"menu": { "menu": {
"autoload": "Automatski odaberi prethodno odabrani prevod", "autoload": "Automatski odaberi prethodno odabrani prevod",
"disable-captions": "Podrazumevano bez prevoda" "disable-captions": "Podrazumevano bez prevoda"
@ -456,14 +473,14 @@
"disconnected": "Nije povezano", "disconnected": "Nije povezano",
"hide-duration-left": "Sakrij preostalo vreme", "hide-duration-left": "Sakrij preostalo vreme",
"hide-github-button": "Sakrij dugme sa GitHub linkom", "hide-github-button": "Sakrij dugme sa GitHub linkom",
"play-on-youtube-music": "Reprodukuj na YouTube Muzici", "play-on-application": "Reprodukuj na {{applicationName}}",
"set-inactivity-timeout": "Podesi tajmer za neaktivnost", "set-inactivity-timeout": "Podesi tajmer za neaktivnost",
"set-status-display-type": { "set-status-display-type": {
"label": "Tekst statusa", "label": "Tekst statusa",
"submenu": { "submenu": {
"application": "Slušanje {{applicationName}}",
"artist": "Slušanje {artist}", "artist": "Slušanje {artist}",
"title": "Slušanje {song title}", "title": "Slušanje {song title}"
"youtube-music": "Slušanje YouTube muzike"
} }
} }
}, },

View File

@ -86,7 +86,7 @@
"copy-current-url": "Kopiera nuvarande länk", "copy-current-url": "Kopiera nuvarande länk",
"go-back": "Gå tillbaka", "go-back": "Gå tillbaka",
"go-forward": "Gå framåt", "go-forward": "Gå framåt",
"quit": "Avsluta", "quit": "Stäng",
"restart": "Starta om appen" "restart": "Starta om appen"
} }
}, },
@ -154,7 +154,7 @@
"label": "Anpassad titel på fönstret", "label": "Anpassad titel på fönstret",
"prompt": { "prompt": {
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)", "label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
"placeholder": "Exempelvis: YouTube Music" "placeholder": "Exempelvis: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Starta om appen", "restart": "Starta om appen",
"show": "Visa fönster", "show": "Visa fönster",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Aktivera temaanpassning av uppspelningsreglaget"
}, },
"name": "Albumfärgtema" "name": "Albumfärgtema"
}, },
@ -287,7 +288,7 @@
"name": "Ambiensläge" "name": "Ambiensläge"
}, },
"amuse": { "amuse": {
"description": "Lägger till stöd för YouTube Music i Amuse Now Playing-widgeten av 6K Labs", "description": "Lägger till stöd för {{applicationName}} i Amuse Now Playing-widgeten av 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt." "query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "Värdnamn" "label": "Värdnamn"
}, },
"https": {
"label": "HTTPS och certifikat",
"submenu": {
"cert": {
"dialogTitle": "Välj HTTPS-certifikatfil",
"label": "Certifikatfil (.crt/.pem)"
},
"enable-https": {
"label": "Aktivera HTTPS"
},
"key": {
"dialogTitle": "Välj privat nyckelfil (.key/.pem)",
"label": "Privat nyckelfil (.key/.pem)"
}
}
},
"port": { "port": {
"label": "Port" "label": "Port"
} }
@ -369,11 +386,11 @@
"name": "Suddigt Navigeringsfält" "name": "Suddigt Navigeringsfält"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Hoppa över YouTubes åldersverifiering", "description": "Hoppa över Music Player åldersverifiering",
"name": "Hoppa Över Åldersbegränsningar" "name": "Hoppa Över Åldersbegränsningar"
}, },
"captions-selector": { "captions-selector": {
"description": "Välj textning för YouTube Music-ljudspår", "description": "Välj textning för {{applicationName}}-ljudspår",
"menu": { "menu": {
"autoload": "Välj automatiskt senast använda textning", "autoload": "Välj automatiskt senast använda textning",
"disable-captions": "Ingen textning som standard" "disable-captions": "Ingen textning som standard"
@ -456,14 +473,14 @@
"disconnected": "Frånkopplad", "disconnected": "Frånkopplad",
"hide-duration-left": "Dölj återstående tid", "hide-duration-left": "Dölj återstående tid",
"hide-github-button": "Dölj knapp för GitHub-länk", "hide-github-button": "Dölj knapp för GitHub-länk",
"play-on-youtube-music": "Spela på YouTube Music", "play-on-application": "Spela på {{applicationName}}",
"set-inactivity-timeout": "Ställ in inaktivitetstid", "set-inactivity-timeout": "Ställ in inaktivitetstid",
"set-status-display-type": { "set-status-display-type": {
"label": "Statusmeddelande", "label": "Statusmeddelande",
"submenu": { "submenu": {
"application": "Lyssnar på {{applicationName}}",
"artist": "Lyssnar på {artist}", "artist": "Lyssnar på {artist}",
"title": "Lyssnar på {song title}", "title": "Lyssnar på {song title}"
"youtube-music": "Lyssnar på YouTube Music"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "தனிப்பயன் சாளர தலைப்பு", "label": "தனிப்பயன் சாளர தலைப்பு",
"prompt": { "prompt": {
"label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)", "label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)",
"placeholder": "எடுத்துக்காட்டு: YouTube இசை" "placeholder": "எடுத்துக்காட்டு: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "பயன்பாட்டை மறுதொடக்கம் செய்யுங்கள்", "restart": "பயன்பாட்டை மறுதொடக்கம் செய்யுங்கள்",
"show": "சாளரத்தைக் காட்டு", "show": "சாளரத்தைக் காட்டு",
"tooltip": { "tooltip": {
"default": "யூடியூப் இசை", "default": "{{applicationName}}",
"with-song-info": "YouTube இசை: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "சுற்றுப்புற முறை" "name": "சுற்றுப்புற முறை"
}, },
"amuse": { "amuse": {
"description": "6K ஆய்வகங்களால் இப்போது விட்செட்டில் விளையாடும் Amuse க்கு YouTube இசை ஆதரவை சேர்க்கிறது", "description": "6K ஆய்வகங்களால் இப்போது விட்செட்டில் விளையாடும் Amuse க்கு Music Player இசை ஆதரவை சேர்க்கிறது",
"name": "பொழுதுபோக்கு", "name": "பொழுதுபோக்கு",
"response": { "response": {
"query": "பநிஇ சேவையகம் இயங்குகிறது. பாடல் தகவலைப் பெற /வினவல்." "query": "பநிஇ சேவையகம் இயங்குகிறது. பாடல் தகவலைப் பெற /வினவல்."
@ -369,11 +369,11 @@
"name": "மங்கலான வழிசெலுத்தல் பட்டி" "name": "மங்கலான வழிசெலுத்தல் பட்டி"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "YouTube அகவை சரிபார்ப்பு பைபாச்", "description": "Music Player அகவை சரிபார்ப்பு பைபாச்",
"name": "அகவை கட்டுப்பாடுகள் பைபாச்" "name": "அகவை கட்டுப்பாடுகள் பைபாச்"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்", "description": "{{applicationName}} இசை ஆடியோ டிராக்குகளுக்கான தலைப்பு தேர்வாளர்",
"menu": { "menu": {
"autoload": "கடைசியாக பயன்படுத்தப்பட்ட தலைப்பை தானாகத் தேர்ந்தெடுக்கவும்", "autoload": "கடைசியாக பயன்படுத்தப்பட்ட தலைப்பை தானாகத் தேர்ந்தெடுக்கவும்",
"disable-captions": "முன்னிருப்பாக தலைப்புகள் இல்லை" "disable-captions": "முன்னிருப்பாக தலைப்புகள் இல்லை"
@ -456,14 +456,14 @@
"disconnected": "துண்டிக்கப்பட்டது", "disconnected": "துண்டிக்கப்பட்டது",
"hide-duration-left": "காலம் மீதமுள்ளதை மறைக்கவும்", "hide-duration-left": "காலம் மீதமுள்ளதை மறைக்கவும்",
"hide-github-button": "அறிவிலிமையம் இணைப்பு பொத்தானை மறைக்கவும்", "hide-github-button": "அறிவிலிமையம் இணைப்பு பொத்தானை மறைக்கவும்",
"play-on-youtube-music": "யூடியூப் இசையில் விளையாடுங்கள்", "play-on-application": "யூடியூப் இசையில் விளையாடுங்கள்",
"set-inactivity-timeout": "செயலற்ற நேரம் முடிந்தது", "set-inactivity-timeout": "செயலற்ற நேரம் முடிந்தது",
"set-status-display-type": { "set-status-display-type": {
"label": "நிலை உரை", "label": "நிலை உரை",
"submenu": { "submenu": {
"application": "வலையொளி இசையில் கேட்கிறது",
"artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்", "artist": "{கலைஞர்} பாடலைக் கேட்கிறேன்",
"title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}", "title": "பாடலைக் கேட்கிறேன்{பாடல் தலைப்பு}"
"youtube-music": "வலையொளி இசையில் கேட்கிறது"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "ชื่อหน้าต่างกำหนดเอง", "label": "ชื่อหน้าต่างกำหนดเอง",
"prompt": { "prompt": {
"label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)", "label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)",
"placeholder": "ตัวอย่าง: Youtube Music" "placeholder": "ตัวอย่าง: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "รีสตาร์ตแอป", "restart": "รีสตาร์ตแอป",
"show": "แสดงหน้าต่าง", "show": "แสดงหน้าต่าง",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "โหมดสภาพแวดล้อม" "name": "โหมดสภาพแวดล้อม"
}, },
"amuse": { "amuse": {
"description": "เพิ่มการรองรับ Youtube Music สำหรับ Widget Amuse Now Playing ของ 6K Labs", "description": "เพิ่มการรองรับ {{applicationName}} สำหรับ Widget Amuse Now Playing ของ 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "API Server ของ Amuse ทำงานอยู่ ส่ง GET ไปที่ /query เพื่อขอข้อมูลเกี่ยวกับเพลง" "query": "API Server ของ Amuse ทำงานอยู่ ส่ง GET ไปที่ /query เพื่อขอข้อมูลเกี่ยวกับเพลง"
@ -369,11 +369,11 @@
"name": "เบลอแถบนำทาง" "name": "เบลอแถบนำทาง"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "ข้ามการตรวจสอบอายุของ YouTube", "description": "ข้ามการตรวจสอบอายุของ Music Player",
"name": "ข้ามข้อจำกัดอายุ" "name": "ข้ามข้อจำกัดอายุ"
}, },
"captions-selector": { "captions-selector": {
"description": "ตัวเลือกคำบรรยายสำหรับเพลงใน YouTube Music", "description": "ตัวเลือกคำบรรยายสำหรับเพลงใน {{applicationName}}",
"menu": { "menu": {
"autoload": "เลือกคำบรรยายที่ใช้ครั้งล่าสุดโดยอัตโนมัติ", "autoload": "เลือกคำบรรยายที่ใช้ครั้งล่าสุดโดยอัตโนมัติ",
"disable-captions": "ไม่มีคำบรรยายเป็นค่าเริ่มต้น" "disable-captions": "ไม่มีคำบรรยายเป็นค่าเริ่มต้น"
@ -456,14 +456,14 @@
"disconnected": "ตัดการเชื่อมต่อ", "disconnected": "ตัดการเชื่อมต่อ",
"hide-duration-left": "ซ่อนระยะเวลาที่เหลือ", "hide-duration-left": "ซ่อนระยะเวลาที่เหลือ",
"hide-github-button": "ซ่อนปุ่มลิงก์ GitHub", "hide-github-button": "ซ่อนปุ่มลิงก์ GitHub",
"play-on-youtube-music": "เล่นบน YouTube Music", "play-on-application": "เล่นบน {{applicationName}}",
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม", "set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม",
"set-status-display-type": { "set-status-display-type": {
"label": "ข้อความสถานะ", "label": "ข้อความสถานะ",
"submenu": { "submenu": {
"artist": "กำลังฟัง {ชื่อนักร้อง}", "artist": "กำลังฟัง {ชื่อนักร้อง}",
"title": "กำลังฟัง {ชื่อเพลง}", "title": "กำลังฟัง {ชื่อเพลง}",
"youtube-music": "กำลังฟัง YouTube Music" "application": "กำลังฟัง {{applicationName}}"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Özel pencere başlığı", "label": "Özel pencere başlığı",
"prompt": { "prompt": {
"label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)", "label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)",
"placeholder": "Örnek: Youtube Music" "placeholder": "Örnek: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Yeniden başlat", "restart": "Yeniden başlat",
"show": "Pencereyi görüntüle", "show": "Pencereyi görüntüle",
"tooltip": { "tooltip": {
"default": "YouTube Müzik", "default": "{{applicationName}}",
"with-song-info": "YouTube Müzik: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "Arama çubuğu temalarını etkinleştir"
}, },
"name": "Albüm Renk Teması" "name": "Albüm Renk Teması"
}, },
@ -287,7 +288,7 @@
"name": "Ambiyans Modu" "name": "Ambiyans Modu"
}, },
"amuse": { "amuse": {
"description": "6K Labs'ın Amuse oynatma widget'ı için YouTube Music desteği ekler", "description": "6K Labs'ın Amuse oynatma widget'ı için {{applicationName}} desteği ekler",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API sunucusu çalışıyor. Şarkı bilgilerini almak için GET /query kullanabilirsiniz." "query": "Amuse API sunucusu çalışıyor. Şarkı bilgilerini almak için GET /query kullanabilirsiniz."
@ -369,11 +370,11 @@
"name": "Navigasyon barını bulanıklaştır" "name": "Navigasyon barını bulanıklaştır"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "YouTube yaş doğrulamasını atla", "description": "Music Player yaş doğrulamasını atla",
"name": "Yaş doğrulamasını atla" "name": "Yaş doğrulamasını atla"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube Music için altyazı seçici", "description": "{{applicationName}} için altyazı seçici",
"menu": { "menu": {
"autoload": "Son kullanılan altyazıyı otomatik olarak seç", "autoload": "Son kullanılan altyazıyı otomatik olarak seç",
"disable-captions": "Varsayılan olarak altyazı yok" "disable-captions": "Varsayılan olarak altyazı yok"
@ -456,14 +457,14 @@
"disconnected": "Bağlantı kesildi", "disconnected": "Bağlantı kesildi",
"hide-duration-left": "Kalan süreyi gizle", "hide-duration-left": "Kalan süreyi gizle",
"hide-github-button": "GitHub bağlantısını gizle", "hide-github-button": "GitHub bağlantısını gizle",
"play-on-youtube-music": "YouTube Music de oynat", "play-on-application": "{{applicationName}} de oynat",
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla", "set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla",
"set-status-display-type": { "set-status-display-type": {
"label": "Durum metni", "label": "Durum metni",
"submenu": { "submenu": {
"artist": "{artist} Dinleniyor", "artist": "{artist} Dinleniyor",
"title": "{song title} Dinleniyor", "application": "{{applicationName}} Dinleniyor",
"youtube-music": "YouTube Müzik Dinleniyor" "title": "{song title} Dinleniyor"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "Налаштування заголовка вікна", "label": "Налаштування заголовка вікна",
"prompt": { "prompt": {
"label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)", "label": "Введіть власний заголовок вікна: (залиште порожнім, щоб вимкнути)",
"placeholder": "Приклад: YouTube Music" "placeholder": "Приклад: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Перезапустити програму", "restart": "Перезапустити програму",
"show": "Показати вікно", "show": "Показати вікно",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Режим навколишнього середовища" "name": "Режим навколишнього середовища"
}, },
"amuse": { "amuse": {
"description": "Додає підтримку YouTube Music для віджета Amuse now playing від 6K Labs", "description": "Додає підтримку {{applicationName}} для віджета Amuse now playing від 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Сервер Amuse API запущено. Запит GET /query для отримання інформації про пісню." "query": "Сервер Amuse API запущено. Запит GET /query для отримання інформації про пісню."
@ -369,11 +369,11 @@
"name": "Розмиття панелі навігації" "name": "Розмиття панелі навігації"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Обхід перевірки віку на YouTube", "description": "Обхід перевірки віку на Music Player",
"name": "Обхід вікових обмежень" "name": "Обхід вікових обмежень"
}, },
"captions-selector": { "captions-selector": {
"description": "Вибір субтитрів для аудіодоріжок YouTube Music", "description": "Вибір субтитрів для аудіодоріжок {{applicationName}}",
"menu": { "menu": {
"autoload": "Автоматичний вибір останніх використаних субтитрів", "autoload": "Автоматичний вибір останніх використаних субтитрів",
"disable-captions": "За замовчуванням субтитри відсутні" "disable-captions": "За замовчуванням субтитри відсутні"
@ -388,6 +388,11 @@
}, },
"templates": { "templates": {
"title": "Відкрити селектор субтитрів" "title": "Відкрити селектор субтитрів"
},
"toast": {
"caption-changed": "Субтитри змінені на {{language}}",
"caption-disabled": "Субтитри відключені",
"no-captions": "Субтитри не доступні для цієї пісні"
} }
}, },
"compact-sidebar": { "compact-sidebar": {
@ -451,12 +456,14 @@
"disconnected": "Від'єднано", "disconnected": "Від'єднано",
"hide-duration-left": "Приховати тривалість, яка залишилася", "hide-duration-left": "Приховати тривалість, яка залишилася",
"hide-github-button": "Приховати посилання на GitHub", "hide-github-button": "Приховати посилання на GitHub",
"play-on-youtube-music": "Слухати на YouTube Music", "play-on-application": "Слухати на {{applicationName}}",
"set-inactivity-timeout": "Встановити тайм-аут бездіяльності", "set-inactivity-timeout": "Встановити тайм-аут бездіяльності",
"set-status-display-type": { "set-status-display-type": {
"label": "Статус", "label": "Статус",
"submenu": { "submenu": {
"youtube-music": "Відтворення з YouTube Music" "artist": "Ви слухаєте {artist}",
"application": "Відтворення з {{applicationName}}",
"title": "Ви слухаєте {song title}"
} }
} }
}, },
@ -626,7 +633,15 @@
}, },
"navigation": { "navigation": {
"description": "Стрілки навігації Вперед/Назад безпосередньо інтегровані в інтерфейс, як у вашому браузері, який ви використовуєте", "description": "Стрілки навігації Вперед/Назад безпосередньо інтегровані в інтерфейс, як у вашому браузері, який ви використовуєте",
"name": "Навігація" "name": "Навігація",
"templates": {
"back": {
"title": "Перейти на минулу сторінку"
},
"forward": {
"title": "Перейти на наступну сторінку"
}
}
}, },
"no-google-login": { "no-google-login": {
"description": "Видалити кнопки та посилання для входу через Google з інтерфейсу", "description": "Видалити кнопки та посилання для входу через Google з інтерфейсу",
@ -718,7 +733,12 @@
} }
}, },
"description": "Дозволяє змінювати якість відео за допомогою кнопки на відео оверлеї", "description": "Дозволяє змінювати якість відео за допомогою кнопки на відео оверлеї",
"name": "Зміна якості відео" "name": "Зміна якості відео",
"renderer": {
"quality-settings-button": {
"label": "Відкрити налаштування якості плеєру"
}
}
}, },
"scrobbler": { "scrobbler": {
"description": "Додає підтримку скроблінгу (last.fm, Listenbrainz тощо)", "description": "Додає підтримку скроблінгу (last.fm, Listenbrainz тощо)",
@ -737,6 +757,7 @@
"listenbrainz": { "listenbrainz": {
"token": "Ввести токен користувача ListenBrainz" "token": "Ввести токен користувача ListenBrainz"
}, },
"scrobble-alternative-artist": "Використати іншого виконавця",
"scrobble-alternative-title": "Використовувати альтернативні назви", "scrobble-alternative-title": "Використовувати альтернативні назви",
"scrobble-other-media": "Скробилити інші медіа" "scrobble-other-media": "Скробилити інші медіа"
}, },
@ -788,7 +809,7 @@
"synced-lyrics": { "synced-lyrics": {
"description": "Додає синхронізовані тексти до пісень використовуючи провайдери, такі як LRClib.", "description": "Додає синхронізовані тексти до пісень використовуючи провайдери, такі як LRClib.",
"errors": { "errors": {
"fetch": "⚠️ - При завантаженні слів пісні сталась помилка. Спробуйте пізніше.", "fetch": "⚠️ - При завантаженні слів пісні сталась помилка.\nСпробуйте будь ласка пізніше.",
"not-found": "⚠️ До цієї пісні текст не знайдено." "not-found": "⚠️ До цієї пісні текст не знайдено."
}, },
"menu": { "menu": {
@ -822,6 +843,14 @@
"label": "Зробити текст пісні ідеально синхронізованим", "label": "Зробити текст пісні ідеально синхронізованим",
"tooltip": "Обчисли до мілісекунд відображення наступного рядка (може мати невеликий вплив на продуктивність)" "tooltip": "Обчисли до мілісекунд відображення наступного рядка (може мати невеликий вплив на продуктивність)"
}, },
"preferred-provider": {
"label": "Пріорітетний Провайдер",
"none": {
"label": "Жоден",
"tooltip": "Нема провайдера за замовчуванням"
},
"tooltip": "Оберіть якого провайдера використовувати за замовчуванням"
},
"romanization": { "romanization": {
"label": "Транслітерувати текст пісень", "label": "Транслітерувати текст пісень",
"tooltip": "Якщо текст пісні іншою мовою, спробувати його відобразити латинською версією." "tooltip": "Якщо текст пісні іншою мовою, спробувати його відобразити латинською версією."
@ -854,6 +883,27 @@
"description": "Додає віджет TouchBar для користувачів macOS", "description": "Додає віджет TouchBar для користувачів macOS",
"name": "TouchBar" "name": "TouchBar"
}, },
"transparent-player": {
"description": "Зробити вікно програми прозорим",
"menu": {
"opacity": {
"label": "Прозорість",
"submenu": {
"percent": "{{opacity}}%"
}
},
"type": {
"label": "Тип",
"submenu": {
"acrylic": "Акриловий",
"mica": "Міка",
"none": "Жоден",
"tabbed": "З роздільниками"
}
}
},
"name": "Прозорий Плеєр"
},
"tuna-obs": { "tuna-obs": {
"description": "Інтеграція з плагіном Tuna для OBS", "description": "Інтеграція з плагіном Tuna для OBS",
"name": "Tuna OBS" "name": "Tuna OBS"
@ -885,7 +935,8 @@
}, },
"name": "Перемикач відео", "name": "Перемикач відео",
"templates": { "templates": {
"button-song": "Пісня" "button-song": "Пісня",
"button-video": "Відео"
} }
}, },
"visualizer": { "visualizer": {

View File

@ -150,6 +150,13 @@
"visual-tweaks": { "visual-tweaks": {
"label": "بصری تبدیلیاں", "label": "بصری تبدیلیاں",
"submenu": { "submenu": {
"custom-window-title": {
"label": "اپنی مرضی کا ونڈو عنوان",
"prompt": {
"label": "اپنی مرضی کا ونڈو عنوان درج کریں: (بند کرنے کے لیے خالی چھوڑ دیں)",
"placeholder": "مثال: پیئر ڈیسک ٹاپ"
}
},
"like-buttons": { "like-buttons": {
"default": "پہلے سے طے شدہ", "default": "پہلے سے طے شدہ",
"force-show": "زبردستی دکھائیں", "force-show": "زبردستی دکھائیں",
@ -198,7 +205,24 @@
"play-pause": "چلائیں/روکیں", "play-pause": "چلائیں/روکیں",
"previous": "پچھلا", "previous": "پچھلا",
"quit": "باہر نکلیں", "quit": "باہر نکلیں",
"restart": "ایپ دوبارہ شروع کریں" "restart": "ایپ دوبارہ شروع کریں",
"show": "ونڈو دکھائیں",
"tooltip": {
"default": "پیئر ڈیسک ٹاپ"
}
}
},
"plugins": {
"ad-speedup": {
"description": "اگر کوئی اشتہار چلے تو آواز بند کرکے پلے بیک کی رفتار 16 گناہ کردیں",
"name": "اشتہار کی رفتار"
},
"adblocker": {
"description": "شروغ سے تمام اشتہارات اور ٹریکنگ بلاک کردیں",
"menu": {
"blocker": "بلاکر"
},
"name": "ایڈ بلاکر"
} }
} }
} }

View File

@ -154,7 +154,7 @@
"label": "Tiêu đề cửa sổ tùy chỉnh", "label": "Tiêu đề cửa sổ tùy chỉnh",
"prompt": { "prompt": {
"label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)", "label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)",
"placeholder": "Ví dụ: Youtube Music" "placeholder": "Ví dụ: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "Khởi động lại ứng dụng", "restart": "Khởi động lại ứng dụng",
"show": "Hiện cửa sổ", "show": "Hiện cửa sổ",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{title}} - {{artist}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -287,7 +287,7 @@
"name": "Chế độ Môi trường xung quanh" "name": "Chế độ Môi trường xung quanh"
}, },
"amuse": { "amuse": {
"description": "Thêm hỗ trợ YouTube Music cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs", "description": "Thêm hỗ trợ {{applicationName}} cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát." "query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát."
@ -320,6 +320,13 @@
"hostname": { "hostname": {
"label": "Tên máy chủ" "label": "Tên máy chủ"
}, },
"https": {
"submenu": {
"enable-https": {
"label": "Bật HTTPS"
}
}
},
"port": { "port": {
"label": "Cổng" "label": "Cổng"
} }
@ -369,11 +376,11 @@
"name": "Làm mờ thanh điều hướng" "name": "Làm mờ thanh điều hướng"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "Bỏ qua xác minh độ tuổi của YouTube", "description": "Bỏ qua xác minh độ tuổi của Music Player",
"name": "Bỏ qua hạn chế độ tuổi" "name": "Bỏ qua hạn chế độ tuổi"
}, },
"captions-selector": { "captions-selector": {
"description": "Bộ lựa chọn phụ đề cho các bài hát trên Youtube Music", "description": "Bộ lựa chọn phụ đề cho các bài hát trên {{applicationName}}",
"menu": { "menu": {
"autoload": "Tự động chọn phụ đề vừa sử dụng", "autoload": "Tự động chọn phụ đề vừa sử dụng",
"disable-captions": "Không có phụ đề làm mặc định" "disable-captions": "Không có phụ đề làm mặc định"
@ -456,14 +463,14 @@
"disconnected": "Đã ngắt kết nối", "disconnected": "Đã ngắt kết nối",
"hide-duration-left": "Ẩn thời lượng còn lại", "hide-duration-left": "Ẩn thời lượng còn lại",
"hide-github-button": "Ẩn nút liên kết GitHub", "hide-github-button": "Ẩn nút liên kết GitHub",
"play-on-youtube-music": "Phát trong Youtube Music", "play-on-application": "Phát trong {{applicationName}}",
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động", "set-inactivity-timeout": "Đặt thời gian chờ không hoạt động",
"set-status-display-type": { "set-status-display-type": {
"label": "Văn bản trạng thái", "label": "Văn bản trạng thái",
"submenu": { "submenu": {
"application": "Đang nghe {{applicationName}}",
"artist": "Đang nghe nhạc của {artist}", "artist": "Đang nghe nhạc của {artist}",
"title": "Đang nghe nhạc {song title}", "title": "Đang nghe nhạc {song title}"
"youtube-music": "Đang nghe Youtube Music"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "自定义窗口标题", "label": "自定义窗口标题",
"prompt": { "prompt": {
"label": "输入自定义窗口标题:(留空表示停用)", "label": "输入自定义窗口标题:(留空表示停用)",
"placeholder": "示例:YouTube Music" "placeholder": "示例:{{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "重启应用", "restart": "重启应用",
"show": "显示窗口", "show": "显示窗口",
"tooltip": { "tooltip": {
"default": "YouTube Music", "default": "{{applicationName}}",
"with-song-info": "YouTube Music: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "启用进度条主题"
}, },
"name": "专辑配色主题" "name": "专辑配色主题"
}, },
@ -287,7 +288,7 @@
"name": "沉浸模式" "name": "沉浸模式"
}, },
"amuse": { "amuse": {
"description": "为 6K Labs 的 Amuse 正在播放小部件添加 YouTube Music 支持", "description": "为 6K Labs 的 Amuse 正在播放小部件添加 {{applicationName}} 支持",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API服务器已在运行。使用 /query 以获取歌曲信息。" "query": "Amuse API服务器已在运行。使用 /query 以获取歌曲信息。"
@ -320,6 +321,22 @@
"hostname": { "hostname": {
"label": "主机名" "label": "主机名"
}, },
"https": {
"label": "HTTPS & 数字证书",
"submenu": {
"cert": {
"dialogTitle": "选择 HTTPS 证书文件",
"label": "证书文件(.crt/.pem"
},
"enable-https": {
"label": "启用 HTTPS"
},
"key": {
"dialogTitle": "选择 HTTPS 私钥文件",
"label": "私钥文件(.key/.pem"
}
}
},
"port": { "port": {
"label": "端口号" "label": "端口号"
} }
@ -369,11 +386,11 @@
"name": "模糊导航栏" "name": "模糊导航栏"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "绕过 YouTube 年龄验证", "description": "绕过 Music Player 年龄验证",
"name": "绕过年龄验证" "name": "绕过年龄验证"
}, },
"captions-selector": { "captions-selector": {
"description": "YouTube Music 音轨字幕选择器", "description": "{{applicationName}} 音轨字幕选择器",
"menu": { "menu": {
"autoload": "自动选择上次使用的字幕", "autoload": "自动选择上次使用的字幕",
"disable-captions": "默认无字幕" "disable-captions": "默认无字幕"
@ -456,14 +473,14 @@
"disconnected": "已断开连接", "disconnected": "已断开连接",
"hide-duration-left": "隐藏剩余时长", "hide-duration-left": "隐藏剩余时长",
"hide-github-button": "隐藏 GitHub 链接按钮", "hide-github-button": "隐藏 GitHub 链接按钮",
"play-on-youtube-music": "转至 YouTube Music 播放", "play-on-application": "转至 {{applicationName}} 播放",
"set-inactivity-timeout": "设置非活跃时长", "set-inactivity-timeout": "设置非活跃时长",
"set-status-display-type": { "set-status-display-type": {
"label": "状态文本", "label": "状态文本",
"submenu": { "submenu": {
"application": "在听 {{applicationName}}",
"artist": "在听 {artist}", "artist": "在听 {artist}",
"title": "在听 {song title}", "title": "在听 {song title}"
"youtube-music": "在听 YouTube Music"
} }
} }
}, },

View File

@ -154,7 +154,7 @@
"label": "自訂窗口標題", "label": "自訂窗口標題",
"prompt": { "prompt": {
"label": "輸入自訂視窗標題: (留空將其停用)", "label": "輸入自訂視窗標題: (留空將其停用)",
"placeholder": "例如: YouTube 音樂" "placeholder": "例如: {{applicationName}}"
} }
}, },
"like-buttons": { "like-buttons": {
@ -208,8 +208,8 @@
"restart": "重新啟動應用程式", "restart": "重新啟動應用程式",
"show": "顯示視窗", "show": "顯示視窗",
"tooltip": { "tooltip": {
"default": "YouTube 音樂", "default": "{{applicationName}}",
"with-song-info": "YouTube 音樂: {{artist}} - {{title}}" "with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
} }
} }
}, },
@ -237,7 +237,8 @@
"submenu": { "submenu": {
"percent": "{{ratio}}%" "percent": "{{ratio}}%"
} }
} },
"enable-seekbar": "啟用進度條主題樣式"
}, },
"name": "隨歌曲色調變更主題" "name": "隨歌曲色調變更主題"
}, },
@ -287,7 +288,7 @@
"name": "微光效果" "name": "微光效果"
}, },
"amuse": { "amuse": {
"description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 YouTube Music 現正播放資訊", "description": "加入支援 6K Labs 的 Amuse OBS 外掛以取得 {{applicationName}} 現正播放資訊",
"name": "Amuse", "name": "Amuse",
"response": { "response": {
"query": "Amuse API 伺服器正在運作中,使用 /query 以取得歌曲資訊。" "query": "Amuse API 伺服器正在運作中,使用 /query 以取得歌曲資訊。"
@ -369,11 +370,11 @@
"name": "模糊導覽列" "name": "模糊導覽列"
}, },
"bypass-age-restrictions": { "bypass-age-restrictions": {
"description": "繞過 YouTube 年齡驗證", "description": "繞過年齡驗證",
"name": "繞過年齡驗證" "name": "繞過年齡驗證"
}, },
"captions-selector": { "captions-selector": {
"description": "Youtube Music 音軌字幕選項", "description": "{{applicationName}} 音軌字幕選項",
"menu": { "menu": {
"autoload": "自動選擇上次使用的字幕", "autoload": "自動選擇上次使用的字幕",
"disable-captions": "預設無字幕" "disable-captions": "預設無字幕"
@ -456,14 +457,14 @@
"disconnected": "已斷開連線", "disconnected": "已斷開連線",
"hide-duration-left": "隱藏音樂剩餘時間狀態", "hide-duration-left": "隱藏音樂剩餘時間狀態",
"hide-github-button": "隱藏 GitHub 頁面按鈕", "hide-github-button": "隱藏 GitHub 頁面按鈕",
"play-on-youtube-music": "顯示 Play on YouTube Music 按鈕", "play-on-application": "顯示 Play on {{applicationName}} 按鈕",
"set-inactivity-timeout": "設定閒置狀態時長", "set-inactivity-timeout": "設定閒置狀態時長",
"set-status-display-type": { "set-status-display-type": {
"label": "狀態樣式", "label": "狀態樣式",
"submenu": { "submenu": {
"artist": "正在聆聽 {artist} 的歌曲", "artist": "正在聆聽 {artist} 的歌曲",
"title": "正在聆聽 {song title}", "application": "正在聆聽 {{applicationName}}",
"youtube-music": "正在聆聽 YouTube Music" "title": "正在聆聽 {song title}"
} }
} }
}, },

View File

@ -7,7 +7,7 @@
within the `createMainWindow` function. within the `createMainWindow` function.
Archived link for reference: Archived link for reference:
https://github.com/th-ch/youtube-music/blob/a3104fda4b0d58b076d0c737111636a66e468acc/src/index.ts#L407-L443 https://github.com/pear-devs/pear-desktop/blob/a3104fda4b0d58b076d0c737111636a66e468acc/src/index.ts#L407-L443
--> -->

View File

@ -14,7 +14,8 @@ import {
protocol, protocol,
type BrowserWindowConstructorOptions, type BrowserWindowConstructorOptions,
} from 'electron'; } from 'electron';
import enhanceWebRequest, { import {
enhanceWebRequest,
type BetterSession, type BetterSession,
} from '@jellybrick/electron-better-web-request'; } from '@jellybrick/electron-better-web-request';
import is from 'electron-is'; import is from 'electron-is';
@ -43,7 +44,7 @@ import {
setupProtocolHandler, setupProtocolHandler,
} from '@/providers/protocol-handler'; } from '@/providers/protocol-handler';
import youtubeMusicCSS from '@/youtube-music.css?inline'; import musicPlayerCss from '@/music-player.css?inline';
import { import {
forceLoadMainPlugin, forceLoadMainPlugin,
@ -53,7 +54,7 @@ import {
} from '@/loader/main'; } from '@/loader/main';
import { LoggerPrefix } from '@/utils'; import { LoggerPrefix } from '@/utils';
import { loadI18n, setLanguage, t } from '@/i18n'; import { APPLICATION_NAME, loadI18n, setLanguage, t } from '@/i18n';
import ErrorHtmlAsset from '@assets/error.html?asset'; import ErrorHtmlAsset from '@assets/error.html?asset';
@ -104,11 +105,6 @@ protocol.registerSchemesAsPrivileged([
{ scheme: 'mailto', privileges: { standard: true } }, { scheme: 'mailto', privileges: { standard: true } },
]); ]);
// https://github.com/electron/electron/issues/46538#issuecomment-2808806722
if (is.linux()) {
app.commandLine.appendSwitch('gtk-version', '3');
}
// Ozone platform hint: Required for Wayland support // Ozone platform hint: Required for Wayland support
app.commandLine.appendSwitch('ozone-platform-hint', 'auto'); app.commandLine.appendSwitch('ozone-platform-hint', 'auto');
// SharedArrayBuffer: Required for downloader (@ffmpeg/core-mt) // SharedArrayBuffer: Required for downloader (@ffmpeg/core-mt)
@ -131,7 +127,9 @@ if (config.get('options.disableHardwareAcceleration')) {
if (is.linux()) { if (is.linux()) {
// Overrides WM_CLASS for X11 to correspond to icon filename // Overrides WM_CLASS for X11 to correspond to icon filename
app.setName('com.github.th_ch.youtube_music'); app.setName(
'com.github.th_ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u005f\u006d\u0075\u0073\u0069\u0063',
);
// Stops chromium from launching its own MPRIS service // Stops chromium from launching its own MPRIS service
if (await config.plugins.isEnabled('shortcuts')) { if (await config.plugins.isEnabled('shortcuts')) {
@ -165,11 +163,11 @@ electronDebug({
showDevTools: false, // Disable automatic devTools on new window showDevTools: false, // Disable automatic devTools on new window
}); });
let icon = 'assets/youtube-music.png'; let icon = 'assets/icon.png';
if (process.platform === 'win32') { if (process.platform === 'win32') {
icon = 'assets/generated/icon.ico'; icon = 'assets/generated/icons/win/icon.ico';
} else if (process.platform === 'darwin') { } else if (process.platform === 'darwin') {
icon = 'assets/generated/icon.icns'; icon = 'assets/generated/icons/mac/icon.icns';
} }
function onClosed() { function onClosed() {
@ -178,7 +176,7 @@ function onClosed() {
mainWindow = null; mainWindow = null;
} }
ipcMain.handle('ytmd:get-main-plugin-names', async () => ipcMain.handle('peard:get-main-plugin-names', async () =>
Object.keys(await mainPlugins()), Object.keys(await mainPlugins()),
); );
@ -186,14 +184,14 @@ const initHook = async (win: BrowserWindow) => {
const allPluginStubs = await allPlugins(); const allPluginStubs = await allPlugins();
ipcMain.handle( ipcMain.handle(
'ytmd:get-config', 'peard:get-config',
(_, id: string) => (_, id: string) =>
deepmerge( deepmerge(
allPluginStubs[id].config ?? { enabled: false }, allPluginStubs[id].config ?? { enabled: false },
config.get(`plugins.${id}`) ?? {}, config.get(`plugins.${id}`) ?? {},
) as PluginConfig, ) as PluginConfig,
); );
ipcMain.handle('ytmd:set-config', (_, name: string, obj: object) => ipcMain.handle('peard:set-config', (_, name: string, obj: object) =>
config.setPartial(`plugins.${name}`, obj, allPluginStubs[name].config), config.setPartial(`plugins.${name}`, obj, allPluginStubs[name].config),
); );
@ -292,7 +290,7 @@ const showNeedToRestartDialog = async (id: string) => {
}; };
function initTheme(win: BrowserWindow) { function initTheme(win: BrowserWindow) {
injectCSS(win.webContents, youtubeMusicCSS); injectCSS(win.webContents, musicPlayerCss);
// Load user CSS // Load user CSS
const themes: string[] = config.get('options.themes'); const themes: string[] = config.get('options.themes');
if (Array.isArray(themes)) { if (Array.isArray(themes)) {
@ -503,11 +501,14 @@ async function createMainWindow() {
const url = new URL(event.url); const url = new URL(event.url);
// Workarounds for regions where YTM is restricted // Workarounds for regions where YTM is restricted
if (url.hostname.endsWith('youtube.com') && url.pathname === '/premium') { if (
url.hostname.endsWith('\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com') &&
url.pathname === '/premium'
) {
event.preventDefault(); event.preventDefault();
win.webContents.loadURL( win.webContents.loadURL(
'https://accounts.google.com/ServiceLogin?ltmpl=music&service=youtube&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26next%3Dhttps%253A%252F%252Fmusic.youtube.com%252F', 'https://accounts.google.com/ServiceLogin?ltmpl=music&service=\u0079\u006f\u0075\u0074\u0075\u0062\u0065&continue=https%3A%2F%2Fwww.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com%2Fsignin%3Faction_handle_signin%3Dtrue%26next%3Dhttps%253A%252F%252Fmusic.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com%252F',
); );
} }
}); });
@ -660,7 +661,8 @@ app.whenReady().then(async () => {
// Register appID on windows // Register appID on windows
if (is.windows()) { if (is.windows()) {
const appID = 'com.github.th-ch.youtube-music'; const appID =
'com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063';
app.setAppUserModelId(appID); app.setAppUserModelId(appID);
const appLocation = process.execPath; const appLocation = process.execPath;
const appData = app.getPath('appData'); const appData = app.getPath('appData');
@ -675,7 +677,7 @@ app.whenReady().then(async () => {
'Windows', 'Windows',
'Start Menu', 'Start Menu',
'Programs', 'Programs',
'YouTube Music.lnk', `${APPLICATION_NAME}.lnk`,
); );
try { try {
// Check if shortcut is registered and valid // Check if shortcut is registered and valid
@ -695,7 +697,7 @@ app.whenReady().then(async () => {
{ {
target: appLocation, target: appLocation,
cwd: path.dirname(appLocation), cwd: path.dirname(appLocation),
description: 'YouTube Music Desktop App - including custom plugins', description: `${APPLICATION_NAME} Desktop App - including custom plugins`,
appUserModelId: appID, appUserModelId: appID,
}, },
); );
@ -804,7 +806,7 @@ app.whenReady().then(async () => {
}, 2000); }, 2000);
autoUpdater.on('update-available', () => { autoUpdater.on('update-available', () => {
const downloadLink = const downloadLink =
'https://github.com/th-ch/youtube-music/releases/latest'; 'https://github.com/pear-devs/pear-desktop/releases/latest';
const dialogOptions: Electron.MessageBoxOptions = { const dialogOptions: Electron.MessageBoxOptions = {
type: 'info', type: 'info',
buttons: [ buttons: [
@ -943,7 +945,7 @@ function removeContentSecurityPolicy(
!details.responseHeaders['access-control-allow-origin'] && !details.responseHeaders['access-control-allow-origin'] &&
!details.responseHeaders['Access-Control-Allow-Origin'] !details.responseHeaders['Access-Control-Allow-Origin']
) { ) {
details.responseHeaders['access-control-allow-origin'] = ['https://music.youtube.com']; details.responseHeaders['access-control-allow-origin'] = ['https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com'];
} }
} }

View File

@ -19,9 +19,9 @@ export const createContext = <Config extends PluginConfig>(
id: string, id: string,
): RendererContext<Config> => ({ ): RendererContext<Config> => ({
getConfig: () => getConfig: () =>
window.ipcRenderer.invoke('ytmd:get-config', id) as Promise<Config>, window.ipcRenderer.invoke('peard:get-config', id) as Promise<Config>,
setConfig: async (newConfig) => { setConfig: async (newConfig) => {
await window.ipcRenderer.invoke('ytmd:set-config', id, newConfig); await window.ipcRenderer.invoke('peard:set-config', id, newConfig);
}, },
ipc: { ipc: {
send: (event: string, ...args: unknown[]) => { send: (event: string, ...args: unknown[]) => {

View File

@ -22,7 +22,7 @@ import { startingPages } from './providers/extracted-data';
import promptOptions from './providers/prompt-options'; import promptOptions from './providers/prompt-options';
import { getAllMenuTemplate, loadAllMenuPlugins } from './loader/menu'; import { getAllMenuTemplate, loadAllMenuPlugins } from './loader/menu';
import { setLanguage, t } from '@/i18n'; import { APPLICATION_NAME, setLanguage, t } from '@/i18n';
import packageJson from '../package.json'; import packageJson from '../package.json';
@ -235,6 +235,9 @@ export const mainMenuTemplate = async (
type: 'text', type: 'text',
placeholder: t( placeholder: t(
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.prompt.placeholder', 'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.prompt.placeholder',
{
applicationName: APPLICATION_NAME,
},
), ),
}, },
width: 500, width: 500,
@ -473,7 +476,7 @@ export const mainMenuTemplate = async (
), ),
type: 'normal', type: 'normal',
click() { click() {
const url = 'https://hosted.weblate.org/engage/youtube-music/'; const url = 'https://bit.ly/48n5YF7';
shell.openExternal(url); shell.openExternal(url);
}, },
} as Electron.MenuItemConstructorOptions, } as Electron.MenuItemConstructorOptions,

View File

@ -1,5 +1,5 @@
/** /**
* Overriding YouTube Music style * Overriding default style
*/ */
/* Allow window dragging */ /* Allow window dragging */
@ -49,7 +49,7 @@ ytmusic-cast-button {
display: none !important; display: none !important;
} }
/* Make youtube-music logo un-draggable */ /* Make the logo un-draggable */
ytmusic-nav-bar > div.left-content > a, ytmusic-nav-bar > div.left-content > a,
ytmusic-nav-bar > div.left-content > a > picture > img { ytmusic-nav-bar > div.left-content > a > picture > img {
-webkit-user-drag: none; -webkit-user-drag: none;
@ -86,4 +86,4 @@ tp-yt-paper-item.ytmusic-guide-entry-renderer::before {
tp-yt-iron-dropdown, tp-yt-iron-dropdown,
tp-yt-paper-dialog { tp-yt-paper-dialog {
app-region: no-drag; app-region: no-drag;
} }

View File

@ -10,41 +10,32 @@ const COLOR_KEY = '--ytmusic-album-color';
const DARK_COLOR_KEY = '--ytmusic-album-color-dark'; const DARK_COLOR_KEY = '--ytmusic-album-color-dark';
const RATIO_KEY = '--ytmusic-album-color-ratio'; const RATIO_KEY = '--ytmusic-album-color-ratio';
export default createPlugin< type Config = {
unknown, enabled: boolean;
unknown, ratio: number;
{ enableSeekbar: boolean;
color?: ColorInstance; };
darkColor?: ColorInstance;
playerPage: HTMLElement | null; type Renderer = {
navBarBackground: HTMLElement | null; getMixedColor(
ytmusicPlayerBar: HTMLElement | null; color: string,
playerBarBackground: HTMLElement | null; key: string,
sidebarBig: HTMLElement | null; alpha?: number,
sidebarSmall: HTMLElement | null; ratioMultiply?: number,
ytmusicAppLayout: HTMLElement | null; ): string;
updateColor(alpha: number): void;
onConfigChange(newConfig: Config): void;
};
getMixedColor( export default createPlugin({
color: string,
key: string,
alpha?: number,
ratioMultiply?: number,
): string;
updateColor(alpha: number): void;
},
{
enabled: boolean;
ratio: number;
}
>({
name: () => t('plugins.album-color-theme.name'), name: () => t('plugins.album-color-theme.name'),
description: () => t('plugins.album-color-theme.description'), description: () => t('plugins.album-color-theme.description'),
restartNeeded: false, restartNeeded: false,
config: { config: {
enabled: false, enabled: false,
ratio: 0.5, ratio: 0.5,
}, enableSeekbar: true,
} satisfies Config as Config,
stylesheets: [style], stylesheets: [style],
menu: async ({ getConfig, setConfig }) => { menu: async ({ getConfig, setConfig }) => {
const ratioList = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1]; const ratioList = [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1];
@ -68,18 +59,28 @@ export default createPlugin<
}, },
})), })),
}, },
{
label: t('plugins.album-color-theme.menu.enable-seekbar'),
type: 'checkbox',
checked: config.enableSeekbar,
click(item) {
setConfig({ enableSeekbar: item.checked });
},
},
]; ];
}, },
renderer: { renderer: {
playerPage: null, playerPage: null as HTMLElement | null,
navBarBackground: null, navBarBackground: null as HTMLElement | null,
ytmusicPlayerBar: null, ytmusicPlayerBar: null as HTMLElement | null,
playerBarBackground: null, playerBarBackground: null as HTMLElement | null,
sidebarBig: null, sidebarBig: null as HTMLElement | null,
sidebarSmall: null, sidebarSmall: null as HTMLElement | null,
ytmusicAppLayout: null, ytmusicAppLayout: null as HTMLElement | null,
color: null as ColorInstance | null,
darkColor: null as ColorInstance | null,
async start({ getConfig }) { start() {
this.playerPage = document.querySelector<HTMLElement>('#player-page'); this.playerPage = document.querySelector<HTMLElement>('#player-page');
this.navBarBackground = document.querySelector<HTMLElement>( this.navBarBackground = document.querySelector<HTMLElement>(
'#nav-bar-background', '#nav-bar-background',
@ -94,14 +95,11 @@ export default createPlugin<
'#mini-guide-background', '#mini-guide-background',
); );
this.ytmusicAppLayout = document.querySelector<HTMLElement>('#layout'); this.ytmusicAppLayout = document.querySelector<HTMLElement>('#layout');
const config = await getConfig();
document.documentElement.style.setProperty(
RATIO_KEY,
`${~~(config.ratio * 100)}%`,
);
}, },
onPlayerApiReady(playerApi) { async onPlayerApiReady(playerApi, { getConfig }) {
const config = await getConfig();
(this as Renderer).onConfigChange(config);
const fastAverageColor = new FastAverageColor(); const fastAverageColor = new FastAverageColor();
document.addEventListener('videodatachange', async (event) => { document.addEventListener('videodatachange', async (event) => {
@ -152,7 +150,7 @@ export default createPlugin<
alpha = value; alpha = value;
} }
} }
this.updateColor(alpha ?? 1); (this as Renderer).updateColor(alpha ?? 1);
}); });
}, },
onConfigChange(config) { onConfigChange(config) {
@ -160,8 +158,15 @@ export default createPlugin<
RATIO_KEY, RATIO_KEY,
`${~~(config.ratio * 100)}%`, `${~~(config.ratio * 100)}%`,
); );
if (config.enableSeekbar) document.body.classList.add('seekbar-theme');
else document.body.classList.remove('seekbar-theme');
}, },
getMixedColor(color: string, key: string, alpha = 1, ratioMultiply) { getMixedColor(
color: string,
key: string,
alpha = 1,
ratioMultiply?: number,
) {
const keyColor = `rgba(var(${key}), ${alpha})`; const keyColor = `rgba(var(${key}), ${alpha})`;
let colorRatio = `var(${RATIO_KEY}, 50%)`; let colorRatio = `var(${RATIO_KEY}, 50%)`;
@ -207,26 +212,39 @@ export default createPlugin<
'--yt-spec-black-pure-alpha-80': 'rgba(0,0,0,0.8)', '--yt-spec-black-pure-alpha-80': 'rgba(0,0,0,0.8)',
'--yt-spec-black-1-alpha-98': 'rgba(40,40,40,0.98)', '--yt-spec-black-1-alpha-98': 'rgba(40,40,40,0.98)',
'--yt-spec-black-1-alpha-95': 'rgba(40,40,40,0.95)', '--yt-spec-black-1-alpha-95': 'rgba(40,40,40,0.95)',
'--paper-toast-background-color': '#323232',
'--ytmusic-search-background': '#030303',
'--paper-slider-knob-color': '#f03',
'--paper-dialog-background-color': '#212121',
'--paper-progress-active-color-1': '#f03',
'--paper-progress-active-color-2': '#ff2791',
'--yt-spec-inverted-background': '#f3f3f3',
'background': 'rgba(3, 3, 3)',
'--ytmusic-background': 'rgba(3, 3, 3)',
}; };
const colorKeyMap: Record<string, string> = {
'background': DARK_COLOR_KEY,
'--ytmusic-background': DARK_COLOR_KEY,
};
const ratioMap: Record<string, number> = {
'--paper-progress-active-color-1': 1.75,
'--paper-progress-active-color-2': 1.75,
'--yt-spec-inverted-background': 1.75,
};
const getMixedColor = (this as Renderer).getMixedColor.bind(this);
Object.entries(variableMap).map(([variable, color]) => { Object.entries(variableMap).map(([variable, color]) => {
const key = colorKeyMap[variable] ?? COLOR_KEY;
const ratio = ratioMap[variable] ?? undefined;
document.documentElement.style.setProperty( document.documentElement.style.setProperty(
variable, variable,
this.getMixedColor(color, COLOR_KEY, alpha), getMixedColor(color, key, alpha, ratio),
'important', 'important',
); );
}); });
document.body.style.setProperty(
'background',
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
'important',
);
document.documentElement.style.setProperty(
'--ytmusic-background',
// #030303
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
'important',
);
}, },
}, },
}); });

View File

@ -81,3 +81,14 @@ ytmusic-browse-response[has-background]:not([disable-gradient]) .background-grad
#background.immersive-background.style-scope.ytmusic-browse-response { #background.immersive-background.style-scope.ytmusic-browse-response {
opacity: 0.6; opacity: 0.6;
} }
ytmusic-search-box[is-bauhaus-sidenav-enabled] {
--ytmusic-search-background: var(--ytmusic-color-black3) !important;
}
.seekbar-theme #progress-bar.ytmusic-player-bar {
--paper-slider-active-color: linear-gradient(to right, var(--paper-progress-active-color-1) 80%, var(--paper-progress-active-color-2) 100%) !important;
--paper-slider-knob-color: var(--paper-progress-active-color-1) !important;
--paper-slider-knob-start-color: var(--paper-progress-active-color-2) !important;
}

View File

@ -1,6 +1,6 @@
import { createPlugin } from '@/utils'; import { createPlugin } from '@/utils';
import backend from './backend'; import backend from './backend';
import { t } from '@/i18n'; import { APPLICATION_NAME, t } from '@/i18n';
export interface MusicWidgetConfig { export interface MusicWidgetConfig {
enabled: boolean; enabled: boolean;
@ -12,7 +12,10 @@ export const defaultConfig: MusicWidgetConfig = {
export default createPlugin({ export default createPlugin({
name: () => t('plugins.amuse.name'), name: () => t('plugins.amuse.name'),
description: () => t('plugins.amuse.description'), description: () =>
t('plugins.amuse.description', {
applicationName: APPLICATION_NAME,
}),
addedVersion: '3.7.X', addedVersion: '3.7.X',
restartNeeded: true, restartNeeded: true,
config: defaultConfig, config: defaultConfig,

View File

@ -1,3 +1,7 @@
import { createServer as createHttpServer } from 'node:http';
import { createServer as createHttpsServer } from 'node:https';
import { readFileSync } from 'node:fs';
import { jwt } from 'hono/jwt'; import { jwt } from 'hono/jwt';
import { OpenAPIHono as Hono } from '@hono/zod-openapi'; import { OpenAPIHono as Hono } from '@hono/zod-openapi';
import { cors } from 'hono/cors'; import { cors } from 'hono/cors';
@ -11,6 +15,8 @@ import { createBackend } from '@/utils';
import { JWTPayloadSchema } from './scheme'; import { JWTPayloadSchema } from './scheme';
import { registerAuth, registerControl, registerWebsocket } from './routes'; import { registerAuth, registerControl, registerWebsocket } from './routes';
import { APPLICATION_NAME } from '@/i18n';
import { type APIServerConfig, AuthStrategy } from '../config'; import { type APIServerConfig, AuthStrategy } from '../config';
import type { BackendType } from './types'; import type { BackendType } from './types';
@ -29,41 +35,45 @@ export const backend = createBackend<BackendType, APIServerConfig>({
this.songInfo = songInfo; this.songInfo = songInfo;
}); });
ctx.ipc.on('ytmd:player-api-loaded', () => { ctx.ipc.on('peard:player-api-loaded', () => {
ctx.ipc.send('ytmd:setup-seeked-listener'); ctx.ipc.send('peard:setup-seeked-listener');
ctx.ipc.send('ytmd:setup-time-changed-listener'); ctx.ipc.send('peard:setup-time-changed-listener');
ctx.ipc.send('ytmd:setup-repeat-changed-listener'); ctx.ipc.send('peard:setup-repeat-changed-listener');
ctx.ipc.send('ytmd:setup-like-changed-listener'); ctx.ipc.send('peard:setup-like-changed-listener');
ctx.ipc.send('ytmd:setup-volume-changed-listener'); ctx.ipc.send('peard:setup-volume-changed-listener');
ctx.ipc.send('ytmd:setup-shuffle-changed-listener'); ctx.ipc.send('peard:setup-shuffle-changed-listener');
}); });
ctx.ipc.on( ctx.ipc.on(
'ytmd:repeat-changed', 'peard:repeat-changed',
(mode: RepeatMode) => (this.currentRepeatMode = mode), (mode: RepeatMode) => (this.currentRepeatMode = mode),
); );
ctx.ipc.on( ctx.ipc.on(
'ytmd:volume-changed', 'peard:volume-changed',
(newVolumeState: VolumeState) => (this.volumeState = newVolumeState), (newVolumeState: VolumeState) => (this.volumeState = newVolumeState),
); );
this.run(config.hostname, config.port); this.run(config);
}, },
stop() { stop() {
this.end(); this.end();
}, },
onConfigChange(config) { onConfigChange(config) {
const old = this.oldConfig;
if ( if (
this.oldConfig?.hostname === config.hostname && old?.hostname === config.hostname &&
this.oldConfig?.port === config.port old?.port === config.port &&
old?.useHttps === config.useHttps &&
old?.certPath === config.certPath &&
old?.keyPath === config.keyPath
) { ) {
this.oldConfig = config; this.oldConfig = config;
return; return;
} }
this.end(); this.end();
this.run(config.hostname, config.port); this.run(config);
this.oldConfig = config; this.oldConfig = config;
}, },
@ -138,7 +148,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
openapi: '3.1.0', openapi: '3.1.0',
info: { info: {
version: '1.0.0', version: '1.0.0',
title: 'Youtube Music API Server', title: `${APPLICATION_NAME} API Server`,
description: description:
'Note: You need to get an access token using the `/auth/{id}` endpoint first to call any API endpoints under `/api`.', 'Note: You need to get an access token using the `/auth/{id}` endpoint first to call any API endpoints under `/api`.',
}, },
@ -153,15 +163,30 @@ export const backend = createBackend<BackendType, APIServerConfig>({
this.injectWebSocket = ws.injectWebSocket.bind(this); this.injectWebSocket = ws.injectWebSocket.bind(this);
}, },
run(hostname, port) { run(config) {
if (!this.app) return; if (!this.app) return;
try { try {
this.server = serve({ const serveOptions =
fetch: this.app.fetch.bind(this.app), config.useHttps && config.certPath && config.keyPath
port, ? {
hostname, fetch: this.app.fetch.bind(this.app),
}); port: config.port,
hostname: config.hostname,
createServer: createHttpsServer,
serverOptions: {
key: readFileSync(config.keyPath),
cert: readFileSync(config.certPath),
},
}
: {
fetch: this.app.fetch.bind(this.app),
port: config.port,
hostname: config.hostname,
createServer: createHttpServer,
};
this.server = serve(serveOptions);
if (this.injectWebSocket && this.server) { if (this.injectWebSocket && this.server) {
this.injectWebSocket(this.server); this.injectWebSocket(this.server);

View File

@ -29,7 +29,7 @@ import type { SongInfo } from '@/providers/song-info';
import type { BackendContext } from '@/types/contexts'; import type { BackendContext } from '@/types/contexts';
import type { APIServerConfig } from '../../config'; import type { APIServerConfig } from '../../config';
import type { HonoApp } from '../types'; import type { HonoApp } from '../types';
import type { QueueResponse } from '@/types/youtube-music-desktop-internal'; import type { QueueResponse } from '@/types/music-player-desktop-internal';
import type { Context } from 'hono'; import type { Context } from 'hono';
const routes = { const routes = {
@ -411,6 +411,26 @@ const routes = {
}, },
}, },
}), }),
nextSongInfo: createRoute({
method: 'get',
path: `/api/${API_VERSION}/queue/next`,
summary: 'get next song info',
description:
'Get information about the next song in the queue (relative index +1)',
responses: {
200: {
description: 'Success',
content: {
'application/json': {
schema: SongInfoSchema,
},
},
},
204: {
description: 'No next song in queue',
},
},
}),
queueInfo: createRoute({ queueInfo: createRoute({
method: 'get', method: 'get',
path: `/api/${API_VERSION}/queue`, path: `/api/${API_VERSION}/queue`,
@ -630,7 +650,7 @@ export const register = (
app.openapi(routes.getShuffleState, async (ctx) => { app.openapi(routes.getShuffleState, async (ctx) => {
const stateResponsePromise = new Promise<boolean>((resolve) => { const stateResponsePromise = new Promise<boolean>((resolve) => {
ipcMain.once( ipcMain.once(
'ytmd:get-shuffle-response', 'peard:get-shuffle-response',
(_, isShuffled: boolean | undefined) => { (_, isShuffled: boolean | undefined) => {
return resolve(!!isShuffled); return resolve(!!isShuffled);
}, },
@ -693,7 +713,7 @@ export const register = (
app.openapi(routes.getFullscreenState, async (ctx) => { app.openapi(routes.getFullscreenState, async (ctx) => {
const stateResponsePromise = new Promise<boolean>((resolve) => { const stateResponsePromise = new Promise<boolean>((resolve) => {
ipcMain.once( ipcMain.once(
'ytmd:set-fullscreen', 'peard:set-fullscreen',
(_, isFullscreen: boolean | undefined) => { (_, isFullscreen: boolean | undefined) => {
return resolve(!!isFullscreen); return resolve(!!isFullscreen);
}, },
@ -728,7 +748,7 @@ export const register = (
// Queue // Queue
const queueInfo = async (ctx: Context) => { const queueInfo = async (ctx: Context) => {
const queueResponsePromise = new Promise<QueueResponse>((resolve) => { const queueResponsePromise = new Promise<QueueResponse>((resolve) => {
ipcMain.once('ytmd:get-queue-response', (_, queue: QueueResponse) => { ipcMain.once('peard:get-queue-response', (_, queue: QueueResponse) => {
return resolve(queue); return resolve(queue);
}); });
@ -748,6 +768,63 @@ export const register = (
app.openapi(routes.oldQueueInfo, queueInfo); app.openapi(routes.oldQueueInfo, queueInfo);
app.openapi(routes.queueInfo, queueInfo); app.openapi(routes.queueInfo, queueInfo);
app.openapi(routes.nextSongInfo, async (ctx) => {
const queueResponsePromise = new Promise<QueueResponse>((resolve) => {
ipcMain.once('peard:get-queue-response', (_, queue: QueueResponse) => {
return resolve(queue);
});
controller.requestQueueInformation();
});
const queue = await queueResponsePromise;
if (!queue?.items || queue.items.length === 0) {
ctx.status(204);
return ctx.body(null);
}
// Find the currently selected song
const currentIndex = queue.items.findIndex((item) => {
const renderer =
item.playlistPanelVideoRenderer ||
item.playlistPanelVideoWrapperRenderer?.primaryRenderer
?.playlistPanelVideoRenderer;
return renderer?.selected === true;
});
// Get the next song (currentIndex + 1)
const nextIndex = currentIndex + 1;
if (nextIndex >= queue.items.length) {
// No next song available
ctx.status(204);
return ctx.body(null);
}
const nextItem = queue.items[nextIndex];
const nextRenderer =
nextItem.playlistPanelVideoRenderer ||
nextItem.playlistPanelVideoWrapperRenderer?.primaryRenderer
?.playlistPanelVideoRenderer;
if (!nextRenderer) {
ctx.status(204);
return ctx.body(null);
}
// Extract relevant information similar to SongInfo format
const nextSongInfo = {
title: nextRenderer.title?.runs?.[0]?.text,
videoId: nextRenderer.videoId,
thumbnail: nextRenderer.thumbnail,
lengthText: nextRenderer.lengthText,
shortBylineText: nextRenderer.shortBylineText,
};
ctx.status(200);
return ctx.json(nextSongInfo);
});
app.openapi(routes.addSongToQueue, (ctx) => { app.openapi(routes.addSongToQueue, (ctx) => {
const { videoId, insertPosition } = ctx.req.valid('json'); const { videoId, insertPosition } = ctx.req.valid('json');
controller.addSongToQueue(videoId, insertPosition); controller.addSongToQueue(videoId, insertPosition);

View File

@ -94,7 +94,7 @@ export const register = (
lastSongInfo = { ...songInfo }; lastSongInfo = { ...songInfo };
}); });
ipc.on('ytmd:volume-changed', (newVolumeState: VolumeState) => { ipc.on('peard:volume-changed', (newVolumeState: VolumeState) => {
volumeState = newVolumeState; volumeState = newVolumeState;
send(DataTypes.VolumeChanged, { send(DataTypes.VolumeChanged, {
volume: volumeState.state, volume: volumeState.state,
@ -102,16 +102,16 @@ export const register = (
}); });
}); });
ipc.on('ytmd:repeat-changed', (mode: RepeatMode) => { ipc.on('peard:repeat-changed', (mode: RepeatMode) => {
repeat = mode; repeat = mode;
send(DataTypes.RepeatChanged, { repeat }); send(DataTypes.RepeatChanged, { repeat });
}); });
ipc.on('ytmd:seeked', (t: number) => { ipc.on('peard:seeked', (t: number) => {
send(DataTypes.PositionChanged, { position: t }); send(DataTypes.PositionChanged, { position: t });
}); });
ipc.on('ytmd:shuffle-changed', (newShuffle: boolean) => { ipc.on('peard:shuffle-changed', (newShuffle: boolean) => {
shuffle = newShuffle; shuffle = newShuffle;
send(DataTypes.ShuffleChanged, { shuffle }); send(DataTypes.ShuffleChanged, { shuffle });
}); });

View File

@ -17,6 +17,6 @@ export type BackendType = {
injectWebSocket?: (server: ReturnType<typeof serve>) => void; injectWebSocket?: (server: ReturnType<typeof serve>) => void;
init: (ctx: BackendContext<APIServerConfig>) => void; init: (ctx: BackendContext<APIServerConfig>) => void;
run: (hostname: string, port: number) => void; run: (config: APIServerConfig) => void;
end: () => void; end: () => void;
}; };

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