Compare commits

...

147 Commits

Author SHA1 Message Date
2ccb6b2516 chore(deps): update dependency typescript-eslint to v8.53.0 2026-01-12 18:34:26 +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 7242 additions and 4081 deletions

View File

@ -1,5 +1,5 @@
name: Bug Report
description: Report a YouTube Music bug
description: Report a Pear Desktop bug
title: "[Bug]: "
labels: "bug :beetle:"
body:
@ -8,17 +8,17 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of YouTube Music (Application).
- label: I use the latest version of Pear Desktop (Application).
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
- 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
- type: input
attributes:
label: YouTube Music (Application) Version
label: Pear Desktop (Application) Version
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.
placeholder: 2.0.0
@ -28,7 +28,7 @@ body:
attributes:
label: Checklists
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).
- type: dropdown
attributes:
@ -60,8 +60,8 @@ body:
required: true
- type: input
attributes:
label: Last Known Working YouTube Music (Application) version
description: (If applicable) What is the last version of YouTube Music this worked in?
label: Last Known Working Pear Desktop (Application) version
description: (If applicable) What is the last version of Pear Desktop this worked in?
placeholder: 1.20.0
- type: textarea
attributes:
@ -92,4 +92,4 @@ body:
- type: textarea
attributes:
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
description: Suggest an idea for YouTube Music
description: Suggest an idea for Pear Desktop
title: "[Feature Request]: "
labels: "enhancement :sparkles:"
body:
@ -8,9 +8,9 @@ body:
label: Preflight Checklist
description: Please ensure you've completed all of the following.
options:
- label: I use the latest version of YouTube Music (Application).
- label: I use the latest version of Pear Desktop (Application).
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
- type: textarea
attributes:

View File

