Compare commits

..

132 Commits

Author SHA1 Message Date
e650aae491 Bump version to 3.1.0 2023-12-11 08:00:42 +09:00
49058dbeab chore: update pnpm-lock.yaml 2023-12-11 07:59:42 +09:00
31d2d91566 Translated using Weblate (Japanese)
Currently translated at 100.0% (294 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ja/
2023-12-10 23:57:22 +01:00
abf2a52b46 fix: in-player adblocker inject timing issue
- fix #1478
2023-12-11 07:46:01 +09:00
d0ca10e1a1 Translated using Weblate (Chinese (Simplified))
Currently translated at 1.0% (3 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2023-12-10 22:57:39 +01:00
fe99a04174 Translated using Weblate (Portuguese)
Currently translated at 31.6% (93 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2023-12-10 22:57:39 +01:00
916900ae6a Translated using Weblate (Spanish)
Currently translated at 100.0% (294 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 22:57:39 +01:00
826c9ba48e fix(package.json): fix RPM version libuuid issue
- fix #1508
2023-12-11 06:57:32 +09:00
7783cc5f30 Translated using Weblate (Chinese (Simplified))
Currently translated at 0.3% (1 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hans/
2023-12-10 22:49:58 +01:00
035d7f19ea Translated using Weblate (Spanish)
Currently translated at 99.3% (292 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 22:49:58 +01:00
294cf15d58 Translated using Weblate (Spanish)
Currently translated at 99.3% (292 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 22:49:58 +01:00
11fa0dcbc6 Translated using Weblate (Spanish)
Currently translated at 99.3% (292 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 22:49:58 +01:00
85b53db439 Translated using Weblate (Korean)
Currently translated at 100.0% (294 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ko/
2023-12-10 22:49:57 +01:00
200df100f4 Translated using Weblate (English)
Currently translated at 100.0% (294 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2023-12-10 22:49:57 +01:00
ba202a8572 chore(deps): update dependency electron to v28 (#1498)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: JellyBrick <shlee1503@naver.com>
2023-12-11 06:44:59 +09:00
daf05239a1 Enable/Disable Navigation without restart (#1507) 2023-12-11 04:21:17 +09:00
b73b5735ec Translated using Weblate (Spanish)
Currently translated at 90.8% (267 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 04:08:22 +01:00
292248dd35 Translated using Weblate (Spanish)
Currently translated at 90.8% (267 of 294 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-10 04:08:22 +01:00
2e240541c8 Turkish(tr)_lang_file (#1513) 2023-12-10 08:41:46 +09:00
ab62ae3682 chore(deps): update dependency ws to v8.15.0 2023-12-10 04:28:02 +09:00
5c3f5d05d3 chore(deps): update pnpm to v8.12.0 2023-12-09 12:38:32 +09:00
c81af537b6 Translated using Weblate (Spanish)
Currently translated at 83.5% (244 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-09 01:37:30 +00:00
7295c73371 Translated using Weblate (Spanish)
Currently translated at 83.5% (244 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-09 01:37:29 +00:00
5a65e08a94 Translated using Weblate (Spanish)
Currently translated at 83.5% (244 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-09 01:37:28 +00:00
45e5bc7df5 Skip Disliked Songs (#1505)
* Added skip-disliked-songs

* Changed it to activate and deactivate without restart

* Added waiter for Element

* MutationObserver can be null

Co-authored-by: JellyBrick <shlee1503@naver.com>

* MutationObserver could not exist

Co-authored-by: JellyBrick <shlee1503@naver.com>

* Update src/plugins/skip-disliked-songs/index.ts

Co-authored-by: JellyBrick <shlee1503@naver.com>

* Replaced double quotes with single quotes

---------

Co-authored-by: JellyBrick <shlee1503@naver.com>
2023-12-09 10:37:17 +09:00
a81cb9515c Translated using Weblate (Spanish)
Currently translated at 39.7% (116 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 21:55:06 +01:00
88e5cc2728 Translated using Weblate (Spanish)
Currently translated at 39.7% (116 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 21:55:06 +01:00
1685648328 Translated using Weblate (Spanish)
Currently translated at 39.0% (114 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 21:54:40 +01:00
9334adacf6 Translated using Weblate (Spanish)
Currently translated at 39.0% (114 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 21:54:39 +01:00
efbe557dce Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2023-12-08 20:37:43 +01:00
52b2625486 Translated using Weblate (Spanish)
Currently translated at 10.6% (31 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 20:37:43 +01:00
aa0424db08 Translated using Weblate (Spanish)
Currently translated at 10.6% (31 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 20:37:43 +01:00
157619aa4f chore(deps): update dependency rollup to v4.7.0 2023-12-09 03:23:17 +09:00
ce637968b2 Translated using Weblate (Italian)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-08 11:32:34 +01:00
b2a3ed7428 Translated using Weblate (Spanish)
Currently translated at 4.1% (12 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 11:08:18 +01:00
ca856e4d88 Translated using Weblate (Spanish)
Currently translated at 4.1% (12 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-08 11:08:17 +01:00
2ef2536766 Translated using Weblate (Italian)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-08 11:08:17 +01:00
1b22633388 Translated using Weblate (Italian)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-08 11:08:17 +01:00
db306ad4e0 Translated using Weblate (Italian)
Currently translated at 65.4% (191 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 19:20:03 +01:00
34a44cb9c6 Translated using Weblate (Italian)
Currently translated at 65.4% (191 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 19:20:03 +01:00
8c499a6e20 Translated using Weblate (Italian)
Currently translated at 51.3% (150 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 18:58:33 +01:00
3b816a6fd9 Translated using Weblate (Italian)
Currently translated at 51.3% (150 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 18:58:33 +01:00
35aba8e25a Translated using Weblate (Italian)
Currently translated at 46.9% (137 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 18:52:44 +01:00
0eb6723f27 Translated using Weblate (Italian)
Currently translated at 46.9% (137 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 18:52:44 +01:00
2250ec9372 Translated using Weblate (Spanish)
Currently translated at 1.0% (3 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/es/
2023-12-07 13:48:08 +00:00
ef02b53284 Translated using Weblate (Italian)
Currently translated at 42.1% (123 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 13:48:08 +00:00
57df7cf3f9 Translated using Weblate (Italian)
Currently translated at 42.1% (123 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 13:48:07 +00:00
f0cd540726 Translated using Weblate (Ukrainian)
Currently translated at 1.0% (3 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/uk/
2023-12-07 13:48:06 +00:00
7e919395eb chore(deps): update dependency typescript to v5.3.3 2023-12-07 10:03:26 +09:00
facc7252c2 fix(deps): update dependency i18next to v23.7.8 2023-12-07 10:03:06 +09:00
09b8943f69 Translated using Weblate (Italian)
Currently translated at 32.1% (94 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-07 01:45:31 +01:00
aa84ffc7e1 Translated using Weblate (French)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-07 01:45:31 +01:00
10162c948b chore: Create zh-CN.json 2023-12-07 09:45:08 +09:00
e8c1cbdd94 BC-BREAK: bump node engines version 2023-12-07 02:52:14 +09:00
5459f623ec Translated using Weblate (Italian)
Currently translated at 32.1% (94 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 18:59:01 +01:00
2a2cba3539 Translated using Weblate (Italian)
Currently translated at 32.1% (94 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 18:59:01 +01:00
1ce84607e6 Translated using Weblate (Portuguese)
Currently translated at 30.8% (90 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2023-12-05 17:59:26 +01:00
075c54d39f Translated using Weblate (Portuguese)
Currently translated at 30.8% (90 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pt/
2023-12-05 17:59:26 +01:00
aabb826cb8 Translated using Weblate (Italian)
Currently translated at 13.0% (38 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 17:59:26 +01:00
3791b1ae1c Translated using Weblate (Italian)
Currently translated at 13.0% (38 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 17:59:26 +01:00
d4b87d098b Added translation using Weblate (Portuguese) 2023-12-05 17:39:07 +01:00
57e9c13d13 Translated using Weblate (Italian)
Currently translated at 6.8% (20 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 05:59:05 +01:00
e48e570e69 Translated using Weblate (Italian)
Currently translated at 6.8% (20 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-05 05:59:05 +01:00
b7d4d5b022 Translated using Weblate (Czech)
Currently translated at 61.3% (179 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-05 05:59:05 +01:00
dc8b0173e9 Added translation using Weblate (Spanish) 2023-12-05 05:59:05 +01:00
840729126e fix(macos): fix app crash in macOS 2023-12-05 13:36:23 +09:00
ed90b97a92 chore(deps): update dependency vite to v4.5.1 2023-12-05 13:29:45 +09:00
bbe4f07651 chore(deps): update dependency @typescript-eslint/eslint-plugin to v6.13.2 (#1452)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2023-12-05 13:29:23 +09:00
66df83a86d fix: Homebrew latest release url parsing (#1496)
Co-authored-by: Gian Marco Cinalli <gianmarco.cinalli@immobiliare.it>
2023-12-05 10:56:59 +09:00
dfedd8f091 Translated using Weblate (Italian)
Currently translated at 4.1% (12 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/it/
2023-12-04 19:15:58 +01:00
58ec6eebfb Translated using Weblate (Czech)
Currently translated at 58.5% (171 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 19:15:58 +01:00
3ba4130bc6 Translated using Weblate (Czech)
Currently translated at 58.5% (171 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 19:15:58 +01:00
7dbbf38e78 Added translation using Weblate (Italian) 2023-12-04 17:31:24 +01:00
51e04162a7 Translated using Weblate (Czech)
Currently translated at 57.1% (167 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 09:58:03 +01:00
d3325e2490 Translated using Weblate (Czech)
Currently translated at 56.1% (164 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 05:05:31 +01:00
d2708ee32f Translated using Weblate (Czech)
Currently translated at 56.1% (164 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 05:05:31 +01:00
781a09c717 Translated using Weblate (Czech)
Currently translated at 55.4% (162 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 04:55:52 +01:00
11605293dd Translated using Weblate (Czech)
Currently translated at 55.4% (162 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-04 04:55:52 +01:00
3f0b946190 Translated using Weblate (Czech)
Currently translated at 52.7% (154 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:49:11 +01:00
74972f053a Translated using Weblate (Czech)
Currently translated at 52.7% (154 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:49:11 +01:00
d85190ace1 Translated using Weblate (Czech)
Currently translated at 51.7% (151 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:39:39 +01:00
5755b4ac7f Translated using Weblate (Czech)
Currently translated at 51.7% (151 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:39:38 +01:00
3c24f2edcd Translated using Weblate (Czech)
Currently translated at 51.3% (150 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:26:36 +01:00
6828520853 Translated using Weblate (Czech)
Currently translated at 51.3% (150 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 23:26:36 +01:00
2ba7dddb95 Translated using Weblate (Czech)
Currently translated at 50.6% (148 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 22:17:53 +00:00
57a8922d04 Translated using Weblate (Czech)
Currently translated at 51.0% (149 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 22:17:53 +00:00
640098860a Translated using Weblate (Czech)
Currently translated at 51.0% (149 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-03 22:17:52 +00:00
53384d9f3b Translated using Weblate (Russian)
Currently translated at 13.6% (40 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/ru/
2023-12-03 22:17:51 +00:00
89d8d98a35 fix: remove import 'process' 2023-12-04 03:53:24 +09:00
7b78ba6761 Translated using Weblate (Polish)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/pl/
2023-12-03 17:43:49 +01:00
3926a9a0c0 Translated using Weblate (French)
Currently translated at 99.6% (291 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-03 17:43:48 +01:00
0708cd5a38 Added translation using Weblate (Polish) 2023-12-03 11:35:51 +01:00
e20e9ca771 Added translation using Weblate (Ukrainian) 2023-12-03 10:26:51 +01:00
be1038bafd Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-03 01:50:48 +01:00
ebc087963b Translated using Weblate (French)
Currently translated at 85.2% (249 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-03 01:50:48 +01:00
020bdc0811 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 23:23:55 +00:00
a0d1ad6a47 Translated using Weblate (French)
Currently translated at 19.1% (56 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 23:23:54 +00:00
62e5679791 fix(deps): update dependency ts-morph to v21 2023-12-03 07:50:56 +09:00
35568bd299 Translated using Weblate (Chinese (Traditional))
Currently translated at 46.5% (136 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 21:13:54 +01:00
1e40b377af Translated using Weblate (Chinese (Traditional))
Currently translated at 46.5% (136 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 21:13:54 +01:00
1073de1b45 Translated using Weblate (Czech)
Currently translated at 46.5% (136 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/cs/
2023-12-02 21:13:45 +01:00
1d5788acaf Translated using Weblate (Chinese (Traditional))
Currently translated at 35.6% (104 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 20:27:58 +01:00
8fb446588d Translated using Weblate (Chinese (Traditional))
Currently translated at 35.6% (104 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 20:27:58 +01:00
6cec34b2ac Translated using Weblate (Chinese (Traditional))
Currently translated at 35.6% (104 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 20:27:58 +01:00
763d3e8f74 Translated using Weblate (German)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2023-12-02 20:27:58 +01:00
7da0a913f1 Update changelog for v3.0.2 2023-12-02 18:39:16 +00:00
ca04c4561b Bump version to 3.0.2 2023-12-03 03:30:08 +09:00
7d8fbf49a8 Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:34 +01:00
75e15b948d Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:28 +01:00
125b69fd75 Translated using Weblate (Chinese (Traditional))
Currently translated at 23.6% (69 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 19:29:28 +01:00
a68d6b64dd Translated using Weblate (French)
Currently translated at 8.9% (26 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 19:29:28 +01:00
a60d4264dc fix: pnpm install doesn't refresh lock file 2023-12-03 03:16:07 +09:00
9e2c6b1afa fix: update pnpm-lock.yaml 2023-12-03 03:07:11 +09:00
14965a93e9 fix: simple-youtube-age-restriction-bypass 2023-12-03 02:49:17 +09:00
f62664b6a5 fix(adblocker): fix In-Player adblocker
- resolves #1478
2023-12-03 02:06:49 +09:00
60cb7f32f1 fix(in-app-menu/i18n): fix hide-dom-window-controls 2023-12-03 01:00:33 +09:00
008b3ad710 Translated using Weblate (Chinese (Traditional))
Currently translated at 1.0% (3 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/zh_Hant/
2023-12-02 16:59:02 +01:00
8cae64f496 fix(menu): crash on linux
- resolves #1477
2023-12-03 00:54:36 +09:00
5cdc1bc762 Update translation files
Updated by "Remove blank strings" hook in Weblate.

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/
2023-12-02 16:29:40 +01:00
15c455105b Translated using Weblate (French)
Currently translated at 8.5% (25 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 16:29:40 +01:00
14407a98c9 Translated using Weblate (English)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/en/
2023-12-02 16:29:40 +01:00
0d004d5caf Added translation using Weblate (Chinese (Traditional)) 2023-12-02 16:29:40 +01:00
4b75a2405c Update changelog for v3.0.1 2023-12-02 14:32:40 +00:00
1f7e28b6fb Bump version to 3.0.1 (hotfix) 2023-12-02 23:23:26 +09:00
c41b2ce861 fix: if locale is not present, set to unspecified 2023-12-02 23:23:13 +09:00
7f02afc5a6 Translated using Weblate (French)
Currently translated at 3.4% (10 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/fr/
2023-12-02 14:14:53 +00:00
496b3ffc1b fix(adblocker): remove unused statement 2023-12-02 23:14:04 +09:00
e9a395f67a hotfix(adblocker): fix #1475 2023-12-02 23:13:21 +09:00
0660f0b7ce Translated using Weblate (German)
Currently translated at 100.0% (292 of 292 strings)

Translation: th-ch/youtube-music/i18n
Translate-URL: https://hosted.weblate.org/projects/youtube-music/i18n/de/
2023-12-02 14:41:50 +01:00
3ac09b9dc1 Added translation using Weblate (French) 2023-12-02 14:41:50 +01:00
fe4904a4af fix(index): i18n translate 2023-12-02 22:35:49 +09:00
d8c8bd17ec Update changelog for v3.0.0 2023-12-02 13:21:02 +00:00
31 changed files with 4318 additions and 678 deletions

View File

@ -2,8 +2,61 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
#### [v3.0.2](https://github.com/th-ch/youtube-music/compare/v3.0.1...v3.0.2)
- fix(adblocker): fix In-Player adblocker [`#1478`](https://github.com/th-ch/youtube-music/issues/1478)
- fix(menu): crash on linux [`#1477`](https://github.com/th-ch/youtube-music/issues/1477)
- fix: update pnpm-lock.yaml [`9e2c6b1`](https://github.com/th-ch/youtube-music/commit/9e2c6b1afa33b5708853c8328946e68ec45b09c3)
- Translated using Weblate (Chinese (Traditional)) [`125b69f`](https://github.com/th-ch/youtube-music/commit/125b69fd75a05c3eb893886119e2d9f2332b3e56)
- Translated using Weblate (French) [`15c4551`](https://github.com/th-ch/youtube-music/commit/15c455105b5100a8ee2bd0a4631548d3d455f047)
#### [v3.0.1](https://github.com/th-ch/youtube-music/compare/v3.0.0...v3.0.1)
> 2 December 2023
- hotfix(adblocker): fix #1475 [`#1475`](https://github.com/th-ch/youtube-music/issues/1475)
- Translated using Weblate (French) [`7f02afc`](https://github.com/th-ch/youtube-music/commit/7f02afc5a6839adfe8437d4e2cc8dee13a93b311)
- Update changelog for v3.0.0 [`d8c8bd1`](https://github.com/th-ch/youtube-music/commit/d8c8bd17ecfbdf96ebd29eb4c5748c07876ee242)
- Translated using Weblate (German) [`0660f0b`](https://github.com/th-ch/youtube-music/commit/0660f0b7ce6895ef5800f48ade1da2d7f8e0c1f7)
### [v3.0.0](https://github.com/th-ch/youtube-music/compare/v2.2.0...v3.0.0)
> 2 December 2023
- Add text to Translation section [`#1470`](https://github.com/th-ch/youtube-music/pull/1470)
- fix(deps): update dependency youtubei.js to v8 [`#1473`](https://github.com/th-ch/youtube-music/pull/1473)
- chore(deps): update dependency electron to v27.1.3 [`#1471`](https://github.com/th-ch/youtube-music/pull/1471)
- fix(deps): update dependency @xhayper/discord-rpc to v1.1.1 [`#1472`](https://github.com/th-ch/youtube-music/pull/1472)
- feat: add support i18n [`#1468`](https://github.com/th-ch/youtube-music/pull/1468)
- chore(deps): update dependency electron to v27.1.2 [`#1441`](https://github.com/th-ch/youtube-music/pull/1441)
- Nicer Readme [`#1439`](https://github.com/th-ch/youtube-music/pull/1439)
- Windows Zoom, ScaleFactor [`#1402`](https://github.com/th-ch/youtube-music/pull/1402)
- chore(deps): bump axios from 1.5.1 to 1.6.1 [`#1400`](https://github.com/th-ch/youtube-music/pull/1400)
- Updated mac icon to better reflect the Mac styling [`#1395`](https://github.com/th-ch/youtube-music/pull/1395)
- feat: rename plugins to clarify context [`#1392`](https://github.com/th-ch/youtube-music/pull/1392)
- feat: refactor plugin utils [`#1391`](https://github.com/th-ch/youtube-music/pull/1391)
- feat: plugin auto-importer with `vite-plugin-resolve` [`#1385`](https://github.com/th-ch/youtube-music/pull/1385)
- feat: migrate from `rollup` to `electron-vite` [`#1364`](https://github.com/th-ch/youtube-music/pull/1364)
- feat: enable `context-isolation` [`#1361`](https://github.com/th-ch/youtube-music/pull/1361)
- fix: add workaround for `podcast` type video [`#1362`](https://github.com/th-ch/youtube-music/pull/1362)
- fix: fix broken menu-layout [`#1360`](https://github.com/th-ch/youtube-music/pull/1360)
- Add Homebrew cask install option for MacOS. [`#1357`](https://github.com/th-ch/youtube-music/pull/1357)
- feat: changed Zoom shortcuts to standard [`#1458`](https://github.com/th-ch/youtube-music/issues/1458)
- fix(in-app-menu): fix #1436 [`#1436`](https://github.com/th-ch/youtube-music/issues/1436)
- fix(discord): update application client-id [`#1431`](https://github.com/th-ch/youtube-music/issues/1431)
- chore(deps): update dependency electron to v27.0.4 [`#1324`](https://github.com/th-ch/youtube-music/issues/1324)
- fix(in-app-menu): panel should close with the window when it is closed [`#1389`](https://github.com/th-ch/youtube-music/issues/1389)
- fix: change titleBarOverlay height based on zoomFactor [`#1375`](https://github.com/th-ch/youtube-music/issues/1375)
- fix: fixed an issue if "Always on top" is enabled, the dialog is displayed below the window [`#1379`](https://github.com/th-ch/youtube-music/issues/1379)
- fix: fix winget version (fix #1363) [`#1363`](https://github.com/th-ch/youtube-music/issues/1363)
- feat: run prettier [`a3104fd`](https://github.com/th-ch/youtube-music/commit/a3104fda4b0d58b076d0c737111636a66e468acc)
- Translated using Weblate (Korean) [`b4b7ad8`](https://github.com/th-ch/youtube-music/commit/b4b7ad824b8c489ae483eba139b46e5b200231fc)
- Translated using Weblate (English) [`d2eabaa`](https://github.com/th-ch/youtube-music/commit/d2eabaa4bbccd89eae529eae52cec035e8e2620c)
#### [v2.2.0](https://github.com/th-ch/youtube-music/compare/v2.1.3...v2.2.0)
> 27 October 2023
- feat(ambient-mode): add config for `ambient-mode` plugin [`#1349`](https://github.com/th-ch/youtube-music/pull/1349)
- bump deps [`4248d20`](https://github.com/th-ch/youtube-music/commit/4248d20e8ef926ce7b1d07eb83743755a341d9f6)
- Update changelog for v2.1.3 [`dc73561`](https://github.com/th-ch/youtube-music/commit/dc73561c8a8acfc8ba91aff2dc78e4267869f2fd)

View File

@ -1,7 +1,7 @@
{
"name": "youtube-music",
"productName": "YouTube Music",
"version": "3.0.0",
"version": "3.1.0",
"description": "YouTube Music Desktop App - including custom plugins",
"main": "./dist/main/index.js",
"license": "MIT",
@ -77,6 +77,11 @@
"rpm"
]
},
"rpm":{
"depends":[
"/usr/lib64/libuuid.so.1"
]
},
"snap": {
"slots": [
{
@ -114,12 +119,12 @@
"typecheck": "tsc -p tsconfig.json --noEmit"
},
"engines": {
"node": ">=16.0.0"
"node": ">=18.0.0"
},
"pnpm": {
"overrides": {
"usocket": "1.0.1",
"rollup": "4.6.1",
"rollup": "4.7.0",
"node-gyp": "10.0.1",
"xml2js": "0.6.2",
"node-fetch": "3.3.2",
@ -156,30 +161,30 @@
"filenamify": "6.0.0",
"howler": "2.2.4",
"html-to-text": "9.0.5",
"i18next": "23.7.7",
"i18next": "23.7.8",
"keyboardevent-from-electron-accelerator": "2.0.0",
"keyboardevents-areequal": "0.2.2",
"node-html-parser": "6.1.11",
"node-id3": "0.2.6",
"serve": "14.2.1",
"simple-youtube-age-restriction-bypass": "git+https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass.git#v2.5.8",
"ts-morph": "20.0.0",
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
"ts-morph": "21.0.1",
"vudio": "2.1.1",
"x11": "2.3.0",
"youtubei.js": "8.0.0"
},
"devDependencies": {
"@playwright/test": "1.40.1",
"@playwright/test": "1.41.0-alpha-dec-10-2023",
"@total-typescript/ts-reset": "0.5.1",
"@types/electron-localshortcut": "3.1.3",
"@types/howler": "2.2.11",
"@types/html-to-text": "9.0.4",
"@typescript-eslint/eslint-plugin": "6.13.1",
"@typescript-eslint/eslint-plugin": "6.13.2",
"bufferutil": "4.0.8",
"builtin-modules": "3.3.0",
"cross-env": "7.0.3",
"del-cli": "5.1.0",
"electron": "27.1.3",
"electron": "28.0.0",
"electron-builder": "24.9.1",
"electron-devtools-installer": "3.2.0",
"electron-vite": "1.0.29",
@ -190,14 +195,14 @@
"eslint-plugin-prettier": "5.0.1",
"glob": "10.3.10",
"node-gyp": "10.0.1",
"playwright": "1.40.1",
"rollup": "4.6.1",
"typescript": "5.3.2",
"playwright": "1.41.0-alpha-dec-10-2023",
"rollup": "4.7.0",
"typescript": "5.3.3",
"utf-8-validate": "6.0.3",
"vite": "4.5.0",
"vite": "4.5.1",
"vite-plugin-inspect": "0.8.1",
"vite-plugin-resolve": "2.5.1",
"ws": "8.14.2"
"ws": "8.15.0"
},
"auto-changelog": {
"hideCredit": true,
@ -205,5 +210,5 @@
"unreleased": true,
"output": "changelog.md"
},
"packageManager": "pnpm@8.11.0"
"packageManager": "pnpm@8.12.0"
}

1139
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
export interface LanguageResources {
[lang: string]: {
translation: Record<string, unknown> & {
language: {
language?: {
name: string;
'local-name': string;
code: string;

View File

@ -2,8 +2,13 @@
"common": {
"console": {
"plugins": {
"execute-failed": "Selhalo execute pluginu {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} executed at {{ms}}ms",
"initialize-failed": "Selhala initialize \"{{pluginName}}\" pluginu",
"load-all": "Načítání všech pluginů",
"loaded": "Plugin \"{{pluginName}}\" načten"
"load-failed": "Selhalo načtení \"{{pluginName}}\" pluginu",
"loaded": "Plugin \"{{pluginName}}\" načten",
"unload-failed": "Selhalo unload \"{{pluginName}}\" pluginu"
}
}
},
@ -14,34 +19,52 @@
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Dokončeno načítání. DevTools otevřeny"
},
"i18n": {
"loaded": "i18n načteno"
},
"second-instance": {
"receive-command": "Received command přes protokol: \"{{command}}\""
"receive-command": "Přijmut příkaz přes protokol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "CSS soubor \"{{cssFile}}\" neexistuje, ignoring"
"css-file-not-found": "CSS soubor \"{{cssFile}}\" neexistuje, ignorováno"
},
"unresponsive": {
"details": "Unresponsive chyba!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Čištění mezipaměti aplikace"
},
"window": {
"tried-to-render-offscreen": "Okno se pokusilo render na pozadí, Velikost okna ={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu je skryté, use 'Alt' to show it (nebo 'Escape', pokud používáte in-app-menu)",
"message": "Skrýt Menu je povoleno",
"title": "Skrýt Menu Povolené"
},
"need-to-restart": {
"buttons": {
"later": "Později",
"restart-now": "Restartovat nyní"
}
},
"detail": "\"{{pluginName}}\" plugin vyžaduje restart, aby se projevil",
"message": "\"{{pluginName}}\" potřebuje restartovat",
"title": "Restart vyžadován"
},
"unresponsive": {
"buttons": {
"quit": "Ukončení",
"quit": "Ukončit",
"relaunch": "Spustit znovu",
"wait": "Počkat"
},
"detail": "Omlouváme se za způsobené nepříjemnosti! prosím vyberte, co dělat:",
"message": "Aplikace nereaguje"
"message": "Aplikace nereaguje",
"title": "Okno nereaguje"
},
"update-available": {
"buttons": {
@ -49,6 +72,7 @@
"download": "Stáhnout",
"ok": "OK"
},
"detail": "Nová verze je k dispozici a lze stáhnout na {{downloadLink}}",
"message": "Nová verze je dostupná",
"title": "Aktualizace k dispozici"
}
@ -61,6 +85,7 @@
"copy-current-url": "Kopírovat aktuální URL adresu",
"go-back": "Jít zpátky",
"go-forward": "Jít dopředu",
"quit": "Ukončit",
"restart": "Restartovat aplikaci"
}
},
@ -70,22 +95,29 @@
"advanced-options": {
"label": "Pokročilé možnosti",
"submenu": {
"auto-reset-app-cache": "Při spuštění aplikace, se resetuje její mezipaměť",
"disable-hardware-acceleration": "Vypnout hardware zrychlení",
"edit-config-json": "Upravit config.json",
"override-user-agent": "Přepsat User-Agent",
"restart-on-config-changes": "Restartovat na změny v configu",
"restart-on-config-changes": "Restartovat na změny v konfiguraci",
"set-proxy": {
"label": "Nastavit proxy",
"prompt": {
"label": "Zadejte adresu proxy: (nechejte prázdné to disable)",
"placeholder": "Příklad: socks5://127.0.0.1:9999",
"title": "Nastavit proxy"
}
}
},
"toggle-dev-tools": "Toggle Vývojářské nástroje"
}
},
"always-on-top": "Vždy na vrchu",
"auto-update": "Automatické aktualizace",
"hide-menu": {
"dialog": {
"message": "Menu bude skryto na dalším launch, use [Alt] to show it (nebo backtick [`] pokud používáte in-app-menu)",
"title": "Skrýt Menu Povoleno"
},
"label": "Skrýt menu"
},
"language": {
@ -98,24 +130,33 @@
"to-help-translate": "Chcete pomoc s překladem? Klikněte zde"
}
},
"resume-on-start": "Resume poslední písničku při spuštění aplikace",
"single-instance-lock": "Zámek pro jednu instanci",
"starting-page": {
"label": "Úvodní stránka",
"unset": "Nenastaveno"
},
"tray": {
"submenu": {
"enabled-and-hide-app": "Povolit a skrýt aplikaci",
"enabled-and-show-app": "Enabled a show aplikaci",
"play-pause-on-click": "Přehrát/Pozastavit na kliknutí"
}
},
"visual-tweaks": {
"label": "Vzhledové vylepšení",
"submenu": {
"like-buttons": {
"default": "Výchozí",
"force-show": "Vynutit show",
"hide": "Schovat",
"label": "Like tlačítka"
},
"remove-upgrade-button": "Remove upgrade tlačítko",
"remove-upgrade-button": "Odebrat upgrade tlačítko",
"theme": {
"label": "Motiv",
"submenu": {
"import-css-file": "Import custom CSS soubor",
"import-css-file": "Import vlastní CSS soubor",
"no-theme": "Žádný motiv"
}
}
@ -128,7 +169,10 @@
"label": "Pluginy"
},
"view": {
"label": "Zobrazení",
"submenu": {
"force-reload": "Vynutit znovu načtení",
"reset-zoom": "Actual velikost",
"zoom-in": "Přiblížit",
"zoom-out": "Oddálit"
}
@ -136,7 +180,7 @@
},
"tray": {
"next": "Další",
"play-pause": "Hrát/Zastavit",
"play-pause": "Přehrát/Pozastavit",
"previous": "Minulý",
"quit": "Ukončit",
"restart": "Restartovat aplikaci",
@ -152,11 +196,11 @@
"name": "Blokovač reklam"
},
"album-color-theme": {
"description": "Použije dynamický motiv a visuální efekty based na paletě barev alba",
"name": "Album Color Motiv"
"description": "Použije dynamický motiv a vizuální efekty na základě palety barev alba",
"name": "Motiv podle barvy Alba"
},
"ambient-mode": {
"description": "Applies a lighting efekty by casting gentle colors z videa, into your screens pozadí.",
"description": "Applies a lighting efekty pomocí casting gentle barvy z videa, do vašeho screens pozadí.",
"menu": {
"blur-amount": {
"submenu": {
@ -196,15 +240,19 @@
},
"name": "Ambientní režim"
},
"audio-compressor": {
"name": "Audio kompresor"
},
"blur-nav-bar": {
"description": "Udělá navigační panel průhledným a rozmazaným"
"description": "Udělá navigační panel průhledným a rozmazaným",
"name": "Rozmazaný navigační Bar"
},
"bypass-age-restrictions": {
"description": "Obejít ověření věku na YouTube",
"name": "Obejít věková omezení"
},
"captions-selector": {
"description": "Titulkový selector pro YouTube Music audio tracks",
"description": "Titulkový selector pro zvukové stopy v YouTube Music",
"menu": {
"autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení"
@ -222,13 +270,15 @@
}
},
"compact-sidebar": {
"description": "Vždy set the sidebar in compact mode"
"description": "Vždy set the sidebar v kompaktním režimu",
"name": "Kompaktní Sidebar"
},
"crossfade": {
"description": "Crossfade mezi písničkami",
"menu": {
"advanced": "Pokročilý"
},
"name": "Prolínání [beta]",
"prompt": {
"options": {
"multi-input": {
@ -243,6 +293,9 @@
}
},
"disable-autoplay": {
"menu": {
"apply-once": "Applies jenom na spuštění aplikace"
},
"name": "Zrušit automatické přehrávání"
},
"discord": {
@ -256,6 +309,11 @@
"disconnected": "Odpojeno",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-youtube-music": "Hrát na YouTube Music"
},
"prompt": {
"set-inactivity-timeout": {
"label": "Zadejte inactivity timeout v sekundách:"
}
}
},
"downloader": {
@ -273,29 +331,34 @@
"ok": "OK"
},
"detail": "({{playlistSize}} písničky)",
"message": "Stahování Playlistu {{playlistTitle}}",
"message": "Stahování seznamu skladeb {{playlistTitle}}",
"title": "Stahování začalo"
}
},
"feedback": {
"done": "Hotovo: {{filePath}}",
"download-info": "Stahování {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Stahování: {{percent}}%",
"downloading": "Stahování…",
"downloading-counter": "Stahování {{current}}/{{total}}…",
"downloading-playlist": "Downloading playlist \"{{playlistTitle}}\" - {{playlistSize}} písničky ({{playlistId}})",
"downloading-playlist": "Stahování seznamu skladeb \"{{playlistTitle}}\" - {{playlistSize}} písničky ({{playlistId}})",
"error-while-downloading": "Chyba při stahování \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Složka {{playlistFolder}} již existuje",
"getting-playlist-info": "Getting informace o seznamu skladeb…",
"loading": "Načítání…",
"playlist-has-only-one-song": "Playlist má jenom jeden položku, downloading it directly",
"playlist-id-not-found": "Žádný playlist ID nenalezen",
"playlist-is-empty": "Playlist je prázdný",
"playlist-has-only-one-song": "Seznam skladeb má pouze jednu položku, downloading it directly",
"playlist-id-not-found": "Žádné ID seznamu skladeb nenalezeno",
"playlist-is-empty": "Seznam skladeb je prázdný",
"preparing-file": "Připravování souboru…",
"saving": "Ukládání…",
"trying-to-get-playlist-id": "Trying to get ID seznamu skladeb: {{playlistId}}",
"video-id-not-found": "Video nebylo nalezeno"
}
},
"description": "Stahuje MP3 / source audio přímo z rozhraní",
"menu": {
"choose-download-folder": "Vybrat download složku",
"download-playlist": "Stáhnout playlist",
"download-playlist": "Stáhnout seznam skladeb",
"skip-existing": "Přeskočit existující soubory"
},
"name": "Stahovač",
@ -306,13 +369,24 @@
"exponential-volume": {
"name": "Exponenciální hlasitost"
},
"in-app-menu": {
"description": "Dává menu-bars a fancy, tmavý nebo album-color vzhled"
},
"last-fm": {
"description": "Přidat scrobbling podporu pro Last.fm",
"name": "Last.fm"
},
"lumiastream": {
"description": "Přidává Lumia Stream podporu"
},
"lyrics-genius": {
"description": "Přidat lyrics podporu pro většinu písniček"
"description": "Přidat lyrics podporu pro většinu písniček",
"renderer": {
"fetched-lyrics": "Fetched lyrics pro Genius"
}
},
"navigation": {
"description": "Další/Zpátky navigační šipky přímo integrovány do rozhraní, jako ve vašem oblíbeném prohlížeči",
"name": "Navigace"
},
"no-google-login": {
@ -322,14 +396,17 @@
"notifications": {
"description": "Display oznámení when a písnička starts hraje (interactive notifications are available on Windows)",
"menu": {
"interactive": "Interaktivní oznámení",
"interactive-settings": {
"label": "Interactive Nastavení",
"submenu": {
"hide-button-text": "Skrýt text tlačítka",
"refresh-on-play-pause": "Refresh na Přehrát/Pozastavit",
"tray-controls": "Otevřít/Zavřít on tray click"
}
},
"priority": "Priorita Oznámení"
"priority": "Priorita Oznámení",
"unpause-notification": "Zobrazit oznámení na unpause"
},
"name": "Oznámení"
},
@ -341,7 +418,9 @@
"prompt": {
"keybind-options": {
"hotkey": "Klávesová zkratka"
}
},
"label": "Vybrat klávesovou zkratku pro toggle obrázek v obrázku",
"title": "Obrázek v obrázku klávesová zkratka"
}
},
"save-window-position": "Uložit pozici okna",
@ -355,7 +434,7 @@
},
"playback-speed": {
"description": "Posloiuchej rychle, poslouchej pomalu! Adds a slider, který kontroluje rychlost písníčky",
"name": "Playback rychlost",
"name": "Rychlost přehrávání",
"templates": {
"button": "Rychlost"
}
@ -364,7 +443,7 @@
"menu": {
"global-shortcuts": "Globální klávesové zkratky"
},
"name": "Precise hlasitost",
"name": "Přesná hlasitost",
"prompt": {
"global-shortcuts": {
"keybind-options": {
@ -386,6 +465,9 @@
}
},
"shortcuts": {
"menu": {
"override-media-keys": "Přepsat Media Keys"
},
"name": "Zkratky (& MPRIS)",
"prompt": {
"keybind": {
@ -401,18 +483,32 @@
"description": "Automaticky přeskakovat tichá místa v písničkách",
"name": "Přeskočit Tichá místa"
},
"sponsorblock": {
"description": "Automaticky přeskakuje non-music části jako intro/outro nebo části of music videos, kde nehraje písnčka"
},
"taskbar-mediacontrol": {
"description": "Kontrolovat playback z vašeho Windows taskbar"
"description": "Ovládejte přehrávání z vašeho hlavního panelu Windows",
"name": "Hlavní panel Media Control"
},
"touchbar": {
"description": "Přidává Touch Bar widget pro macOS uživatele",
"name": "Touch Bar"
},
"tuna-obs": {
"description": "Integrace s OBS's plugin Tuna"
},
"video-toggle": {
"description": "Přidává tlačítko switch mezi videem/písničkou mode. Může také optionally remove celou video kartu",
"menu": {
"align": {
"label": "Zarovnání",
"submenu": {
"left": "Vlevo",
"middle": "Uprostřed",
"right": "Pravo"
}
},
"force-hide": "Vynutit odstranění karty videa",
"mode": {
"label": "Režim"
}
@ -420,6 +516,13 @@
"templates": {
"button": "Písnička"
}
},
"visualizer": {
"description": "Přidá vizualizér do přehrávače",
"menu": {
"visualizer-type": "Typ vizualizéru"
},
"name": "Vizualizér"
}
}
}

View File

@ -59,7 +59,7 @@
},
"unresponsive": {
"buttons": {
"quit": "Beenden",
"quit": "Verlassen",
"relaunch": "Neustarten",
"wait": "Warten"
},
@ -296,7 +296,7 @@
"fade-in-duration": "Einblendezeit (Millisekunden)",
"fade-out-duration": "Ausblendezeit (Millisekunden)",
"fade-scaling": {
"label": "Fade-Skalierung",
"label": "Übergangsskalierung",
"linear": "Linear",
"logarithmic": "Logarithmisch"
},
@ -421,7 +421,7 @@
"menu": {
"romanized-lyrics": "Romanisierte Songtexte"
},
"name": "Liedtext von Genius",
"name": "Liedtexte von Genius",
"renderer": {
"fetched-lyrics": "Liedtexte für Genius abgerufen"
}
@ -500,7 +500,7 @@
"title": "Globale Lautstärketastenbelegungen"
},
"volume-steps": {
"label": "Wähle Schritte zur Erhöhung/Senkung der Lautstärke",
"label": "Wähle Schritte zur Lautstärkehebung/-senkung",
"title": "Lautstärkestufen"
}
}
@ -519,8 +519,9 @@
"name": "Videoqualitätsänderer"
},
"shortcuts": {
"description": "Ermöglicht das Festlegen globaler Hotkeys für die Wiedergabe (Abspielen/Pause/Nächstes/Vorheriges) + Deaktivieren des Medien-OSD durch Überschreiben der Medientasten + Aktivieren von Strg/CMD + F zum Suchen + Aktivieren der Linux mpris-Unterstützung für Medientasten + Angepasste Tastenkürzel für fortgeschrittene Benutzer",
"menu": {
"override-media-keys": "Medienschlüssel überschreiben",
"override-media-keys": "Medientasten überschreiben",
"set-keybinds": "Globale Liedsteuerung setzen"
},
"name": "Abkürzungen (& MPRIS)",
@ -571,9 +572,9 @@
"mode": {
"label": "Modus",
"submenu": {
"custom": "Angepasster Wechsler",
"custom": "Angepasster Schalter",
"disabled": "Deaktiviert",
"native": "Eingebauter Umschalter"
"native": "Eingebauter Schalter"
}
}
},

View File

@ -21,7 +21,7 @@
"main": {
"console": {
"did-finish-load": {
"dev-tools": "did finish load. dev tools opened"
"dev-tools": "Finished loading. DevTools opened"
},
"i18n": {
"loaded": "i18n loaded"
@ -537,6 +537,10 @@
}
}
},
"skip-disliked-songs": {
"description": "Skips disliked songs",
"name": "Skip Disliked Songs"
},
"skip-silences": {
"description": "Automatically skip silences sections in songs",
"name": "Skip Silences"

598
src/i18n/resources/es.json Normal file
View File

@ -0,0 +1,598 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Error al ejecutar el plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}: {{contextName}} ejecutado en {{ms}}ms",
"initialize-failed": "Error al inicializar plugin \"{{pluginName}}\"",
"load-all": "Cargando todos los plugins",
"load-failed": "Error al cargar el plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" cargado",
"unload-failed": "No se ha podido descargar el plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" descargado"
}
}
},
"language": {
"code": "es",
"local-name": "Inglés",
"name": "Inglés"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Carga Finalizada. DevTools abiertas"
},
"i18n": {
"loaded": "i18n cargado"
},
"second-instance": {
"receive-command": "Comando recibido sobre el protocolo: \"{{command}}\""
},
"theme": {
"css-file-not-found": "El archivo CSS \"{{cssFile}}\" no existe, ignorando"
},
"unresponsive": {
"details": "¡Error sin repuesta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Borrar caché de la aplicación"
},
"window": {
"tried-to-render-offscreen": "La ventana intentó mostrarse fuera de la pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, posicion={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "El menú está oculto, use 'Alt' para mostrarlo (o 'Escape' si usa en-app-menu)",
"message": "Menu oculto esta deshabilitado",
"title": "Menú oculto activado"
},
"need-to-restart": {
"buttons": {
"later": "Más tarde",
"restart-now": "Reiniciar ahora"
},
"detail": "\"{{pluginName}}\" se requiere reiniciar para que el plugin tome efecto",
"message": "\"{{pluginName}}\" necesita reiniciar",
"title": "Se requiere reinicio"
},
"unresponsive": {
"buttons": {
"quit": "Dejar",
"relaunch": "Volver a abrir",
"wait": "Espera"
},
"detail": "Sentimos las molestias. Por favor, elija qué hacer:",
"message": "La aplicación no responde",
"title": "La ventana no responde"
},
"update-available": {
"buttons": {
"disable": "Desactivar actualizaciones",
"download": "Descargar",
"ok": "OK"
},
"detail": "Una nueva versión está disponible y puede descargarse en {{downloadLink}}",
"message": "Ya está disponible una nueva versión",
"title": "Actualización disponible"
}
},
"menu": {
"about": "Acerca de",
"navigation": {
"label": "Navegación",
"submenu": {
"copy-current-url": "Copiar la URL actual",
"go-back": "Regresar",
"go-forward": "Adelante",
"quit": "Salir",
"restart": "Reiniciar la aplicación"
}
},
"options": {
"label": "Opciones",
"submenu": {
"advanced-options": {
"label": "Opciones avanzadas",
"submenu": {
"auto-reset-app-cache": "Restablecer la caché cuando se inicie la aplicación",
"disable-hardware-acceleration": "Desactivar la aceleración por hardware",
"edit-config-json": "Editar config.json",
"override-user-agent": "sobrescribir User-Agent",
"restart-on-config-changes": "Reinicie al cambiar la configuración",
"set-proxy": {
"label": "Definir proxy",
"prompt": {
"label": "Introduzca la dirección del proxy: (déjela vacía para desactivarla)",
"placeholder": "Ejemplo: socks5://127.0.0.1:9999",
"title": "Establecer proxy"
}
},
"toggle-dev-tools": "Activar DevTools"
}
},
"always-on-top": "Siempre arriba",
"auto-update": "Actualización automática",
"hide-menu": {
"dialog": {
"message": "El menú se ocultará la próxima vez que lo inicies, usa [Alt] para mostrarlo (o pulsa [`] si usas el menú dentro de la aplicación)",
"title": "Ocultar menú habilitado"
},
"label": "Ocultar menú"
},
"language": {
"dialog": {
"message": "El idioma se cambiará después de reiniciar",
"title": "Se cambio el idioma"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "¿Quieres ayudar a traducir? Haz clic aquí"
}
},
"resume-on-start": "Reanudar la última canción al iniciar la aplicación",
"single-instance-lock": "Bloquear en una instancia unica",
"start-at-login": "Comenzar al iniciar sesión",
"starting-page": {
"label": "Página de inicio",
"unset": "Sin configurar"
},
"tray": {
"label": "Bandeja",
"submenu": {
"disabled": "Desactivado",
"enabled-and-hide-app": "Activar y ocultar la aplicación",
"enabled-and-show-app": "Activado y mostrar aplicación",
"play-pause-on-click": "Reproducir/Pausar al hacer clic"
}
},
"visual-tweaks": {
"label": "Ajustes visuales",
"submenu": {
"like-buttons": {
"default": "Predeterminado",
"force-show": "Forzar la visualización",
"hide": "Ocultar",
"label": "Botones de \"Me Gusta\""
},
"remove-upgrade-button": "Remover el botón de Actualización",
"theme": {
"label": "Tema",
"submenu": {
"import-css-file": "Importar archivo CSS personalizado",
"no-theme": "Sin temas"
}
}
}
}
}
},
"plugins": {
"enabled": "Habilitado",
"label": "Plugins"
},
"view": {
"label": "Ver",
"submenu": {
"force-reload": "Forzar la recarga",
"reload": "Recargar",
"reset-zoom": "Tamaño actual",
"toggle-fullscreen": "Alternar pantalla completa",
"zoom-in": "Acercar",
"zoom-out": "Alejar"
}
}
},
"tray": {
"next": "Siguiente",
"play-pause": "Reproducir/Pausar",
"previous": "Anterior",
"quit": "Salir",
"restart": "Reiniciar la aplicación",
"show": "Mostrar ventana"
}
},
"plugins": {
"adblocker": {
"description": "Bloquear todos los anuncios y el rastreo",
"menu": {
"blocker": "Bloqueador"
},
"name": "Adblocker"
},
"album-color-theme": {
"description": "Aplica un tema dinámico y efectos visuales basados en la paleta de colores del álbum",
"name": "Color del álbum"
},
"ambient-mode": {
"description": "Aplica un efecto de iluminación proyectando colores suaves del vídeo en el fondo de la pantalla.",
"menu": {
"blur-amount": {
"label": "Cantidad de desenfoque",
"submenu": {
"pixels": "{{blurAmount}} pixeles"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Transparencia",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Calidad",
"submenu": {
"pixels": "{{quality}} píxeles"
}
},
"size": {
"label": "Tamaño",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transición suave",
"submenu": {
"during": "Durante {{interpolationTime}}s"
}
},
"use-fullscreen": {
"label": "Usando Pantalla Completa"
}
},
"name": "Modo ambiente"
},
"audio-compressor": {
"description": "Aplicar compresión al audio (reduce la diferencia entre las partes más fuertes y más suaves de una pista para que tenga un nivel más consistente)",
"name": "Compresor de audio"
},
"blur-nav-bar": {
"description": "Hace que la barra de navegación sea transparente y borrosa",
"name": "Desenfocar barra de navegación"
},
"bypass-age-restrictions": {
"description": "Saltar la verificación de edad de YouTube",
"name": "Saltar las restricciones de edad"
},
"captions-selector": {
"description": "Selector de subtítulos para pistas de audio de YouTube Music",
"menu": {
"autoload": "Seleccionar automáticamente el último subtítulo utilizado",
"disable-captions": "Sin subtítulos por defecto"
},
"name": "Selector de subtítulos",
"prompt": {
"selector": {
"label": "Idioma actual: {{language}}",
"none": "Ninguno",
"title": "Seleccionar idioma de los subtítulos"
}
},
"templates": {
"title": "Abra el selector de subtítulos"
}
},
"compact-sidebar": {
"description": "Poner siempre la barra lateral en modo compacto",
"name": "Barra lateral compacta"
},
"crossfade": {
"description": "Crossfade entre canciones",
"menu": {
"advanced": "Avanzado"
},
"name": "Crossfade [beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Duración del fundido (milliseconds)",
"fade-out-duration": "Duración del fundido de salida (milliseconds)",
"fade-scaling": {
"label": "Escala de fundido",
"linear": "Lineal",
"logarithmic": "Logarítmico"
},
"seconds-before-end": "Crossfade N segundos antes del final"
},
"title": "Opciones de crossfade"
}
}
},
"disable-autoplay": {
"description": "Hace que la canción comience en modo \"pausado\"",
"menu": {
"apply-once": "Sólo se aplica al inicio"
},
"name": "Desactivar reproducción automática"
},
"discord": {
"backend": {
"already-connected": "Se intentó conectar con una conexión activa",
"connected": "Conectado a Discord",
"disconnected": "Desconectado de Discord"
},
"description": "Muestra a tus amigos lo que escuchas con Rich Presence",
"menu": {
"auto-reconnect": "Reconectar automáticamente",
"clear-activity": "Borrar actividad",
"clear-activity-after-timeout": "Borrar actividad después de un tiempo",
"connected": "Conectado",
"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",
"set-inactivity-timeout": "Establecer tiempo de inactividad"
},
"name": "Estado de actividad de Discord",
"prompt": {
"set-inactivity-timeout": {
"label": "Introduzca el tiempo de inactividad en segundos:",
"title": "Establecer tiempo de inactividad"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "¡Argh! Lo siento, la descarga falló…",
"title": "¡Error en la descarga!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} canciones)",
"message": "Descargar Playlist {{playlistTitle}}",
"title": "Descarga iniciada"
}
},
"feedback": {
"conversion-progress": "Conversión: {{percent}}%",
"converting": "Convirtiendo…",
"done": "Listo: {{filePath}}",
"download-info": "Descargando {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Descarga: {{percent}}%",
"downloading": "Descargando…",
"downloading-counter": "Descargando {{current}}/{{total}}…",
"downloading-playlist": "Descargar lista de reproducción \"{{playlistTitle}}\" - {{playlistSize}} canciones ({{playlistId}})",
"error-while-downloading": "Error al descargar \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "La carpeta {{playlistFolder}} ya existe",
"getting-playlist-info": "Obteniendo información de la lista de reproducción…",
"loading": "Cargando…",
"playlist-has-only-one-song": "La lista de reproducción sólo tiene un elemento, descárgala directamente",
"playlist-id-not-found": "No se ha encontrado el ID de la lista de reproducción",
"playlist-is-empty": "La lista de reproducción está vacía",
"playlist-is-mix-or-private": "Error obteniendo información de la lista de reproducción: asegúrese de que no es una lista privada o \"Mixed for you\"\n\n{{error}}",
"preparing-file": "Preparando archivo…",
"saving": "Guardando…",
"trying-to-get-playlist-id": "Intentando obtener el ID de la lista de reproducción: {{playlistId}}",
"video-id-not-found": "Video no encontrado",
"writing-id3": "Escribiendo las etiquetas ID3…"
}
},
"description": "Descarga MP3 / audio fuente directamente desde la interfaz",
"menu": {
"choose-download-folder": "Elija la carpeta de descarga",
"download-playlist": "Descargar lista de reproducción",
"presets": "Preajustes",
"skip-existing": "Saltar archivos existentes"
},
"name": "Descargador",
"renderer": {
"can-not-update-progress": "No se puede actualizar el progreso"
},
"templates": {
"button": "Descargar"
}
},
"exponential-volume": {
"description": "Hace que el control deslizante de volumen sea exponencial para que sea más fácil seleccionar volúmenes más bajos.",
"name": "Volumen exponencial"
},
"in-app-menu": {
"description": "Da a las barras de menú un aspecto elegante, oscuro o del color de un álbum",
"menu": {
"hide-dom-window-controls": "Ocultar controles de ventana DOM"
},
"name": "Menú de aplicación"
},
"last-fm": {
"description": "Añade soporte de scrobbling para Last.fm",
"name": "Last.fm"
},
"lumiastream": {
"description": "Agrega soporte para Lumia Stream",
"name": "Lumia Stream [beta]"
},
"lyrics-genius": {
"description": "Añade el soporte para las letras para la mayoría de las canciones",
"menu": {
"romanized-lyrics": "Letras Romanizadas"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Letras recuperadas de Genius"
}
},
"navigation": {
"description": "Flechas de navegación Siguiente/Atrás directamente integradas en la interfaz, como en tu navegador favorito",
"name": "Navegación"
},
"no-google-login": {
"description": "Eliminar los botones y enlaces de inicio de sesión de Google de la interfaz",
"name": "Sin inicio de sesión de Google"
},
"notifications": {
"description": "Mostrar una notificación cuando empiece a sonar una canción (las notificaciones interactivas están disponibles en Windows)",
"menu": {
"interactive": "Notificaciones interactivas",
"interactive-settings": {
"label": "Ajustes interactivos",
"submenu": {
"hide-button-text": "Ocultar el texto del botón",
"refresh-on-play-pause": "Actualizar al reproducir/pausar",
"tray-controls": "Abrir/Cerrar al hacer clic en la bandeja"
}
},
"priority": "Prioridad de notificación",
"toast-style": "Estilo de mensaje emergente",
"unpause-notification": "Mostrar notificación al reanudar"
},
"name": "Notificaciones"
},
"picture-in-picture": {
"description": "Permite cambiar la aplicación al modo de imagen en imagen",
"menu": {
"always-on-top": "Siempre encima",
"hotkey": {
"label": "Tecla de acceso rápido",
"prompt": {
"keybind-options": {
"hotkey": "Tecla de acceso rápido"
},
"label": "Elige una tecla de acceso rápido para alternar al modo \"Dos imágenes a la vez\" PiP",
"title": "Tecla de acceso rápido al modo \"Dos imágenes a la vez\" PiP"
}
},
"save-window-position": "Guardar la posición de la ventana",
"save-window-size": "Guardar tamaño de la ventana",
"use-native-pip": "Utilizar \"Dos imágenes a la vez\" PiP nativo del navegador"
},
"name": "Imagen en Imagen",
"templates": {
"button": "Imagen en Imagen"
}
},
"playback-speed": {
"description": "Escucha rápido, escucha despacio! Añade un control deslizante que ajusta la velocidad de la canción",
"name": "Velocidad de reproducción",
"templates": {
"button": "Velocidad"
}
},
"precise-volume": {
"description": "Controla el volumen de manera precisa utilizando la rueda del ratón/teclas de acceso rápido, con una interfaz personalizada y pasos de volumen personalizables",
"menu": {
"arrows-shortcuts": "Controles de teclas de flechas locales",
"custom-volume-steps": "Establecer niveles de volumen personalizados",
"global-shortcuts": "Teclas de acceso rápido globales"
},
"name": "Volumen preciso",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Disminuir el volumen",
"increase": "Aumentar el volumen"
},
"label": "Elija combinaciones de teclas para el volumen:",
"title": "Combinaciones de teclas para el volumen"
},
"volume-steps": {
"label": "Escoge los pasos de aumento o disminución del volumen",
"title": "Niveles de volumen"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Calidad actual: {{quality}}",
"message": "Elija la calidad de vídeo:",
"title": "Elija la calidad de vídeo"
}
}
},
"description": "Permite cambiar la calidad del vídeo con un botón sobre puesto en el vídeo",
"name": "Ajustador de calidad de vídeo"
},
"shortcuts": {
"description": "Permite ajustar atajos de teclado generales para reproducción (reproducir/pausar/siguiente/previo) + deshabilita OSD de medios mediante la anulación de las teclas de medios + habilitar Ctrl/CMD + F para buscar + habilitar soporte mpris de linux para teclas de medios + atajos de teclado personalizados para usuarios avanzados",
"menu": {
"override-media-keys": "Anular teclas de medios",
"set-keybinds": "Configurar controles globales de canciones"
},
"name": "Atajos (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Siguiente",
"play-pause": "Reproducir / Pausa",
"previous": "Anterior"
},
"label": "Elija combinaciones de teclas para el control de las canciones:",
"title": "Atajos de teclado globales"
}
}
},
"skip-disliked-songs": {
"description": "Omite las canciones que no le gustan",
"name": "Saltar canciones que no me gustan"
},
"skip-silences": {
"description": "Salta automáticamente las secciones silenciosas de las canciones",
"name": "Saltar silencios"
},
"sponsorblock": {
"description": "Salta automáticamente las partes no musicales como la introducción/final o secciones de videos musicales donde la canción no está sonando",
"name": "SponsorBlock"
},
"taskbar-mediacontrol": {
"description": "Controla la reproducción desde la barra de tareas de Windows",
"name": "Control de medios de la barra de tareas"
},
"touchbar": {
"description": "Añade un widget TouchBar para los usuarios de macOS",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Integración con el complemento Tuna de OBS",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "Añade un botón para cambiar entre el modo Vídeo/Canción. también puede eliminar opcionalmente toda la pestaña de vídeo",
"menu": {
"align": {
"label": "Alineación",
"submenu": {
"left": "Izquierda",
"middle": "Medio",
"right": "Derecha"
}
},
"force-hide": "Forzar eliminación de la pestaña de vídeo",
"mode": {
"label": "Modo",
"submenu": {
"custom": "Alternador personalizado",
"disabled": "Desactivado",
"native": "Alternador nativo"
}
}
},
"name": "Alternador de vídeo",
"templates": {
"button": "Canción"
}
},
"visualizer": {
"description": "Añadir un visualizador al reproductor",
"menu": {
"visualizer-type": "Tipo de visualizador"
},
"name": "Visualizador"
}
}
}

594
src/i18n/resources/fr.json Normal file
View File

@ -0,0 +1,594 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Échec de l'exécution du plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} exécuté en {{ms}}ms",
"initialize-failed": "Échec de l'initialisation du plugin \"{{pluginName}}\"",
"load-all": "Chargement des plugins",
"load-failed": "Échec du chargement du plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" chargé",
"unload-failed": "Échec du déchargement du plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" déchargé"
}
}
},
"language": {
"code": "fr",
"local-name": "Français",
"name": "French"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Chargement terminé. DevTools ouvert"
},
"i18n": {
"loaded": "i18n chargé"
},
"second-instance": {
"receive-command": "Received command over protocol: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer"
},
"unresponsive": {
"details": "Erreur: ne répond pas!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Effacement du cache de l'application"
},
"window": {
"tried-to-render-offscreen": "La fenêtre a essayé d'effectuer un rendu hors écran, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Le menu est masqué, utilisez « Alt » pour l'afficher (ou « Échap » si vous utilisez le menu de l'application)",
"message": "Le masquage du menu est activé",
"title": "Masquer le menu activé"
},
"need-to-restart": {
"buttons": {
"later": "Plus tard",
"restart-now": "Redémarrer maintenant"
},
"detail": "\"{{pluginName}}\" plugin nécessite un redémarrage pour qu'il soit pris en compte",
"message": "\"{{pluginName}}\" a besoin d'un redémarrage",
"title": "Redémarrage requis"
},
"unresponsive": {
"buttons": {
"quit": "Quitté",
"relaunch": "Relancer",
"wait": "Attendre"
},
"detail": "Nous sommes désolés du dérangement! veuillez choisir quoi faire:",
"message": "L'application ne répond pas",
"title": "La fenêtre ne répond pas"
},
"update-available": {
"buttons": {
"disable": "Désactiver les mises à jour",
"download": "Télécharger",
"ok": "Ok"
},
"detail": "Une nouvelle version est disponible et peut-être télécharger sur {{downloadLink}}",
"message": "Une nouvelle version est disponible",
"title": "Mise à jour disponible"
}
},
"menu": {
"about": "À-propos",
"navigation": {
"label": "Navigation",
"submenu": {
"copy-current-url": "Copier l'URL actuelle",
"go-back": "Retour",
"go-forward": "Avancer",
"quit": "Quitter",
"restart": "Redémarrer l'application"
}
},
"options": {
"label": "Paramètres",
"submenu": {
"advanced-options": {
"label": "Options avancée",
"submenu": {
"auto-reset-app-cache": "Réinitialiser le cache de l'application au démarrage",
"disable-hardware-acceleration": "Désactiver les accélérations matérielles",
"edit-config-json": "Modifier config.json",
"override-user-agent": "Remplacer le User-Agent",
"restart-on-config-changes": "Redémarrer quand la configuration change",
"set-proxy": {
"label": "Définir un proxy",
"prompt": {
"label": "Entrez l'adresse proxy : (laissez vide pour désactiver)",
"placeholder": "Exemple: socks5://127.0.0.1:9999",
"title": "Définir un proxy"
}
},
"toggle-dev-tools": "Ouvrir/fermer les outils de développement"
}
},
"always-on-top": "Toujours au dessus",
"auto-update": "Mise à jour automatique",
"hide-menu": {
"dialog": {
"message": "Le menu sera masqué au prochain lancement, utilisez [Alt] pour l'afficher (ou backtick [`] si vous utilisez le menu intégré à l'application)",
"title": "Masquer le menu activé"
},
"label": "Cacher le menu"
},
"language": {
"dialog": {
"message": "La langue sera changée après le redémarrage",
"title": "Langue modifiée"
},
"label": "Langue",
"submenu": {
"to-help-translate": "Envie d'aider à la traduction ? Cliquer ici"
}
},
"resume-on-start": "Reprendre la dernière chanson quand l'application démarre",
"single-instance-lock": "Verrouillage d'instance unique",
"start-at-login": "Démarrer à la connexion",
"starting-page": {
"label": "Page de démarrage",
"unset": "Définir à vide"
},
"tray": {
"label": "Plateau",
"submenu": {
"disabled": "Désactivé",
"enabled-and-hide-app": "Activé et cacher l'app",
"enabled-and-show-app": "Activé et afficher l'application",
"play-pause-on-click": "Lecture/Pause au clic"
}
},
"visual-tweaks": {
"label": "Ajustements visuels",
"submenu": {
"like-buttons": {
"default": "Par défaut",
"force-show": "Forcer à apparaître",
"hide": "Cacher",
"label": "Boutons « J'aime »"
},
"remove-upgrade-button": "Supprimer le bouton de mise à niveau",
"theme": {
"label": "Thème",
"submenu": {
"import-css-file": "Importer fichier CSS personnalisé",
"no-theme": "Pas de thème"
}
}
}
}
}
},
"plugins": {
"enabled": "Activé",
"label": "Extensions"
},
"view": {
"label": "Vue",
"submenu": {
"force-reload": "Forcer l'actualisation",
"reload": "Actualiser",
"reset-zoom": "Taille réelle",
"toggle-fullscreen": "Basculer en plein écran",
"zoom-in": "Zoom avant",
"zoom-out": "Zoom arrière"
}
}
},
"tray": {
"next": "Suivant",
"play-pause": "Lecture/Pause",
"previous": "Précédent",
"quit": "Quitter",
"restart": "Redémarrer l'application",
"show": "Afficher la fenêtre"
}
},
"plugins": {
"adblocker": {
"description": "Bloquer toutes les annonces et le suivi par défaut",
"menu": {
"blocker": "Bloqueur"
},
"name": "Bloqueur de publicités"
},
"album-color-theme": {
"description": "Applique un thème dynamique et des effets visuels basés sur la palette des couleurs de l'album",
"name": "Thème de couleur d'album"
},
"ambient-mode": {
"description": "Applique un effet d'éclairage en jetant des couleurs douces de la vidéo, dans le fond de votre écran.",
"menu": {
"blur-amount": {
"label": "Quantité de flou",
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Tampon",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opacité",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualité",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"label": "Taille",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Transition en douceur",
"submenu": {
"during": "Pendant {{interpolationTime}} s"
}
},
"use-fullscreen": {
"label": "Utilisation du mode plein écran"
}
},
"name": "Mode ambiant"
},
"audio-compressor": {
"description": "Appliquer une compression à l'audio (diminue le volume des parties les plus fortes du signal et augmente le volume des parties les plus faibles)",
"name": "Compresseur audio"
},
"blur-nav-bar": {
"description": "Rend la barre de navigation transparente et floue",
"name": "Barre de navigation floue"
},
"bypass-age-restrictions": {
"description": "Contourner la vérification de l'âge de YouTube",
"name": "Contourner les restrictions dâge"
},
"captions-selector": {
"description": "Sélecteur de sous-titres pour les pistes audio YouTube Music",
"menu": {
"autoload": "Sélectionner automatiquement la dernière légende utilisée",
"disable-captions": "Pas de sous-titres par défaut"
},
"name": "Sélecteur de sous-titres",
"prompt": {
"selector": {
"label": "Langue de sous-titrage actuelle : {{language}}",
"none": "Aucun",
"title": "Sélectionnez la langue des sous-titres"
}
},
"templates": {
"title": "Ouvrir le sélecteur de sous-titres"
}
},
"compact-sidebar": {
"description": "Toujours définir la barre latérale en mode compact",
"name": "Barre latérale compacte"
},
"crossfade": {
"description": "Fondu enchaîné entre les chansons",
"menu": {
"advanced": "Avancé"
},
"name": "Fondu enchaîné [bêta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Durée du fondu (millisecondes)",
"fade-out-duration": "Durée du fondu (millisecondes)",
"fade-scaling": {
"label": "Mise à l'échelle du fondu",
"linear": "Linéaire",
"logarithmic": "Logarithmique"
},
"seconds-before-end": "Fondu enchaîné N secondes avant la fin"
},
"title": "Options de fondu enchaîné"
}
}
},
"disable-autoplay": {
"description": "Fait démarrer la chanson en mode \"pause\"",
"menu": {
"apply-once": "S'applique seulement au démarrage"
},
"name": "Désactiver la lecture automatique"
},
"discord": {
"backend": {
"already-connected": "Tentative de connexion avec une connexion active",
"connected": "Connecté à Discord",
"disconnected": "Déconnecté de Discord"
},
"description": "Montrez à vos amis ce que vous écoutez avec Rich Presence",
"menu": {
"auto-reconnect": "Reconnexion automatique",
"clear-activity": "Effacer l'activité",
"clear-activity-after-timeout": "Effacer lactivité après un délai dattente",
"connected": "Connecté",
"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",
"set-inactivity-timeout": "Définir le délai d'inactivité"
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Entrez le délai d'inactivité en secondes :",
"title": "Définir le délai d'inactivité"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "Ok"
},
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
},
"start-download-playlist": {
"buttons": {
"ok": "Ok"
},
"detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé"
}
},
"feedback": {
"conversion-progress": "Conversion : {{percent}} %",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Télécharger: {{percent}}%",
"downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…",
"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…",
"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…",
"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",
"writing-id3": "Écriture des balises ID3…"
}
},
"description": "Télécharge les fichiers MP3/source audio directement depuis l'interface",
"menu": {
"choose-download-folder": "Choisissez le dossier de téléchargement",
"download-playlist": "Télécharger la liste de lecture",
"presets": "Préconfigurations",
"skip-existing": "Passer les fichiers existants"
},
"name": "Téléchargeur",
"renderer": {
"can-not-update-progress": "Impossible de mettre à jour la progression"
},
"templates": {
"button": "Télécharger"
}
},
"exponential-volume": {
"description": "Rend le curseur de volume exponentiel afin qu'il soit plus facile de sélectionner des volumes plus faibles.",
"name": "Volume exponentiel"
},
"in-app-menu": {
"description": "Donne aux barres de menus un aspect élégant, sombre ou aux couleurs de l'album",
"menu": {
"hide-dom-window-controls": "Masquer les contrôles de la fenêtre DOM"
},
"name": "Menu intégré à l'application"
},
"last-fm": {
"description": "Ajouter le support du scrobbling pour Last.fm",
"name": "Last.fm"
},
"lumiastream": {
"description": "Ajoute la prise en charge de Lumia Stream",
"name": "Lumia Stream [bêta]"
},
"lyrics-genius": {
"description": "Ajoute la prise en charge des paroles pour la plupart des chansons",
"menu": {
"romanized-lyrics": "Paroles romanisées"
},
"name": "Paroles Genius",
"renderer": {
"fetched-lyrics": "Paroles récupérées pour Genius"
}
},
"navigation": {
"description": "Flèches de navigation Suivant/Retour directement intégrées dans l'interface, comme dans votre navigateur préféré",
"name": "Navigation"
},
"no-google-login": {
"description": "Supprimer les boutons et liens de connexion Google de l'interface",
"name": "Pas de connexion Google"
},
"notifications": {
"description": "Afficher une notification quand une chanson commence à jouer (les notifications interactives sont disponibles sur Windows)",
"menu": {
"interactive": "Notifications interactives",
"interactive-settings": {
"label": "Paramètres interactifs",
"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"
}
},
"priority": "Priorité des notifications",
"toast-style": "Style des notifications \"Toast\"",
"unpause-notification": "Afficher la notification lors de la reprise"
},
"name": "Notifications"
},
"picture-in-picture": {
"description": "Permet de basculer lapplication en mode image dans image",
"menu": {
"always-on-top": "Toujours en haut",
"hotkey": {
"label": "Raccourci clavier",
"prompt": {
"keybind-options": {
"hotkey": "Raccourci clavier"
},
"label": "Choisissez un raccourci clavier pour activer l'image dans l'image",
"title": "Touche de raccourci Image dans l'image"
}
},
"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"
},
"name": "Image dans l'image",
"templates": {
"button": "Image dans l'image"
}
},
"playback-speed": {
"description": "Écoutez vite, écoutez lentement ! Ajoute un curseur qui contrôle la vitesse de la chanson",
"name": "Vitesse de lecture",
"templates": {
"button": "Vitesse"
}
},
"precise-volume": {
"description": "Contrôlez le volume avec précision à l'aide de la molette de la souris/des raccourcis clavier, avec une interface personnalisée et des étapes de volume personnalisables",
"menu": {
"arrows-shortcuts": "Contrôles avec les touches fléchées",
"custom-volume-steps": "Définir des étapes de volume personnalisées",
"global-shortcuts": "Raccourcis clavier globaux"
},
"name": "Volume précis",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Diminuer le volume",
"increase": "Augmenter le volume"
},
"label": "Choisissez les raccourcis clavier du volume global :",
"title": "Raccourcis clavier de volume global"
},
"volume-steps": {
"label": "Choisissez les étapes d'augmentation/diminution du volume",
"title": "Étapes de volume"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"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"
},
"shortcuts": {
"description": "Permet de définir des raccourcis clavier globaux pour la lecture (lecture/pause/suivant/précédent) + désactiver l'OSD multimédia en remplaçant les touches multimédias + activer Ctrl/CMD + F pour rechercher + activer la prise en charge Linux MPRIS pour les touches multimédias + raccourcis clavier personnalisés pour les utilisateurs avancés",
"menu": {
"override-media-keys": "Remplacer les touches multimédias",
"set-keybinds": "Définir les contrôles globaux des morceaux"
},
"name": "Raccourcis (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Suivant",
"play-pause": "Lecture / Pause",
"previous": "Précédent"
},
"label": "Choisissez les raccourcis clavier globaux pour le contrôle des morceaux :",
"title": "Raccourcis clavier globaux"
}
}
},
"skip-silences": {
"description": "Ignorer automatiquement les sections de silence dans les chansons",
"name": "Passer les silences"
},
"sponsorblock": {
"description": "Saute automatiquement les parties non musicales comme l'intro/outro ou les parties de clips vidéo où la chanson n'est pas lue",
"name": "SponsorBlock"
},
"taskbar-mediacontrol": {
"description": "Contrôlez la lecture depuis votre barre des tâches Windows",
"name": "Contrôle multimédia de la barre des tâches"
},
"touchbar": {
"description": "Ajoute un widget TouchBar pour les utilisateurs de macOS",
"name": "TouchBar"
},
"tuna-obs": {
"description": "Intégration avec le plugin OBS Tuna",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "Ajoute un bouton pour basculer entre le mode Vidéo/Chanson. peut également supprimer tout l'onglet vidéo",
"menu": {
"align": {
"label": "Alignement",
"submenu": {
"left": "Gauche",
"middle": "Milieu",
"right": "Droite"
}
},
"force-hide": "Forcer la suppression de l'onglet vidéo",
"mode": {
"label": "Mode",
"submenu": {
"custom": "Bascule personnalisée",
"disabled": "Désactivé",
"native": "Bascule native"
}
}
},
"name": "Basculer la vidéo",
"templates": {
"button": "Musique"
}
},
"visualizer": {
"description": "Ajoute un visualiseur au lecteur",
"menu": {
"visualizer-type": "Type de visualiseur"
},
"name": "Visualiseur"
}
}
}

594
src/i18n/resources/it.json Normal file
View File

@ -0,0 +1,594 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "È stato impossibile eseguire il plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Il plugin {{pluginName}}:{{contextName}} è stato eseguito a {{ms}}ms",
"initialize-failed": "Inizializzazione del plugin \"{{pluginName}}\" fallita",
"load-all": "Carica tutti i plugin",
"load-failed": "Caricamento del plugin \"{{pluginName}}\" non riuscito",
"loaded": "Plugin \"{{pluginName}}\" caricato",
"unload-failed": "Rimozione del plugin \"{{pluginName}}\" fallita",
"unloaded": "Plugin \"{{pluginName}}\" rimosso"
}
}
},
"language": {
"code": "it",
"local-name": "Inglese",
"name": "Inglese"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Caricamento concluso. DevTools aperto"
},
"i18n": {
"loaded": "i18n caricato"
},
"second-instance": {
"receive-command": "Comando ricevuto tramite protocollo: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Il file CSS \"{{cssFile}}\" non esiste, ignorato"
},
"unresponsive": {
"details": "Errore di mancata risposta!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Sto liberando la cache dell'app"
},
"window": {
"tried-to-render-offscreen": "La finestra ha cercato di renderizzare fuori schermo, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}\""
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Il menu è nascosto, utilizza 'Alt' per visualizzarlo (o 'Escape' se si utilizza il menu In-App)\"",
"message": "'Nascondi menu' è attivo",
"title": "'Nascondi menu' attivo"
},
"need-to-restart": {
"buttons": {
"later": "In seguito",
"restart-now": "Riavvia ora"
},
"detail": "Riavviare per attivare il plugin\"{{pluginName}}\"",
"message": "\"{{pluginName}}\" deve essere riavviato",
"title": "Riavvio richiesto"
},
"unresponsive": {
"buttons": {
"quit": "Arresta",
"relaunch": "Riavvia",
"wait": "Attendi"
},
"detail": "Ci dispiace per l'inconveniente! Scegli cosa fare:",
"message": "L'applicazione non risponde",
"title": "La finestra non risponde"
},
"update-available": {
"buttons": {
"disable": "Disattiva gli aggiornamenti",
"download": "Download",
"ok": "OK"
},
"detail": "È disponibile una nuova versione scaricabile all'indirizzo {{downloadLink}}",
"message": "È disponibile una nuova versione",
"title": "Aggiornamento disponibile"
}
},
"menu": {
"about": "Informazioni",
"navigation": {
"label": "Navigazione",
"submenu": {
"copy-current-url": "Copia l'URL corrente",
"go-back": "Pagina indietro",
"go-forward": "Pagina avanti",
"quit": "Esci",
"restart": "Riavvia l'app"
}
},
"options": {
"label": "Opzioni",
"submenu": {
"advanced-options": {
"label": "Opzioni avanzate",
"submenu": {
"auto-reset-app-cache": "Resetta la cache dell'app quando viene riavviata",
"disable-hardware-acceleration": "Disabilita l'accelerazione hardware",
"edit-config-json": "Modificare config.json",
"override-user-agent": "Sovrascrivi User-Agent",
"restart-on-config-changes": "Riavvia alla modifica delle impostazioni",
"set-proxy": {
"label": "Imposta il proxy",
"prompt": {
"label": "Inserisci l'indirizzo proxy: (lascia vuoto per disabilitare)",
"placeholder": "Esempio: socks5://127.0.0.1:9999",
"title": "Imposta il proxy"
}
},
"toggle-dev-tools": "Attiva/disattiva DevTools"
}
},
"always-on-top": "Sempre in cima",
"auto-update": "Aggiornamento automatico",
"hide-menu": {
"dialog": {
"message": "Il menu verrà nascosto al prossimo avvio. Utilizzare [Alt] per mostrarlo (o backtick [`] se si utilizza il menu In-App)",
"title": "Nascondi menu abilitato"
},
"label": "Nascondi menu"
},
"language": {
"dialog": {
"message": "La lingua verrà cambiata dopo il riavvio",
"title": "Lingua cambiata"
},
"label": "Lingua",
"submenu": {
"to-help-translate": "Vuoi aiutare a tradurre? Clicca qui"
}
},
"resume-on-start": "Riprendi a riprodurre l'ultimo brano all'avvio dell'app",
"single-instance-lock": "Blocco a istanza singola",
"start-at-login": "Avvia al login",
"starting-page": {
"label": "Pagina iniziale",
"unset": "Non impostato"
},
"tray": {
"label": "Mostra icona nel tray",
"submenu": {
"disabled": "Disabilita",
"enabled-and-hide-app": "Abilita e nascondi l'app",
"enabled-and-show-app": "Abilita e mostra l'app",
"play-pause-on-click": "Riproduci/Pausa al click sull'icona"
}
},
"visual-tweaks": {
"label": "Miglioramenti visivi",
"submenu": {
"like-buttons": {
"default": "Predefinito",
"force-show": "Forza la visualizzazione",
"hide": "Nascondi",
"label": "Pulsanti Like"
},
"remove-upgrade-button": "Rimuovi il pulsante aggiorna",
"theme": {
"label": "Tema",
"submenu": {
"import-css-file": "Importa file CSS personalizzato",
"no-theme": "Nessun tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Abilitato",
"label": "Plugin"
},
"view": {
"label": "Visualizzazione",
"submenu": {
"force-reload": "Forza l'aggiornamento",
"reload": "Aggiorna",
"reset-zoom": "Dimensione attuale",
"toggle-fullscreen": "Attiva/disattiva Schermo Intero",
"zoom-in": "Zoom in",
"zoom-out": "Zoom out"
}
}
},
"tray": {
"next": "Prossimo",
"play-pause": "Riproduci/Pausa",
"previous": "Precedente",
"quit": "Esci",
"restart": "Riavvia l'app",
"show": "Mostra finestra"
}
},
"plugins": {
"adblocker": {
"description": "Blocca tutti gli annunci e i tracker",
"menu": {
"blocker": "Blocco"
},
"name": "Adblocker"
},
"album-color-theme": {
"description": "Applica un tema dinamico e degli effetti visivi basandosi sul colore dell'album",
"name": "Tema Colore Album"
},
"ambient-mode": {
"description": "Applica un effetto di illuminazione proiettando i colori delicati del video sullo sfondo dello schermo.",
"menu": {
"blur-amount": {
"label": "Intensità sfocatura",
"submenu": {
"pixels": "{{blurAmount}} pixel"
}
},
"buffer": {
"label": "Buffer",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Trasparenza",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Qualità",
"submenu": {
"pixels": "{{quality}} pixel"
}
},
"size": {
"label": "Dimensione",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Fluidità transizione",
"submenu": {
"during": "Per {{interpolationTime}}"
}
},
"use-fullscreen": {
"label": "Utilizzo di schermo intero"
}
},
"name": "Modalità Ambiente"
},
"audio-compressor": {
"description": "Attiva la compressione audio (abbassa il volume delle parti più alte e alza quello delle parti più basse del segnale)",
"name": "Compressore Audio"
},
"blur-nav-bar": {
"description": "Rende la barra di navigazione trasparente e sfuocata",
"name": "Sfuoca Barra di Navigazione"
},
"bypass-age-restrictions": {
"description": "Bypassa la verifica dell'età di YouTube",
"name": "Bypassa le Restrizioni d'Età"
},
"captions-selector": {
"description": "Selettore sottotitolo per le tracce audio di YouTube",
"menu": {
"autoload": "Seleziona automaticamente l'ultimo sottotitolo utilizzato",
"disable-captions": "Disattiva i sottotitoli"
},
"name": "Selettore Sottotitoli",
"prompt": {
"selector": {
"label": "Lingua del sottotitolo attuale: {{language}}",
"none": "Nessuno",
"title": "Scegli la lingua del sottotitolo"
}
},
"templates": {
"title": "Apri il selettore dei sottotitoli"
}
},
"compact-sidebar": {
"description": "Imposta sempre la barra laterale in modalità compatta",
"name": "Barra Laterale Compatta"
},
"crossfade": {
"description": "Crossfade tra i brani",
"menu": {
"advanced": "Impostazioni avanzate"
},
"name": "Crossfade [beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Durata dissolvenza in entrata (millisecondi)",
"fade-out-duration": "Durata dissolvenza in uscita (millisecondi)",
"fade-scaling": {
"label": "Transizione dissolvenza",
"linear": "Lineare",
"logarithmic": "Logaritmica"
},
"seconds-before-end": "N° secondi di crossfade prima della fine"
},
"title": "Opzioni crossfade"
}
}
},
"disable-autoplay": {
"description": "Fa iniziare i brani in modalità \"pausa\"",
"menu": {
"apply-once": "Solo all'avvio"
},
"name": "Disattiva Autoplay"
},
"discord": {
"backend": {
"already-connected": "Tenta di connettersi con connessione attiva",
"connected": "Connesso a Discord",
"disconnected": "Scollegato da Discord"
},
"description": "Mostra ai tuoi amici cosa ascolti con Rich Presence",
"menu": {
"auto-reconnect": "Riconnessione automatica",
"clear-activity": "Rimuovi attività",
"clear-activity-after-timeout": "Cancella attività dopo il timeout",
"connected": "Connesso",
"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",
"set-inactivity-timeout": "Imposta il timeout di inattività"
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Inserisci il timeout di inattività in secondi:",
"title": "Imposta il timeout di inattività"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Mi dispiace, download fallito…",
"title": "Errore nel download!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} canzoni)",
"message": "Scarica Playlist {{playlistTitle}}",
"title": "Download iniziato"
}
},
"feedback": {
"conversion-progress": "Conversione: {{percent}}%",
"converting": "Sto convertendo…",
"done": "Fatto: {{filePath}}",
"download-info": "Sto scaricando {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Download: {{percent}}%",
"downloading": "Sto scaricando…",
"downloading-counter": "Sto scaricando {{current}}/{{total}}…",
"downloading-playlist": "Sto scaricando la playlist \"{{playlistTitle}}\" - {{playlistSize}} brani({{playlistId}})",
"error-while-downloading": "Errore di download \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "La cartella {{playlistFolder}} è già esistente",
"getting-playlist-info": "Sto ottenendo le info sulla playlist…",
"loading": "Caricamento…",
"playlist-has-only-one-song": "La playlist ha un solo elemento, lo sto scaricando direttamente",
"playlist-id-not-found": "Nessun ID playlist trovato",
"playlist-is-empty": "La playlist è vuota",
"playlist-is-mix-or-private": "Errore nell'ottenere info sulla playlist: assicurati che non sia una playlist privata o un \"Mixtape per te\"\n\n{{error}}",
"preparing-file": "Sto preparando il file…",
"saving": "Sto salvando…",
"trying-to-get-playlist-id": "Sto cercando di ottenere l'ID della playlist: {{playlistId}}",
"video-id-not-found": "Video non trovato",
"writing-id3": "Sto scrivendo i tag ID3…"
}
},
"description": "Download MP3 / sorgenti audio direttamente dall'interfaccia",
"menu": {
"choose-download-folder": "Scegli cartella download",
"download-playlist": "Scarica la playlist",
"presets": "Preimpostazioni",
"skip-existing": "Salta i file esistenti"
},
"name": "Downloader",
"renderer": {
"can-not-update-progress": "Impossibile aggiornare l'avanzamento"
},
"templates": {
"button": "Scarica"
}
},
"exponential-volume": {
"description": "Rende esponenziale il cursore del volume, in modo da facilitare la selezione di volumi più bassi.",
"name": "Volume Esponenziale"
},
"in-app-menu": {
"description": "Migliora l'aspetto delle barre del menu con un look scuro o basato sul colore dell'album",
"menu": {
"hide-dom-window-controls": "Nascondi i controlli delle finestre DOM"
},
"name": "Menu In-App"
},
"last-fm": {
"description": "Aggiungi supporto per lo scrobbling su Last.fm",
"name": "Last.fm"
},
"lumiastream": {
"description": "Aggiungi supporto per Lumia Stream",
"name": "Lumia Stream [beta]"
},
"lyrics-genius": {
"description": "Aggiunge il supporto dei testi per la maggior parte delle canzoni",
"menu": {
"romanized-lyrics": "Alfabeto latino per i brani con testo in caratteri orientali"
},
"name": "Lyrics Genius",
"renderer": {
"fetched-lyrics": "Testi recuperati per Genius"
}
},
"navigation": {
"description": "Frecce di navigazione Avanti/Indietro integrate direttamente nell'interfaccia, come nel tuo browser preferito",
"name": "Navigazione"
},
"no-google-login": {
"description": "Rimuovi i pulsanti di accesso e i link di Google dall'interfaccia",
"name": "Nessun Login di Google"
},
"notifications": {
"description": "Mostra una notifica quando viene riprodotto un brano (le notifiche interattive sono disponibili su Windows)",
"menu": {
"interactive": "Notifiche interattive",
"interactive-settings": {
"label": "Impostazioni dell'interazione",
"submenu": {
"hide-button-text": "Nascondi il testo del pulsante",
"refresh-on-play-pause": "Refresh quando si preme Riproduci/Pausa",
"tray-controls": "Apri/chiudi cliccando l'icona nel tray"
}
},
"priority": "Priorità di notifica",
"toast-style": "Stile Toast",
"unpause-notification": "Mostra notifica quando riprendi ascolto"
},
"name": "Notifiche"
},
"picture-in-picture": {
"description": "Consente di far passare l'app alla modalità Picture-in-Picture",
"menu": {
"always-on-top": "Sempre in primo piano",
"hotkey": {
"label": "Hotkey",
"prompt": {
"keybind-options": {
"hotkey": "Hotkey"
},
"label": "Scegliere un'hotkey per attivare Picture-in-Picture",
"title": "Picture-in-Picture Hotkey"
}
},
"save-window-position": "Salva la posizione della finestra",
"save-window-size": "Salva la dimensione della finestra",
"use-native-pip": "Usa il PiP nativo del browser"
},
"name": "Picture in Picture",
"templates": {
"button": "Picture in Picture"
}
},
"playback-speed": {
"description": "Ascolto veloce, ascolto lento! Aggiunge un cursore che controlla la velocità di riproduzione del brano",
"name": "Velocità Riproduzione",
"templates": {
"button": "Velocità"
}
},
"precise-volume": {
"description": "Controlla con precisione il volume utilizzando la rotella del mouse, le hotkey o i tasti freccia e usando incrementi di volume personalizzabili",
"menu": {
"arrows-shortcuts": "Controlla con i tasti freccia",
"custom-volume-steps": "Imposta incrementi di volume personalizzati",
"global-shortcuts": "Hotkey globali"
},
"name": "Volume Preciso",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Diminuisci volume",
"increase": "Aumenta volume"
},
"label": "Scegli i tasti di scelta rapida regolazione volume:",
"title": "Tasti di scelta rapida regolazione volume"
},
"volume-steps": {
"label": "Seleziona l'incremento/decremento del volume",
"title": "Incrementi volume"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Qualità attuale: {{quality}}",
"message": "Qualità Video:",
"title": "Scegli la qualità video"
}
}
},
"description": "Permette di cambiare la qualità del video con un pulsante in sovrimpressione",
"name": "Cambia qualità video"
},
"shortcuts": {
"description": "Consente di impostare tasti di scelta rapida globali per la riproduzione (riproduci/pausa/successivo/precedente) + disabilita l'OSD multimediale sovrascrivendo i tasti multimediali + abilita Ctrl/CMD + F per la ricerca + abilita il supporto Linux MPRIS per i tasti multimediali + tasti di scelta rapida personalizzati per utenti avanzati",
"menu": {
"override-media-keys": "Ridefinisci i tasti multimediali",
"set-keybinds": "Imposta i controlli brano globali"
},
"name": "Scorciatoie (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Prossimo",
"play-pause": "Riproduci / Pausa",
"previous": "Precedente"
},
"label": "Scegli combinazioni di tasti per il controllo dei brani:",
"title": "Combinazioni di tasti"
}
}
},
"skip-silences": {
"description": "Salta automaticamente le parti silenziose nei brani",
"name": "Salta Silenzi"
},
"sponsorblock": {
"description": "Salta automaticamente le parti non musicali, come l'intro/outro delle canzoni o le parti dei video musicali in cui non viene riprodotto il brano",
"name": "SponsorBlock"
},
"taskbar-mediacontrol": {
"description": "Controlla riproduzione dalla taskbar di Windows",
"name": "Controlli Multimediali Taskbar"
},
"touchbar": {
"description": "Aggiunge un widget TouchBar per gli utenti macOS",
"name": "Touch Bar"
},
"tuna-obs": {
"description": "Integrazione con il plugin OBS Tuna",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "Aggiunge un pulsante per passare dalla modalità Video a quella Brano. Può anche rimuovere l'intera scheda Brano/Video",
"menu": {
"align": {
"label": "Allineamento",
"submenu": {
"left": "Sinistra",
"middle": "Centro",
"right": "Destra"
}
},
"force-hide": "Rimuovi la scheda Brano/Video",
"mode": {
"label": "Modalità",
"submenu": {
"custom": "Brano/Video personalizzato",
"disabled": "Disabilitato",
"native": "Brano/Video nativo"
}
}
},
"name": "Selettore Brano/Video",
"templates": {
"button": "Brano"
}
},
"visualizer": {
"description": "Sostituisce al Video un visualizzatore grafico",
"menu": {
"visualizer-type": "Tipo di visualizzazione"
},
"name": "Visualizzatore"
}
}
}

View File

@ -537,6 +537,10 @@
}
}
},
"skip-disliked-songs": {
"description": "低評価と表示された曲をスキップします",
"name": "低評価曲をスキップ"
},
"skip-silences": {
"description": "曲の無音区間を自動でスキップ",
"name": "無音区間をスキップ"

View File

@ -537,6 +537,10 @@
}
}
},
"skip-disliked-songs": {
"description": "싫어요 표시된 노래를 건너뜁니다",
"name": "싫어요 표시 노래 건너뛰기"
},
"skip-silences": {
"description": "노래의 무음 부분을 자동으로 건너뜁니다",
"name": "무음 건너뛰기"

594
src/i18n/resources/pl.json Normal file
View File

@ -0,0 +1,594 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Błąd uruchamiania wtyczki {{pluginName}}::{{contextName}}",
"executed-at-ms": "Wtyczka {{pluginName}}::{{contextName}} uruchomiona w {{ms}}ms",
"initialize-failed": "Błąd inicjalizacji wtyczki \"{{pluginName}}\"",
"load-all": "Ładowanie wszystkich wtyczek",
"load-failed": "Błąd w ładowaniu wtyczki \"{{pluginName}}\"",
"loaded": "Wtyczka \"{{pluginName}}\" załadowana",
"unload-failed": "Błąd w odłączaniu wtyczki \"{{pluginName}}\"",
"unloaded": "Wtyczka \"{{pluginName}}\" odłączona"
}
}
},
"language": {
"code": "pl",
"local-name": "Polski",
"name": "Polish"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Ukończono ładowanie. Narzędzia deweloperskie otwarte"
},
"i18n": {
"loaded": "i18n załadowane"
},
"second-instance": {
"receive-command": "Otrzymano komendę przez protokół: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Plik CSS \"{{cssFile}}\" nie istnieje, ignoruję"
},
"unresponsive": {
"details": "Błąd! Brak odpowiedzi:\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "Czyszczenie pamięci podręcznej aplikacji"
},
"window": {
"tried-to-render-offscreen": "Okno próbuje się renderować poza ekranem, rozmiar okna={{windowSize}}, rozmiar monitora={{displaySize}}, pozycja={{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "Menu jest ukryte, użyj 'Alt' aby je pokazać (lub 'Escape' jeśli używasz in-app-menu)",
"message": "Ukrywanie menu jest włączone",
"title": "Ukrywanie Menu Włączone"
},
"need-to-restart": {
"buttons": {
"later": "Później",
"restart-now": "Uruchom ponownie teraz"
},
"detail": "Wtyczka \"{{pluginName}}\" potrzebuje ponownego uruchomienia aby była aktywna",
"message": "\"{{pluginName}}\" potrzebuje ponownego uruchomienia",
"title": "Ponowne uruchomienie potrzebne"
},
"unresponsive": {
"buttons": {
"quit": "Wyjdź",
"relaunch": "Ponownie uruchom",
"wait": "Czekać"
},
"detail": "Przepraszamy za niedogodność! Proszę wybierz co zrobić:",
"message": "Aplikacja nie reaguje",
"title": "Okno nie reaguje"
},
"update-available": {
"buttons": {
"disable": "Wyłącz aktualizacje",
"download": "Pobierz",
"ok": "OK"
},
"detail": "Nowa wersja jest dostępna i możesz ją pobrać tutaj {{downloadLink}}",
"message": "Nowa wersja jest dostępna",
"title": "Aktualizacja jest dostępna"
}
},
"menu": {
"about": "O aplikacji",
"navigation": {
"label": "Nawigacja",
"submenu": {
"copy-current-url": "Skopiuj aktualny adres URL",
"go-back": "Wróć",
"go-forward": "Do przodu",
"quit": "Wyjście",
"restart": "Uruchom ponownie aplikację"
}
},
"options": {
"label": "Opcje",
"submenu": {
"advanced-options": {
"label": "Opcje zaawansowane",
"submenu": {
"auto-reset-app-cache": "Wyczyść pamięć podręczną aplikacji przy jej uruchomieniu",
"disable-hardware-acceleration": "Wyłącz przyspieszanie sprzętowe",
"edit-config-json": "Edytuj config.json",
"override-user-agent": "Zastąp klienta użytkownika (User-Agent)",
"restart-on-config-changes": "Uruchom ponownie po zmianie konfiguracji",
"set-proxy": {
"label": "Ustaw proxy",
"prompt": {
"label": "Podaj adres Proxy: (zostaw pusty aby wyłączyć)",
"placeholder": "Przykład: socks5://127.0.0.1:9999",
"title": "Ustaw proxy"
}
},
"toggle-dev-tools": "Przełącz narzędzia deweloperskie"
}
},
"always-on-top": "Zawsze na wierzchu",
"auto-update": "Automatyczne aktualizacje",
"hide-menu": {
"dialog": {
"message": "Menu będzie ukryte po następnym uruchomieniu, użyj [Alt] aby je pokazać (lub [`] jeśli używasz in-app-menu)",
"title": "Ukrywanie menu włączone"
},
"label": "Ukryj menu"
},
"language": {
"dialog": {
"message": "Język będzie zmieniony po ponownym uruchomieniu",
"title": "Język zmieniony"
},
"label": "Język",
"submenu": {
"to-help-translate": "Chcesz pomóc w tłumaczeniu? Kliknij tutaj"
}
},
"resume-on-start": "Wznów ostatni utwór po uruchomieniu aplikacji",
"single-instance-lock": "Zablokuj do jednej instancji aplikacji",
"start-at-login": "Uruchom po zalogowaniu",
"starting-page": {
"label": "Strona startowa",
"unset": "Pusty"
},
"tray": {
"label": "Ikona w zasobniku",
"submenu": {
"disabled": "Wyłączone",
"enabled-and-hide-app": "Włącz i ukryj aplikację",
"enabled-and-show-app": "Włącz i pokaż aplikację",
"play-pause-on-click": "Odtwórz/Wstrzymaj po kliknięciu"
}
},
"visual-tweaks": {
"label": "Poprawki wizualne",
"submenu": {
"like-buttons": {
"default": "Domyślne",
"force-show": "Wymuś pokazywanie",
"hide": "Ukryj",
"label": "Przyciski polubienia"
},
"remove-upgrade-button": "Usuń przycisk subskrypcji premium",
"theme": {
"label": "Motyw",
"submenu": {
"import-css-file": "Importuj własny plik CSS",
"no-theme": "Bez motywu"
}
}
}
}
}
},
"plugins": {
"enabled": "Włączone",
"label": "Wtyczki"
},
"view": {
"label": "Widok",
"submenu": {
"force-reload": "Wymuś ponowne ładowanie",
"reload": "Ponowne ładowanie",
"reset-zoom": "Rozmiar rzeczywisty",
"toggle-fullscreen": "Przełącz pełny ekran",
"zoom-in": "Powiększ",
"zoom-out": "Pomniejsz"
}
}
},
"tray": {
"next": "Następny",
"play-pause": "Odtwórz/Pauza",
"previous": "Poprzedni",
"quit": "Wyjdź",
"restart": "Uruchom ponownie aplikację",
"show": "Pokaż okno"
}
},
"plugins": {
"adblocker": {
"description": "Blokuj wszystkie reklamy i śledzenie",
"menu": {
"blocker": "Metoda przechwytywania"
},
"name": "Blokowanie reklam"
},
"album-color-theme": {
"description": "Stosuje dynamiczny motyw i efekty wizualne w oparciu o paletę kolorów albumu",
"name": "Motyw kolorów albumu"
},
"ambient-mode": {
"description": "Stosuje efekt świetlny, rzucając delikatne kolory z wideo na tło ekranu.",
"menu": {
"blur-amount": {
"label": "Ilość rozmycia",
"submenu": {
"pixels": "{{blurAmount}} pikseli"
}
},
"buffer": {
"label": "Bufor",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Nieprzezroczystość",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "Jakość",
"submenu": {
"pixels": "{{quality}} pikseli"
}
},
"size": {
"label": "Rozmiar",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "Płynność przejścia",
"submenu": {
"during": "W czasie {{interpolationTime}}s"
}
},
"use-fullscreen": {
"label": "Podczas pełnego ekranu"
}
},
"name": "Tryb otoczenia"
},
"audio-compressor": {
"description": "Zastosuj kompresję do dźwięku (obniża głośność najgłośniejszych części sygnału i zwiększa głośność najcichszych części)",
"name": "Kompresor dźwięku"
},
"blur-nav-bar": {
"description": "Sprawia, że pasek nawigacji jest przezroczysty i rozmazany",
"name": "Rozmycie paska nawigacji"
},
"bypass-age-restrictions": {
"description": "Pomija weryfikację wieku",
"name": "Omiń ograniczenia wiekowe"
},
"captions-selector": {
"description": "Selektor napisów dla ścieżek audio YouTube Music",
"menu": {
"autoload": "Automatycznie wybierz ostatnio używanych napisów",
"disable-captions": "Domyślnie, brak napisów"
},
"name": "Selektor napisów",
"prompt": {
"selector": {
"label": "Bieżący język napisów: {{language}}",
"none": "Brak",
"title": "Wybierz język napisów"
}
},
"templates": {
"title": "Otwórz selektor napisów"
}
},
"compact-sidebar": {
"description": "Zawsze ustawiaj pasek boczny w trybie kompaktowym",
"name": "Kompaktowy pasek boczny"
},
"crossfade": {
"description": "Przenikanie pomiędzy utworami",
"menu": {
"advanced": "Zaawansowane"
},
"name": "Przenikanie [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "Czas wnikania (milisekundy)",
"fade-out-duration": "Czas zanikania (milisekundy)",
"fade-scaling": {
"label": "Skalowanie zanikania",
"linear": "Liniowe",
"logarithmic": "Logarytmiczne"
},
"seconds-before-end": "Przenikanie N sekund przed końcem"
},
"title": "Opcje przenikania"
}
}
},
"disable-autoplay": {
"description": "Wyłącza automatyczne odtwarzanie utworów",
"menu": {
"apply-once": "Tylko przy uruchomieniu aplikacji"
},
"name": "Wyłącz automatyczne odtwarzanie"
},
"discord": {
"backend": {
"already-connected": "Próbowano połączyć się przy aktywnym połączeniu",
"connected": "Połączono z Discordem",
"disconnected": "Odłączono od Discorda"
},
"description": "Pokaż znajomym, czego słuchasz dzięki Rich Presence",
"menu": {
"auto-reconnect": "Automatyczne wznawianie połączenia",
"clear-activity": "Wyczyść aktywność",
"clear-activity-after-timeout": "Wyczyść aktywność po czasie",
"connected": "Połączono",
"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",
"set-inactivity-timeout": "Ustaw limit czasu bezczynności"
},
"name": "Discord Rich Presence",
"prompt": {
"set-inactivity-timeout": {
"label": "Podaj limit czasu bezczynności w sekundach:",
"title": "Ustaw limit czasu bezczynności"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "OK"
},
"message": "Argh! Przepraszamy, pobieranie nie powiodło się…",
"title": "Błąd podczas pobierania!"
},
"start-download-playlist": {
"buttons": {
"ok": "OK"
},
"detail": "({{playlistSize}} utworów)",
"message": "Pobieranie playlisty {{playlistTitle}}",
"title": "Pobieranie rozpoczęte"
}
},
"feedback": {
"conversion-progress": "Konwertowanie: {{percent}}%",
"converting": "Konwertowanie…",
"done": "Gotowe: {{filePath}}",
"download-info": "Pobieranie {{artist}} - {{title}} {{videoId}}",
"download-progress": "Pobieranie: {{percent}}%",
"downloading": "Pobieranie…",
"downloading-counter": "Pobieranie {{current}}/{{total}} …",
"downloading-playlist": "Pobieranie playlisty \"{{playlistTitle}}\" - {{playlistSize}} utworów ({{playlistId}})",
"error-while-downloading": "Błąd pobierania \"{{author}} - {{title}}\": {{error}}",
"folder-already-exists": "Folder {{playlistFolder}} już istnieje",
"getting-playlist-info": "Pobieram informacje o playliście…",
"loading": "Ładowanie…",
"playlist-has-only-one-song": "Playlista zawiera tylko jeden element, zostanie pobrany bezpośrednio",
"playlist-id-not-found": "Nie znaleziono ID playlisty",
"playlist-is-empty": "Playlista jest pusta",
"playlist-is-mix-or-private": "Podczas pobierania informacji o playliście wystąpił błąd: upewnij się, że nie jest to playlista prywatna ani playlista „Składanki dla Ciebie”.\n\n{{error}}",
"preparing-file": "Przygotowuję plik…",
"saving": "Zapisuję…",
"trying-to-get-playlist-id": "Próbuję uzyskać ID playlisty: {{playlistId}}",
"video-id-not-found": "Nie znaleziono filmu",
"writing-id3": "Zapisywanie tagów ID3…"
}
},
"description": "Pobiera MP3/ źródło audio bezpośrednio z interfejsu",
"menu": {
"choose-download-folder": "Wybierz folder pobierania",
"download-playlist": "Pobierz playlistę",
"presets": "Predefiniowane ustawienia",
"skip-existing": "Pomiń istniejące pliki"
},
"name": "Pobieranie",
"renderer": {
"can-not-update-progress": "Nie można zaktualizować postępu"
},
"templates": {
"button": "Pobierz"
}
},
"exponential-volume": {
"description": "Sprawia, że suwak głośności jest proporcjonalna, dzięki czemu łatwiej jest wybrać niższą głośność.",
"name": "Proporcjonalna głośność"
},
"in-app-menu": {
"description": "Nadaje paskom menu elegancki, ciemny lub albumowy wygląd",
"menu": {
"hide-dom-window-controls": "Ukryj kontrolki okna DOM"
},
"name": "In-App menu"
},
"last-fm": {
"description": "Dodanie obsługi scrobblingu dla Last.fm",
"name": "Last.fm"
},
"lumiastream": {
"description": "Dodaje obsługę Lumia Stream",
"name": "Lumia Stream [beta]"
},
"lyrics-genius": {
"description": "Dodaje obsługę tekstów dla większości piosenek",
"menu": {
"romanized-lyrics": "Teksty zromanizowane"
},
"name": "Tekst piosenek od Genius",
"renderer": {
"fetched-lyrics": "Tekst dostarczony przez Genius"
}
},
"navigation": {
"description": "Strzałki nawigacyjne Dalej/Wstecz zintegrowane bezpośrednio z interfejsem, tak jak w Twojej ulubionej przeglądarce",
"name": "Nawigacja"
},
"no-google-login": {
"description": "Usuń przyciski i linki logowania Google z interfejsu",
"name": "Usuń logowanie do Google"
},
"notifications": {
"description": "Wyświetl powiadomienie, gdy rozpocznie się odtwarzanie utworu (interaktywne powiadomienia są dostępne w systemie Windows)",
"menu": {
"interactive": "Interaktywne powiadomienia",
"interactive-settings": {
"label": "Interaktywne ustawienia",
"submenu": {
"hide-button-text": "Ukryj tekst przycisku",
"refresh-on-play-pause": "Odśwież podczas odtwarzania/pauzy",
"tray-controls": "Otwórz/zamknij po kliknięciu ikony na pasku zadań"
}
},
"priority": "Priorytet powiadomień",
"toast-style": "Styl powiadomień \"Toast\"",
"unpause-notification": "Pokaż powiadomienie po wznowieniu"
},
"name": "Powiadomienia"
},
"picture-in-picture": {
"description": "Umożliwia przełączenie aplikacji w tryb obrazu w obrazie",
"menu": {
"always-on-top": "Zawsze na wierzchu",
"hotkey": {
"label": "Klawisz skrótu",
"prompt": {
"keybind-options": {
"hotkey": "Klawisz skrótu"
},
"label": "Wybierz klawisz skrótu do przełączania trybu obrazu w obrazie",
"title": "Klawisz skrótu Obraz w obrazie"
}
},
"save-window-position": "Zapisz pozycję okna",
"save-window-size": "Zapisz rozmiar okna",
"use-native-pip": "Użyj natywnego PiP dla przeglądarki"
},
"name": "Obraz w obrazie",
"templates": {
"button": "Obraz w obrazie"
}
},
"playback-speed": {
"description": "Słuchaj szybko, słuchaj powoli! Dodaje suwak kontrolujący prędkość utworu",
"name": "Szybkość odtwarzania",
"templates": {
"button": "Szybkość"
}
},
"precise-volume": {
"description": "Precyzyjnie kontroluj głośność za pomocą kółka myszy/klawiszy skrótu, z niestandardowym interfejsem HUD i konfigurowalnymi krokami głośności",
"menu": {
"arrows-shortcuts": "Sterowanie za pomocą klawiszy strzałek",
"custom-volume-steps": "Ustaw niestandardowe kroki głośności",
"global-shortcuts": "Globalne skróty klawiszowe"
},
"name": "Precyzyjna głośność",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "Zmniejsz głośność",
"increase": "Zwiększ głośność"
},
"label": "Wybierz globalne skróty klawiaturowe głośności:",
"title": "Globalne skróty klawiszowe głośności"
},
"volume-steps": {
"label": "Wybierz kroki zwiększania/zmniejszania głośności",
"title": "Kroki głośności"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "Aktualna jakość: {{quality}}",
"message": "Wybierz jakość wideo:",
"title": "Wybierz jakość wideo"
}
}
},
"description": "Umożliwia zmianę jakości wideo za pomocą przycisku na nakładce wideo",
"name": "Zmieniacz jakości wideo"
},
"shortcuts": {
"description": "Umożliwia ustawienie globalnych skrótów klawiszowych do odtwarzania (odtwarzanie/pauza/następny/poprzedni) + wyłączanie OSD multimediów poprzez zastąpienie klawiszy multimediów + włączanie Ctrl/CMD + F w celu wyszukiwania + włączanie obsługi linux mpris dla klawiszy multimediów + niestandardowe skróty klawiszowe dla zaawansowanych użytkowników",
"menu": {
"override-media-keys": "Zastąp klawisze multimediów",
"set-keybinds": "Ustaw globalne sterowanie utworem"
},
"name": "Skróty klawiszowe (oraz MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "Następny",
"play-pause": "Odtwarzanie / Pauza",
"previous": "Poprzedni"
},
"label": "Wybierz globalne skróty klawiszowe do sterowania utworami:",
"title": "Globalne skróty klawiszowe"
}
}
},
"skip-silences": {
"description": "Automatycznie pomijaj sekcje bez dźwięku w utworach",
"name": "Pomiń ciszę"
},
"sponsorblock": {
"description": "Automatycznie pomija fragmenty niebędące muzyką, takie jak wstęp/zakończenie lub fragmenty teledysków, w których utwór nie jest odtwarzany",
"name": "Pomiń nieistotne fragmenty"
},
"taskbar-mediacontrol": {
"description": "Steruj odtwarzaniem z paska zadań systemu Windows",
"name": "Kontrola odtwarzania z paska zadań"
},
"touchbar": {
"description": "Dodaje widżet do paska dotykowego dla użytkowników systemu macOS",
"name": "Pasek dotykowy"
},
"tuna-obs": {
"description": "Integracja z wtyczką OBS Tuna",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "Dodaje przycisk do przełączania między trybem wideo a piosenki. Może również opcjonalnie usunąć całą kartę wideo",
"menu": {
"align": {
"label": "Wyrównanie",
"submenu": {
"left": "Lewo",
"middle": "Środek",
"right": "Prawo"
}
},
"force-hide": "Wymuś usunięcie zakładki wideo",
"mode": {
"label": "Tryb",
"submenu": {
"custom": "Niestandardowy przełącznik",
"disabled": "Wyłączony",
"native": "Natywny przełącznik"
}
}
},
"name": "Przełącznik wideo",
"templates": {
"button": "Utwór"
}
},
"visualizer": {
"description": "Dodaje wizualizator do odtwarzacza",
"menu": {
"visualizer-type": "Typ wizualizatora"
},
"name": "Wizualizator"
}
}
}

185
src/i18n/resources/pt.json Normal file
View File

@ -0,0 +1,185 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Falha ao executar o plugin {{pluginName}}::{{contextName}}",
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} executado com {{ms}}ms",
"initialize-failed": "Falha ao inicializar o plugin \"{{pluginName}}\"",
"load-all": "Carregando todos os plugins",
"load-failed": "Falha ao carregar o plugin \"{{pluginName}}\"",
"loaded": "Plugin \"{{pluginName}}\" carregado",
"unload-failed": "Falha ao descarregar o plugin \"{{pluginName}}\"",
"unloaded": "Plugin \"{{pluginName}}\" descarregado"
}
}
},
"language": {
"code": "pt",
"local-name": "Português",
"name": "Portuguese"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "Carregamento finalizado. DevTools aberto"
},
"i18n": {
"loaded": "i18n carregado"
},
"second-instance": {
"receive-command": "Comando recebido através do protocolo: \"{{command}}\""
},
"theme": {
"css-file-not-found": "Arquivo CSS \"{{cssFile}}\" não existe, ignorando"
}
},
"dialog": {
"need-to-restart": {
"detail": "O plugin {{pluginName}} precisa ser reiniciado para ter efeito",
"message": "\"{{pluginName}}\" precisa ser reiniciado",
"title": "É necessário reiniciar"
},
"unresponsive": {
"buttons": {
"quit": "Sair",
"relaunch": "Reiniciar",
"wait": "Espere"
},
"detail": "Lamentamos o inconveniente! Por favor escolha o que fazer:",
"message": "A aplicação não está respondendo",
"title": "Janela não está respondendo"
},
"update-available": {
"buttons": {
"disable": "Desabilitar atualizações",
"download": "Baixar",
"ok": "Ok"
},
"detail": "Uma nova versão está disponível e pode ser baixada em {{downloadLink}}",
"message": "Uma nova versão está disponível",
"title": "Atualização disponível"
}
},
"menu": {
"about": "Sobre",
"navigation": {
"label": "Navegação",
"submenu": {
"copy-current-url": "Copiar URL atual",
"go-back": "Voltar",
"go-forward": "Avançar",
"quit": "Saída",
"restart": "Reiniciar aplicativo"
}
},
"options": {
"label": "Opções",
"submenu": {
"advanced-options": {
"label": "Opções avançadas",
"submenu": {
"auto-reset-app-cache": "Reiniciar cache do aplicativo quando o aplicativo abrir",
"disable-hardware-acceleration": "Desabilitar aceleração por hardware",
"edit-config-json": "Editar config.json",
"set-proxy": {
"label": "Definir proxy",
"prompt": {
"label": "Inserir Endereço do Proxy: (deixe em branco para desativar)",
"placeholder": "Exemplo: socks5://127.0.0.1:9999",
"title": "Definir proxy"
}
},
"toggle-dev-tools": "Ativar DevTools"
}
},
"always-on-top": "Sempre no topo",
"auto-update": "Atualização automática",
"hide-menu": {
"dialog": {
"message": "O menu será ocultado na próxima inicialização, use [Alt] para mostrá-lo (ou acento grave [`] se estiver usando o menu interno do aplicativo)",
"title": "Ocultar Menu Ativado"
},
"label": "Ocultar Menu"
},
"language": {
"dialog": {
"message": "Idioma será alterado após reiniciar",
"title": "Idioma Alterado"
},
"label": "Idioma",
"submenu": {
"to-help-translate": "Quer ajudar na tradução? Clique aqui"
}
},
"resume-on-start": "Continuar última música ao iniciar o aplicativo",
"single-instance-lock": "Trava de instância única",
"start-at-login": "Iniciar no login",
"starting-page": {
"label": "Página inicial",
"unset": "Indefinido"
},
"tray": {
"label": "Bandeja",
"submenu": {
"disabled": "Desabilitado",
"enabled-and-hide-app": "Ativado e esconder aplicativo",
"enabled-and-show-app": "Ativado e mostrar aplicativo",
"play-pause-on-click": "Play/Pausa ao clicar"
}
},
"visual-tweaks": {
"label": "Tweaks Visuais",
"submenu": {
"like-buttons": {
"default": "Padrão",
"force-show": "Forçar mostrar",
"hide": "Esconder",
"label": "Botões de curtida"
},
"remove-upgrade-button": "Remover botão upgrade",
"theme": {
"label": "Tema",
"submenu": {
"import-css-file": "Importar arquivo CSS personalizado",
"no-theme": "Sem tema"
}
}
}
}
}
},
"plugins": {
"enabled": "Ativado",
"label": "Plugins"
},
"view": {
"label": "Ver",
"submenu": {
"force-reload": "Forçar Recarregamento",
"reload": "Recarregar",
"reset-zoom": "Tamanho Atual",
"toggle-fullscreen": "Ativar Tela Cheia",
"zoom-in": "Zoom Dentro",
"zoom-out": "Zoom Fora"
}
}
},
"tray": {
"next": "Próximo",
"play-pause": "Play/Pausa",
"previous": "Anterior",
"quit": "Sair",
"restart": "Reiniciar aplicativo",
"show": "Mostrar janela"
}
},
"plugins": {
"adblocker": {
"description": "Bloquear todos os anúncios e rastreamento automaticamente",
"name": "Adblocker"
},
"album-color-theme": {
"description": "\"Aplica um tema dinâmico e efeitos visuais com base na paleta de cores do álbum."
}
}
}

View File

@ -1,4 +1,16 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "Ошибка загрузки плагина {{pluginName}}::{{contextName}}",
"executed-at-ms": "Плагин {{pluginName}}::{{contextName}} загружен за {{ms}}мс",
"initialize-failed": "Ошибка инициализации плагина \"{{pluginName}}\"",
"load-all": "Загружаем все плагины",
"load-failed": "Ошибка загрузки плагина \"{{pluginName}}\"",
"loaded": "Плагин \"{{pluginName}}\" загружен"
}
}
},
"language": {
"code": "ru",
"local-name": "Русский",

242
src/i18n/resources/tr.json Normal file
View File

@ -0,0 +1,242 @@
{
"language": {
"code": "tr",
"local-name": "Türkçe",
"name": "Turkish"
},
"main": {
"dialog": {
"hide-menu-enabled": {
"message": "Gizli menüyü etkinleştir"
},
"update-available": {
"buttons": {
"download": "İndir",
"ok": "Tamam"
}
}
},
"menu": {
"navigation": {
"label": "Navigasyon"
},
"options": {
"label": "Seçenekler",
"submenu": {
"advanced-options": {
"submenu": {
"set-proxy": {
"label": "Proxy ayarla",
"prompt": {
"title": "Proxy ayarla"
}
}
}
},
"auto-update": "Otomatik Güncelleme",
"language": {
"label": "Dil"
},
"start-at-login": "Başlangıçta çalıştır",
"tray": {
"label": "Tepsi",
"submenu": {
"enabled-and-hide-app": "Uygulamayı etkinleştirin gizleyin.",
"play-pause-on-click": "Tıklaynınca Oynat-Duraklat"
}
},
"visual-tweaks": {
"submenu": {
"like-buttons": {
"default": "Varsayılan"
},
"theme": {
"label": "Tema",
"submenu": {
"no-theme": "Tema Yok"
}
}
}
}
}
},
"plugins": {
"label": "Eklentiler"
},
"view": {
"label": "Görüntü"
}
}
},
"plugins": {
"adblocker": {
"description": "Tüm reklamları ve izleyicileri engelle",
"menu": {
"blocker": "Engelleme Yöntemi"
},
"name": "Adblocker"
},
"album-color-theme": {
"description": "Albümün renk paletine dayalı dinamik bir tema ve efektler uygular.",
"name": "Albüm Renk Teması"
},
"ambient-mode": {
"description": "Videodaki yumuşak renkleri ekranınızın arka planına yansıtarak bir ışık efekti uygular..",
"menu": {
"blur-amount": {
"submenu": {
"pixels": "{{blurAmount}} pixels"
}
},
"buffer": {
"label": "Önbellek",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "Opaklık Miktarı",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": {
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"submenu": {
"during": "{{interpolationTime}} saniye içinde"
}
}
}
},
"audio-compressor": {
"description": "Ses sıkıştırma (dalganın en gürültülü bölümlerinin ses düzeyini azaltır ve daha yumuşak bölümlerin ses düzeyini artırır)"
},
"blur-nav-bar": {
"description": "Gezinme çubuğunu şeffaf ve bulanık yapar"
},
"bypass-age-restrictions": {
"description": "YouTube yaş doğrulamasını atla"
},
"captions-selector": {
"prompt": {
"selector": {
"none": "Hiçbiri"
}
}
},
"compact-sidebar": {
"description": "Her zaman kompakt kenar çubugu"
},
"crossfade": {
"menu": {
"advanced": "İleri düzey için"
},
"prompt": {
"options": {
"multi-input": {
"fade-scaling": {
"linear": "Doğrusal",
"logarithmic": "Logaritmik"
}
}
}
}
},
"disable-autoplay": {
"description": "Şarkıların otomatik olarak duraklatılmasını sağlar",
"menu": {
"apply-once": "Yalnızca ilk şarkı için geçerlidir"
}
},
"discord": {
"description": "Rich Presence ile Discord'da ne dinlediğinizi gösterin.",
"menu": {
"hide-duration-left": "Kalan süreyi gizle",
"hide-github-button": "GitHub bağlantısını gizle",
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla"
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "Tamam"
},
"title": "İndirmede hata meydana geldi!"
},
"start-download-playlist": {
"buttons": {
"ok": "Tamam"
},
"message": "Çalma listesini indir : {{playlistTitle}}",
"title": "İndirme Başladı"
}
},
"feedback": {
"conversion-progress": "Dönüştürme : {{percent}}%",
"download-progress": "İndirme : {{percent}}%",
"preparing-file": "Dosya Hazırlanıyor…"
}
},
"templates": {
"button": "İndir"
}
},
"last-fm": {
"name": "Last.fm"
},
"navigation": {
"name": "Navigasyon"
},
"no-google-login": {
"name": "Google Girişini Kaldır"
},
"notifications": {
"name": "Bildirimler"
},
"shortcuts": {
"prompt": {
"keybind": {
"keybind-options": {
"next": "İler"
}
}
}
},
"sponsorblock": {
"name": "SponsorBlock"
},
"touchbar": {
"name": "TouchBar"
},
"tuna-obs": {
"name": "Tuna OBS"
},
"video-toggle": {
"menu": {
"align": {
"submenu": {
"middle": "Orta",
"right": "Sağ"
}
},
"mode": {
"label": "Mod"
}
},
"templates": {
"button": "Şarkı"
}
}
}
}

View File

@ -0,0 +1,7 @@
{
"language": {
"code": "uk",
"local-name": "Українська",
"name": "Ukrainian"
}
}

View File

@ -0,0 +1,7 @@
{
"language": {
"code": "zh-CN",
"local-name": "簡體中文",
"name": "Simplified Chinese"
}
}

View File

@ -0,0 +1,594 @@
{
"common": {
"console": {
"plugins": {
"execute-failed": "外掛 {{pluginName}} 無法被執行::{{contextName}}",
"executed-at-ms": "外掛 {{pluginName}}::{{contextName}} 用了 {{ms}} 毫秒來執行",
"initialize-failed": "初始化外掛「{{pluginName}}」失敗",
"load-all": "正在載入所有外掛",
"load-failed": "載入外掛「{{pluginName}}」失敗",
"loaded": "外掛「{{pluginName}}」已載入",
"unload-failed": "移除外掛「{{pluginName}}」失敗",
"unloaded": "外掛「{{pluginName}}」已被移除"
}
}
},
"language": {
"code": "zh-TW",
"local-name": "正體中文",
"name": "Traditional Chinese"
},
"main": {
"console": {
"did-finish-load": {
"dev-tools": "載入完成。開發人員工具已開啟"
},
"i18n": {
"loaded": "i18n 已載入"
},
"second-instance": {
"receive-command": "使用協定來接收指令:「{{command}}」"
},
"theme": {
"css-file-not-found": "CSS 檔案「{{cssFile}}」不存在,已忽略"
},
"unresponsive": {
"details": "沒有回應錯誤!\n{{error}}"
},
"when-ready": {
"clearing-cache-after-20s": "清理程式的快取資料"
},
"window": {
"tried-to-render-offscreen": "視窗正嘗試在螢幕外繪製,視窗大小 = {{windowSize}},螢幕大小 = {{displaySize}},位置 = {{position}}"
}
},
"dialog": {
"hide-menu-enabled": {
"detail": "選單已隱藏,使用 Alt 鍵來重新顯示(或是使用 Esc 鍵)",
"message": "隱藏選單已經啟用",
"title": "隱藏選單已啟用"
},
"need-to-restart": {
"buttons": {
"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": {
"about": "關於",
"navigation": {
"label": "導覽列",
"submenu": {
"copy-current-url": "複製目前的網址",
"go-back": "回到上一頁",
"go-forward": "回到下一頁",
"quit": "退出",
"restart": "重啟程式"
}
},
"options": {
"label": "選項",
"submenu": {
"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": "切換開發者人員工具"
}
},
"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": "已停用",
"enabled-and-hide-app": "啟用並隱藏應用程式",
"enabled-and-show-app": "啟用並顯示應用程式",
"play-pause-on-click": "點擊時播放/暫停"
}
},
"visual-tweaks": {
"label": "視覺設定",
"submenu": {
"like-buttons": {
"default": "預設",
"force-show": "強制顯示",
"hide": "隱藏",
"label": "按讚按鈕"
},
"remove-upgrade-button": "移除升級按鈕",
"theme": {
"label": "主題",
"submenu": {
"import-css-file": "匯入自訂 CSS 檔案",
"no-theme": "無主題"
}
}
}
}
}
},
"plugins": {
"enabled": "啟用",
"label": "外掛功能"
},
"view": {
"label": "視窗",
"submenu": {
"force-reload": "強制重新整理",
"reload": "重新整理",
"reset-zoom": "重設大小",
"toggle-fullscreen": "全螢幕",
"zoom-in": "放大",
"zoom-out": "縮小"
}
}
},
"tray": {
"next": "下一首",
"play-pause": "播放/暫停",
"previous": "上一首",
"quit": "關閉",
"restart": "重啟程式",
"show": "顯示視窗"
}
},
"plugins": {
"adblocker": {
"description": "阻擋所有廣告",
"menu": {
"blocker": "阻擋方式"
},
"name": "廣告阻擋"
},
"album-color-theme": {
"description": "依歌曲專輯色調動態改變主題顏色",
"name": "動態專輯主題色調"
},
"ambient-mode": {
"description": "將影片內容的淺色畫面投放至螢幕背景, 讓觀眾在觀賞影片時更有臨場感。",
"menu": {
"blur-amount": {
"label": "模糊等級",
"submenu": {
"pixels": "{{blurAmount}} 像素"
}
},
"buffer": {
"label": "緩衝",
"submenu": {
"buffer": "{{buffer}}"
}
},
"opacity": {
"label": "不透明度",
"submenu": {
"percent": "{{opacity}}%"
}
},
"quality": {
"label": "品質",
"submenu": {
"pixels": "{{quality}} 像素"
}
},
"size": {
"label": "大小",
"submenu": {
"percent": "{{size}}%"
}
},
"smoothness-transition": {
"label": "微光轉換時長",
"submenu": {
"during": "{{interpolationTime}} 秒"
}
},
"use-fullscreen": {
"label": "使用全螢幕"
}
},
"name": "微光效果"
},
"audio-compressor": {
"description": "使用音效壓縮 (大聲部份的音量降低, 柔和部份的音量提高)",
"name": "音效壓縮器"
},
"blur-nav-bar": {
"description": "使導覽列透明及模糊",
"name": "模糊導覽列"
},
"bypass-age-restrictions": {
"description": "繞過Youtube年齡驗證",
"name": "繞過年齡驗證"
},
"captions-selector": {
"description": "音軌標題選擇",
"menu": {
"autoload": "自動選擇最後使用的標題",
"disable-captions": "預設無標題"
},
"name": "標題選擇器",
"prompt": {
"selector": {
"label": "目前標題語言: {{language}}",
"none": "無",
"title": "選擇標題語言"
}
},
"templates": {
"title": "打開標題選擇器"
}
},
"compact-sidebar": {
"description": "永遠讓側邊欄保持收合狀態",
"name": "收合側邊欄"
},
"crossfade": {
"description": "在歌曲之間使用交叉淡化",
"menu": {
"advanced": "進階"
},
"name": "交叉淡化 [Beta]",
"prompt": {
"options": {
"multi-input": {
"fade-in-duration": "淡入時間(毫秒)",
"fade-out-duration": "淡出時間(毫秒)",
"fade-scaling": {
"label": "淡化計算方式",
"linear": "線性",
"logarithmic": "對數"
},
"seconds-before-end": "交叉淡化持續時間 (秒)"
},
"title": "交叉淡化選項"
}
}
},
"disable-autoplay": {
"description": "讓歌曲開始時為暫停模式",
"menu": {
"apply-once": "只在啟動程式時套用"
},
"name": "停用自動播放"
},
"discord": {
"backend": {
"already-connected": "已嘗試可用連接",
"connected": "已連接至Discord",
"disconnected": "與Discord斷開連接"
},
"description": "使用Discord狀態與你的好友分享你正在收聽的音樂",
"menu": {
"auto-reconnect": "自動重新連接",
"clear-activity": "清除狀態",
"clear-activity-after-timeout": "在音樂暫停後清除狀態",
"connected": "已連接",
"disconnected": "已斷開連接",
"hide-duration-left": "隱藏音樂剩餘時間狀態",
"hide-github-button": "隱藏Github頁面按鈕",
"play-on-youtube-music": "顯示Play on YouTube Music按鈕",
"set-inactivity-timeout": "設置歌曲暫停後幾秒清除狀態"
},
"name": "Discord狀態",
"prompt": {
"set-inactivity-timeout": {
"label": "設置多少秒後清除狀態:",
"title": "設置歌曲暫停後幾秒清除狀態"
}
}
},
"downloader": {
"backend": {
"dialog": {
"error": {
"buttons": {
"ok": "完成"
},
"message": "啊!抱歉,下載失敗了…",
"title": "下載出現錯誤!"
},
"start-download-playlist": {
"buttons": {
"ok": "完成"
},
"detail": "({{playlistSize}} 首歌曲)",
"message": "正在下載 {{playlistTitle}} 播放清單",
"title": "開始下載"
}
},
"feedback": {
"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}}",
"folder-already-exists": "資料夾 {{playlistFolder}} 已經存在",
"getting-playlist-info": "正在獲取播放清單資訊…",
"loading": "載入中…",
"playlist-has-only-one-song": "播放清單內只有一首歌曲, 直接下載",
"playlist-id-not-found": "沒有找到播放清單ID",
"playlist-is-empty": "播放清單為空",
"playlist-is-mix-or-private": "獲取播放清單資訊時發生錯誤: 請確認非私人播放清單或是\"為你推薦的合輯\"\n\n{{error}}",
"preparing-file": "正在準備檔案…",
"saving": "儲存中…",
"trying-to-get-playlist-id": "正在嘗試獲取播放清單ID: {{playlistId}}",
"video-id-not-found": "未找到影片",
"writing-id3": "正在寫入ID3標籤…"
}
},
"description": "在應用程式內下載MP3原始音樂檔",
"menu": {
"choose-download-folder": "選擇下載位置",
"download-playlist": "下載播放清單",
"presets": "預設格式",
"skip-existing": "跳過已存在的檔案"
},
"name": "下載器",
"renderer": {
"can-not-update-progress": "無法更新進度"
},
"templates": {
"button": "下載"
}
},
"exponential-volume": {
"description": "使音量滑桿呈指數增加,以便更容易選擇較低的音量。",
"name": "指數音量調整"
},
"in-app-menu": {
"description": "優化選單欄外觀, 選單欄顏色將會隨主題變色或預設黑色",
"menu": {
"hide-dom-window-controls": "隱藏DOM視窗控制"
},
"name": "程式內選單欄"
},
"last-fm": {
"description": "新增對Last.fm的scrobbling支援",
"name": "Last.fm"
},
"lumiastream": {
"description": "新增對Lumia Stream的支援",
"name": "Lumia Stream [Beta]"
},
"lyrics-genius": {
"description": "為更多歌曲新增字幕支援",
"menu": {
"romanized-lyrics": "羅馬拼音字幕"
},
"name": "第三方字幕",
"renderer": {
"fetched-lyrics": "為Genius獲取字幕"
}
},
"navigation": {
"description": "將上一頁/下一頁按鈕新增至應用程式上方, 就像你最熟悉的瀏覽器",
"name": "導覽列"
},
"no-google-login": {
"description": "移除Google登入按鈕及連結",
"name": "禁用Google登入"
},
"notifications": {
"description": "在歌曲播放時發送一個系統通知 (可互動通知僅限Windows)",
"menu": {
"interactive": "可互動通知",
"interactive-settings": {
"label": "通知互動設定",
"submenu": {
"hide-button-text": "隱藏按鈕文字",
"refresh-on-play-pause": "在播放/暫停時刷新",
"tray-controls": "點擊系統閘圖示時打開/關閉"
}
},
"priority": "通知優先權",
"toast-style": "通知樣式",
"unpause-notification": "在取消暫停時發送通知"
},
"name": "歌曲播放通知"
},
"picture-in-picture": {
"description": "允許應用程式切換至畫中畫模式",
"menu": {
"always-on-top": "永遠顯示在最上層",
"hotkey": {
"label": "快捷鍵",
"prompt": {
"keybind-options": {
"hotkey": "快捷鍵"
},
"label": "選擇一個快捷鍵來切換畫中畫模式",
"title": "畫中畫模式快捷鍵"
}
},
"save-window-position": "記住視窗位置",
"save-window-size": "記住視窗大小",
"use-native-pip": "使用瀏覽器原生畫中畫模式"
},
"name": "畫中畫模式",
"templates": {
"button": "畫中畫模式"
}
},
"playback-speed": {
"description": "傷心的人別聽慢歌, 新增一個滑桿控制歌曲速度",
"name": "控制歌曲速度",
"templates": {
"button": "速度"
}
},
"precise-volume": {
"description": "讓你可使用滑鼠滾輪/快捷鍵控制音量",
"menu": {
"arrows-shortcuts": "本地方向鍵控制",
"custom-volume-steps": "自訂音量層級",
"global-shortcuts": "全域快捷鍵"
},
"name": "精確音量控制",
"prompt": {
"global-shortcuts": {
"keybind-options": {
"decrease": "降低音量",
"increase": "增加音量"
},
"label": "選擇全域音量控制快捷鍵:",
"title": "全域音量控制快捷鍵"
},
"volume-steps": {
"label": "設定音量一次增加/降低的層級",
"title": "音量層級設定"
}
}
},
"quality-changer": {
"backend": {
"dialog": {
"quality-changer": {
"detail": "目前畫質: {{quality}}",
"message": "選擇影片畫質:",
"title": "選擇影片畫質"
}
}
},
"description": "允許在影片畫面內調整影片畫質",
"name": "影片畫質更改器"
},
"shortcuts": {
"description": "使用全域快捷鍵控制音樂 (播放/暫停/下一首/上一首) + 透過覆寫媒體快捷鍵停用媒體OSD + 允許Ctrl/CMD + F來搜尋 + 支援Linux MPRIS媒體快捷鍵 + 更多自訂快捷鍵給進階使用者",
"menu": {
"override-media-keys": "覆寫媒體快捷鍵",
"set-keybinds": "設定全域歌曲控制"
},
"name": "Shortcuts (& MPRIS)",
"prompt": {
"keybind": {
"keybind-options": {
"next": "下一首",
"play-pause": "播放/暫停",
"previous": "上一首"
},
"label": "選擇全域音樂控制快捷鍵:",
"title": "全域快捷鍵"
}
}
},
"skip-silences": {
"description": "自動跳過音樂無聲片段",
"name": "跳過無聲"
},
"sponsorblock": {
"description": "自動跳過贊助片段",
"name": "贊助阻擋"
},
"taskbar-mediacontrol": {
"description": "透過工作列應用程式圖式控制媒體播放",
"name": "工作列媒體控制"
},
"touchbar": {
"description": "為macOS使用者新增支援觸控列",
"name": "觸控列"
},
"tuna-obs": {
"description": "與OBS外掛Tuna連接",
"name": "Tuna OBS"
},
"video-toggle": {
"description": "新增一個按鈕可以控制影片/歌曲切換和完全移除整個影片頁面的功能",
"menu": {
"align": {
"label": "按鈕位置",
"submenu": {
"left": "靠左",
"middle": "中間",
"right": "靠右"
}
},
"force-hide": "強制移除整個影片頁面",
"mode": {
"label": "樣式",
"submenu": {
"custom": "自訂樣式",
"disabled": "停用",
"native": "原生樣式"
}
}
},
"name": "影片切換",
"templates": {
"button": "歌曲"
}
},
"visualizer": {
"description": "新增一個可視化音樂效果",
"menu": {
"visualizer-type": "樣式"
},
"name": "可視化音樂效果"
}
}
}

View File

@ -1,7 +1,6 @@
import path from 'node:path';
import url from 'node:url';
import fs from 'node:fs';
import process from 'node:process';
import {
BrowserWindow,
@ -404,7 +403,7 @@ async function createMainWindow() {
removeContentSecurityPolicy();
win.webContents.on('dom-ready', async () => {
if (useInlineMenu) {
if (useInlineMenu && is.windows()) {
win.setTitleBarOverlay({
...defaultTitleBarOverlayOptions,
height: Math.floor(
@ -556,11 +555,14 @@ app.on('activate', async () => {
});
const getDefaultLocale = (locale: string) =>
Object.keys(languageResources).includes(locale) ? locale : 'en';
Object.keys(languageResources).includes(locale) ? locale : null;
app.whenReady().then(async () => {
if (!config.get('options.language')) {
config.set('options.language', getDefaultLocale(app.getLocale()));
const locale = getDefaultLocale(app.getLocale());
if (locale) {
config.set('options.language', locale);
}
}
await loadI18n().then(async () => {
@ -683,7 +685,7 @@ app.whenReady().then(async () => {
type: 'info',
buttons: [
t('main.dialog.update-available.buttons.download'),
t('main.dialog.update-available.buttons.later'),
t('main.dialog.update-available.buttons.ok'),
t('main.dialog.update-available.buttons.disable'),
],
title: t('main.dialog.update-available.title'),

View File

@ -1,5 +1,3 @@
import process from 'node:process';
import is from 'electron-is';
import {
app,
@ -377,9 +375,9 @@ export const mainMenuTemplate = async (
availableLanguages
.map(
(lang): Electron.MenuItemConstructorOptions => ({
label: `${languageResources[lang].translation.language.name} (${languageResources[lang].translation.language['local-name']})`,
label: `${languageResources[lang].translation.language?.name ?? 'Unknown'} (${languageResources[lang].translation.language?.['local-name'] ?? 'Unknown'})`,
type: 'checkbox',
checked: config.get('options.language') === lang,
checked: (config.get('options.language') ?? 'en') === lang,
click() {
config.setMenuOption('options.language', lang);
refreshMenu(win);

View File

@ -1,3 +1,5 @@
import { contextBridge, webFrame } from 'electron';
import { blockers } from './types';
import { createPlugin } from '@/utils';
import {
@ -107,23 +109,24 @@ export default createPlugin({
},
},
preload: {
script: 'window.JSON = window._proxyJson; window._proxyJson = undefined; window.Response = window._proxyResponse; window._proxyResponse = undefined; 0',
async start({ getConfig }) {
const config = await getConfig();
if (config.blocker === blockers.WithBlocklists) {
// Preload adblocker to inject scripts/styles
await injectCliqzPreload();
} else if (config.blocker === blockers.InPlayer) {
inject();
} else if (config.blocker === blockers.InPlayer && !isInjected()) {
inject(contextBridge);
await webFrame.executeJavaScript(this.script);
}
},
async onConfigChange(newConfig) {
if (newConfig.blocker === blockers.WithBlocklists) {
await injectCliqzPreload();
} else if (newConfig.blocker === blockers.InPlayer) {
if (!isInjected()) {
inject();
}
} else if (newConfig.blocker === blockers.InPlayer && !isInjected()) {
inject(contextBridge);
await webFrame.executeJavaScript(this.script);
}
},
},

View File

@ -1,3 +1,5 @@
export const inject: () => void;
import type { ContextBridge } from 'electron';
export const inject: (contextBridge: ContextBridge) => void;
export const isInjected: () => boolean;

View File

@ -10,9 +10,13 @@
let injected = false;
export const isInjected = () => isInjected;
export const isInjected = () => injected;
export const inject = () => {
/**
* @param {Electron.ContextBridge} contextBridge
* @returns {*}
*/
export const inject = (contextBridge) => {
injected = true;
{
const pruner = function (o) {
@ -28,17 +32,37 @@ export const inject = () => {
return o;
};
JSON.parse = new Proxy(JSON.parse, {
apply() {
return pruner(Reflect.apply(...arguments));
},
contextBridge.exposeInMainWorld('_proxyJson', {
parse: new Proxy(JSON.parse, {
apply() {
return pruner(Reflect.apply(...arguments));
},
}),
stringify: JSON.stringify,
[Symbol.toStringTag]: JSON[Symbol.toStringTag],
});
const withPrototype = (obj) => {
const protos = Object.getPrototypeOf(obj);
for (const [key, value] of Object.entries(protos)) {
if (Object.prototype.hasOwnProperty.call(obj, key)) continue;
if (typeof value === 'function') {
obj[key] = function (...args) {
return value.call(obj, ...args);
}
} else {
obj[key] = value;
}
}
return obj;
};
Response.prototype.json = new Proxy(Response.prototype.json, {
apply() {
return Reflect.apply(...arguments).then((o) => pruner(o));
},
});
contextBridge.exposeInMainWorld('_proxyResponse', withPrototype(Response));
}
(function () {

View File

@ -1,3 +1,5 @@
import { inject } from 'simple-youtube-age-restriction-bypass';
import { createPlugin } from '@/utils';
import { t } from '@/i18n';
@ -6,6 +8,6 @@ export default createPlugin({
description: () => t('plugins.bypass-age-restrictions.description'),
restartNeeded: true,
// See https://github.com/zerodytrash/Simple-YouTube-Age-Restriction-Bypass#userscript
renderer: () => import('simple-youtube-age-restriction-bypass'),
// See https://github.com/organization/Simple-YouTube-Age-Restriction-Bypass#userscript
renderer: () => inject(),
});

View File

@ -1,4 +1,3 @@
declare module 'simple-youtube-age-restriction-bypass' {
const nothing: never;
export default nothing;
export const inject: () => void;
}

View File

@ -15,7 +15,7 @@ export const onMenu = async ({
if (is.linux()) {
return [
{
label: t('plugins.in-app-menu.hide-dom-window-controls'),
label: t('plugins.in-app-menu.menu.hide-dom-window-controls'),
type: 'checkbox',
checked: config.hideDOMWindowControls,
click(item) {

View File

@ -10,18 +10,21 @@ import backHTML from './templates/back.html?raw';
export default createPlugin({
name: () => t('plugins.navigation.name'),
description: () => t('plugins.navigation.description'),
restartNeeded: true,
restartNeeded: false,
config: {
enabled: true,
},
stylesheets: [style],
renderer() {
const forwardButton = ElementFromHtml(forwardHTML);
const backButton = ElementFromHtml(backHTML);
const menu = document.querySelector('#right-content');
if (menu) {
menu.prepend(backButton, forwardButton);
}
renderer: {
start() {
const forwardButton = ElementFromHtml(forwardHTML);
const backButton = ElementFromHtml(backHTML);
const menu = document.querySelector('#right-content');
menu?.prepend(backButton, forwardButton);
},
stop() {
document.querySelector('[tab-id=FEmusic_back]')?.remove();
document.querySelector('[tab-id=FEmusic_next]')?.remove();
},
},
});

View File

@ -0,0 +1,41 @@
import { t } from '@/i18n';
import { createPlugin } from '@/utils';
export default createPlugin({
name: () => t('plugins.skip-disliked-songs.name'),
description: () => t('plugins.skip-disliked-songs.description'),
restartNeeded: false,
renderer: {
observer: null as MutationObserver | null,
start() {
this.waitForElem('#like-button-renderer').then((likeBtn) => {
this.observer = new MutationObserver(() => {
if (likeBtn?.getAttribute('like-status') == 'DISLIKE') {
document
.querySelector('tp-yt-paper-icon-button.next-button')
?.click();
}
});
this.observer.observe(likeBtn, {
attributes: true,
childList: false,
subtree: false,
});
});
},
stop() {
this.observer?.disconnect();
},
waitForElem(selector) {
return new Promise((resolve) => {
const interval = setInterval(() => {
const elem = document.querySelector(selector);
if (!elem) return;
clearInterval(interval);
resolve(elem);
});
});
},
},
});

View File

@ -1,5 +1,3 @@
import process from 'node:process';
import { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
import is from 'electron-is';

View File

@ -6,7 +6,7 @@ cask "youtube-music" do
homepage "https://github.com/th-ch/youtube-music"
# Fetch the latest release version from GitHub API
latest_release = JSON.parse(open("https://api.github.com/repos/th-ch/youtube-music/releases/latest").read)['tag_name']
latest_release = JSON.parse(URI.open("https://api.github.com/repos/th-ch/youtube-music/releases/latest").read)['tag_name']
version latest_release
base_url = "https://github.com/th-ch/youtube-music/releases/download/#{latest_release}/YouTube-Music-#{latest_release.delete_prefix('v')}"