Compare commits

...

106 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
27 changed files with 3710 additions and 347 deletions

View File

@ -2,8 +2,18 @@
All notable changes to this project will be documented in this file. Dates are displayed in UTC. 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) #### [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) - 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) - 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) - Update changelog for v3.0.0 [`d8c8bd1`](https://github.com/th-ch/youtube-music/commit/d8c8bd17ecfbdf96ebd29eb4c5748c07876ee242)

View File

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

450
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,13 @@
"common": { "common": {
"console": { "console": {
"plugins": { "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ů", "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": { "main": {
"console": { "console": {
"did-finish-load": {
"dev-tools": "Dokončeno načítání. DevTools otevřeny"
},
"i18n": { "i18n": {
"loaded": "i18n načteno" "loaded": "i18n načteno"
}, },
"second-instance": { "second-instance": {
"receive-command": "Received command přes protokol: \"{{command}}\"" "receive-command": "Přijmut příkaz přes protokol: \"{{command}}\""
}, },
"theme": { "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": { "when-ready": {
"clearing-cache-after-20s": "Čištění mezipaměti aplikace" "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": { "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": { "need-to-restart": {
"buttons": { "buttons": {
"later": "Později", "later": "Později",
"restart-now": "Restartovat nyní" "restart-now": "Restartovat nyní"
} },
"detail": "\"{{pluginName}}\" plugin vyžaduje restart, aby se projevil",
"message": "\"{{pluginName}}\" potřebuje restartovat",
"title": "Restart vyžadován"
}, },
"unresponsive": { "unresponsive": {
"buttons": { "buttons": {
"quit": "Ukončení", "quit": "Ukončit",
"relaunch": "Spustit znovu", "relaunch": "Spustit znovu",
"wait": "Počkat" "wait": "Počkat"
}, },
"detail": "Omlouváme se za způsobené nepříjemnosti! prosím vyberte, co dělat:", "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": { "update-available": {
"buttons": { "buttons": {
@ -49,6 +72,7 @@
"download": "Stáhnout", "download": "Stáhnout",
"ok": "OK" "ok": "OK"
}, },
"detail": "Nová verze je k dispozici a lze stáhnout na {{downloadLink}}",
"message": "Nová verze je dostupná", "message": "Nová verze je dostupná",
"title": "Aktualizace k dispozici" "title": "Aktualizace k dispozici"
} }
@ -61,6 +85,7 @@
"copy-current-url": "Kopírovat aktuální URL adresu", "copy-current-url": "Kopírovat aktuální URL adresu",
"go-back": "Jít zpátky", "go-back": "Jít zpátky",
"go-forward": "Jít dopředu", "go-forward": "Jít dopředu",
"quit": "Ukončit",
"restart": "Restartovat aplikaci" "restart": "Restartovat aplikaci"
} }
}, },
@ -70,22 +95,29 @@
"advanced-options": { "advanced-options": {
"label": "Pokročilé možnosti", "label": "Pokročilé možnosti",
"submenu": { "submenu": {
"auto-reset-app-cache": "Při spuštění aplikace, se resetuje její mezipaměť",
"disable-hardware-acceleration": "Vypnout hardware zrychlení", "disable-hardware-acceleration": "Vypnout hardware zrychlení",
"edit-config-json": "Upravit config.json", "edit-config-json": "Upravit config.json",
"override-user-agent": "Přepsat User-Agent", "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": { "set-proxy": {
"label": "Nastavit proxy", "label": "Nastavit proxy",
"prompt": { "prompt": {
"label": "Zadejte adresu proxy: (nechejte prázdné to disable)",
"placeholder": "Příklad: socks5://127.0.0.1:9999", "placeholder": "Příklad: socks5://127.0.0.1:9999",
"title": "Nastavit proxy" "title": "Nastavit proxy"
} }
} },
"toggle-dev-tools": "Toggle Vývojářské nástroje"
} }
}, },
"always-on-top": "Vždy na vrchu", "always-on-top": "Vždy na vrchu",
"auto-update": "Automatické aktualizace", "auto-update": "Automatické aktualizace",
"hide-menu": { "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" "label": "Skrýt menu"
}, },
"language": { "language": {
@ -98,24 +130,33 @@
"to-help-translate": "Chcete pomoc s překladem? Klikněte zde" "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": { "tray": {
"submenu": { "submenu": {
"enabled-and-hide-app": "Povolit a skrýt aplikaci", "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í" "play-pause-on-click": "Přehrát/Pozastavit na kliknutí"
} }
}, },
"visual-tweaks": { "visual-tweaks": {
"label": "Vzhledové vylepšení",
"submenu": { "submenu": {
"like-buttons": { "like-buttons": {
"default": "Výchozí", "default": "Výchozí",
"force-show": "Vynutit show",
"hide": "Schovat", "hide": "Schovat",
"label": "Like tlačítka" "label": "Like tlačítka"
}, },
"remove-upgrade-button": "Remove upgrade tlačítko", "remove-upgrade-button": "Odebrat upgrade tlačítko",
"theme": { "theme": {
"label": "Motiv", "label": "Motiv",
"submenu": { "submenu": {
"import-css-file": "Import custom CSS soubor", "import-css-file": "Import vlastní CSS soubor",
"no-theme": "Žádný motiv" "no-theme": "Žádný motiv"
} }
} }
@ -128,7 +169,10 @@
"label": "Pluginy" "label": "Pluginy"
}, },
"view": { "view": {
"label": "Zobrazení",
"submenu": { "submenu": {
"force-reload": "Vynutit znovu načtení",
"reset-zoom": "Actual velikost",
"zoom-in": "Přiblížit", "zoom-in": "Přiblížit",
"zoom-out": "Oddálit" "zoom-out": "Oddálit"
} }
@ -136,7 +180,7 @@
}, },
"tray": { "tray": {
"next": "Další", "next": "Další",
"play-pause": "Hrát/Zastavit", "play-pause": "Přehrát/Pozastavit",
"previous": "Minulý", "previous": "Minulý",
"quit": "Ukončit", "quit": "Ukončit",
"restart": "Restartovat aplikaci", "restart": "Restartovat aplikaci",
@ -152,11 +196,11 @@
"name": "Blokovač reklam" "name": "Blokovač reklam"
}, },
"album-color-theme": { "album-color-theme": {
"description": "Použije dynamický motiv a visuální efekty based na paletě barev alba", "description": "Použije dynamický motiv a vizuální efekty na základě palety barev alba",
"name": "Album Color Motiv" "name": "Motiv podle barvy Alba"
}, },
"ambient-mode": { "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": { "menu": {
"blur-amount": { "blur-amount": {
"submenu": { "submenu": {
@ -196,15 +240,19 @@
}, },
"name": "Ambientní režim" "name": "Ambientní režim"
}, },
"audio-compressor": {
"name": "Audio kompresor"
},
"blur-nav-bar": { "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": { "bypass-age-restrictions": {
"description": "Obejít ověření věku na YouTube", "description": "Obejít ověření věku na YouTube",
"name": "Obejít věková omezení" "name": "Obejít věková omezení"
}, },
"captions-selector": { "captions-selector": {
"description": "Titulkový selector pro YouTube Music audio tracks", "description": "Titulkový selector pro zvukové stopy v YouTube Music",
"menu": { "menu": {
"autoload": "Automaticky vybrat naposledy použité titulky", "autoload": "Automaticky vybrat naposledy použité titulky",
"disable-captions": "Žádné titulky ve vychozím nastavení" "disable-captions": "Žádné titulky ve vychozím nastavení"
@ -222,13 +270,15 @@
} }
}, },
"compact-sidebar": { "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": { "crossfade": {
"description": "Crossfade mezi písničkami", "description": "Crossfade mezi písničkami",
"menu": { "menu": {
"advanced": "Pokročilý" "advanced": "Pokročilý"
}, },
"name": "Prolínání [beta]",
"prompt": { "prompt": {
"options": { "options": {
"multi-input": { "multi-input": {
@ -243,6 +293,9 @@
} }
}, },
"disable-autoplay": { "disable-autoplay": {
"menu": {
"apply-once": "Applies jenom na spuštění aplikace"
},
"name": "Zrušit automatické přehrávání" "name": "Zrušit automatické přehrávání"
}, },
"discord": { "discord": {
@ -256,6 +309,11 @@
"disconnected": "Odpojeno", "disconnected": "Odpojeno",
"hide-github-button": "Skrýt tlačítko s odkazem na GitHub", "hide-github-button": "Skrýt tlačítko s odkazem na GitHub",
"play-on-youtube-music": "Hrát na YouTube Music" "play-on-youtube-music": "Hrát na YouTube Music"
},
"prompt": {
"set-inactivity-timeout": {
"label": "Zadejte inactivity timeout v sekundách:"
}
} }
}, },
"downloader": { "downloader": {
@ -273,29 +331,34 @@
"ok": "OK" "ok": "OK"
}, },
"detail": "({{playlistSize}} písničky)", "detail": "({{playlistSize}} písničky)",
"message": "Stahování Playlistu {{playlistTitle}}", "message": "Stahování seznamu skladeb {{playlistTitle}}",
"title": "Stahování začalo" "title": "Stahování začalo"
} }
}, },
"feedback": { "feedback": {
"done": "Hotovo: {{filePath}}", "done": "Hotovo: {{filePath}}",
"download-info": "Stahování {{artist}} - {{title}} [{{videoId}}", "download-info": "Stahování {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Stahování: {{percent}}%",
"downloading": "Stahování…", "downloading": "Stahování…",
"downloading-counter": "Stahování {{current}}/{{total}}…", "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", "folder-already-exists": "Složka {{playlistFolder}} již existuje",
"getting-playlist-info": "Getting informace o seznamu skladeb…",
"loading": "Načítání…", "loading": "Načítání…",
"playlist-has-only-one-song": "Playlist má jenom jeden položku, downloading it directly", "playlist-has-only-one-song": "Seznam skladeb má pouze jednu položku, downloading it directly",
"playlist-id-not-found": "Žádný playlist ID nenalezen", "playlist-id-not-found": "Žádné ID seznamu skladeb nenalezeno",
"playlist-is-empty": "Playlist je prázdný", "playlist-is-empty": "Seznam skladeb je prázdný",
"preparing-file": "Připravování souboru…", "preparing-file": "Připravování souboru…",
"saving": "Ukládání…", "saving": "Ukládání…",
"trying-to-get-playlist-id": "Trying to get ID seznamu skladeb: {{playlistId}}",
"video-id-not-found": "Video nebylo nalezeno" "video-id-not-found": "Video nebylo nalezeno"
} }
}, },
"description": "Stahuje MP3 / source audio přímo z rozhraní",
"menu": { "menu": {
"choose-download-folder": "Vybrat download složku", "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" "skip-existing": "Přeskočit existující soubory"
}, },
"name": "Stahovač", "name": "Stahovač",
@ -306,13 +369,24 @@
"exponential-volume": { "exponential-volume": {
"name": "Exponenciální hlasitost" "name": "Exponenciální hlasitost"
}, },
"in-app-menu": {
"description": "Dává menu-bars a fancy, tmavý nebo album-color vzhled"
},
"last-fm": { "last-fm": {
"description": "Přidat scrobbling podporu pro Last.fm",
"name": "Last.fm" "name": "Last.fm"
}, },
"lumiastream": {
"description": "Přidává Lumia Stream podporu"
},
"lyrics-genius": { "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": { "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" "name": "Navigace"
}, },
"no-google-login": { "no-google-login": {
@ -322,14 +396,17 @@
"notifications": { "notifications": {
"description": "Display oznámení when a písnička starts hraje (interactive notifications are available on Windows)", "description": "Display oznámení when a písnička starts hraje (interactive notifications are available on Windows)",
"menu": { "menu": {
"interactive": "Interaktivní oznámení",
"interactive-settings": { "interactive-settings": {
"label": "Interactive Nastavení", "label": "Interactive Nastavení",
"submenu": { "submenu": {
"hide-button-text": "Skrýt text tlačítka", "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" "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í" "name": "Oznámení"
}, },
@ -341,7 +418,9 @@
"prompt": { "prompt": {
"keybind-options": { "keybind-options": {
"hotkey": "Klávesová zkratka" "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", "save-window-position": "Uložit pozici okna",
@ -355,7 +434,7 @@
}, },
"playback-speed": { "playback-speed": {
"description": "Posloiuchej rychle, poslouchej pomalu! Adds a slider, který kontroluje rychlost písníčky", "description": "Posloiuchej rychle, poslouchej pomalu! Adds a slider, který kontroluje rychlost písníčky",
"name": "Playback rychlost", "name": "Rychlost přehrávání",
"templates": { "templates": {
"button": "Rychlost" "button": "Rychlost"
} }
@ -364,7 +443,7 @@
"menu": { "menu": {
"global-shortcuts": "Globální klávesové zkratky" "global-shortcuts": "Globální klávesové zkratky"
}, },
"name": "Precise hlasitost", "name": "Přesná hlasitost",
"prompt": { "prompt": {
"global-shortcuts": { "global-shortcuts": {
"keybind-options": { "keybind-options": {
@ -386,6 +465,9 @@
} }
}, },
"shortcuts": { "shortcuts": {
"menu": {
"override-media-keys": "Přepsat Media Keys"
},
"name": "Zkratky (& MPRIS)", "name": "Zkratky (& MPRIS)",
"prompt": { "prompt": {
"keybind": { "keybind": {
@ -401,18 +483,32 @@
"description": "Automaticky přeskakovat tichá místa v písničkách", "description": "Automaticky přeskakovat tichá místa v písničkách",
"name": "Přeskočit Tichá místa" "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": { "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": { "video-toggle": {
"description": "Přidává tlačítko switch mezi videem/písničkou mode. Může také optionally remove celou video kartu",
"menu": { "menu": {
"align": { "align": {
"label": "Zarovnání", "label": "Zarovnání",
"submenu": { "submenu": {
"left": "Vlevo", "left": "Vlevo",
"middle": "Uprostřed",
"right": "Pravo" "right": "Pravo"
} }
}, },
"force-hide": "Vynutit odstranění karty videa",
"mode": { "mode": {
"label": "Režim" "label": "Režim"
} }
@ -420,6 +516,13 @@
"templates": { "templates": {
"button": "Písnička" "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

@ -521,7 +521,7 @@
"shortcuts": { "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", "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": { "menu": {
"override-media-keys": "Medienschlüssel überschreiben", "override-media-keys": "Medientasten überschreiben",
"set-keybinds": "Globale Liedsteuerung setzen" "set-keybinds": "Globale Liedsteuerung setzen"
}, },
"name": "Abkürzungen (& MPRIS)", "name": "Abkürzungen (& MPRIS)",

View File

@ -537,6 +537,10 @@
} }
} }
}, },
"skip-disliked-songs": {
"description": "Skips disliked songs",
"name": "Skip Disliked Songs"
},
"skip-silences": { "skip-silences": {
"description": "Automatically skip silences sections in songs", "description": "Automatically skip silences sections in songs",
"name": "Skip Silences" "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"
}
}
}

View File

@ -1,4 +1,18 @@
{ {
"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": { "language": {
"code": "fr", "code": "fr",
"local-name": "Français", "local-name": "Français",
@ -6,107 +20,575 @@
}, },
"main": { "main": {
"console": { "console": {
"did-finish-load": {
"dev-tools": "Chargement terminé. DevTools ouvert"
},
"i18n": {
"loaded": "i18n chargé"
},
"second-instance": {
"receive-command": "Received command over protocol: \"{{command}}\""
},
"theme": { "theme": {
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer" "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": { "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": { "update-available": {
"buttons": { "buttons": {
"download": "Sauvegarder" "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": { "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": { "options": {
"label": "Paramètres", "label": "Paramètres",
"submenu": { "submenu": {
"advanced-options": { "advanced-options": {
"label": "Options avancée",
"submenu": { "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", "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": { "set-proxy": {
"label": "Définir un proxy",
"prompt": { "prompt": {
"placeholder": "Exemple: socks5://127.0.0.1:9999" "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": { "language": {
"label": "Langue" "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": { "visual-tweaks": {
"label": "Ajustements visuels",
"submenu": { "submenu": {
"like-buttons": { "like-buttons": {
"hide": "Cacher" "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": { "plugins": {
"ambient-mode": { "adblocker": {
"description": "Bloquer toutes les annonces et le suivi par défaut",
"menu": { "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": { "buffer": {
"label": "Tampon",
"submenu": { "submenu": {
"buffer": "{{buffer}}" "buffer": "{{buffer}}"
} }
}, },
"opacity": { "opacity": {
"label": "Opacité",
"submenu": { "submenu": {
"percent": "{{opacity}}%" "percent": "{{opacity}}%"
} }
}, },
"quality": {
"label": "Qualité",
"submenu": {
"pixels": "{{quality}} pixels"
}
},
"size": { "size": {
"label": "Taille",
"submenu": { "submenu": {
"percent": "{{size}}%" "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": { "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": { "prompt": {
"selector": { "selector": {
"none": "Aucun" "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": { "crossfade": {
"description": "Fondu enchaîné entre les chansons",
"menu": {
"advanced": "Avancé"
},
"name": "Fondu enchaîné [bêta]",
"prompt": { "prompt": {
"options": { "options": {
"multi-input": { "multi-input": {
"fade-in-duration": "Durée du fondu (millisecondes)",
"fade-out-duration": "Durée du fondu (millisecondes)",
"fade-scaling": { "fade-scaling": {
"label": "Mise à l'échelle du fondu",
"linear": "Linéaire", "linear": "Linéaire",
"logarithmic": "Logarithmique" "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": { "downloader": {
"backend": { "backend": {
"dialog": { "dialog": {
"error": {
"buttons": {
"ok": "Ok"
},
"message": "Argh ! Désolé, le téléchargement a échoué…",
"title": "Erreur de téléchargement !"
},
"start-download-playlist": { "start-download-playlist": {
"buttons": {
"ok": "Ok"
},
"detail": "({{playlistSize}} chansons)", "detail": "({{playlistSize}} chansons)",
"message": "Téléchargement de la playlist {{playlistTitle}}",
"title": "Téléchargement a commencé" "title": "Téléchargement a commencé"
} }
}, },
"feedback": { "feedback": {
"conversion-progress": "Conversion : {{percent}} %",
"converting": "Conversion…",
"done": "Terminé : {{filePath}}",
"download-info": "Téléchargement {{artist}} - {{title}} [{{videoId}}",
"download-progress": "Télécharger: {{percent}}%", "download-progress": "Télécharger: {{percent}}%",
"downloading": "Télécharge…", "downloading": "Télécharge…",
"downloading-counter": "Télécharge {{current}}/{{total}}…", "downloading-counter": "Télécharge {{current}}/{{total}}…",
"downloading-playlist": "Téléchargement de la playlist \"{{playlistTitle}}\"  {{playlistSize}} chansons ({{playlistId}})",
"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…", "preparing-file": "Péparer des fichier…",
"saving": "Sauvegarde…" "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", "name": "Téléchargeur",
"renderer": {
"can-not-update-progress": "Impossible de mettre à jour la progression"
},
"templates": { "templates": {
"button": "Télécharger" "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": { "last-fm": {
"description": "Ajouter le support du scrobbling pour Last.fm",
"name": "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": { "skip-silences": {
"description": "曲の無音区間を自動でスキップ", "description": "曲の無音区間を自動でスキップ",
"name": "無音区間をスキップ" "name": "無音区間をスキップ"

View File

@ -537,6 +537,10 @@
} }
} }
}, },
"skip-disliked-songs": {
"description": "싫어요 표시된 노래를 건너뜁니다",
"name": "싫어요 표시 노래 건너뛰기"
},
"skip-silences": { "skip-silences": {
"description": "노래의 무음 부분을 자동으로 건너뜁니다", "description": "노래의 무음 부분을 자동으로 건너뜁니다",
"name": "무음 건너뛰기" "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": { "language": {
"code": "ru", "code": "ru",
"local-name": "Русский", "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

@ -2,49 +2,49 @@
"common": { "common": {
"console": { "console": {
"plugins": { "plugins": {
"execute-failed": "插件 {{pluginName}} 無法被執行::{{contextName}}", "execute-failed": "外掛 {{pluginName}} 無法被執行::{{contextName}}",
"executed-at-ms": "插件 {{pluginName}} ::{{contextName}} 用了 {{ms}} ms 來執行", "executed-at-ms": "外掛 {{pluginName}}::{{contextName}} 用了 {{ms}} 毫秒來執行",
"initialize-failed": "初始化插件 \"{{pluginName}}\" 失敗", "initialize-failed": "初始化外掛「{{pluginName}}失敗",
"load-all": "載入所有插件", "load-all": "正在載入所有外掛",
"load-failed": "載入插件 \"{{pluginName}}\" 失敗", "load-failed": "載入外掛「{{pluginName}}失敗",
"loaded": "插件 \"{{pluginName}}\" 已被載入", "loaded": "外掛「{{pluginName}}」已載入",
"unload-failed": "解除安裝插件 \"{{pluginName}}\" 失敗", "unload-failed": "移除外掛「{{pluginName}}失敗",
"unloaded": "插件 \"{{pluginName}}\" 已被解除安裝" "unloaded": "外掛「{{pluginName}}」已被移除"
} }
} }
}, },
"language": { "language": {
"code": "zh-TW", "code": "zh-TW",
"local-name": "正體", "local-name": "正體中文",
"name": "Traditional Chinese" "name": "Traditional Chinese"
}, },
"main": { "main": {
"console": { "console": {
"did-finish-load": { "did-finish-load": {
"dev-tools": "載入完成。開發工具已開啟" "dev-tools": "載入完成。開發人員工具已開啟"
}, },
"i18n": { "i18n": {
"loaded": "i18n 已載入" "loaded": "i18n 已載入"
}, },
"second-instance": { "second-instance": {
"receive-command": "使用協定來接收指令: \"{{command}}\"" "receive-command": "使用協定來接收指令:「{{command}}"
}, },
"theme": { "theme": {
"css-file-not-found": "CSS 檔案 \"{{cssFile}}\" 不存在,已忽略" "css-file-not-found": "CSS 檔案{{cssFile}}不存在,已忽略"
}, },
"unresponsive": { "unresponsive": {
"details": "回應錯誤!\n{{error}}" "details": "沒有回應錯誤!\n{{error}}"
}, },
"when-ready": { "when-ready": {
"clearing-cache-after-20s": "清理程式的快取資料" "clearing-cache-after-20s": "清理程式的快取資料"
}, },
"window": { "window": {
"tried-to-render-offscreen": "視窗正嘗試在螢幕外渲染,視窗大小 = {{windowSize}},螢幕大小 = {{displaySize}},位置 = {{position}}" "tried-to-render-offscreen": "視窗正嘗試在螢幕外繪製,視窗大小 = {{windowSize}},螢幕大小 = {{displaySize}},位置 = {{position}}"
} }
}, },
"dialog": { "dialog": {
"hide-menu-enabled": { "hide-menu-enabled": {
"detail": "選單已隱藏,使用 'Alt' 鍵來重新顯示(或是使用空白鍵來使用程式內選單", "detail": "選單已隱藏,使用 Alt 鍵來重新顯示(或是使用 Esc 鍵",
"message": "隱藏選單已經啟用", "message": "隱藏選單已經啟用",
"title": "隱藏選單已啟用" "title": "隱藏選單已啟用"
}, },
@ -53,8 +53,8 @@
"later": "稍後", "later": "稍後",
"restart-now": "立即重啟" "restart-now": "立即重啟"
}, },
"detail": "插件 \"{{pluginName}}\" 需要程式重新啟動之後才會生效", "detail": "外掛「{{pluginName}}需要程式重新啟動之後才會生效",
"message": "\"{{pluginName}}\" 需要重新啟動", "message": "{{pluginName}}需要重新啟動",
"title": "需要重新啟動" "title": "需要重新啟動"
}, },
"unresponsive": { "unresponsive": {
@ -64,16 +64,16 @@
"wait": "等一下" "wait": "等一下"
}, },
"detail": "造成不便我們深表歉意!請選擇動作:", "detail": "造成不便我們深表歉意!請選擇動作:",
"message": "應用程式回應", "message": "應用程式沒有回應",
"title": "視窗回應" "title": "視窗沒有回應"
}, },
"update-available": { "update-available": {
"buttons": { "buttons": {
"disable": "關閉更新", "disable": "停用更新",
"download": "下載", "download": "下載",
"ok": "OK" "ok": "確定"
}, },
"detail": "新版本已經推出,你可以 {{downloadLink}} 下載", "detail": "新版本已經推出,你可以 {{downloadLink}} 下載",
"message": "有新版本可用", "message": "有新版本可用",
"title": "有可用的更新" "title": "有可用的更新"
} }
@ -96,50 +96,499 @@
"advanced-options": { "advanced-options": {
"label": "進階選項", "label": "進階選項",
"submenu": { "submenu": {
"auto-reset-app-cache": "當程式啟動時重應用程式快取", "auto-reset-app-cache": "當程式啟動時重應用程式快取",
"disable-hardware-acceleration": "關閉硬體加速", "disable-hardware-acceleration": "關閉硬體加速",
"edit-config-json": "編輯 config.json", "edit-config-json": "編輯 config.json",
"override-user-agent": "複寫用戶代理", "override-user-agent": "覆寫使用者代理",
"restart-on-config-changes": "重新啟動來更改配置", "restart-on-config-changes": "設定檔變更時重啟程式",
"set-proxy": { "set-proxy": {
"label": "設定代理伺服器", "label": "設定代理伺服器",
"prompt": { "prompt": {
"label": "輸入代理伺服器位置:(留空以停用本設定)", "label": "輸入代理伺服器位置:(留空以停用本設定)",
"placeholder": "例: socks5://127.0.0.1:9999", "placeholder": "socks5://127.0.0.1:9999",
"title": "設定代理伺服器" "title": "設定代理伺服器"
} }
}, },
"toggle-dev-tools": "切換開發者工具" "toggle-dev-tools": "切換開發者人員工具"
} }
}, },
"always-on-top": "永遠顯示在最上層", "always-on-top": "永遠顯示在最上層",
"auto-update": "自動更新", "auto-update": "自動更新",
"hide-menu": { "hide-menu": {
"dialog": {
"message": "選單會在程式下次啟動時隱藏,使用 Alt 鍵來重新顯示(或是使用 ` 鍵)",
"title": "隱藏選單欄已啟用"
},
"label": "隱藏選單" "label": "隱藏選單"
}, },
"language": { "language": {
"dialog": { "dialog": {
"message": "語言會在下一次重啟應用時變更", "message": "語言會在下一次重啟應用程式時變更",
"title": "語言已變更" "title": "語言已變更"
}, },
"label": "語言", "label": "語言",
"submenu": { "submenu": {
"to-help-translate": "想要協助翻譯?點擊這裡" "to-help-translate": "想要協助翻譯?按一下這裡"
} }
}, },
"resume-on-start": "繼續上次關閉應用前的音樂", "resume-on-start": "繼續上次關閉應用程式前的音樂",
"single-instance-lock": "禁止多開應用程式",
"start-at-login": "開機時啟動", "start-at-login": "開機時啟動",
"starting-page": { "starting-page": {
"label": "啟動頁面", "label": "啟動頁面",
"unset": "未設" "unset": "未設"
}, },
"tray": { "tray": {
"label": "系統閘圖式",
"submenu": { "submenu": {
"disabled": "已停用" "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 path from 'node:path';
import url from 'node:url'; import url from 'node:url';
import fs from 'node:fs'; import fs from 'node:fs';
import process from 'node:process';
import { import {
BrowserWindow, BrowserWindow,
@ -404,7 +403,7 @@ async function createMainWindow() {
removeContentSecurityPolicy(); removeContentSecurityPolicy();
win.webContents.on('dom-ready', async () => { win.webContents.on('dom-ready', async () => {
if (useInlineMenu && !is.linux()) { if (useInlineMenu && is.windows()) {
win.setTitleBarOverlay({ win.setTitleBarOverlay({
...defaultTitleBarOverlayOptions, ...defaultTitleBarOverlayOptions,
height: Math.floor( height: Math.floor(

View File

@ -1,5 +1,3 @@
import process from 'node:process';
import is from 'electron-is'; import is from 'electron-is';
import { import {
app, app,

View File

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

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; export const isInjected: () => boolean;

View File

@ -12,7 +12,11 @@ let injected = false;
export const isInjected = () => injected; export const isInjected = () => injected;
export const inject = () => { /**
* @param {Electron.ContextBridge} contextBridge
* @returns {*}
*/
export const inject = (contextBridge) => {
injected = true; injected = true;
{ {
const pruner = function (o) { const pruner = function (o) {
@ -28,17 +32,37 @@ export const inject = () => {
return o; return o;
}; };
JSON.parse = new Proxy(JSON.parse, { contextBridge.exposeInMainWorld('_proxyJson', {
apply() { parse: new Proxy(JSON.parse, {
return pruner(Reflect.apply(...arguments)); 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, { Response.prototype.json = new Proxy(Response.prototype.json, {
apply() { apply() {
return Reflect.apply(...arguments).then((o) => pruner(o)); return Reflect.apply(...arguments).then((o) => pruner(o));
}, },
}); });
contextBridge.exposeInMainWorld('_proxyResponse', withPrototype(Response));
} }
(function () { (function () {

View File

@ -10,18 +10,21 @@ import backHTML from './templates/back.html?raw';
export default createPlugin({ export default createPlugin({
name: () => t('plugins.navigation.name'), name: () => t('plugins.navigation.name'),
description: () => t('plugins.navigation.description'), description: () => t('plugins.navigation.description'),
restartNeeded: true, restartNeeded: false,
config: { config: {
enabled: true, enabled: true,
}, },
stylesheets: [style], stylesheets: [style],
renderer() { renderer: {
const forwardButton = ElementFromHtml(forwardHTML); start() {
const backButton = ElementFromHtml(backHTML); const forwardButton = ElementFromHtml(forwardHTML);
const menu = document.querySelector('#right-content'); const backButton = ElementFromHtml(backHTML);
const menu = document.querySelector('#right-content');
if (menu) { menu?.prepend(backButton, forwardButton);
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 { contextBridge, ipcRenderer, IpcRendererEvent } from 'electron';
import is from 'electron-is'; import is from 'electron-is';

View File

@ -6,7 +6,7 @@ cask "youtube-music" do
homepage "https://github.com/th-ch/youtube-music" homepage "https://github.com/th-ch/youtube-music"
# Fetch the latest release version from GitHub API # 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 version latest_release
base_url = "https://github.com/th-ch/youtube-music/releases/download/#{latest_release}/YouTube-Music-#{latest_release.delete_prefix('v')}" base_url = "https://github.com/th-ch/youtube-music/releases/download/#{latest_release}/YouTube-Music-#{latest_release.delete_prefix('v')}"