@ -1,4 +1,4 @@
name: Build YouTube Music
name: Build Pear Desktop
on:
push:
@ -10,7 +10,8 @@ env:
jobs:
build:
name: Build YouTube Music
if: github.event.pull_request.draft == false
name: Build Pear Desktop
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
@ -44,20 +45,20 @@ jobs:
# Only vite build without release if it is a fork, or it is a pull-request
- 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: |
pnpm build
# Build and release if it's the main repository and is not pull-request
- 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:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
pnpm release:mac
- 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:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -71,7 +72,7 @@ jobs:
pnpm release:linux
- 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:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
@ -87,8 +88,8 @@ jobs:
release:
runs-on: ubuntu-latest
name: Release YouTube Music
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master'
name: Release Pear Desktop
if: github.repository == 'pear-devs/pear-desktop' && github.ref == 'refs/heads/master'
needs: build
steps:
- uses: actions/checkout@v5
@ -149,11 +150,11 @@ jobs:
name: ${{ env.VERSION_TAG }}
replacebody: true
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! 🏅
(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
if: ${{ env.VERSION_HASH == '' }}

View File

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

View File

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

View File

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

View File

@ -22,9 +22,9 @@ jobs:
- name: Submit package to Windows Package Manager Community Repository
uses: vedantmgoyal2009/winget-releaser@main
with:
identifier: th-ch.YouTubeMusic
installers-regex: '^YouTube-Music-Web-Setup-[\d\.]+\.exe$'
identifier: pear-devs.PearDesktop
installers-regex: '^Pear-Desktop-Web-Setup-[\d\.]+\.exe$'
version: ${{ env.WINGET_TAG_NAME }}
release-tag: ${{ inputs.tag_name || github.event.release.tag_name }}
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">
# :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)
[![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/)
<!--[![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)
</div>
@ -16,19 +30,19 @@
- Native look & feel extension
> [!IMPORTANT]
> [!IMPORTANT]
> ⚠️ Disclaimer
>
> **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.**
>
> **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.
>
> **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.
## Content
@ -53,11 +67,11 @@
## 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/">
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="translation status" />
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="translation status 2" />
<a href="https://bit.ly/48n5YF7/">
<img src="https://bit.ly/4q83L6S" alt="translation status" />
<img src="https://bit.ly/4h3zBxo" alt="translation status 2" />
</a>
## Download

View File

@ -2,7 +2,7 @@
<html>
<head>
<meta charset="utf-8" />
<title>Cannot load YouTube Music</title>
<title>Cannot load Pear Desktop</title>
<style>
body {
background: #000;
@ -43,7 +43,7 @@
<body>
<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>
</div>
</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
productName: YouTube Music
appId: "com.github.th-ch.\u0079\u006f\u0075\u0074\u0075\u0062\u0065\u002d\u006d\u0075\u0073\u0069\u0063"
productName: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063"
files:
- '!*'
- dist
@ -20,7 +20,7 @@ mac:
arch:
- x64
- arm64
icon: assets/generated/icons/mac/icon.icns
icon: assets/generated/icons/mac/icon.icon
compression: maximum
win:
icon: assets/generated/icons/win/icon.ico
@ -43,7 +43,7 @@ linux:
category: AudioVideo
desktop:
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: AppImage
arch:
@ -76,14 +76,10 @@ linux:
- arm64
- armv7l
appImage:
description: >-
YouTube Music Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
category: AudioVideo
flatpak:
description: >-
YouTube Music Desktop App bundled with custom plugins (and built-in ad
blocker / downloader)
description: "\u0059\u006f\u0075\u0054\u0075\u0062\u0065\u0020\u004d\u0075\u0073\u0069\u0063 Desktop App bundled with custom plugins"
category: AudioVideo
runtimeVersion: '24.08'
baseVersion: '24.08'
@ -98,7 +94,7 @@ flatpak:
- '--talk-name=org.freedesktop.Notifications'
- '--talk-name=org.gnome.SessionManager'
- '--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:
depends:
- libgtk-3-0

View File

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

View File

@ -1,6 +1,6 @@
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
of this software and associated documentation files (the "Software"), to deal

View File

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

1583
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,
y: -1,
},
'url': 'https://music.youtube.com',
'url': 'https://music.\u0079\u006f\u0075\u0074\u0075\u0062\u0065.com',
'options': {
tray: false,
appVisible: true,

View File

@ -112,7 +112,10 @@ const migrations = {
'>=2.1.3'(store: IStore) {
const listenAlong = store.get('plugins.discord.listenAlong');
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');
}
},

View File

@ -2,6 +2,9 @@ import i18next, { init, t as i18t, changeLanguage } from 'i18next';
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 () =>
await init({
resources: await languageResources(),

View File

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

View File

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

View File

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

View File

@ -154,7 +154,7 @@
"label": "Prilagođeni naslov prozora",
"prompt": {
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
"placeholder": "Primjer: YouTube Music"
"placeholder": "Primjer: {{applicationName}}"
}
},
"like-buttons": {
@ -184,9 +184,31 @@
}
},
"plugins": {
"enabled": "Omogući",
"enabled": "Omogućeno",
"label": "Dodaci",
"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"
}
}
},
"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": {
"console": {
"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",
"initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"",
"load-all": "Carregant totes les extensions",
@ -154,7 +154,7 @@
"label": "Títol personalitzat de la finestra",
"prompt": {
"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": {
@ -208,8 +208,8 @@
"restart": "Reinicia l'aplicació",
"show": "Mostra la finestra",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Activar el tema en la barra de progrés"
},
"name": "Tema de color de l'àlbum"
},
@ -287,7 +288,7 @@
"name": "Mode ambient"
},
"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",
"response": {
"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ó"
},
"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"
},
"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": {
"autoload": "Selecciona automàticament l'últim subtítol emprat",
"disable-captions": "Sense subtítols per defecte"
@ -456,14 +457,14 @@
"disconnected": "Desconnectat",
"hide-duration-left": "Amaga la durada restant",
"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-status-display-type": {
"label": "Text d'estat",
"submenu": {
"artist": "Escoltant {artist}",
"title": "Escoltant {song title}",
"youtube-music": "Escoltant YouTube Music"
"application": "Escoltant {{applicationName}}",
"title": "Escoltant {song title}"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "Vlastní název okna",
"prompt": {
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
"placeholder": "Příklad: Hudba YouTube"
"placeholder": "Příklad: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restartovat aplikaci",
"show": "Zobrazit okno",
"tooltip": {
"default": "Youtube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambientní režim"
},
"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",
"response": {
"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": {
"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"
},
"auth-proxy-adapter": {
@ -369,11 +369,11 @@
"name": "Rozmazaný navigační panel"
},
"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í"
},
"captions-selector": {
"description": "Titulkový selector pro zvukové stopy v YouTube Music",
"description": "Titulkový selector pro zvukové stopy v {{applicationName}}",
"menu": {
"autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení"
@ -456,14 +456,14 @@
"disconnected": "Odpojeno",
"hide-duration-left": "Skrýt zbývající duration",
"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-status-display-type": {
"label": "Text statusu",
"submenu": {
"artist": "Poslouchám: {artist}",
"title": "Poslouchám {song title}",
"youtube-music": "Poslouchám YouTube Music"
"application": "Poslouchám {{applicationName}}",
"title": "Poslouchám {song title}"
}
}
},

View File

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

View File

@ -3,7 +3,7 @@
"console": {
"plugins": {
"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",
"load-all": "Lade alle Erweiterungen",
"load-failed": "Laden der Erweiterung \"{{pluginName}}\" fehlgeschlagen",
@ -154,7 +154,7 @@
"label": "Benutzerdefinierter Fenstertitel",
"prompt": {
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
"placeholder": "Beispiel: YouTube Music"
"placeholder": "Beispiel: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Anwendung neu starten",
"show": "Fenster anzeigen",
"tooltip": {
"default": "YouTube Musik",
"with-song-info": "YouTube Musik: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Suchleisten-Design aktivieren"
},
"name": "Thema aus Albumfarbe"
},
@ -287,7 +288,7 @@
"name": "Ambiente-Modus"
},
"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",
"response": {
"query": "Amuse API-Server läuft. /query für Liedinformationen."
@ -320,6 +321,22 @@
"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": {
"label": "Port"
}
@ -369,11 +386,11 @@
"name": "Verschwommene Navigationsleiste"
},
"bypass-age-restrictions": {
"description": "Youtubes Altersbestätigung umgehen",
"description": "Music Player Altersbestätigung umgehen",
"name": "Altersbeschränkungen umgehen"
},
"captions-selector": {
"description": "Untertitelwähler für YouTube Music-Audio-Lieder",
"description": "Untertitelwähler für {{applicationName}}-Audio-Lieder",
"menu": {
"autoload": "Wähle automatisch den zuletzt verwendeten Untertitel",
"disable-captions": "Standardmäßig keine Untertitel"
@ -456,14 +473,14 @@
"disconnected": "Getrennt",
"hide-duration-left": "Verbleibende Zeit verstecken",
"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-status-display-type": {
"label": "Status Text",
"submenu": {
"application": "Hört {{applicationName}}",
"artist": "Hört {artist} zu",
"title": "Du hörst {song title}",
"youtube-music": "Hört YouTube Music"
"title": "Du hörst {song title}"
}
}
},
@ -606,7 +623,7 @@
"permission": {
"all": "Gästen erlauben, Wiederhabeliste und Player zu bedienen",
"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",
"status": {
@ -866,12 +883,12 @@
},
"name": "Synchronisierte Texte",
"refetch-btn": {
"fetching": "Hole Songtext...",
"normal": "Songtext neu holen"
"fetching": "Laden...",
"normal": "Songtext neu laden"
},
"warnings": {
"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"
}
},

View File

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

View File

@ -160,7 +160,7 @@
"label": "Custom window title",
"prompt": {
"label": "Enter custom window title: (leave empty to disable)",
"placeholder": "Example: YouTube Music"
"placeholder": "Example: {{applicationName}}"
}
},
"remove-upgrade-button": "Remove upgrade button",
@ -208,8 +208,8 @@
"restart": "Restart App",
"show": "Show window",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Enable seekbar theming"
},
"name": "Album Color Theme"
},
@ -287,7 +288,7 @@
"name": "Ambient Mode"
},
"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",
"response": {
"query": "Amuse API server is running. GET /query to get song info."
@ -322,6 +323,22 @@
},
"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]",
@ -369,11 +386,11 @@
"name": "Blur Navigation Bar"
},
"bypass-age-restrictions": {
"description": "Bypass YouTube's age verification",
"description": "Bypass Music Player's age verification",
"name": "Bypass Age Restrictions"
},
"captions-selector": {
"description": "Caption selector for YouTube Music audio tracks",
"description": "Caption selector for {{applicationName}} audio tracks",
"menu": {
"autoload": "Automatically select last used caption",
"disable-captions": "No captions by default"
@ -456,12 +473,12 @@
"disconnected": "Disconnected",
"hide-duration-left": "Hide duration left",
"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-status-display-type": {
"label": "Status text",
"submenu": {
"youtube-music": "Listening to YouTube Music",
"application": "Listening to {{applicationName}}",
"artist": "Listening to {artist}",
"title": "Listening to {song title}"
}

View File

@ -3,11 +3,11 @@
"console": {
"plugins": {
"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}}\"",
"load-all": "Cargando todos los complementos",
"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}}\"",
"unloaded": "Complemento \"{{pluginName}}\" descargado"
}
@ -154,7 +154,7 @@
"label": "Título de ventana personalizado",
"prompt": {
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
"placeholder": "Ejemplo: YouTube Music"
"placeholder": "Ejemplo: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar la aplicación",
"show": "Mostrar ventana",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Habilitar temas a la barra de búsqueda"
},
"name": "Tema de color del álbum"
},
@ -287,7 +288,7 @@
"name": "Modo ambiente"
},
"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",
"response": {
"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": {
"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": {
"label": "Puerto"
}
@ -369,11 +386,11 @@
"name": "Desenfocar barra de navegación"
},
"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"
},
"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": {
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
"disable-captions": "Sin subtítulos por defecto"
@ -456,14 +473,14 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar la duración restante",
"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-status-display-type": {
"label": "Texto de estado",
"submenu": {
"application": "Escuchando {{applicationName}}",
"artist": "Escuchando a {artist}",
"title": "Escuchando {song title}",
"youtube-music": "Escuchando YouTube Music"
"title": "Escuchando {song title}"
}
}
},

View File

@ -31,6 +31,15 @@
},
"theme": {
"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": {
@ -89,9 +98,29 @@
"submenu": {
"auto-reset-app-cache": "Rakenduse käivitamisel lähtesta puhverdatud andmed",
"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": {
"dialog": {
"message": "Keele muutmine jõustub peale uuesti käivitamist",
@ -102,15 +131,69 @@
"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": {
"enabled": "Kasutusel",
"label": "Lisamoodulid",
"new": "UUS"
},
"view": {
"label": "Vaata",
"submenu": {
"force-reload": "Laadi sundkorras uuesti",
"reload": "Laadi uuesti",
"reset-zoom": "Tegelik suurus",
"toggle-fullscreen": "Lülita täisekraanivaade sisse/välja",
"zoom-in": "Suumi sisse",
"zoom-out": "Suumi välja"
@ -125,8 +208,8 @@
"restart": "Käivita rakendus uuesti",
"show": "Näita akent",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -142,8 +225,28 @@
},
"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": {
"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": {
"submenu": {
"percent": "{{opacity}}%"

View File

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

View File

@ -154,7 +154,7 @@
"label": "Mukautettu ikkunan otsikko",
"prompt": {
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
"placeholder": "Esimerkki: YouTube Music"
"placeholder": "Esimerkki: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uudelleen käynnistä appi",
"show": "Näytä ikkuna",
"tooltip": {
"default": "Youtube Music",
"with-song-info": "Youtube Music {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Tunnelmallinen Tila"
},
"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",
"response": {
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
@ -369,11 +369,11 @@
"name": "Sumenna Siirtymäpalkki"
},
"bypass-age-restrictions": {
"description": "Ohita YouTuben iän vahvistus",
"description": "Ohita Music Player iän vahvistus",
"name": "Ohita Ikään Perustuvat Rajoitukset"
},
"captions-selector": {
"description": "YouTube Music ääniraitojen tekstitysten valitsin",
"description": "{{applicationName}} ääniraitojen tekstitysten valitsin",
"menu": {
"autoload": "Valitse automaattisesti viimeksi käytetty tekstitys",
"disable-captions": "Tekstitys ei oletusarvoisesti käytössä"
@ -443,7 +443,7 @@
"disconnected": "Yhteys katkaistu",
"hide-duration-left": "Piilota kappaleen jäljellä oleva kesto",
"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"
},
"name": "Discord Aktiviteetti (Rich Presence)",

View File

@ -154,7 +154,7 @@
"label": "Custom na window title",
"prompt": {
"label": "I-enter ang custom na window tile: (iwanang blanko para di-mapagana)",
"placeholder": "Halimbawa: YouTube Music"
"placeholder": "Halimbawa: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "I-restart ang App",
"show": "Ipakita ang window",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambient Mode"
},
"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": {
"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"
},
"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"
},
"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": {
"autoload": "Awtomatikong piliin ang huling ginamit na caption",
"disable-captions": "Walang mga caption bilang default"
@ -446,13 +446,13 @@
"disconnected": "Nadiskonekta",
"hide-duration-left": "Itago ang natitirang oras",
"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-status-display-type": {
"submenu": {
"artist": "Nakikinig sa {artist}",
"title": "Nakikinig sa {song title}",
"youtube-music": "Kumikinig sa YouTube Music"
"application": "Kumikinig sa {{applicationName}}"
}
}
},

View File

@ -153,8 +153,8 @@
"custom-window-title": {
"label": "Titre de fenêtre personnalisé",
"prompt": {
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)",
"placeholder": "Exemple : YouTube Musique"
"label": "Entrer un titre de fenêtre : (Laissé vide pour désactiver)",
"placeholder": "Exemple : {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Redémarrer l'application",
"show": "Afficher la fenêtre",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}} : {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Activer le thème sur la barre de progression"
},
"name": "Thème de couleur d'album"
},
@ -287,10 +288,10 @@
"name": "Mode ambiant"
},
"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",
"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": {
@ -302,7 +303,7 @@
"deny": "Interdire"
},
"message": "Autoriser {{ID}} ({{origin}}) à accéder à l'API?",
"title": "Requête d'autorisation d'API"
"title": "Demande d'autorisation à l'API"
}
},
"menu": {
@ -310,7 +311,7 @@
"label": "Plan d'autorisation",
"submenu": {
"auth-at-first": {
"label": "Autoriser à la première requête"
"label": "Autoriser lors de la première requête"
},
"none": {
"label": "Pas d'autorisation"
@ -320,6 +321,22 @@
"hostname": {
"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": {
"label": "Port"
}
@ -331,7 +348,7 @@
"title": "Nom d'hôte"
},
"port": {
"label": "Entrez le port du serveur de l'API :",
"label": "Entrez le port du serveur API :",
"title": "Port"
}
}
@ -369,11 +386,11 @@
"name": "Barre de navigation floue"
},
"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"
},
"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": {
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
"disable-captions": "Pas de sous-titres par défaut"
@ -392,7 +409,7 @@
"toast": {
"caption-changed": "Sous-titres changés en {{language}}",
"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": {
@ -456,14 +473,14 @@
"disconnected": "Déconnecté",
"hide-duration-left": "Masquer la durée restante",
"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-status-display-type": {
"label": "Texte d'état",
"submenu": {
"application": "Écoute {{applicationName}}",
"artist": "Écoute {artiste}",
"title": "Écoute {titre de la chanson}",
"youtube-music": "Écoute YouTube Music"
"title": "Écoute {titre de la chanson}"
}
}
},
@ -482,8 +499,8 @@
"buttons": {
"ok": "Ok"
},
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
"message": "Argh! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement!"
},
"start-download-playlist": {
"buttons": {
@ -491,30 +508,30 @@
},
"detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé"
"title": "Téléchargement commencé"
}
},
"feedback": {
"conversion-progress": "Conversion : {{percent}} %",
"conversion-progress": "Conversion : {{percent}}%",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"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-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}}",
"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…",
"playlist-has-only-one-song": "La liste de lecture 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-is-empty": "La liste de lecture 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}}",
"preparing-file": "Péparer des fichier…",
"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 playlist trouvé",
"playlist-is-empty": "La playlist est vide",
"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": "Préparation des fichier…",
"saving": "Sauvegarde…",
"trying-to-get-playlist-id": "Obtention de l'ID de la liste de lecture: {{playlistId}}",
"video-id-not-found": "Vidéo non trouvée",
"trying-to-get-playlist-id": "Obtention de l'ID de la playlist : {{playlistId}}",
"video-id-not-found": "Vidéo introuvable",
"writing-id3": "Écriture des balises ID3…"
}
},
@ -524,19 +541,19 @@
"download-finish-settings": {
"label": "Télécharger une fois terminé",
"prompt": {
"last-percent": "Après x pour cent",
"last-percent": "Après x pourcents",
"last-seconds": "Dernières x secondes",
"title": "Configurer quand télécharger"
},
"submenu": {
"advanced": "Avancé",
"enabled": "Activé",
"mode": "Mode de temps",
"mode": "Unité de temps",
"percent": "Pourcent",
"seconds": "Secondes"
}
},
"download-playlist": "Télécharger la liste de lecture",
"download-playlist": "Télécharger la playlist",
"presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants"
},
@ -573,7 +590,7 @@
},
"lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [Bêta]"
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
@ -604,9 +621,9 @@
"host": "Hôte du Music Together",
"join": "Rejoindre le Music Together",
"permission": {
"all": "Autorisez les invités à contrôler la musique et le player",
"host-only": "Seulement l'hôte peut contrôler les playlists et le lecteur",
"playlist": "Autoriser les invités à contrôler les playlists"
"all": "Autorisez les invités à contrôler la playlist et le lecteur",
"host-only": "Seulement l'hôte peut contrôler la playlist et le lecteur",
"playlist": "Autoriser les invités à contrôler la playlist"
},
"set-permission": "Changer les permissions de contrôle",
"status": {
@ -624,7 +641,7 @@
"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",
"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}}\"",
"remove-song-failed": "Echec du retrait de la piste",
"user-connected": "{{name}} à rejoint le Music Together",
@ -636,7 +653,7 @@
"name": "Navigation",
"templates": {
"back": {
"title": "Revenir à la page précédente"
"title": "Aller à la page précédente"
},
"forward": {
"title": "Aller à la page suivante"
@ -656,7 +673,7 @@
"submenu": {
"hide-button-text": "Masquer le texte du bouton",
"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",
@ -670,30 +687,30 @@
"name": "Amélioration des performances [Beta]"
},
"picture-in-picture": {
"description": "Permet de basculer lapplication en mode image dans image",
"description": "Permet de basculer lapplication en mode picture-in-picture",
"menu": {
"always-on-top": "Toujours en haut",
"always-on-top": "Toujours au dessus",
"hotkey": {
"label": "Raccourci clavier",
"prompt": {
"keybind-options": {
"hotkey": "Raccourci clavier"
},
"label": "Choisissez un raccourci clavier pour activer le mode Image dans l'image",
"title": "Touche de raccourci Image dans l'image"
"label": "Choisissez un raccourci clavier pour activer le mode picture-in-picture",
"title": "Touche de raccourci picture-in-picture"
}
},
"save-window-position": "Enregistrer la position 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": {
"button": "Image dans l'image"
"button": "Picture-in-picture"
}
},
"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",
"templates": {
"button": "Vitesse"
@ -726,14 +743,14 @@
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualité actuelle: {{quality}}",
"detail": "Qualité actuelle : {{quality}}",
"message": "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",
"name": "Changeur de qualité vidéo",
"description": "Permet de changer la qualité vidéo avec un bouton sur l'overlay vidéo",
"name": "Sélecteur de qualité vidéo",
"renderer": {
"quality-settings-button": {
"label": "Ouvrir le sélecteur de qualité du lecteur"
@ -745,7 +762,7 @@
"dialog": {
"lastfm": {
"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"
}
}
@ -761,7 +778,7 @@
"scrobble-alternative-title": "Utiliser des titres alternatifs",
"scrobble-other-media": "Scrobbler d'autres médias"
},
"name": "Scrobble",
"name": "Scrobbler",
"prompt": {
"lastfm": {
"api-key": "Clé API de Last.fm",
@ -769,7 +786,7 @@
},
"listenbrainz": {
"token": {
"label": "Entrez votre token utilisateur ListenBrainz:",
"label": "Entrez votre token utilisateur ListenBrainz :",
"title": "Token ListenBrainz"
}
}
@ -795,8 +812,8 @@
}
},
"skip-disliked-songs": {
"description": "Passer les musiques que je n'aime pas",
"name": "Passer les chansons « Je n'aime pas »"
"description": "Passe les titres \"Je n'aime pas\"",
"name": "Passer les titres \"Je n'aime pas\""
},
"skip-silences": {
"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.",
"errors": {
"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": {
"default-text-string": {
"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": {
"label": "Effet de ligne",
@ -826,7 +843,7 @@
},
"focus": {
"label": "Focus",
"tooltip": "Rend seulement la ligne actuelle blanche"
"tooltip": "Rend blanche seulement la ligne actuelle"
},
"offset": {
"label": "Décalage",
@ -849,7 +866,7 @@
"label": "Aucun",
"tooltip": "Aucun fournisseur privilégié"
},
"tooltip": "Choisissez le fournisseur par défaut à utiliser"
"tooltip": "Choisissez le fournisseur à utiliser par défaut"
},
"romanization": {
"label": "Romaniser les paroles",
@ -861,7 +878,7 @@
},
"show-time-codes": {
"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",
@ -872,7 +889,7 @@
"warnings": {
"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",
"instrumental": "⚠️ - Cette musique n'a pas de paroles"
"instrumental": "⚠️ - C'est un titre instrumental"
}
},
"taskbar-mediacontrol": {
@ -909,7 +926,7 @@
"name": "Tuna OBS"
},
"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"
},
"video-toggle": {
@ -933,7 +950,7 @@
}
}
},
"name": "Basculer la vidéo",
"name": "Bouton de bascule vidéo",
"templates": {
"button-song": "Musique",
"button-video": "Vidéo"

View File

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

View File

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

View File

@ -55,7 +55,7 @@
},
"detail": "\"{{pluginName}}\" plugin zahtjeva ponovno pokretanje da bi postao aktivan",
"message": "\"{{pluginName}}\" se treba ponovo pokreniti",
"title": "Ponovno Pokrećanje je Potrebno"
"title": "Potrebno Ponovno Pokretanje"
},
"unresponsive": {
"buttons": {
@ -128,7 +128,7 @@
},
"label": "Jezik",
"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",
@ -150,6 +150,13 @@
"visual-tweaks": {
"label": "Vizualna podešavanja",
"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": {
"default": "Zadano",
"force-show": "Prisilno prikaži",
@ -201,8 +208,8 @@
"restart": "Ponovo Pokreni Aplikaciju",
"show": "Prikaži prozor",
"tooltip": {
"default": "YouTube Glazba",
"with-song-info": "YouTube Glazba: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -230,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
},
"name": "Boja teme albuma"
},
@ -280,8 +288,8 @@
"name": "Ambijentalni Način"
},
"amuse": {
"description": "Dodaje podršku za YouTube Glazbu za widget \"sada reproducira\" od Amuse od strane 6K Labs",
"name": "Amuse",
"description": "Dodaje podršku za {{applicationName}} za widget \"sada reproducira\" od Amuse od strane 6K Labs",
"name": "Zabavljati",
"response": {
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
}
@ -313,6 +321,22 @@
"hostname": {
"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": {
"label": "Port"
}
@ -362,11 +386,11 @@
"name": "Zamagli Navigacijsku Traku"
},
"bypass-age-restrictions": {
"description": "Zaobiđi YouTubeovu provjeru dobi",
"description": "Zaobiđi Music Player provjeru dobi",
"name": "Zaobiđi dobna ograničenja"
},
"captions-selector": {
"description": "Izbornik titlova za audiozapise od YouTube Musica",
"description": "Izbornik titlova za audiozapise od {{applicationName}}a",
"menu": {
"autoload": "Automatski izaberi posljednje korištene titlove",
"disable-captions": "Bez titlova"
@ -383,7 +407,7 @@
"title": "Otvori izbornik za titlove"
},
"toast": {
"caption-changed": "Titlovi su promenjeni u {{language}}",
"caption-changed": "Titlovi su promijenjeni u {{language}}",
"caption-disabled": "Titlovi su isključeni",
"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": {
"description": "Postavlja da pjesma počne pauzirana",
"description": "Pokreće pjesmu u pauziranom načinu rada",
"menu": {
"apply-once": "Primjenjuje se samo pri pokretanju aplikacije"
},
@ -436,10 +473,18 @@
"disconnected": "Odspojen",
"hide-duration-left": "Sakrij preostalo vrijeme",
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
"play-on-youtube-music": "Reproduciraj na YouTube Musicu",
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)"
"play-on-application": "Reproduciraj na {{applicationName}}u",
"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": {
"set-inactivity-timeout": {
"label": "Postavi vremensko ograničenje neaktivnosti u sekundama:",
@ -479,10 +524,10 @@
"folder-already-exists": "Mapa {{playlistFolder}} već postoji",
"getting-playlist-info": "Dobavljaju se informacije o playlisti…",
"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-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…",
"saving": "Spremanje…",
"trying-to-get-playlist-id": "Pokušavam dobaviti playlist ID: {{playlistId}}",
@ -533,7 +578,7 @@
"name": "Ekvalizator"
},
"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"
},
"in-app-menu": {
@ -552,7 +597,7 @@
"menu": {
"romanized-lyrics": "Romanizirani tekstovi pjesme"
},
"name": "Genius teksovi pjesme",
"name": "Genius tekstovi",
"renderer": {
"fetched-lyrics": "Dobavljen tekst pjesme s Genius-a"
}
@ -729,6 +774,7 @@
"listenbrainz": {
"token": "Unesi korisnički žeton za ListenBrainz"
},
"scrobble-alternative-artist": "Izaberite druge glazbenike",
"scrobble-alternative-title": "Koristi alternativne naslove",
"scrobble-other-media": "Učetkaj druge medije"
},
@ -781,7 +827,7 @@
"description": "Obezbjeđava sinkronizirane lirike pjesama, korištenjem dobavljača poput LRClib.",
"errors": {
"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": {
"default-text-string": {
@ -789,7 +835,7 @@
"tooltip": "Odaberi zadane karaktere koji će biti korišteni za razmake između stihova pjesama"
},
"line-effect": {
"label": "Efekat crte",
"label": "Efekt crte",
"submenu": {
"fancy": {
"label": "Kitnjast",
@ -808,15 +854,23 @@
"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": {
"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)"
},
"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": {
"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": {
"label": "Prikaži tekst pjesme čak i ako je netačan",
@ -827,14 +881,14 @@
"tooltip": "Prikaži vremenske oznake pored teksta pjesme"
}
},
"name": "Sinkronizovani stihovi pjesama",
"name": "Sinkronizirani stihovi pjesama",
"refetch-btn": {
"fetching": "Dobavljanje...",
"normal": "Ponovo dobavite tekst pjesme"
},
"warnings": {
"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"
}
},
@ -846,6 +900,27 @@
"description": "Dodaje dodatak dodirne trake za macOS korisnike",
"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": {
"description": "Integracija sa OBS-ovim Tuna dodatkom",
"name": "Tuna OBS"

View File

@ -154,7 +154,7 @@
"label": "Saját ablak cím",
"prompt": {
"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": {
@ -208,8 +208,8 @@
"restart": "YT Music újraindítása",
"show": "Ablak megjelenítése",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Ambient mód"
},
"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",
"response": {
"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"
},
"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"
},
"captions-selector": {
"description": "Felirat választó a YouTube Music zenékhez",
"description": "Felirat választó a {{applicationName}} zenékhez",
"menu": {
"autoload": "Automatikusan kiválasztja az utoljára használt feliratot",
"disable-captions": "Alapértelmezetten nincsenek feliratok"
@ -453,14 +453,14 @@
"disconnected": "Nincs Kapcsolódva",
"hide-duration-left": "Hátralévő idő 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-status-display-type": {
"label": "Tevékenység szöveg",
"submenu": {
"artist": "Hallgatja: {artist}",
"title": "Hallgatja: {song title}",
"youtube-music": "Hallgatja: YouTube Music"
"application": "Hallgatja: {{applicationName}}",
"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",
"name": "Videóminőség modosító"
"name": "Videóminőség módosító"
},
"scrobbler": {
"description": "Scrobbling támogatás hozzáadása (pl. last.fm, ListenBrainz)",

View File

@ -154,7 +154,7 @@
"label": "Judul jendela kustom",
"prompt": {
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
"placeholder": "Contoh: YouTube Music"
"placeholder": "Contoh: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Restart aplikasi",
"show": "Tampilkan jendela",
"tooltip": {
"default": "YouTube Musik",
"with-song-info": "YouTube Musik: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mode ambient"
},
"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",
"response": {
"query": "Server API Amuse sedang berjalan. GET /query untuk mendapatkan info lagu."
@ -369,11 +369,11 @@
"name": "Buramkan Bar Navigasi"
},
"bypass-age-restrictions": {
"description": "Lewati verifikasi umur dari YouTube",
"description": "Lewati verifikasi umur dari Music Player",
"name": "Lewati batasan umur"
},
"captions-selector": {
"description": "Pemilih caption untuk trek audio YouTube Music",
"description": "Pemilih caption untuk trek audio {{applicationName}}",
"menu": {
"autoload": "Pilih caption terakhir secara otomatis",
"disable-captions": "Tidak ada caption secara default"
@ -456,14 +456,14 @@
"disconnected": "Terputus",
"hide-duration-left": "Sembunyikan sisa durasi",
"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-status-display-type": {
"label": "Teks status",
"submenu": {
"artist": "Sedang mendengarkan {artist}",
"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ð",
"show": "Sýna glugga",
"tooltip": {
"default": "YouTube Tónlist",
"with-song-info": "YouTube Tónlist: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -331,11 +331,11 @@
"name": "Þoka Leiðsagnarstika"
},
"bypass-age-restrictions": {
"description": "Framhjá aldursstaðfestingu YouTube",
"description": "Framhjá aldursstaðfestingu Music Player",
"name": "Farið Framhjá Aldurstakmörkunum"
},
"captions-selector": {
"description": "Skjátextavali fyrir YouTube Tónlist hljóðrásir",
"description": "Skjátextavali fyrir {{applicationName}} hljóðrásir",
"menu": {
"autoload": "Veldu sjálfkrafa síðast notaða myndatexta",
"disable-captions": "Engir skjátextar sjálfgefið"
@ -400,7 +400,7 @@
"disconnected": "Aftengt",
"hide-duration-left": "Fela tímalengd til vinstri",
"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"
},
"name": "Discord Rík Nærvera",

View File

@ -154,7 +154,7 @@
"label": "Personalizza titolo finestra",
"prompt": {
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
"placeholder": "Esempio: YouTube Music"
"placeholder": "Esempio: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Riavvia l'app",
"show": "Mostra finestra",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Abilita tematizzazione della seekbar"
},
"name": "Tema abbinato a colore album"
},
@ -287,7 +288,7 @@
"name": "Modalità Ambiente"
},
"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",
"response": {
"query": "Il server API di Amuse è in funzione. GET /query per ottenere informazioni sui brani."
@ -320,6 +321,22 @@
"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": {
"label": "Porta"
}
@ -369,11 +386,11 @@
"name": "Barra di navigazione trasparente"
},
"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à"
},
"captions-selector": {
"description": "Selettore sottotitolo per le tracce audio di YouTube",
"description": "Selettore sottotitolo per le tracce audio di {{applicationName}}",
"menu": {
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
"disable-captions": "Disattiva i sottotitoli"
@ -456,14 +473,14 @@
"disconnected": "Disconnesso",
"hide-duration-left": "Nascondi la durata rimasta",
"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-status-display-type": {
"label": "Testo dello status",
"submenu": {
"application": "Ascoltando {{applicationName}}",
"artist": "Stai ascoltando {artist}",
"title": "Stai ascoltando {song title}",
"youtube-music": "Ascoltando YouTube Music"
"title": "Stai ascoltando {song title}"
}
}
},
@ -866,7 +883,7 @@
},
"name": "Testi sincronizzati",
"refetch-btn": {
"fetching": "Sto recuperando...",
"fetching": "Caricamento...",
"normal": "Recupera i testi"
},
"warnings": {

View File

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

View File

@ -2,7 +2,7 @@
"common": {
"console": {
"plugins": {
"execute-failed": "პლაგინის დაყენების შეცდომა {{pluginName}}::{{contextName}}",
"execute-failed": "დამატების შესრულების შეცდომა {{pluginName}}::{{contextName}}",
"executed-at-ms": "პლაგინი {{pluginName}}::{{contextName}} გაეშვა {{ms}} მილიწამში",
"initialize-failed": "პლაგინის ინიციალიზაცია ვერ მოხდა\"{{pluginName}}\"",
"load-all": "იტვირთება ყველა პლაგინი",
@ -37,26 +37,45 @@
},
"when-ready": {
"clearing-cache-after-20s": "აპლიკაციის ქეშის გაწმენდვა"
},
"window": {
"tried-to-render-offscreen": "ფანჯარამ სცადა, ეკრანსმიღმა გახსნილიყო, ფანჯრის ზომა={{windowSize}}, ეკრანის ზომა={{displaySize}}, მდებარეობა={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "მენიუ დამალულია, გამოიყენეთ 'Alt', რათა გამოაჩინოთ ის (ან 'Escape' თუ იყენებთ აპლიკაციის შიგნითა მენიუს)",
"message": "მენიუს დამალვა ჩართულია",
"title": "მენიუს დამალვა ჩართულია"
},
"need-to-restart": {
"buttons": {
"later": "მოგვიანებით"
}
"later": "მოგვიანებით",
"restart-now": "გადატვირთვა ახლავე"
},
"detail": "„{{pluginName}}“ დანამატის ძალაში შესასვლელად გადატვირთვა საჭიროა",
"message": "\"{{pluginName}}\" საჭიროებს გადატვირთვას",
"title": "საჭიროებს გადატვირთვას"
},
"unresponsive": {
"buttons": {
"quit": "გასვლა",
"relaunch": "თავიდან გაშვება",
"wait": "მოცდა"
}
},
"detail": "ბოდიშს გიხდით მოუხერხელობისათვის! გთხოვთ აირჩიეთ რა უნდა გაკეთდეს:",
"message": "აპლიკაცია არ პასუხობს",
"title": "ფანჯარა არ პასუხობს"
},
"update-available": {
"buttons": {
"disable": "განახლებების გამორთვა",
"download": "გადმოწერა",
"ok": "დიახ"
}
},
"detail": "ახალი ვერსიაა ხელმისაწვდომი, მისი ჩამოტვირთვა შესაძლებელია {{downloadLink}}-დან",
"message": "ახალი ვერსია ხელმისაწვდომია",
"title": "განახლება ხელმისაწვდომია"
}
},
"menu": {
@ -64,19 +83,63 @@
"navigation": {
"label": "ნავიგაცია",
"submenu": {
"quit": "გასვლა"
"copy-current-url": "მიმდინარე URL-ის დაკოპირება",
"go-back": "უკან დაბრუნება",
"go-forward": "წინ გადასვლა",
"quit": "გასვლა",
"restart": "აპლიკაციის გადატვირთვა"
}
},
"options": {
"label": "მორგება",
"submenu": {
"language": {
"label": "ენა"
"advanced-options": {
"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": {
"label": "საწყისი გვერდი",
"unset": "მოხსნა"
},
"tray": {
"label": "უჯრა",
"submenu": {
"disabled": "გამორთულია"
}
@ -156,11 +219,15 @@
"submenu": {
"percent": "{{size}}%"
}
},
"use-fullscreen": {
"label": "სრული ეკრანის გამოყენება"
}
}
},
"name": "გარემოს რეჟიმი"
},
"amuse": {
"name": "Amuse"
"name": "გაკვირვება"
},
"api-server": {
"dialog": {
@ -261,6 +328,13 @@
"status": {
"disconnected": "გათიშული"
}
},
"toast": {
"closed": "Music Together-ის ორგანიზატორი დაიხურა",
"disconnected": "Music Together-ის კავშირი გათიშულია",
"host-failed": "Music Together-ის გამოცხადება ვერ მოხერხდა",
"id-copied": "გამოსაცხადებელი ID დაკოპირებულია ბუფერში",
"id-copy-failed": "გამოსაცხადებელი ID-ის ვერ დაკოპირდა ბუფერში"
}
},
"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": "사용자 정의 앱 제목",
"prompt": {
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
"placeholder": "예: YouTube Music"
"placeholder": "예: {{applicationName}}"
}
},
"like-buttons": {
@ -171,7 +171,7 @@
"remove": "제거"
},
"remove-theme": "사용자 정의 테마를 제거하시겠습니까?",
"remove-theme-message": "사용자 정의 테마를 제거하시겠습니까?"
"remove-theme-message": "이 설정을 변경하면 커스텀 테마가 삭제됩니다"
},
"label": "테마",
"submenu": {
@ -208,8 +208,8 @@
"restart": "앱 재시작",
"show": "창 표시",
"tooltip": {
"default": "유튜브 뮤직",
"with-song-info": "유튜브 뮤직: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "재생바 색조 변경 활성화"
},
"name": "앨범 컬러 기반 테마"
},
@ -287,8 +288,8 @@
"name": "앰비언트 모드"
},
"amuse": {
"description": "6K Labs Amuse의 'now playing' 위젯에 YouTube Music 지원 추가",
"name": "Amuse",
"description": "6K Labs Amuse의 'now playing' 위젯에 {{applicationName}} 지원 추가",
"name": "Amuseio AB",
"response": {
"query": "Amuse API 서버가 실행 중입니다. GET /query로 노래 정보를 가져오세요."
}
@ -320,6 +321,22 @@
"hostname": {
"label": "호스트 명"
},
"https": {
"label": "HTTPS 및 인증서",
"submenu": {
"cert": {
"dialogTitle": "HTTPS 인증서 파일을 선택해 주세요",
"label": "인증서 파일(.crt/.pem)"
},
"enable-https": {
"label": "HTTPS 활성화"
},
"key": {
"dialogTitle": "HTTPS 개인 키 파일을 선택해 주세요",
"label": "개인 키 파일(.key/.pem)"
}
}
},
"port": {
"label": "포트"
}
@ -369,11 +386,11 @@
"name": "탐색 바 흐림 효과"
},
"bypass-age-restrictions": {
"description": "유튜브의 나이 제한을 우회합니다",
"description": "음악 플레이어의 연령 확인 우회합니다",
"name": "나이 제한 우회"
},
"captions-selector": {
"description": "YouTube Music 트랙용 자막 선택기입니다",
"description": "{{applicationName}} 트랙용 자막 선택기입니다",
"menu": {
"autoload": "마지막으로 사용한 자막을 자동으로 선택",
"disable-captions": "기본 자막 제거"
@ -456,14 +473,14 @@
"disconnected": "연결 해제 됨",
"hide-duration-left": "남은 재생 시간 숨기기",
"hide-github-button": "GitHub 링크 버튼 숨기기",
"play-on-youtube-music": "유튜브 뮤직에서 재생",
"play-on-application": "{{applicationName}} 에서 재생",
"set-inactivity-timeout": "비활성 시간 제한 설정",
"set-status-display-type": {
"label": "상태 텍스트",
"submenu": {
"application": "{{applicationName}} 듣는 중",
"artist": "{아티스트} 듣는 중",
"title": "{곡 제목} 듣는 중",
"youtube-music": "YouTube Music 듣는 중"
"title": "{곡 제목} 듣는 중"
}
}
},

View File

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

View File

@ -150,13 +150,20 @@
"visual-tweaks": {
"label": "Vizuāli Iestatījumi",
"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": {
"default": "Noklusējums",
"force-show": "Vienmēr rādīt",
"hide": "Paslēpt",
"label": "Like pogas"
},
"remove-upgrade-button": "Noslēpt YouTube Premium pogu",
"remove-upgrade-button": "Noslēpt Premium pogu",
"theme": {
"dialog": {
"button": {
@ -201,8 +208,8 @@
"restart": "Restartēt Lietotni",
"show": "Rādīt logu",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -280,7 +287,7 @@
"name": "Ambientais Režīms"
},
"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",
"response": {
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
@ -362,11 +369,11 @@
"name": "Izplūdusi Navigācijas Josla"
},
"bypass-age-restrictions": {
"description": "Apiet YouTube vecuma pārbaudi",
"description": "Apiet Music Player vecuma pārbaudi",
"name": "Apiet Vecuma Ierobežojumus"
},
"captions-selector": {
"description": "Subtitru izvēlne priekš YouTube Music audio ceļiem",
"description": "Subtitru izvēlne priekš {{applicationName}} audio ceļiem",
"menu": {
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
"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": {
"description": "Palaiž dziesmu nopauzētu",
"menu": {
@ -436,8 +456,15 @@
"disconnected": "Atvienojies",
"hide-duration-left": "Paslēpt cik palika laika",
"hide-github-button": "Paslēpt GitHub saites pogu",
"play-on-youtube-music": "Atskaņot uz YouTube Music",
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru"
"play-on-application": "Atskaņot uz {{applicationName}}",
"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",
"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}}",
"preparing-file": "Faila sagatavoš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",
"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 ലോഡ് ചെയ്തു"
},
"second-instance": {
"receive-command": "പ്രോട്ടോക്കോളിലൂടെ കമാൻഡ് ലഭിച്ചു : \"{{command}}\""
"receive-command": "പ്രോട്ടോക്കോളിലൂടെ കമാൻഡ് ലഭിച്ചു : \"{{command}}\""
},
"theme": {
"css-file-not-found": "\"{{cssFile}}\" എന്ന CSS file നിലവിൽ ഇല്ല. ഉപേക്ഷിക്കുന്നു"

View File

@ -53,7 +53,7 @@
"later": "Nanti",
"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",
"title": "Mulakan Semula Diperlukan"
},
@ -74,7 +74,7 @@
"ok": "OK"
},
"detail": "Versi baharu kini tersedia dan boleh dimuat turun di {{downloadLink}}",
"message": "Versi baharu tersedia",
"message": "Versi baharu kini tersedia",
"title": "Kemas Kini Tersedia"
}
},
@ -154,7 +154,7 @@
"label": "Tajuk tetingkap tersuai",
"prompt": {
"label": "Masukkan tajuk tetingkap tersuai: (biarkan kosong untuk matikan)",
"placeholder": "Contoh: YouTube Music"
"placeholder": "Contoh: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Mulakan Semula Aplikasi",
"show": "Papar tetingkap",
"tooltip": {
"default": "YouTube Muzik",
"with-song-info": "YouTube Muzik : {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mod Sekitaran"
},
"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",
"response": {
"query": "API server Amuse telah berjalan. GET /query untuk mendapatkan maklumat lagu."
@ -369,11 +369,11 @@
"name": "Kaburkan Bar navigasi"
},
"bypass-age-restrictions": {
"description": "Pintas verifikasi umur Youtube",
"description": "Pintas verifikasi umur Music Player",
"name": "Pintas Sekatan Umur"
},
"captions-selector": {
"description": "Pemilih kapsyen untuk trek audio Youtube Music",
"description": "Pemilih kapsyen untuk trek audio {{applicationName}}",
"menu": {
"autoload": "Pilih kapsyen terakhir diguna secara automatik",
"disable-captions": "Tiada kapsyen secara lalai"
@ -456,14 +456,14 @@
"disconnected": "Tidak disambungkan",
"hide-duration-left": "Sembunyikan tempoh yang tinggal",
"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-status-display-type": {
"label": "Teks status",
"submenu": {
"artist": "Sedang mendengar {artist}",
"title": "Sedang mendengar {tajuk lagu}",
"youtube-music": "Mendengar YouTube Music"
"application": "Mendengar {{applicationName}}",
"title": "Sedang mendengar {tajuk lagu}"
}
}
},
@ -499,7 +499,7 @@
"converting": "Menukarkan…",
"done": "Selesai: {{filePath}}",
"download-info": "Memuat turun {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Muat turun: {{peratus}}%",
"download-progress": "Muat turun: {{percent}}%",
"downloading": "Memuat turun…",
"downloading-counter": "Memuat turun {{current}}/{{total}}…",
"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-id-not-found": "ID senarai main tidak dijumpai",
"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…",
"saving": "Menyimpan…",
"trying-to-get-playlist-id": "Mencuba untuk mendapatkan ID senarai main: {{playlistId}}",
@ -548,7 +548,29 @@
"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": {
"description": "Menambah sokongan Lumia Stream",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
@ -563,15 +585,68 @@
},
"music-together": {
"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": {
"save": "Simpan",
"unknown-user": "Pengguna tidak diketahui"
},
"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": {
"errors": {
"not-found": "⚠️ Tak ada liriks untuk lagu ini."
},
"menu": {
"show-lyrics-even-if-inexact": {
"label": "Tunjukkan lirik walaupun tidak tepat",

View File

@ -257,11 +257,11 @@
"name": "Tilslør navigasjonsfelt"
},
"bypass-age-restrictions": {
"description": "Omgå YouTube sin aldersgrenser",
"description": "Omgå Music Player sin aldersgrenser",
"name": "Omgå aldersgrense"
},
"captions-selector": {
"description": "Undertekstverktøy for lydspor i YouTube Music",
"description": "Undertekstverktøy for lydspor i {{applicationName}}",
"menu": {
"autoload": "Auto-velg sist brukte undertekst",
"disable-captions": "Ingen undertekst som forvalg"
@ -326,7 +326,7 @@
"disconnected": "Frakoblet",
"hide-duration-left": "Skjul gjenværende tid",
"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"
},
"name": "Rik tilstedeværelse for Discord",

View File

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

View File

@ -5,10 +5,10 @@
"execute-failed": "Mislukt om plugin {{pluginName}}::{{contextName}} uit te voeren",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} uitgevoerd in {{ms}}ms",
"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",
"loaded": "Plugin \"{{pluginName}}\" geladen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te lossen",
"unload-failed": "Mislukt om plugin \"{{pluginName}}\" te ontladen",
"unloaded": "Plugin \"{{pluginName}}\" gelost"
}
}
@ -154,7 +154,7 @@
"label": "Aangepaste venstertitel",
"prompt": {
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
"placeholder": "Voorbeeld: Youtube Music"
"placeholder": "Voorbeeld: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Herstarten App",
"show": "Weergeven Venster",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Omgevingsmodus"
},
"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",
"response": {
"query": "Amuse API server loopt. Gebruik /query voor nummer informatie."
@ -369,11 +369,11 @@
"name": "Vervagen Navigatiebalk"
},
"bypass-age-restrictions": {
"description": "Omzeil de leeftijdsverificatie van YouTube",
"description": "Omzeil de leeftijdsverificatie van Music Player",
"name": "Leeftijdsbeperkingen Omzeilen"
},
"captions-selector": {
"description": "Ondertitelkeuze voor YouTube Music-audiotracks",
"description": "Ondertitelkeuze voor {{applicationName}}-audiotracks",
"menu": {
"autoload": "Automatisch de laatst gebruikte ondertitel selecteren",
"disable-captions": "Standaard geen ondertitels"
@ -456,14 +456,14 @@
"disconnected": "Verbinding verbroken",
"hide-duration-left": "Verberg resterende tijd",
"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-status-display-type": {
"label": "Status tekst",
"submenu": {
"application": "Naar {{applicationName}} aan het luisteren",
"artist": "Naar {artist} aan het luisteren",
"title": "Naar {song title} aan het luisteren",
"youtube-music": "Naar Youtube Music aan het luisteren"
"title": "Naar {song title} aan het luisteren"
}
}
},

View File

@ -153,8 +153,8 @@
"custom-window-title": {
"label": "Niestandardowy tytuł okna",
"prompt": {
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć):",
"placeholder": "Przykład: YouTube Music"
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć)",
"placeholder": "Przykład: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Uruchom ponownie aplikację",
"show": "Pokaż okno",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "{{title}} (autorstwa {{artist}}) - YT Music"
"default": "{{applicationName}}",
"with-song-info": "{{artist}} - (autorstwa {{artist}}) - {{applicationName}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Zezwól stylowanie paska wyszukiwań"
},
"name": "Motyw kolorów albumu"
},
@ -287,14 +288,14 @@
"name": "Tryb otoczenia"
},
"amuse": {
"description": "Wspiera integrację YouTube Music z widgetami Amuse (od 6K Labs)",
"description": "Wspiera integrację {{applicationName}} z widgetami Amuse (od 6K Labs)",
"name": "Amuse",
"response": {
"query": "Serwer API Amuse działa. Użyj metody GET do /query, aby zdobyć informację o utworze."
}
},
"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": {
"request": {
"buttons": {
@ -320,11 +321,27 @@
"hostname": {
"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": {
"label": "Port"
}
},
"name": "YouTube Music API",
"name": "{{applicationName}} API",
"prompt": {
"hostname": {
"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"
},
"captions-selector": {
"description": "Selektor napisów dla ścieżek audio YouTube Music",
"description": "Selektor napisów dla ścieżek audio {{applicationName}}",
"menu": {
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
"disable-captions": "Domyślnie, brak napisów"
@ -429,7 +446,7 @@
"name": "Niestandardowe urządzenie wyjścia",
"prompt": {
"device-selector": {
"label": "Wybierz wyjście audio które ma być użyte",
"label": "Wybierz urządzenie wyjściowe",
"title": "Wybierz wyjście audio"
}
}
@ -447,7 +464,7 @@
"connected": "Połączono z Discordem",
"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": {
"auto-reconnect": "Automatyczne wznawianie połączenia",
"clear-activity": "Wyczyść aktywność",
@ -456,18 +473,18 @@
"disconnected": "Odłączono",
"hide-duration-left": "Ukryj pozostały czas trwania",
"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-status-display-type": {
"label": "Opis statusu",
"submenu": {
"application": "Słucha {{applicationName}}",
"artist": "Słucha {artist}",
"title": "Słucha {song title}",
"youtube-music": "Słucha YouTube Music"
"title": "Słucha {song title}"
}
}
},
"name": "Discord Rich Presence",
"name": "Aktywność w Discord",
"prompt": {
"set-inactivity-timeout": {
"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"
},
"unresponsive": {
"details": "Erro de falta de resposta!\n{{error}}"
"details": "Erro por falta de resposta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Limpando cache do aplicativo"
},
"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": {
"hide-menu-enabled": {
"detail": "O menu está oculto, use 'Alt' para mostrá-lo (ou 'Esc' ao usar o menu dentro do aplicativo)",
"message": "Ocultar menu está ativado",
"title": "Ocultar menu ativado"
"message": "Ocultar Menu está ativado",
"title": "Ocultar Menu ativado"
},
"need-to-restart": {
"buttons": {
"later": "Depois",
"restart-now": "Reiniciar agora"
"restart-now": "Reiniciar Agora"
},
"detail": "O plugin \"{{pluginName}}\" requer uma reinicialização para entrar em vigor",
"message": "\"{{pluginName}}\" precisa reiniciar",
@ -84,7 +84,7 @@
"label": "Navegação",
"submenu": {
"copy-current-url": "Copiar URL atual",
"go-back": "Voltar",
"go-back": "Retornar",
"go-forward": "Avançar",
"quit": "Sair",
"restart": "Reiniciar aplicativo"
@ -154,7 +154,7 @@
"label": "Título da janela customizado",
"prompt": {
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
"placeholder": "Exemplo: Youtube Music"
"placeholder": "Exemplo: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar aplicativo",
"show": "Mostrar janela",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Ativar personalização da barra de progresso"
},
"name": "Tema da cor do álbum"
},
@ -287,7 +288,7 @@
"name": "Modo ambiente"
},
"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",
"response": {
"query": "Servidor API do Amuse em execução. GET /query para obter informações da música."
@ -320,6 +321,22 @@
"hostname": {
"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": {
"label": "Porta"
}
@ -369,11 +386,11 @@
"name": "Desfocar barra de navegação"
},
"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"
},
"captions-selector": {
"description": "Seletor de legendas para faixas de áudio do YouTube Music",
"description": "Seletor de legendas para faixas de áudio do {{applicationName}}",
"menu": {
"autoload": "Selecionar automaticamente a última legenda usada",
"disable-captions": "Sem legendas por padrão"
@ -456,14 +473,14 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar duração restante",
"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-status-display-type": {
"label": "Texto de status",
"submenu": {
"application": "Ouvindo {{applicationName}}",
"artist": "Ouvindo {artist}",
"title": "Ouvindo {song title}",
"youtube-music": "Ouvindo YouTube Music"
"title": "Ouvindo {song title}"
}
}
},

View File

@ -154,7 +154,7 @@
"label": "Título de janela personalizado",
"prompt": {
"label": "Introduza um título: (deixe em branco para desativar)",
"placeholder": "Exemplo: YouTube Music"
"placeholder": "Exemplo: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reiniciar aplicação",
"show": "Mostrar janela",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Ativar temas na barra de reprodução"
},
"name": "Tema de cores do álbum"
},
@ -287,7 +288,7 @@
"name": "Modo ambiente"
},
"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",
"response": {
"query": "O servidor da API Amuse está a ser executado. GET/query para obter informações sobre a faixa."
@ -320,6 +321,22 @@
"hostname": {
"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": {
"label": "Porta"
}
@ -369,11 +386,11 @@
"name": "Barra de navegação desfocada"
},
"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"
},
"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": {
"autoload": "Selecionar automaticamente a última legenda utilizada",
"disable-captions": "Sem legendas por omissão"
@ -456,14 +473,14 @@
"disconnected": "Desconectado",
"hide-duration-left": "Ocultar tempo restante",
"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-status-display-type": {
"label": "Texto de estado",
"submenu": {
"application": "A reproduzir {{applicationName}}",
"artist": "A ouvir {artist}",
"title": "A ouvir {song title}",
"youtube-music": "A reproduzir YouTube Music"
"title": "A ouvir {song title}"
}
}
},

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",
"prompt": {
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
"placeholder": "Exemplu: Youtube Music"
"placeholder": "Exemplu: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Reporneste aplicatia",
"show": "Arata fereastra",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Mod ambiental"
},
"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",
"response": {
"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"
},
"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ă"
},
"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": {
"autoload": "Selectează automat ultima subtitrare folosită",
"disable-captions": "Fără subtitrări în mod implicit"
@ -456,14 +456,14 @@
"disconnected": "Deconectat",
"hide-duration-left": "Ascunde timpul rămas",
"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-status-display-type": {
"label": "Text stare",
"submenu": {
"artist": "Ascultând {artist}",
"title": "Ascultând {song title}",
"youtube-music": "Ascultând YouTube Music"
"application": "Ascultând {{applicationName}}"
}
}
},

View File

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

View File

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

View File

@ -59,7 +59,7 @@
},
"unresponsive": {
"buttons": {
"quit": "Skončiť",
"quit": "Ukončiť",
"relaunch": "Spustiť znova",
"wait": "Počkajte"
},
@ -70,7 +70,7 @@
"update-available": {
"buttons": {
"disable": "Vypnúť aktualizácie",
"download": "Sťiahnuť",
"download": "Stiahnuť",
"ok": "OK"
},
"detail": "Nová verzia je k dispozícii a je možné ju stiahnuť na {{downloadLink}}",
@ -141,9 +141,9 @@
"tray": {
"label": "Panel oznámení",
"submenu": {
"disabled": "Vypnuý",
"enabled-and-hide-app": "Zapnutý , a skryť okno aplikácie",
"enabled-and-show-app": "Spustené a ukáž aplikáciu",
"disabled": "Vypnutý",
"enabled-and-hide-app": "Povolené a skry aplikáciu",
"enabled-and-show-app": "Povolené a ukáž aplikáciu",
"play-pause-on-click": "Prehrať/Pozastaviť na stlačenie"
}
},
@ -154,7 +154,7 @@
"label": "Vlastný názov okna",
"prompt": {
"label": "Napíšte vlastný názov okna: (nechajte prázdne pre vypnutie)",
"placeholder": "Napríklad: YouTube Music"
"placeholder": "Napríklad: {{applicationName}}"
}
},
"like-buttons": {
@ -185,11 +185,13 @@
},
"plugins": {
"enabled": "Zapnuté",
"label": "Rozšírenia",
"new": "NOVÝ"
},
"view": {
"label": "Náhľad",
"submenu": {
"force-reload": "Natvrdo obnoviť",
"force-reload": "Nasilu obnoviť",
"reload": "Obnoviť",
"reset-zoom": "Ozajstná veľkosť",
"toggle-fullscreen": "Prepnúť režim Celej Obrazovky",
@ -206,9 +208,665 @@
"restart": "Reštartovať aplikáciu",
"show": "Zobraziť okno",
"tooltip": {
"default": "YouTube Hudba",
"with-song-info": "Youtube Hudba: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"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",
"show": "Pokaži okno",
"tooltip": {
"default": "YouTube Glasba",
"with-song-info": "YouTube Glasba: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -335,7 +335,7 @@
"name": "Preskoči starostno omejitev"
},
"captions-selector": {
"description": "Izberi podnapise za YouTube Music zvočne posnetke",
"description": "Izberi podnapise za {{applicationName}} zvočne posnetke",
"menu": {
"autoload": "Avtomatsko uporabi zadnje izbrane podnapise",
"disable-captions": "Avtomatsko brez podnapisov"
@ -400,7 +400,7 @@
"disconnected": "Prekinjena povezava",
"hide-duration-left": "Skrij preostali čas",
"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"
},
"name": "Discord bogata prisotnost (Rich Presence)",

View File

@ -3,7 +3,56 @@
"console": {
"plugins": {
"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",
"prompt": {
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
"placeholder": "Primer: YouTube Muzika"
"placeholder": "Primer: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Ponovo pokreni aplikaciju",
"show": "Prikaži prozor",
"tooltip": {
"default": "YouTube Muzika",
"with-song-info": "YouTube Muzika: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Omogući postavljanje teme \"seekbar\"-a"
},
"name": "Paleta boja albuma"
},
@ -287,7 +288,7 @@
"name": "Ambijentalni režim"
},
"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",
"response": {
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
@ -320,6 +321,22 @@
"hostname": {
"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": {
"label": "Port"
}
@ -369,11 +386,11 @@
"name": "Zamuti navigacioni meni"
},
"bypass-age-restrictions": {
"description": "Preskoči starosnu verifikaciju za YouTube",
"description": "Preskoči starosnu verifikaciju za Music Player",
"name": "Preskoči starosna ograničenja"
},
"captions-selector": {
"description": "Odabir prevoda za numere/audio trake na YouTube Muzici",
"description": "Odabir prevoda za numere/audio trake na {{applicationName}}",
"menu": {
"autoload": "Automatski odaberi prethodno odabrani prevod",
"disable-captions": "Podrazumevano bez prevoda"
@ -456,14 +473,14 @@
"disconnected": "Nije povezano",
"hide-duration-left": "Sakrij preostalo vreme",
"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-status-display-type": {
"label": "Tekst statusa",
"submenu": {
"application": "Slušanje {{applicationName}}",
"artist": "Slušanje {artist}",
"title": "Slušanje {song title}",
"youtube-music": "Slušanje YouTube muzike"
"title": "Slušanje {song title}"
}
}
},

View File

@ -86,7 +86,7 @@
"copy-current-url": "Kopiera nuvarande länk",
"go-back": "Gå tillbaka",
"go-forward": "Gå framåt",
"quit": "Avsluta",
"quit": "Stäng",
"restart": "Starta om appen"
}
},
@ -154,7 +154,7 @@
"label": "Anpassad titel på fönstret",
"prompt": {
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
"placeholder": "Exempelvis: YouTube Music"
"placeholder": "Exempelvis: {{applicationName}}"
}
},
"like-buttons": {
@ -208,8 +208,8 @@
"restart": "Starta om appen",
"show": "Visa fönster",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{artist}} {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Aktivera temaanpassning av uppspelningsreglaget"
},
"name": "Albumfärgtema"
},
@ -287,7 +288,7 @@
"name": "Ambiensläge"
},
"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",
"response": {
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
@ -320,6 +321,22 @@
"hostname": {
"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": {
"label": "Port"
}
@ -369,11 +386,11 @@
"name": "Suddigt Navigeringsfält"
},
"bypass-age-restrictions": {
"description": "Hoppa över YouTubes åldersverifiering",
"description": "Hoppa över Music Player åldersverifiering",
"name": "Hoppa Över Åldersbegränsningar"
},
"captions-selector": {
"description": "Välj textning för YouTube Music-ljudspår",
"description": "Välj textning för {{applicationName}}-ljudspår",
"menu": {
"autoload": "Välj automatiskt senast använda textning",
"disable-captions": "Ingen textning som standard"
@ -456,14 +473,14 @@
"disconnected": "Frånkopplad",
"hide-duration-left": "Dölj återstående tid",
"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-status-display-type": {
"label": "Statusmeddelande",
"submenu": {
"application": "Lyssnar på {{applicationName}}",
"artist": "Lyssnar på {artist}",
"title": "Lyssnar på {song title}",
"youtube-music": "Lyssnar på YouTube Music"
"title": "Lyssnar på {song title}"
}
}
},

View File

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

View File

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

View File

@ -154,7 +154,7 @@
"label": "Özel pencere başlığı",
"prompt": {
"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": {
@ -208,8 +208,8 @@
"restart": "Yeniden başlat",
"show": "Pencereyi görüntüle",
"tooltip": {
"default": "YouTube Müzik",
"with-song-info": "YouTube Müzik: {{artist}} - {{title}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -237,7 +237,8 @@
"submenu": {
"percent": "{{ratio}}%"
}
}
},
"enable-seekbar": "Arama çubuğu temalarını etkinleştir"
},
"name": "Albüm Renk Teması"
},
@ -287,7 +288,7 @@
"name": "Ambiyans Modu"
},
"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",
"response": {
"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"
},
"bypass-age-restrictions": {
"description": "YouTube yaş doğrulamasını atla",
"description": "Music Player yaş doğrulamasını atla",
"name": "Yaş doğrulamasını atla"
},
"captions-selector": {
"description": "YouTube Music için altyazı seçici",
"description": "{{applicationName}} için altyazı seçici",
"menu": {
"autoload": "Son kullanılan altyazıyı otomatik olarak seç",
"disable-captions": "Varsayılan olarak altyazı yok"
@ -456,14 +457,14 @@
"disconnected": "Bağlantı kesildi",
"hide-duration-left": "Kalan süreyi 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-status-display-type": {
"label": "Durum metni",
"submenu": {
"artist": "{artist} Dinleniyor",
"title": "{song title} Dinleniyor",
"youtube-music": "YouTube Müzik Dinleniyor"
"application": "{{applicationName}} Dinleniyor",
"title": "{song title} Dinleniyor"
}
}
},

View File

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

View File

@ -150,6 +150,13 @@
"visual-tweaks": {
"label": "بصری تبدیلیاں",
"submenu": {
"custom-window-title": {
"label": "اپنی مرضی کا ونڈو عنوان",
"prompt": {
"label": "اپنی مرضی کا ونڈو عنوان درج کریں: (بند کرنے کے لیے خالی چھوڑ دیں)",
"placeholder": "مثال: پیئر ڈیسک ٹاپ"
}
},
"like-buttons": {
"default": "پہلے سے طے شدہ",
"force-show": "زبردستی دکھائیں",
@ -198,7 +205,24 @@
"play-pause": "چلائیں/روکیں",
"previous": "پچھلا",
"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",
"prompt": {
"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": {
@ -208,8 +208,8 @@
"restart": "Khởi động lại ứng dụng",
"show": "Hiện cửa sổ",
"tooltip": {
"default": "YouTube Music",
"with-song-info": "YouTube Music: {{title}} - {{artist}}"
"default": "{{applicationName}}",
"with-song-info": "{{applicationName}}: {{artist}} - {{title}}"
}
}
},
@ -287,7 +287,7 @@
"name": "Chế độ Môi trường xung quanh"
},
"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",
"response": {
"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": {
"label": "Tên máy chủ"
},
"https": {
"submenu": {
"enable-https": {
"label": "Bật HTTPS"
}
}
},
"port": {
"label": "Cổng"
}
@ -369,11 +376,11 @@
"name": "Làm mờ thanh điều hướng"
},
"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"
},
"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": {
"autoload": "Tự động chọn phụ đề vừa sử dụng",
"disable-captions": "Không có phụ đề làm mặc định"
@ -456,14 +463,14 @@
"disconnected": "Đã ngắt kết nối",
"hide-duration-left": "Ẩn thời lượng còn lại",
"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-status-display-type": {
"label": "Văn bản trạng thái",
"submenu": {
"application": "Đang nghe {{applicationName}}",
"artist": "Đang nghe nhạc của {artist}",
"title": "Đang nghe nhạc {song title}",
"youtube-music": "Đang nghe Youtube Music"
"title": "Đang nghe nhạc {song title}"
}
}
},

View File

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

View File

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

View File

@ -7,7 +7,7 @@
within the `createMainWindow` function.
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,
type BrowserWindowConstructorOptions,
} from 'electron';
import enhanceWebRequest, {
import {
enhanceWebRequest,
type BetterSession,
} from '@jellybrick/electron-better-web-request';
import is from 'electron-is';
@ -43,7 +44,7 @@ import {
setupProtocolHandler,
} from '@/providers/protocol-handler';
import youtubeMusicCSS from '@/youtube-music.css?inline';
import musicPlayerCss from '@/music-player.css?inline';
import {
forceLoadMainPlugin,
@ -53,7 +54,7 @@ import {
} from '@/loader/main';
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';
@ -104,11 +105,6 @@ protocol.registerSchemesAsPrivileged([
{ 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
app.commandLine.appendSwitch('ozone-platform-hint', 'auto');
// SharedArrayBuffer: Required for downloader (@ffmpeg/core-mt)
@ -131,7 +127,9 @@ if (config.get('options.disableHardwareAcceleration')) {
if (is.linux()) {
// 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
if (await config.plugins.isEnabled('shortcuts')) {
@ -165,11 +163,11 @@ electronDebug({
showDevTools: false, // Disable automatic devTools on new window
});
let icon = 'assets/youtube-music.png';
let icon = 'assets/icon.png';
if (process.platform === 'win32') {
icon = 'assets/generated/icon.ico';
icon = 'assets/generated/icons/win/icon.ico';
} else if (process.platform === 'darwin') {
icon = 'assets/generated/icon.icns';
icon = 'assets/generated/icons/mac/icon.icns';
}
function onClosed() {
@ -178,7 +176,7 @@ function onClosed() {
mainWindow = null;
}
ipcMain.handle('ytmd:get-main-plugin-names', async () =>
ipcMain.handle('peard:get-main-plugin-names', async () =>
Object.keys(await mainPlugins()),
);
@ -186,14 +184,14 @@ const initHook = async (win: BrowserWindow) => {
const allPluginStubs = await allPlugins();
ipcMain.handle(
'ytmd:get-config',
'peard:get-config',
(_, id: string) =>
deepmerge(
allPluginStubs[id].config ?? { enabled: false },
config.get(`plugins.${id}`) ?? {},
) 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),
);
@ -292,7 +290,7 @@ const showNeedToRestartDialog = async (id: string) => {
};
function initTheme(win: BrowserWindow) {
injectCSS(win.webContents, youtubeMusicCSS);
injectCSS(win.webContents, musicPlayerCss);
// Load user CSS
const themes: string[] = config.get('options.themes');
if (Array.isArray(themes)) {
@ -503,11 +501,14 @@ async function createMainWindow() {
const url = new URL(event.url);
// 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();
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
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);
const appLocation = process.execPath;
const appData = app.getPath('appData');
@ -675,7 +677,7 @@ app.whenReady().then(async () => {
'Windows',
'Start Menu',
'Programs',
'YouTube Music.lnk',
`${APPLICATION_NAME}.lnk`,
);
try {
// Check if shortcut is registered and valid
@ -695,7 +697,7 @@ app.whenReady().then(async () => {
{
target: appLocation,
cwd: path.dirname(appLocation),
description: 'YouTube Music Desktop App - including custom plugins',
description: `${APPLICATION_NAME} Desktop App - including custom plugins`,
appUserModelId: appID,
},
);
@ -804,7 +806,7 @@ app.whenReady().then(async () => {
}, 2000);
autoUpdater.on('update-available', () => {
const downloadLink =
'https://github.com/th-ch/youtube-music/releases/latest';
'https://github.com/pear-devs/pear-desktop/releases/latest';
const dialogOptions: Electron.MessageBoxOptions = {
type: 'info',
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'] = ['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,
): RendererContext<Config> => ({
getConfig: () =>
window.ipcRenderer.invoke('ytmd:get-config', id) as Promise<Config>,
window.ipcRenderer.invoke('peard:get-config', id) as Promise<Config>,
setConfig: async (newConfig) => {
await window.ipcRenderer.invoke('ytmd:set-config', id, newConfig);
await window.ipcRenderer.invoke('peard:set-config', id, newConfig);
},
ipc: {
send: (event: string, ...args: unknown[]) => {

View File

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

View File

@ -1,5 +1,5 @@
/**
* Overriding YouTube Music style
* Overriding default style
*/
/* Allow window dragging */
@ -49,7 +49,7 @@ ytmusic-cast-button {
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 > picture > img {
-webkit-user-drag: none;
@ -86,4 +86,4 @@ tp-yt-paper-item.ytmusic-guide-entry-renderer::before {
tp-yt-iron-dropdown,
tp-yt-paper-dialog {
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 RATIO_KEY = '--ytmusic-album-color-ratio';
export default createPlugin<
unknown,
unknown,
{
color?: ColorInstance;
darkColor?: ColorInstance;
type Config = {
enabled: boolean;
ratio: number;
enableSeekbar: boolean;
};
playerPage: HTMLElement | null;
navBarBackground: HTMLElement | null;
ytmusicPlayerBar: HTMLElement | null;
playerBarBackground: HTMLElement | null;
sidebarBig: HTMLElement | null;
sidebarSmall: HTMLElement | null;
ytmusicAppLayout: HTMLElement | null;
type Renderer = {
getMixedColor(
color: string,
key: string,
alpha?: number,
ratioMultiply?: number,
): string;
updateColor(alpha: number): void;
onConfigChange(newConfig: Config): void;
};
getMixedColor(
color: string,
key: string,
alpha?: number,
ratioMultiply?: number,
): string;
updateColor(alpha: number): void;
},
{
enabled: boolean;
ratio: number;
}
>({
export default createPlugin({
name: () => t('plugins.album-color-theme.name'),
description: () => t('plugins.album-color-theme.description'),
restartNeeded: false,
config: {
enabled: false,
ratio: 0.5,
},
enableSeekbar: true,
} satisfies Config as Config,
stylesheets: [style],
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];
@ -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: {
playerPage: null,
navBarBackground: null,
ytmusicPlayerBar: null,
playerBarBackground: null,
sidebarBig: null,
sidebarSmall: null,
ytmusicAppLayout: null,
playerPage: null as HTMLElement | null,
navBarBackground: null as HTMLElement | null,
ytmusicPlayerBar: null as HTMLElement | null,
playerBarBackground: null as HTMLElement | null,
sidebarBig: null as HTMLElement | null,
sidebarSmall: null as HTMLElement | 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.navBarBackground = document.querySelector<HTMLElement>(
'#nav-bar-background',
@ -94,14 +95,11 @@ export default createPlugin<
'#mini-guide-background',
);
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();
document.addEventListener('videodatachange', async (event) => {
@ -152,7 +150,7 @@ export default createPlugin<
alpha = value;
}
}
this.updateColor(alpha ?? 1);
(this as Renderer).updateColor(alpha ?? 1);
});
},
onConfigChange(config) {
@ -160,8 +158,15 @@ export default createPlugin<
RATIO_KEY,
`${~~(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})`;
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-1-alpha-98': 'rgba(40,40,40,0.98)',
'--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]) => {
const key = colorKeyMap[variable] ?? COLOR_KEY;
const ratio = ratioMap[variable] ?? undefined;
document.documentElement.style.setProperty(
variable,
this.getMixedColor(color, COLOR_KEY, alpha),
getMixedColor(color, key, alpha, ratio),
'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 {
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 backend from './backend';
import { t } from '@/i18n';
import { APPLICATION_NAME, t } from '@/i18n';
export interface MusicWidgetConfig {
enabled: boolean;
@ -12,7 +12,10 @@ export const defaultConfig: MusicWidgetConfig = {
export default createPlugin({
name: () => t('plugins.amuse.name'),
description: () => t('plugins.amuse.description'),
description: () =>
t('plugins.amuse.description', {
applicationName: APPLICATION_NAME,
}),
addedVersion: '3.7.X',
restartNeeded: true,
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 { OpenAPIHono as Hono } from '@hono/zod-openapi';
import { cors } from 'hono/cors';
@ -11,6 +15,8 @@ import { createBackend } from '@/utils';
import { JWTPayloadSchema } from './scheme';
import { registerAuth, registerControl, registerWebsocket } from './routes';
import { APPLICATION_NAME } from '@/i18n';
import { type APIServerConfig, AuthStrategy } from '../config';
import type { BackendType } from './types';
@ -29,41 +35,45 @@ export const backend = createBackend<BackendType, APIServerConfig>({
this.songInfo = songInfo;
});
ctx.ipc.on('ytmd:player-api-loaded', () => {
ctx.ipc.send('ytmd:setup-seeked-listener');
ctx.ipc.send('ytmd:setup-time-changed-listener');
ctx.ipc.send('ytmd:setup-repeat-changed-listener');
ctx.ipc.send('ytmd:setup-like-changed-listener');
ctx.ipc.send('ytmd:setup-volume-changed-listener');
ctx.ipc.send('ytmd:setup-shuffle-changed-listener');
ctx.ipc.on('peard:player-api-loaded', () => {
ctx.ipc.send('peard:setup-seeked-listener');
ctx.ipc.send('peard:setup-time-changed-listener');
ctx.ipc.send('peard:setup-repeat-changed-listener');
ctx.ipc.send('peard:setup-like-changed-listener');
ctx.ipc.send('peard:setup-volume-changed-listener');
ctx.ipc.send('peard:setup-shuffle-changed-listener');
});
ctx.ipc.on(
'ytmd:repeat-changed',
'peard:repeat-changed',
(mode: RepeatMode) => (this.currentRepeatMode = mode),
);
ctx.ipc.on(
'ytmd:volume-changed',
'peard:volume-changed',
(newVolumeState: VolumeState) => (this.volumeState = newVolumeState),
);
this.run(config.hostname, config.port);
this.run(config);
},
stop() {
this.end();
},
onConfigChange(config) {
const old = this.oldConfig;
if (
this.oldConfig?.hostname === config.hostname &&
this.oldConfig?.port === config.port
old?.hostname === config.hostname &&
old?.port === config.port &&
old?.useHttps === config.useHttps &&
old?.certPath === config.certPath &&
old?.keyPath === config.keyPath
) {
this.oldConfig = config;
return;
}
this.end();
this.run(config.hostname, config.port);
this.run(config);
this.oldConfig = config;
},
@ -138,7 +148,7 @@ export const backend = createBackend<BackendType, APIServerConfig>({
openapi: '3.1.0',
info: {
version: '1.0.0',
title: 'Youtube Music API Server',
title: `${APPLICATION_NAME} API Server`,
description:
'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);
},
run(hostname, port) {
run(config) {
if (!this.app) return;
try {
this.server = serve({
fetch: this.app.fetch.bind(this.app),
port,
hostname,
});
const serveOptions =
config.useHttps && config.certPath && config.keyPath
? {
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) {
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 { APIServerConfig } from '../../config';
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';
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({
method: 'get',
path: `/api/${API_VERSION}/queue`,
@ -630,7 +650,7 @@ export const register = (
app.openapi(routes.getShuffleState, async (ctx) => {
const stateResponsePromise = new Promise<boolean>((resolve) => {
ipcMain.once(
'ytmd:get-shuffle-response',
'peard:get-shuffle-response',
(_, isShuffled: boolean | undefined) => {
return resolve(!!isShuffled);
},
@ -693,7 +713,7 @@ export const register = (
app.openapi(routes.getFullscreenState, async (ctx) => {
const stateResponsePromise = new Promise<boolean>((resolve) => {
ipcMain.once(
'ytmd:set-fullscreen',
'peard:set-fullscreen',
(_, isFullscreen: boolean | undefined) => {
return resolve(!!isFullscreen);
},
@ -728,7 +748,7 @@ export const register = (
// Queue
const queueInfo = async (ctx: Context) => {
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);
});
@ -748,6 +768,63 @@ export const register = (
app.openapi(routes.oldQueueInfo, 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) => {
const { videoId, insertPosition } = ctx.req.valid('json');
controller.addSongToQueue(videoId, insertPosition);

View File

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

View File

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

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