mirror of
https://github.com/th-ch/youtube-music.git
synced 2026-01-11 10:31:47 +00:00
Compare commits
624 Commits
v3.9.0
...
snyk-fix-c
| Author | SHA1 | Date | |
|---|---|---|---|
| fdd55e10bc | |||
| c9ae7cb277 | |||
| e455932754 | |||
| a1e3bf23be | |||
| 8ccd510700 | |||
| c0a495640f | |||
| 6060e138ee | |||
| 98b2e182fb | |||
| 715ddb8923 | |||
| 3104111f6b | |||
| e064c37859 | |||
| 1de223b4ca | |||
| 50a1365a6f | |||
| cc83804491 | |||
| 92cf306439 | |||
| a8be510a07 | |||
| 58524fb3c1 | |||
| aeb6997117 | |||
| 0116188623 | |||
| af63edb058 | |||
| bd0ac52832 | |||
| 5b537d2a9e | |||
| d9a7c352d3 | |||
| 84add37441 | |||
| 9a88f11f16 | |||
| 51b4441e5c | |||
| 29784e6a39 | |||
| e2981c22fa | |||
| d7513dcc20 | |||
| 5c0face2c9 | |||
| a1805f7662 | |||
| 46889098e8 | |||
| 607938c170 | |||
| 58a03db898 | |||
| 67ef3408dc | |||
| 27f16e26b3 | |||
| e38200bc1f | |||
| 736e63d259 | |||
| 721271d902 | |||
| a2151930ec | |||
| bdc9f42681 | |||
| 0b3c6f9e1f | |||
| ebe373bdc6 | |||
| ab91e6d735 | |||
| be3ae4d789 | |||
| 336b7fe5e9 | |||
| 5ecd39f324 | |||
| eb50596961 | |||
| aede0cd643 | |||
| 25f51784c3 | |||
| 7acac6d11c | |||
| 1972ef70b5 | |||
| c4455ed3d2 | |||
| c1a06ab955 | |||
| 26fa1f85b2 | |||
| 555817e2f5 | |||
| f8654dfdb9 | |||
| 96c0fc412c | |||
| a70a4106df | |||
| 895210cbb6 | |||
| 789a30312b | |||
| 623d97b1e2 | |||
| 4ed97f0145 | |||
| 77a2bbf02a | |||
| 7a9a1531d4 | |||
| 16b59698d6 | |||
| a85a2e0c58 | |||
| 97f1a20a4f | |||
| 8dbe151ddd | |||
| 87144e03c2 | |||
| 2046b253e3 | |||
| c068e11fc5 | |||
| 10384b6c4c | |||
| 4d83bd587d | |||
| aae523989b | |||
| afacec973b | |||
| 75fb51e290 | |||
| cb85048af4 | |||
| 8b10872e83 | |||
| 96ea114335 | |||
| 7c1c3ef28d | |||
| 7a7ad4261c | |||
| c0dbc204a0 | |||
| 68e63f809c | |||
| 4b188ec205 | |||
| 23013cddb9 | |||
| 588b84ecd0 | |||
| fd68c204f6 | |||
| 313bb6e43f | |||
| 0a6f244035 | |||
| 8e4e2c42f6 | |||
| f31053cf3c | |||
| d5758790c0 | |||
| bbd243a534 | |||
| 2fc0d6f3b0 | |||
| 6b15018a9b | |||
| acc977db7c | |||
| 270100a14c | |||
| 094e6fa2d6 | |||
| 9f81f7001c | |||
| e6c78dd5e0 | |||
| b64e1394ae | |||
| dcc611c7d0 | |||
| d329076b52 | |||
| 1435559a56 | |||
| 1feeeedf10 | |||
| 443d716e45 | |||
| 3d65a96e38 | |||
| e20f3fe24c | |||
| 5d3afb52d8 | |||
| 5e0341c8d5 | |||
| b84a8c512a | |||
| cd0f4bbc1d | |||
| e37367c5e5 | |||
| 8a765be912 | |||
| a213dae14d | |||
| 40c429f3c1 | |||
| 3125520e68 | |||
| 1c57fec016 | |||
| 2708b4fffc | |||
| f1d264a6c7 | |||
| c478e74771 | |||
| 6cf9f813a0 | |||
| dddfa581ed | |||
| 94b789aa78 | |||
| d6d731260b | |||
| 440864e605 | |||
| 4506ae4079 | |||
| c2538e280a | |||
| ef7da94201 | |||
| 68a754f438 | |||
| 2a81a4e887 | |||
| 40d64fb04f | |||
| c6bc65b3d3 | |||
| db02e009cd | |||
| b0b6ebe036 | |||
| be698cc0fb | |||
| 06b35acf65 | |||
| 557932f7bb | |||
| d48f328881 | |||
| 4e7f40c86a | |||
| 614c774e71 | |||
| 3fa4ab54b6 | |||
| de8136dbe4 | |||
| 4051aec6e3 | |||
| aa0496c548 | |||
| a953b5995c | |||
| ff2d889329 | |||
| f3b1adbd32 | |||
| 247443630a | |||
| 6eb54afda4 | |||
| 83ecc499e3 | |||
| 418a6ce8e4 | |||
| 4f19f73d4d | |||
| 31d109e00f | |||
| fd3f79e976 | |||
| c748e606b1 | |||
| 40299b38c5 | |||
| 62b40d4df5 | |||
| 5e4a1253d4 | |||
| 702792b659 | |||
| e83f83fa9b | |||
| 3de54340f3 | |||
| ffbc3bd1c2 | |||
| c513959461 | |||
| 66e414dd64 | |||
| 454d2a1d4e | |||
| ca3372d7f5 | |||
| 5bcbab1fac | |||
| 47656c08fd | |||
| 6374ff4a41 | |||
| 86e7c84e43 | |||
| d554fa34b2 | |||
| 1bec276c8b | |||
| 17153eacf0 | |||
| 20d25ca953 | |||
| b3b3d45b96 | |||
| 5ba65ea122 | |||
| 0108e3f603 | |||
| 8d23b13f70 | |||
| a8f9505255 | |||
| cd0509eb06 | |||
| 23504408ec | |||
| ba8282881d | |||
| ad1ac79fdb | |||
| 54736256a4 | |||
| 0d77ac096d | |||
| 6a2b27bfcb | |||
| 2a0aeac89b | |||
| 5dc11e2bdc | |||
| fba48dcd55 | |||
| 832c3103c7 | |||
| 49d9bf9859 | |||
| ef5d0c1222 | |||
| 1cb666d7dd | |||
| 45ca896bef | |||
| 624d5102a5 | |||
| 2e9e5cc51f | |||
| c5f755bfcf | |||
| 0d1cadd650 | |||
| 4cc7ffe74d | |||
| 7f59ca18b0 | |||
| f87030ff55 | |||
| 2406baa5a5 | |||
| d7bf973547 | |||
| 0d199b82ec | |||
| 7d7562d147 | |||
| 9d43fb2bb3 | |||
| 010da7536d | |||
| 3473f05823 | |||
| f72664957d | |||
| a127c2e5e2 | |||
| 952da4ddf6 | |||
| bf84477609 | |||
| e274a1b4c4 | |||
| e6150a5b53 | |||
| dfd881186a | |||
| 762b66dbcd | |||
| f1acfbf48f | |||
| 046faecf11 | |||
| c3612d2ca7 | |||
| 3da344fcad | |||
| 2b5380e67e | |||
| e3c7e4f524 | |||
| 3604e46661 | |||
| 8cea079f26 | |||
| 83b68001cb | |||
| 7a11a47f91 | |||
| 2a9a00bd86 | |||
| cfcbf37f98 | |||
| 7f5c854c00 | |||
| 7ec89580e7 | |||
| 56a5102377 | |||
| b6e9b5ac2b | |||
| eecdbbd2c4 | |||
| efeb871490 | |||
| f326a55247 | |||
| e788585bd4 | |||
| 1396761b18 | |||
| 5872e0f736 | |||
| 1872c8193d | |||
| 187a0c54cb | |||
| 9533497388 | |||
| f323b7bb1f | |||
| 68810b4762 | |||
| d3e01d0732 | |||
| 970cf7ee91 | |||
| 4bf038e24d | |||
| 5925b765b8 | |||
| 78cd3a786c | |||
| adb88991d9 | |||
| 4dad68d255 | |||
| 33a09cc8e1 | |||
| e2c849f6c4 | |||
| 7b41775b26 | |||
| 6284b87fc7 | |||
| f3f63d4fcd | |||
| cf80dd396c | |||
| c79fc799b2 | |||
| 7789d5d444 | |||
| e0dbd4b88f | |||
| 1c74bbd954 | |||
| d949e3550f | |||
| d76115ab5d | |||
| 5be467a869 | |||
| b2dfbe1ed3 | |||
| a9e9e0bdc2 | |||
| 93ce9cc359 | |||
| 2a626a5ff1 | |||
| 1ccabb8e25 | |||
| 2dae8688c2 | |||
| 65459726a4 | |||
| 0c21accb10 | |||
| 125d2d5163 | |||
| 6c1855b5a5 | |||
| 82c5222610 | |||
| 0d0e2a11e1 | |||
| daf724f9dc | |||
| be2cdb4cb5 | |||
| ff2fdab77d | |||
| 9047169a39 | |||
| 9525df343f | |||
| be2abee85d | |||
| 7d5f7a9527 | |||
| b53ece5836 | |||
| c04dc92d39 | |||
| 78acd2ddbb | |||
| 7126c290e2 | |||
| 58651857e2 | |||
| 8e7c95e68f | |||
| 1c68c5637d | |||
| c44d5ea111 | |||
| b48e05ab28 | |||
| 7e5a5a77fe | |||
| 77c4566ad3 | |||
| 6305f52947 | |||
| b8baf0fad4 | |||
| 038244bf43 | |||
| ef22b48aae | |||
| 62b3abd502 | |||
| e1f8ece433 | |||
| dd9ed5e5e6 | |||
| 3f442a97c5 | |||
| 61e19cfa9f | |||
| f73188ab83 | |||
| 4c4a39b9a7 | |||
| 1da83ff27c | |||
| 2cfc38757a | |||
| b5f82f5ed8 | |||
| d13484a47b | |||
| 4d33921881 | |||
| 6fdac6facf | |||
| 51a87566e5 | |||
| f715dcd9b4 | |||
| 275f78a180 | |||
| bc8d199c77 | |||
| e114e0ef44 | |||
| 9ccd126eee | |||
| e3c79c789c | |||
| c9ab69eb9e | |||
| d444f52c27 | |||
| cd51d2c8df | |||
| 84c592f45f | |||
| 83f7ebc087 | |||
| 35a7ab288d | |||
| c1c4c22ec2 | |||
| 5eb0c9f98c | |||
| 733b0166c8 | |||
| c5f7c80542 | |||
| c840e31a80 | |||
| 22181afe73 | |||
| f698614b21 | |||
| adeffdabad | |||
| acdffea563 | |||
| cf1806dc10 | |||
| ff69803fdc | |||
| f7140d78bd | |||
| e4d8365170 | |||
| c64d69f33b | |||
| 16a3fa7469 | |||
| 1e867d10f2 | |||
| 3466b1a863 | |||
| a5cc2f555a | |||
| 9445379280 | |||
| 68c79ded99 | |||
| 9e59a8c1d5 | |||
| cc20cb5620 | |||
| be69d85d27 | |||
| f851c2de20 | |||
| 2319821851 | |||
| 5ba0fee18a | |||
| 8ac7c4ea9d | |||
| 3649ad092a | |||
| 4adaa27beb | |||
| e6ab13a42b | |||
| fb16badcb3 | |||
| fc0da887e1 | |||
| f65add2e28 | |||
| c3b7ee54de | |||
| 245974da42 | |||
| 4e756f7117 | |||
| bed4f1bfe9 | |||
| 0e79d9d5cc | |||
| 136f9f429f | |||
| 97d8cb5ad1 | |||
| b21862f2be | |||
| bedfd20f7e | |||
| 46a95a4f97 | |||
| 80f1d10309 | |||
| 9f38f1fb26 | |||
| 0061318f4c | |||
| 6ba36fcba5 | |||
| 63c8f4d0e1 | |||
| bef304865c | |||
| fec4702ee0 | |||
| ab07b71888 | |||
| 0253bfe193 | |||
| 3e9429879d | |||
| c1ac07d287 | |||
| fa0f68e308 | |||
| 38b2bb64fc | |||
| be92e6c6f7 | |||
| eabbfe94bc | |||
| bcbc691435 | |||
| 90c832733d | |||
| e3b76115aa | |||
| 8fc9692ae4 | |||
| 40ab32cbe7 | |||
| f047dd2d2d | |||
| 1877460094 | |||
| eae4e952f5 | |||
| 89479a5045 | |||
| a702a3284c | |||
| 47674e9a5a | |||
| 93deee665b | |||
| 95385cb9de | |||
| 35f9ac0f9a | |||
| 42b8f57216 | |||
| 56cb3b6cc8 | |||
| 01e137f5d4 | |||
| 0bbc1b4546 | |||
| 40429034b6 | |||
| 49cb29c2fe | |||
| 432427ec5a | |||
| ce0568cc52 | |||
| d6ed6bdc2b | |||
| 65b6417777 | |||
| 7b2c537290 | |||
| cbb7709159 | |||
| 232ca99243 | |||
| 47990c7b95 | |||
| 21a95709a2 | |||
| d43803c14c | |||
| 5fe10a9660 | |||
| fa9e031bbb | |||
| a592520e2a | |||
| f7f82f20f1 | |||
| e8214fa6ee | |||
| 1f0978d5ad | |||
| 2b0295d95c | |||
| 355d9870a1 | |||
| 4eb2d63a82 | |||
| 315fa15eec | |||
| 6037491f98 | |||
| 9e3d84e78e | |||
| de7f7abc91 | |||
| ad0d1ec37d | |||
| 2acd51cec3 | |||
| 96a1df3d0a | |||
| 576cd14ca0 | |||
| baeef8e2c3 | |||
| 1823740dd8 | |||
| ce73d6c075 | |||
| 1e1b469dba | |||
| da6c3b907c | |||
| be90fecbad | |||
| cce5419985 | |||
| fb2bbdc381 | |||
| dbd4113314 | |||
| 49e915d2e1 | |||
| 96cd219a0f | |||
| 7390119143 | |||
| d8a84a3500 | |||
| 34601dd6af | |||
| ee28471146 | |||
| e80bc304c5 | |||
| 2593092f04 | |||
| fc52af96b2 | |||
| c31eaefdee | |||
| 83212294c9 | |||
| fbe1729ac3 | |||
| 419e51a814 | |||
| 170b3132ad | |||
| 5ef2dc5a9a | |||
| 43d6950ee3 | |||
| 6070300c22 | |||
| ef1504ab30 | |||
| c52d8d93b3 | |||
| f6ddfc3807 | |||
| 5035c6a8d8 | |||
| 58ca9523c5 | |||
| 5b2e9c0de9 | |||
| 4a3ca1af75 | |||
| 7beac0b6ad | |||
| af05ff6582 | |||
| 77703e0268 | |||
| dadca8b1c4 | |||
| 87db1dd461 | |||
| 2799f81906 | |||
| bfe96b004f | |||
| 51f7d10113 | |||
| 60ca5ec17e | |||
| 8d1082da4e | |||
| 1858b0712b | |||
| d5b3fbbdb2 | |||
| 346ce00144 | |||
| f9d5e67f3f | |||
| 73dd56416e | |||
| ca97e624cd | |||
| b639fb1073 | |||
| 8488dfd8f4 | |||
| 7eed86608c | |||
| 67dfc618d1 | |||
| 38394193f5 | |||
| c9ca1b8be6 | |||
| 8ce25613ae | |||
| 145cf8563b | |||
| c9b0577ed4 | |||
| 8a5c3a670a | |||
| 17259d68d0 | |||
| aa77ab0779 | |||
| 481fff56f5 | |||
| 0da013a962 | |||
| eeb051dd29 | |||
| 708c96a8e9 | |||
| 4f7e2f29c1 | |||
| b754e16fb6 | |||
| f53d3abef8 | |||
| c9e48782aa | |||
| a49d711c67 | |||
| 878ab6307e | |||
| ad17e9a557 | |||
| bc9ca62cbe | |||
| 4329ac6bf3 | |||
| a49733877f | |||
| a3ca565faf | |||
| a51670c1c8 | |||
| a9b4b42a74 | |||
| f6b51d92a4 | |||
| c4efbcbbeb | |||
| 3de06655df | |||
| 2c649c50f6 | |||
| bccefb9380 | |||
| 6c5009d520 | |||
| a45b8f88cb | |||
| 3a82129d37 | |||
| 16fe257073 | |||
| 39d6b6d30b | |||
| 2dbaecff6e | |||
| 77c9d44823 | |||
| aaea3ba768 | |||
| 2cb44054df | |||
| 3effb58282 | |||
| 1d9573e15d | |||
| f8df3e6548 | |||
| d76ebde673 | |||
| 2e4a15442a | |||
| 716566593e | |||
| 9c0d1788b0 | |||
| 51b3f53569 | |||
| 88111185a3 | |||
| ac0a46cff6 | |||
| 529c798e49 | |||
| 611afd7403 | |||
| 6ac1fec5ab | |||
| 22cfefb5f9 | |||
| e1962810e9 | |||
| cd740880c8 | |||
| 382caaabb0 | |||
| 9f5236439c | |||
| bb69f31f3a | |||
| afe5fed760 | |||
| 981a7f319e | |||
| 42cb9b0ea8 | |||
| d9ead78083 | |||
| 329ea64989 | |||
| 8c1673c6a8 | |||
| dedca8fdd1 | |||
| 02bf057fbc | |||
| 98be48bb13 | |||
| 3200d088cf | |||
| edea7b59e1 | |||
| d10c6ec8fc | |||
| 91a2eb9063 | |||
| dfa427f2ed | |||
| 6d3ac985b2 | |||
| d874fcd117 | |||
| 5158b9cd04 | |||
| efc8038210 | |||
| 8f18fb80ea | |||
| a257d4dfbc | |||
| e2f1d1d611 | |||
| d4c00b6d74 | |||
| 823fbf4a78 | |||
| 806dc11d4a | |||
| d8dcbddbf1 | |||
| 1219de1ae9 | |||
| 1e764f7707 | |||
| 809947716d | |||
| d88406447e | |||
| dbfe9d517a | |||
| 703ad71ff3 | |||
| 3b4f319871 | |||
| 852933d4d7 | |||
| b9269bf085 | |||
| 3b8edf115e | |||
| 97a277a192 | |||
| 41ce2320fa | |||
| 1350ca0816 | |||
| 5e29628351 | |||
| 006aacfb35 | |||
| e5cef89a27 | |||
| e91d44d018 | |||
| f35328fab4 | |||
| d84c308572 | |||
| 733866efea | |||
| 079e625c69 | |||
| 64f87d4fec | |||
| da5c18dcf1 | |||
| f67ff2ee11 | |||
| 0c1d300103 | |||
| e0abc4a43b | |||
| de273da85f | |||
| b52caa5f17 | |||
| fec7d3b1c4 | |||
| 63f7254b60 | |||
| 03501790fb | |||
| 7570dad1b5 | |||
| 2f8b889849 | |||
| 5eb2457c36 | |||
| 52c6e09917 | |||
| 8bfc93b948 | |||
| 5b09123feb | |||
| 2334e4d800 | |||
| 6bf812f9bf | |||
| b0cd8332fc | |||
| 73f7164584 | |||
| 2117bc830c | |||
| cd5e7ef646 | |||
| 0eecd4b6a5 | |||
| 407f01aa19 | |||
| 0d3fb0400f | |||
| 6d46024f42 | |||
| c8812d8ab6 | |||
| 2819740429 | |||
| e1b20baf4d | |||
| 25d02154ed | |||
| 8f59b78059 | |||
| 46c32b18a0 | |||
| 3eb6ba2499 | |||
| 9208547881 | |||
| 8bfcd4a139 | |||
| 00041fd146 | |||
| 98feeed7eb |
16
.github/workflows/build.yml
vendored
16
.github/workflows/build.yml
vendored
@ -6,7 +6,7 @@ on:
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
NODE_VERSION: "20.x"
|
||||
NODE_VERSION: "22.x"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
@ -18,7 +18,7 @@ jobs:
|
||||
os: [ macos-latest, ubuntu-latest, windows-latest ]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
@ -28,14 +28,14 @@ jobs:
|
||||
|
||||
- name: Setup NodeJS
|
||||
if: startsWith(matrix.os, 'macOS') != true
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Setup NodeJS for macOS
|
||||
if: startsWith(matrix.os, 'macOS')
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
@ -91,7 +91,7 @@ jobs:
|
||||
if: github.repository == 'th-ch/youtube-music' && github.ref == 'refs/heads/master'
|
||||
needs: build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
@ -103,14 +103,14 @@ jobs:
|
||||
|
||||
- name: Setup NodeJS
|
||||
if: startsWith(matrix.os, 'macOS') != true
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Setup NodeJS for macOS
|
||||
if: startsWith(matrix.os, 'macOS')
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
|
||||
@ -162,7 +162,7 @@ jobs:
|
||||
|
||||
- name: Commit changelog
|
||||
if: ${{ env.VERSION_HASH == '' }}
|
||||
uses: stefanzweifel/git-auto-commit-action@v5
|
||||
uses: stefanzweifel/git-auto-commit-action@v6
|
||||
with:
|
||||
commit_message: Update changelog for ${{ env.VERSION_TAG }}
|
||||
file_pattern: "changelog.md"
|
||||
|
||||
3
.github/workflows/dependency-review.yml
vendored
3
.github/workflows/dependency-review.yml
vendored
@ -15,6 +15,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: "Checkout Repository"
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v5
|
||||
|
||||
- name: "Dependency Review"
|
||||
uses: actions/dependency-review-action@v4
|
||||
|
||||
41
.github/workflows/reviewdog.yml
vendored
Normal file
41
.github/workflows/reviewdog.yml
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
name: reviewdog
|
||||
|
||||
on: [pull_request_target]
|
||||
|
||||
env:
|
||||
NODE_VERSION: "22.x"
|
||||
|
||||
jobs:
|
||||
eslint:
|
||||
name: runner / eslint
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
checks: write
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
run_install: false
|
||||
|
||||
- name: Setup NodeJS
|
||||
uses: actions/setup-node@v5
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION }}
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm install --frozen-lockfile
|
||||
|
||||
- uses: reviewdog/action-eslint@v1.34.0
|
||||
with:
|
||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||
reporter: github-pr-review # Change reporter.
|
||||
eslint_flags: './src'
|
||||
fail_level: error
|
||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,7 +1,6 @@
|
||||
node_modules
|
||||
/dist
|
||||
/pack
|
||||
electron-builder.yml
|
||||
.vscode/settings.json
|
||||
.idea
|
||||
|
||||
@ -13,3 +12,5 @@ electron-builder.yml
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
.vite-inspect
|
||||
|
||||
.DS_Store
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
{
|
||||
"tabWidth": 2,
|
||||
"useTabs": false,
|
||||
"singleQuote": true
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"quoteProps": "consistent"
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇫🇷](./docs/readme/README-fr.md), [🇮🇸](./docs/readme/README-is.md), [🇨🇱 🇪🇸](./docs/readme/README-es.md), [🇷🇺](./docs/readme/README-ru.md), [🇭🇺](./docs/readme/README-hu.md), [🇧🇷](./docs/readme/README-pt.md), [🇯🇵](./docs/readme/README-ja.md)
|
||||
Read this in other languages: [한국어](./docs/readme/README-ko.md), [Française](./docs/readme/README-fr.md), [Íslenska](./docs/readme/README-is.md), [Español](./docs/readme/README-es.md), [Pусский](./docs/readme/README-ru.md), [Українська](./docs/readme/README-uk.md), [Magyar](./docs/readme/README-hu.md), [Português](./docs/readme/README-pt.md), [日本語](./docs/readme/README-ja.md)
|
||||
|
||||
**Electron wrapper around YouTube Music featuring:**
|
||||
|
||||
@ -153,6 +153,8 @@ Read this in other languages: [🇰🇷](./docs/readme/README-ko.md), [🇫🇷]
|
||||
- **Tuna OBS**: Integration with [OBS](https://obsproject.com/)'s
|
||||
plugin [Tuna](https://obsproject.com/forum/resources/tuna.843/)
|
||||
|
||||
- **Unobtrusive Player**: Prevents the player from popping up when playing a song
|
||||
|
||||
- **Video Quality Changer**: Allows changing the video quality with
|
||||
a [button](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) on
|
||||
the video overlay
|
||||
|
||||
272
changelog.md
272
changelog.md
@ -2,8 +2,280 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. Dates are displayed in UTC.
|
||||
|
||||
#### [v3.11.0](https://github.com/th-ch/youtube-music/compare/v3.10.0...v3.11.0)
|
||||
|
||||
- Fixed missing videochange dataupdated event when using shuffle [`#3659`](https://github.com/th-ch/youtube-music/pull/3659)
|
||||
- feat(synced-lyrics): preferred provider (global/per-song) [`#3741`](https://github.com/th-ch/youtube-music/pull/3741)
|
||||
- feat(api-server): send shuffle state over websocket [`#3837`](https://github.com/th-ch/youtube-music/pull/3837)
|
||||
- feat(synced-lyrics): add new "spacer" [`#3742`](https://github.com/th-ch/youtube-music/pull/3742)
|
||||
- feat(downloader): Add context menu button for playlists and albums [`#3768`](https://github.com/th-ch/youtube-music/pull/3768)
|
||||
- feat(transparent-player): new plugin for Acrylic, Mica or Tabbed effects [`#3529`](https://github.com/th-ch/youtube-music/pull/3529)
|
||||
- fix(audio-compressor): real-time behavior and duplicated audio bug [`#3786`](https://github.com/th-ch/youtube-music/pull/3786)
|
||||
- fix: Added Min height and width to the window which doesnt breaks the UI responsiveness [`#3602`](https://github.com/th-ch/youtube-music/pull/3602)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.23 [`#3833`](https://github.com/th-ch/youtube-music/pull/3833)
|
||||
- feat(plugin): Custom output device plugin [`#3789`](https://github.com/th-ch/youtube-music/pull/3789)
|
||||
- chore(deps): update dependency @babel/runtime to v7.28.4 [`#3831`](https://github.com/th-ch/youtube-music/pull/3831)
|
||||
- chore(deps): update eslint monorepo to v9.35.0 [`#3829`](https://github.com/th-ch/youtube-music/pull/3829)
|
||||
- feat(api-server): Add websocket as `/api/v1/ws` route [`#3707`](https://github.com/th-ch/youtube-music/pull/3707)
|
||||
- feat(api-server): Improved api-server volume and like/dislike state [`#3592`](https://github.com/th-ch/youtube-music/pull/3592)
|
||||
- fix(deps): update dependency i18next to v25.5.2 [`#3826`](https://github.com/th-ch/youtube-music/pull/3826)
|
||||
- fix(deps): update dependency virtua to v0.42.2 [`#3827`](https://github.com/th-ch/youtube-music/pull/3827)
|
||||
- fix(exponential-volume): volume desync bug [`#3787`](https://github.com/th-ch/youtube-music/pull/3787)
|
||||
- feat(synced-lyrics): thai romanization [`#3618`](https://github.com/th-ch/youtube-music/pull/3618)
|
||||
- feat(discord): add option to display artist/title in status [`#3692`](https://github.com/th-ch/youtube-music/pull/3692)
|
||||
- chore(deps): update playwright monorepo to v1.55.0 [`#3819`](https://github.com/th-ch/youtube-music/pull/3819)
|
||||
- fix(deps): update dependency i18next to v25.5.1 [`#3820`](https://github.com/th-ch/youtube-music/pull/3820)
|
||||
- fix(deps): update dependency virtua to v0.42.0 [`#3821`](https://github.com/th-ch/youtube-music/pull/3821)
|
||||
- fix(deps): update dependency zod to v4.1.5 [`#3822`](https://github.com/th-ch/youtube-music/pull/3822)
|
||||
- chore(deps): update eslint monorepo to v9.34.0 [`#3818`](https://github.com/th-ch/youtube-music/pull/3818)
|
||||
- chore(deps): update actions/setup-node action to v5 [`#3823`](https://github.com/th-ch/youtube-music/pull/3823)
|
||||
- chore(deps): update dependency electron to v38 [`#3824`](https://github.com/th-ch/youtube-music/pull/3824)
|
||||
- chore(deps): update dependency @stylistic/eslint-plugin to v5.3.1 [`#3817`](https://github.com/th-ch/youtube-music/pull/3817)
|
||||
- fix(deps): update dependency serve to v14.2.5 [`#3816`](https://github.com/th-ch/youtube-music/pull/3816)
|
||||
- feat(discord): add song & artist URLs to rich presence [`#3737`](https://github.com/th-ch/youtube-music/pull/3737)
|
||||
- fix: fix #3621 [`#3774`](https://github.com/th-ch/youtube-music/pull/3774)
|
||||
- feat(refactor): PluginDefinition::platform [`#3665`](https://github.com/th-ch/youtube-music/pull/3665)
|
||||
- chore(docs): update copyright footer year [`#3792`](https://github.com/th-ch/youtube-music/pull/3792)
|
||||
- chore(deps): update dependency vite-plugin-inspect to v11.3.3 [`#3814`](https://github.com/th-ch/youtube-music/pull/3814)
|
||||
- fix(deps): update dependency @floating-ui/dom to v1.7.4 [`#3815`](https://github.com/th-ch/youtube-music/pull/3815)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.11.6 [`#3770`](https://github.com/th-ch/youtube-music/pull/3770)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.22 [`#3813`](https://github.com/th-ch/youtube-music/pull/3813)
|
||||
- chore(deps): update dependency @types/semver to v7.7.1 [`#3812`](https://github.com/th-ch/youtube-music/pull/3812)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.11.6 [`#3771`](https://github.com/th-ch/youtube-music/pull/3771)
|
||||
- fix(deps): update dependency @hono/node-server to v1.19.1 [`#3759`](https://github.com/th-ch/youtube-music/pull/3759)
|
||||
- chore(deps): update dependency typescript-eslint to v8.42.0 [`#3761`](https://github.com/th-ch/youtube-music/pull/3761)
|
||||
- chore(deps): update dependency node-gyp to v11.4.2 [`#3772`](https://github.com/th-ch/youtube-music/pull/3772)
|
||||
- chore(deps): update actions/checkout action to v5 [`#3757`](https://github.com/th-ch/youtube-music/pull/3757)
|
||||
- chore(deps): update dependency vite to v7.1.5 [`#3760`](https://github.com/th-ch/youtube-music/pull/3760)
|
||||
- fix(deps): update dependency hono to v4.9.6 [security] [`#3807`](https://github.com/th-ch/youtube-music/pull/3807)
|
||||
- chore(deps): update dependency electron to v37.3.1 [security] [`#3806`](https://github.com/th-ch/youtube-music/pull/3806)
|
||||
- chore(deps): bump hono from 4.9.2 to 4.9.6 [`#3805`](https://github.com/th-ch/youtube-music/pull/3805)
|
||||
- chore(deps): update playwright monorepo to v1.54.2 [`#3713`](https://github.com/th-ch/youtube-music/pull/3713)
|
||||
- chore(deps): update dependency vite to v7.1.2 [`#3710`](https://github.com/th-ch/youtube-music/pull/3710)
|
||||
- chore(deps): update dependency @stylistic/eslint-plugin to v5.2.3 [`#3754`](https://github.com/th-ch/youtube-music/pull/3754)
|
||||
- chore(deps): update dependency @babel/runtime to v7.28.3 [`#3753`](https://github.com/th-ch/youtube-music/pull/3753)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.20 [`#3706`](https://github.com/th-ch/youtube-music/pull/3706)
|
||||
- fix(deps): update dependency @floating-ui/dom to v1.7.3 [`#3714`](https://github.com/th-ch/youtube-music/pull/3714)
|
||||
- chore(deps): update dependency vite-plugin-solid to v2.11.8 [`#3711`](https://github.com/th-ch/youtube-music/pull/3711)
|
||||
- chore(deps): update dependency rollup to v4.46.2 [`#3709`](https://github.com/th-ch/youtube-music/pull/3709)
|
||||
- chore(deps): update dependency @electron/universal to v3.0.1 [`#3705`](https://github.com/th-ch/youtube-music/pull/3705)
|
||||
- chore(deps): update dependency electron to v37.3.0 [`#3708`](https://github.com/th-ch/youtube-music/pull/3708)
|
||||
- chore(docs): Grammar mistakes [`#3722`](https://github.com/th-ch/youtube-music/pull/3722)
|
||||
- Fixes the error 500 for /auth/ endpoint [`#3627`](https://github.com/th-ch/youtube-music/pull/3627)
|
||||
- feat: add custom window title option [`#3656`](https://github.com/th-ch/youtube-music/pull/3656)
|
||||
- fix(deps): update dependency zod to v4.0.10 [`#3686`](https://github.com/th-ch/youtube-music/pull/3686)
|
||||
- chore(deps): update dependency @babel/runtime to v7.28.2 [`#3687`](https://github.com/th-ch/youtube-music/pull/3687)
|
||||
- chore(deps): update dependency rollup to v4.46.1 [`#3632`](https://github.com/th-ch/youtube-music/pull/3632)
|
||||
- chore(deps): update dependency electron to v38.0.0-alpha.10 [`#3681`](https://github.com/th-ch/youtube-music/pull/3681)
|
||||
- chore(deps): update dependency eslint-config-prettier to v10.1.8 [`#3676`](https://github.com/th-ch/youtube-music/pull/3676)
|
||||
- chore(deps): update dependency eslint-plugin-prettier to v5.5.3 [`#3678`](https://github.com/th-ch/youtube-music/pull/3678)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.11.3 [`#3679`](https://github.com/th-ch/youtube-music/pull/3679)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.17 [`#3620`](https://github.com/th-ch/youtube-music/pull/3620)
|
||||
- chore(deps): update dependency esbuild to v0.25.8 [`#3675`](https://github.com/th-ch/youtube-music/pull/3675)
|
||||
- chore(deps): update dependency @stylistic/eslint-plugin to v5.2.2 [`#3636`](https://github.com/th-ch/youtube-music/pull/3636)
|
||||
- fix(deps): update dependency @hono/node-server to v1.17.1 [`#3625`](https://github.com/th-ch/youtube-music/pull/3625)
|
||||
- fix(deps): update dependency hono to v4.8.7 [`#3567`](https://github.com/th-ch/youtube-music/pull/3567)
|
||||
- chore(deps): update dependency typescript-eslint to v8.38.0 [`#3628`](https://github.com/th-ch/youtube-music/pull/3628)
|
||||
- chore(deps): update dependency electron to v38.0.0-alpha.9 [`#3626`](https://github.com/th-ch/youtube-music/pull/3626)
|
||||
- fix(Skip Disliked Song): updated querySelector [`#3667`](https://github.com/th-ch/youtube-music/pull/3667)
|
||||
- chore(deps): update dependency vite to v7.0.11 [`#3624`](https://github.com/th-ch/youtube-music/pull/3624)
|
||||
- fix(deps): update dependency @hono/zod-validator to v0.7.1 [`#3616`](https://github.com/th-ch/youtube-music/pull/3616)
|
||||
- fix(discord-rpc, scrobbler): Align artist and title with the last.fm's de facto standard [`#3358`](https://github.com/th-ch/youtube-music/issues/3358) [`#3641`](https://github.com/th-ch/youtube-music/issues/3641)
|
||||
- fix: fix #3621 (#3774) [`#3621`](https://github.com/th-ch/youtube-music/issues/3621)
|
||||
- fix: fix #3661 [`#3661`](https://github.com/th-ch/youtube-music/issues/3661)
|
||||
- fix: fix #3613, fix #3651 [`#3613`](https://github.com/th-ch/youtube-music/issues/3613) [`#3651`](https://github.com/th-ch/youtube-music/issues/3651)
|
||||
- chore: remove unused deps [`2a81a4e`](https://github.com/th-ch/youtube-music/commit/2a81a4e887cb5cc3c91a672302db6da3c15544e8)
|
||||
- chore(i18n): Translated using Weblate (Swedish) [`0a6f244`](https://github.com/th-ch/youtube-music/commit/0a6f244035f17724ab1934f3cb2e011adf838e09)
|
||||
- fix: bump dependencies [`5ba65ea`](https://github.com/th-ch/youtube-music/commit/5ba65ea1221236478efa8cb61bca3ffb1bb2d061)
|
||||
|
||||
#### [v3.10.0](https://github.com/th-ch/youtube-music/compare/v3.9.0...v3.10.0)
|
||||
|
||||
> 13 July 2025
|
||||
|
||||
- fix(deps): update dependency butterchurn to v3.0.0-beta.5 [`#3610`](https://github.com/th-ch/youtube-music/pull/3610)
|
||||
- chore(deps): update eslint monorepo to v9.31.0 [`#3600`](https://github.com/th-ch/youtube-music/pull/3600)
|
||||
- chore(deps): update dependency rollup to v4.45.0 [`#3568`](https://github.com/th-ch/youtube-music/pull/3568)
|
||||
- feat: code splitting [`#3593`](https://github.com/th-ch/youtube-music/pull/3593)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.11.1 [`#3571`](https://github.com/th-ch/youtube-music/pull/3571)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.11.1 [`#3570`](https://github.com/th-ch/youtube-music/pull/3570)
|
||||
- chore(deps): update playwright monorepo to v1.54.1 [`#3599`](https://github.com/th-ch/youtube-music/pull/3599)
|
||||
- chore(deps): update playwright monorepo to v1.54.0 [`#3591`](https://github.com/th-ch/youtube-music/pull/3591)
|
||||
- chore(deps): update dependency electron to v37.2.1 [`#3559`](https://github.com/th-ch/youtube-music/pull/3559)
|
||||
- fix(deps): update dependency socks to v2.8.6 [`#3598`](https://github.com/th-ch/youtube-music/pull/3598)
|
||||
- fix(deps): update dependency zod to v4.0.5 [`#3594`](https://github.com/th-ch/youtube-music/pull/3594)
|
||||
- chore(deps): update dependency vite to v7.0.8 [`#3597`](https://github.com/th-ch/youtube-music/pull/3597)
|
||||
- chore(deps): update dependency vite to v7.0.7 [`#3590`](https://github.com/th-ch/youtube-music/pull/3590)
|
||||
- chore(deps): update dependency @electron/universal to v3 [`#3565`](https://github.com/th-ch/youtube-music/pull/3565)
|
||||
- fix(deps): update dependency electron-unhandled to v5 [`#2088`](https://github.com/th-ch/youtube-music/pull/2088)
|
||||
- feat: enable the ESM for main [`#3588`](https://github.com/th-ch/youtube-music/pull/3588)
|
||||
- fix(deps): update dependency zod to v4 [`#3587`](https://github.com/th-ch/youtube-music/pull/3587)
|
||||
- feat: migrate from raw HTML to JSX (TSX / SolidJS) [`#3583`](https://github.com/th-ch/youtube-music/pull/3583)
|
||||
- docs: add Unobtrusive Player in available plugins [`#3582`](https://github.com/th-ch/youtube-music/pull/3582)
|
||||
- fix(deps): update dependency @hono/node-server to v1.15.0 [`#3557`](https://github.com/th-ch/youtube-music/pull/3557)
|
||||
- chore(deps): update dependency vitefu to v1.1.1 [`#3564`](https://github.com/th-ch/youtube-music/pull/3564)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.15 [`#3562`](https://github.com/th-ch/youtube-music/pull/3562)
|
||||
- fix(deps): update dependency es-hangul to v2.3.5 [`#3563`](https://github.com/th-ch/youtube-music/pull/3563)
|
||||
- fix(deps): update dependency zod to v3.25.71 [`#3558`](https://github.com/th-ch/youtube-music/pull/3558)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.9.2 [`#3560`](https://github.com/th-ch/youtube-music/pull/3560)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.9.2 [`#3561`](https://github.com/th-ch/youtube-music/pull/3561)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.9.0 [`#3555`](https://github.com/th-ch/youtube-music/pull/3555)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.9.0 [`#3556`](https://github.com/th-ch/youtube-music/pull/3556)
|
||||
- chore(deps): update eslint monorepo to v9.30.1 [`#3552`](https://github.com/th-ch/youtube-music/pull/3552)
|
||||
- Fixed play/pause discord rich presence by fixing lastsonginfo tracking [`#3551`](https://github.com/th-ch/youtube-music/pull/3551)
|
||||
- feat: enable rolldown native plugin [`#3502`](https://github.com/th-ch/youtube-music/pull/3502)
|
||||
- fix(deps): update dependency virtua to v0.41.5 [`#3549`](https://github.com/th-ch/youtube-music/pull/3549)
|
||||
- chore(deps): update dependency typescript-eslint to v8.35.1 [`#3545`](https://github.com/th-ch/youtube-music/pull/3545)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.14 [`#3546`](https://github.com/th-ch/youtube-music/pull/3546)
|
||||
- chore(deps): update playwright monorepo to v1.53.2 [`#3547`](https://github.com/th-ch/youtube-music/pull/3547)
|
||||
- fix(deps): update dependency i18next to v25.3.0 [`#3548`](https://github.com/th-ch/youtube-music/pull/3548)
|
||||
- perf(synced-lyrics): virtual scrolling [`#3162`](https://github.com/th-ch/youtube-music/pull/3162)
|
||||
- chore(deps): update dependency vite to v7 [`#3524`](https://github.com/th-ch/youtube-music/pull/3524)
|
||||
- feat(synced-lyrics): Musixmatch [`#3261`](https://github.com/th-ch/youtube-music/pull/3261)
|
||||
- feat(api-server): add optional params for search [`#3440`](https://github.com/th-ch/youtube-music/pull/3440)
|
||||
- chore(deps): update dependency vite-plugin-inspect to v11.3.0 [`#3543`](https://github.com/th-ch/youtube-music/pull/3543)
|
||||
- chore(deps): update eslint monorepo to v9.30.0 [`#3544`](https://github.com/th-ch/youtube-music/pull/3544)
|
||||
- chore(deps): update dependency rollup to v4.44.1 [`#3537`](https://github.com/th-ch/youtube-music/pull/3537)
|
||||
- chore(deps): update dependency ws to v8.18.3 [`#3538`](https://github.com/th-ch/youtube-music/pull/3538)
|
||||
- fix(deps): update dependency @hono/zod-openapi to v0.19.9 [`#3540`](https://github.com/th-ch/youtube-music/pull/3540)
|
||||
- fix(deps): update dependency @floating-ui/dom to v1.7.2 [`#3539`](https://github.com/th-ch/youtube-music/pull/3539)
|
||||
- fix(deps): update dependency es-hangul to v2.3.4 [`#3541`](https://github.com/th-ch/youtube-music/pull/3541)
|
||||
- fix(deps): update dependency hono to v4.8.3 [`#3542`](https://github.com/th-ch/youtube-music/pull/3542)
|
||||
- fix(style): fix duplicated scrollbar [`#3483`](https://github.com/th-ch/youtube-music/pull/3483)
|
||||
- chore(deps): update dependency typescript-eslint to v8.35.0 [`#3518`](https://github.com/th-ch/youtube-music/pull/3518)
|
||||
- chore(deps): update dependency vite-plugin-solid to v2.11.7 [`#3520`](https://github.com/th-ch/youtube-music/pull/3520)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.13 [`#3517`](https://github.com/th-ch/youtube-music/pull/3517)
|
||||
- chore(deps): update dependency eslint-import-resolver-typescript to v4.4.4 [`#3534`](https://github.com/th-ch/youtube-music/pull/3534)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.8.0 [`#3521`](https://github.com/th-ch/youtube-music/pull/3521)
|
||||
- chore(deps): update dependency eslint-plugin-prettier to v5.5.1 [`#3535`](https://github.com/th-ch/youtube-music/pull/3535)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.8.0 [`#3522`](https://github.com/th-ch/youtube-music/pull/3522)
|
||||
- chore(deps): update dependency electron to v37 [`#3527`](https://github.com/th-ch/youtube-music/pull/3527)
|
||||
- feat: Add instructional note to Swagger documentation [`#3532`](https://github.com/th-ch/youtube-music/pull/3532)
|
||||
- chore(deps): update playwright monorepo to v1.53.1 [`#3504`](https://github.com/th-ch/youtube-music/pull/3504)
|
||||
- chore(deps): update dependency rollup to v4.44.0 [`#3508`](https://github.com/th-ch/youtube-music/pull/3508)
|
||||
- chore(deps): update dependency eslint-plugin-import to v2.32.0 [`#3513`](https://github.com/th-ch/youtube-music/pull/3513)
|
||||
- fix(deps): update dependency hono to v4.8.2 [`#3509`](https://github.com/th-ch/youtube-music/pull/3509)
|
||||
- chore(deps): update dependency electron to v36.5.0 [`#3503`](https://github.com/th-ch/youtube-music/pull/3503)
|
||||
- chore(deps): update stefanzweifel/git-auto-commit-action action to v6 [`#3500`](https://github.com/th-ch/youtube-music/pull/3500)
|
||||
- chore(deps): update dependency vite to v6.3.21 [`#3492`](https://github.com/th-ch/youtube-music/pull/3492)
|
||||
- fix(deps): update dependency hono to v4.8.0 [`#3499`](https://github.com/th-ch/youtube-music/pull/3499)
|
||||
- chore(deps): update playwright monorepo to v1.53.0 [`#3497`](https://github.com/th-ch/youtube-music/pull/3497)
|
||||
- chore(deps): update eslint monorepo to v9.29.0 [`#3496`](https://github.com/th-ch/youtube-music/pull/3496)
|
||||
- chore(deps): update dependency vite-plugin-inspect to v11.2.0 [`#3495`](https://github.com/th-ch/youtube-music/pull/3495)
|
||||
- fix(deps): update dependency happy-dom to v18 [`#3501`](https://github.com/th-ch/youtube-music/pull/3501)
|
||||
- fix(deps): update dependency electron-store to v10.1.0 [`#3498`](https://github.com/th-ch/youtube-music/pull/3498)
|
||||
- chore(deps): update dependency eslint-plugin-prettier to v5.5.0 [`#3493`](https://github.com/th-ch/youtube-music/pull/3493)
|
||||
- chore(deps): update dependency rollup to v4.43.0 [`#3494`](https://github.com/th-ch/youtube-music/pull/3494)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.7.0 [`#3466`](https://github.com/th-ch/youtube-music/pull/3466)
|
||||
- fix(deps): update dependency @hono/swagger-ui to v0.5.2 [`#3465`](https://github.com/th-ch/youtube-music/pull/3465)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.7.0 [`#3467`](https://github.com/th-ch/youtube-music/pull/3467)
|
||||
- fix(deps): update dependency youtubei.js to v14 [`#3468`](https://github.com/th-ch/youtube-music/pull/3468)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.12 [`#3490`](https://github.com/th-ch/youtube-music/pull/3490)
|
||||
- chore(deps): update dependency glob to v11.0.3 [`#3491`](https://github.com/th-ch/youtube-music/pull/3491)
|
||||
- chore(deps): update dependency typescript-eslint to v8.34.1 [`#3469`](https://github.com/th-ch/youtube-music/pull/3469)
|
||||
- fix(deps): update dependency socks to v2.8.5 [`#3470`](https://github.com/th-ch/youtube-music/pull/3470)
|
||||
- fix(deps): update dependency zod to v3.25.67 [`#3471`](https://github.com/th-ch/youtube-music/pull/3471)
|
||||
- chore(deps): update dependency @babel/runtime to v7.27.6 [`#3451`](https://github.com/th-ch/youtube-music/pull/3451)
|
||||
- chore(deps): update dependency eslint-import-resolver-typescript to v4.4.3 [`#3453`](https://github.com/th-ch/youtube-music/pull/3453)
|
||||
- fix(deps): update dependency zod to v3.25.56 [`#3454`](https://github.com/th-ch/youtube-music/pull/3454)
|
||||
- fix(deps): update dependency @hono/node-server to v1.14.4 [`#3456`](https://github.com/th-ch/youtube-music/pull/3456)
|
||||
- chore(deps): update dependency rollup to v4.42.0 [`#3457`](https://github.com/th-ch/youtube-music/pull/3457)
|
||||
- fix(deps): update dependency conf to v14 [`#3458`](https://github.com/th-ch/youtube-music/pull/3458)
|
||||
- fix(deps): update dependency peerjs to v1.5.5 [`#3460`](https://github.com/th-ch/youtube-music/pull/3460)
|
||||
- chore(deps): update dependency @stylistic/eslint-plugin-js to v4.4.1 [`#3444`](https://github.com/th-ch/youtube-music/pull/3444)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.11 [`#3445`](https://github.com/th-ch/youtube-music/pull/3445)
|
||||
- chore(deps): update dependency electron to v36.4.0 [`#3447`](https://github.com/th-ch/youtube-music/pull/3447)
|
||||
- fix(deps): update dependency zod to v3.25.51 [`#3446`](https://github.com/th-ch/youtube-music/pull/3446)
|
||||
- fix(deps): update dependency hono to v4.7.11 [`#3435`](https://github.com/th-ch/youtube-music/pull/3435)
|
||||
- fix(deps): update dependency @floating-ui/dom to v1.7.1 [`#3434`](https://github.com/th-ch/youtube-music/pull/3434)
|
||||
- chore(deps): update dependency eslint-import-resolver-typescript to v4.4.2 [`#3432`](https://github.com/th-ch/youtube-music/pull/3432)
|
||||
- chore(deps): update dependency eslint-plugin-prettier to v5.4.1 [`#3433`](https://github.com/th-ch/youtube-music/pull/3433)
|
||||
- fix(deps): update dependency zod to v3.25.50 [`#3443`](https://github.com/th-ch/youtube-music/pull/3443)
|
||||
- fix(deps): update dependency happy-dom to v17.6.3 [`#3438`](https://github.com/th-ch/youtube-music/pull/3438)
|
||||
- fix(deps): update dependency zod to v3.25.49 [`#3436`](https://github.com/th-ch/youtube-music/pull/3436)
|
||||
- chore(deps): update eslint monorepo to v9.28.0 [`#3437`](https://github.com/th-ch/youtube-music/pull/3437)
|
||||
- fix(deps): update dependency @hono/zod-openapi to v0.19.8 [`#3411`](https://github.com/th-ch/youtube-music/pull/3411)
|
||||
- fix: use gtk 3 switch as workaround [`#3366`](https://github.com/th-ch/youtube-music/pull/3366)
|
||||
- chore(deps): update dependency electron to v36.3.2 [`#3431`](https://github.com/th-ch/youtube-music/pull/3431)
|
||||
- fix(deps): update dependency @xhayper/discord-rpc to v1.2.2 [`#3413`](https://github.com/th-ch/youtube-music/pull/3413)
|
||||
- fix(deps): update dependency happy-dom to v17.5.6 [`#3417`](https://github.com/th-ch/youtube-music/pull/3417)
|
||||
- fix(deps): update dependency @hono/zod-validator to v0.7.0 [`#3414`](https://github.com/th-ch/youtube-music/pull/3414)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.10 [`#3430`](https://github.com/th-ch/youtube-music/pull/3430)
|
||||
- chore(deps): update dependency typescript-eslint to v8.33.1 [`#3416`](https://github.com/th-ch/youtube-music/pull/3416)
|
||||
- chore(docs): Improve README-es.md by adjusting the bad Spanish translation [`#3424`](https://github.com/th-ch/youtube-music/pull/3424)
|
||||
- chore(docs): Improve README.md by removing the extra flag for Spanish translation [`#3422`](https://github.com/th-ch/youtube-music/pull/3422)
|
||||
- chore(deps): update dependency @babel/runtime to v7.27.4 [`#3410`](https://github.com/th-ch/youtube-music/pull/3410)
|
||||
- fix(deps): update dependency ts-morph to v26 [`#3409`](https://github.com/th-ch/youtube-music/pull/3409)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.6.1 [`#3407`](https://github.com/th-ch/youtube-music/pull/3407)
|
||||
- fix(deps): update dependency zod to v3.25.30 [`#3408`](https://github.com/th-ch/youtube-music/pull/3408)
|
||||
- fix(precise-volume): replace constructor check for volume slider [`#3362`](https://github.com/th-ch/youtube-music/pull/3362)
|
||||
- chore(deps): update dependency vite-plugin-inspect to v11.1.0 [`#3393`](https://github.com/th-ch/youtube-music/pull/3393)
|
||||
- chore(deps): update dependency eslint-import-resolver-typescript to v4.4.1 [`#3406`](https://github.com/th-ch/youtube-music/pull/3406)
|
||||
- chore(deps): update dependency @stylistic/eslint-plugin-js to v4.4.0 [`#3391`](https://github.com/th-ch/youtube-music/pull/3391)
|
||||
- fix(deps): update dependency i18next to v25.2.1 [`#3405`](https://github.com/th-ch/youtube-music/pull/3405)
|
||||
- chore(deps): update dependency esbuild to v0.25.5 [`#3403`](https://github.com/th-ch/youtube-music/pull/3403)
|
||||
- fix(deps): update dependency @hono/node-server to v1.14.3 [`#3404`](https://github.com/th-ch/youtube-music/pull/3404)
|
||||
- chore(deps): update dependency rollup to v4.41.1 [`#3392`](https://github.com/th-ch/youtube-music/pull/3392)
|
||||
- chore(deps): update eslint monorepo to v9.27.0 [`#3394`](https://github.com/th-ch/youtube-music/pull/3394)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.6.1 [`#3395`](https://github.com/th-ch/youtube-music/pull/3395)
|
||||
- fix(deps): update dependency hono to v4.7.10 [`#3390`](https://github.com/th-ch/youtube-music/pull/3390)
|
||||
- chore(deps): update dependency eslint-import-resolver-typescript to v4.3.5 [`#3388`](https://github.com/th-ch/youtube-music/pull/3388)
|
||||
- fix(deps): update dependency @hono/node-server to v1.14.2 [`#3389`](https://github.com/th-ch/youtube-music/pull/3389)
|
||||
- chore(deps): update dependency electron to v36.3.1 [`#3372`](https://github.com/th-ch/youtube-music/pull/3372)
|
||||
- chore(deps): update dependency typescript-eslint to v8.32.1 [`#3364`](https://github.com/th-ch/youtube-music/pull/3364)
|
||||
- fix(deps): update dependency semver to v7.7.2 [`#3365`](https://github.com/th-ch/youtube-music/pull/3365)
|
||||
- fix(album-actions): update playlist and button selectors [`#3367`](https://github.com/th-ch/youtube-music/pull/3367)
|
||||
- fix(deps): update dependency i18next to v25.2.0 [`#3370`](https://github.com/th-ch/youtube-music/pull/3370)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.8 [`#3361`](https://github.com/th-ch/youtube-music/pull/3361)
|
||||
- fix(deps): update dependency solid-js to v1.9.7 [`#3375`](https://github.com/th-ch/youtube-music/pull/3375)
|
||||
- chore(deps): update dependency electron to v36 [`#3307`](https://github.com/th-ch/youtube-music/pull/3307)
|
||||
- fix(deps): update dependency @floating-ui/dom to v1.7.0 [`#3357`](https://github.com/th-ch/youtube-music/pull/3357)
|
||||
- chore(deps): update eslint monorepo to v9.26.0 [`#3356`](https://github.com/th-ch/youtube-music/pull/3356)
|
||||
- chore(deps): update dependency eslint-plugin-prettier to v5.4.0 [`#3355`](https://github.com/th-ch/youtube-music/pull/3355)
|
||||
- fix(deps): update dependency zod to v3.24.4 [`#3354`](https://github.com/th-ch/youtube-music/pull/3354)
|
||||
- fix(deps): update dependency solid-js to v1.9.6 [`#3353`](https://github.com/th-ch/youtube-music/pull/3353)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron-preload to v2.5.2 [`#3350`](https://github.com/th-ch/youtube-music/pull/3350)
|
||||
- fix(deps): update dependency happy-dom to v17.4.7 [`#3352`](https://github.com/th-ch/youtube-music/pull/3352)
|
||||
- fix(deps): update dependency @ghostery/adblocker-electron to v2.5.2 [`#3349`](https://github.com/th-ch/youtube-music/pull/3349)
|
||||
- chore(deps): update dependency vite to v6.3.5 [`#3346`](https://github.com/th-ch/youtube-music/pull/3346)
|
||||
- chore(deps): update dependency ws to v8.18.2 [`#3347`](https://github.com/th-ch/youtube-music/pull/3347)
|
||||
- feat(plugin): support authenticated proxy [`#3175`](https://github.com/th-ch/youtube-music/pull/3175)
|
||||
- chore(deps): update dependency esbuild to v0.25.4 [`#3344`](https://github.com/th-ch/youtube-music/pull/3344)
|
||||
- chore(deps): update dependency eslint-config-prettier to v10.1.5 [`#3345`](https://github.com/th-ch/youtube-music/pull/3345)
|
||||
- fix(deps): update dependency hono to v4.7.9 [`#3302`](https://github.com/th-ch/youtube-music/pull/3302)
|
||||
- chore(deps): update dependency electron to v34.5.5 [`#3343`](https://github.com/th-ch/youtube-music/pull/3343)
|
||||
- docs: Add Ukrainian translation [`#3338`](https://github.com/th-ch/youtube-music/pull/3338)
|
||||
- chore(deps): update dependency discord-api-types to v0.38.4 [`#3342`](https://github.com/th-ch/youtube-music/pull/3342)
|
||||
- chore(deps): update dependency rollup to v4.40.2 [`#3301`](https://github.com/th-ch/youtube-music/pull/3301)
|
||||
- chore(deps): update dependency @electron/universal to v2.0.3 [`#3341`](https://github.com/th-ch/youtube-music/pull/3341)
|
||||
- fix(deps): update dependency @hono/zod-validator to v0.5.0 [`#3295`](https://github.com/th-ch/youtube-music/pull/3295)
|
||||
- chore(deps): update dependency @babel/runtime to v7.27.1 [`#3340`](https://github.com/th-ch/youtube-music/pull/3340)
|
||||
- fix(deps): update dependency i18next to v25.1.2 [`#3305`](https://github.com/th-ch/youtube-music/pull/3305)
|
||||
- fix(album-actions): use playlist shelf for playlist detection [`#3306`](https://github.com/th-ch/youtube-music/pull/3306)
|
||||
- chore(deps): update dependency typescript-eslint to v8.32.0 [`#3304`](https://github.com/th-ch/youtube-music/pull/3304)
|
||||
- chore(deps): update dependency vite to v6.3.4 [security] [`#3313`](https://github.com/th-ch/youtube-music/pull/3313)
|
||||
- fix(deps): update dependency @hono/zod-openapi to v0.19.6 [`#3294`](https://github.com/th-ch/youtube-music/pull/3294)
|
||||
- fix(deps): update dependency es-hangul to v2.3.3 [`#3293`](https://github.com/th-ch/youtube-music/pull/3293)
|
||||
- fix(api-server): fix #3572 [`#3572`](https://github.com/th-ch/youtube-music/issues/3572)
|
||||
- fix(youtube-music): fix #3296, and macOS traffic lights [`#3296`](https://github.com/th-ch/youtube-music/issues/3296)
|
||||
- fix: kuromoji zlib and apply rolldown-vite [`f047dd2`](https://github.com/th-ch/youtube-music/commit/f047dd2d2df189b55b60188392c451aad65b7a1b)
|
||||
- fix: apply fix from eslint [`1da83ff`](https://github.com/th-ch/youtube-music/commit/1da83ff27c2ccfcdf48c0b0b125033b1a1c194d2)
|
||||
- feat: refactor [`51b3f53`](https://github.com/th-ch/youtube-music/commit/51b3f535695c0f19cd252049985578d11a853ccb)
|
||||
|
||||
#### [v3.9.0](https://github.com/th-ch/youtube-music/compare/v3.8.1...v3.9.0)
|
||||
|
||||
> 27 April 2025
|
||||
|
||||
- feat(tuna-obs): added alternativeTitle and tags to tuna [`#3288`](https://github.com/th-ch/youtube-music/pull/3288)
|
||||
- fix: rollback electron version to v34 (for fix #3216) [`#3216`](https://github.com/th-ch/youtube-music/issues/3216)
|
||||
- fix(synced-lyrics): fix #3157 [`#3157`](https://github.com/th-ch/youtube-music/issues/3157)
|
||||
- feat(performance-improvement): added "performance improvement" plugin [`1c76415`](https://github.com/th-ch/youtube-music/commit/1c764158461da414cea8bf34c3b514f1f98d7adf)
|
||||
- chore(i18n): Translated using Weblate (Bosnian) [`a3d620b`](https://github.com/th-ch/youtube-music/commit/a3d620ba52b7fa8ae623b9d42b0652a22eaf65e7)
|
||||
- Update changelog for v3.8.1 [`58cf1a5`](https://github.com/th-ch/youtube-music/commit/58cf1a543d98419c1a944e57407c0ea53b8168d8)
|
||||
|
||||
#### [v3.8.1](https://github.com/th-ch/youtube-music/compare/v3.8.0...v3.8.1)
|
||||
|
||||
> 25 April 2025
|
||||
|
||||
- chore(deps): update dependency glob to v11.0.2 [`#3283`](https://github.com/th-ch/youtube-music/pull/3283)
|
||||
- fix(deps): update dependency i18next to v25.0.1 [`#3284`](https://github.com/th-ch/youtube-music/pull/3284)
|
||||
- chore(deps): update dependency typescript-eslint to v8.31.0 [`#3286`](https://github.com/th-ch/youtube-music/pull/3286)
|
||||
|
||||
@ -478,7 +478,7 @@
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="footer-copyright">© 2024 th-ch</div>
|
||||
<div class="footer-copyright">© 2025 th-ch</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Lee esto en otros idiomas: [🏴 Inglés](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francés](./README-fr.md), [🇮🇸 Islandés](./README-is.md), [🇪🇸 Español](./README-es.md), [🇷🇺 Ruso](./README-ru.md), [🇧🇷 Portugués](./README-pt.md), [🇯🇵 Japonés](./README-ja.md)
|
||||
Lee esto en otros idiomas: [🏴 Inglés](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francés](./README-fr.md), [🇮🇸 Islandés](./README-is.md), [🇪🇸 Español](./README-es.md), [🇷🇺 Ruso](./README-ru.md), [🇺🇦 Ucraniano](./README-uk.md), [🇧🇷 Portugués](./README-pt.md), [🇯🇵 Japonés](./README-ja.md)
|
||||
|
||||
**Electron wrapper de YouTube Music con las siguientes características:**
|
||||
|
||||
@ -132,7 +132,7 @@ Lee esto en otros idiomas: [🏴 Inglés](../../README.md), [🇰🇷 Coreano](.
|
||||
teclas multimedia + [atajos personalizados](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50)
|
||||
para [usuarios avanzados](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
|
||||
|
||||
- **Saltar Canción no Gustada**: Salta las canciones que no te gustan
|
||||
- **Omitir Canciones No Deseadas**: Salta las canciones que no te gustan
|
||||
|
||||
- **Saltar Silencios**: Salta automáticamente las secciones de silencio
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Lisez ceci dans d'autres langues: [🏴 Anglais](../../README.md), [🇰🇷 Coréen](./README-ko.md), [🇫🇷 Français](./README-fr.md), [🇮🇸 Islandais](./README-is.md), [🇪🇸 Espagnol](./README-es.md), [🇷🇺 Russe](./README-ru.md), [🇧🇷 Portugais](./README-pt.md), [🇯🇵 Japonais](./README-ja.md)
|
||||
Lisez ceci dans d'autres langues: [🏴 Anglais](../../README.md), [🇰🇷 Coréen](./README-ko.md), [🇫🇷 Français](./README-fr.md), [🇮🇸 Islandais](./README-is.md), [🇪🇸 Espagnol](./README-es.md), [🇷🇺 Russe](./README-ru.md), [🇺🇦 Ukrainien](./README-uk.md), [🇧🇷 Portugais](./README-pt.md), [🇯🇵 Japonais](./README-ja.md)
|
||||
|
||||
**Enveloppe Electron autour de YouTube Music offrant :**
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Olvasd el más nyelveken: [🏴 Angol](../../README.md), [🇰🇷 Korea](./README-ko.md), [🇫🇷 Francia](./README-fr.md), [🇮🇸 Izland](./README-is.md), [🇪🇸 Spanyol](./README-es.md), [🇷🇺 Orosz](./README-ru.md), [🇧🇷 Portugál](./README-pt.md), [🇯🇵 Japán](./README-ja.md)
|
||||
Olvasd el más nyelveken: [🏴 Angol](../../README.md), [🇰🇷 Korea](./README-ko.md), [🇫🇷 Francia](./README-fr.md), [🇮🇸 Izland](./README-is.md), [🇪🇸 Spanyol](./README-es.md), [🇷🇺 Orosz](./README-ru.md), [🇺🇦 Ukrán](./README-uk.md), [🇧🇷 Portugál](./README-pt.md), [🇯🇵 Japán](./README-ja.md)
|
||||
|
||||
**Electron keretrendszerre épülő alkalmazás a YouTube Music számára, amely a következőket kínálja:**
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Lestu þetta á öðrum tungumálum: [🏴 Ensku](../../README.md), [🇰🇷 Kóreska](./README-ko.md), [🇫🇷 Franska](./README-fr.md), [🇮🇸 Íslenskur](./README-is.md), [🇪🇸 Spænska](./README-es.md), [🇷🇺 Rússneska](./README-ru.md), [🇧🇷 Portúgalska](./README-pt.md), [🇯🇵 Japanska](./README-ja.md)
|
||||
Lestu þetta á öðrum tungumálum: [🏴 Enska](../../README.md), [🇰🇷 Kóreska](./README-ko.md), [🇫🇷 Franska](./README-fr.md), [🇮🇸 Íslenska](./README-is.md), [🇪🇸 Spænska](./README-es.md), [🇷🇺 Rússneska](./README-ru.md), [🇺🇦 Úkraínska](./README-uk.md), [🇧🇷 Portúgalska](./README-pt.md), [🇭🇺 Ungverska](./README-hu.md) [🇯🇵 Japanska](./README-ja.md)
|
||||
|
||||
**Electron umbúðir utan um YouTube Tónlist sem inniheldur:**
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
他の言語で読む: [🏴 英語](../../README.md), [🇰🇷 韓国語](./README-ko.md), [🇫🇷 フランス語](./README-fr.md), [🇮🇸 アイスランド語](./README-is.md), [🇪🇸 スペイン語](./README-es.md), [🇷🇺 ロシア語](./README-ru.md)
|
||||
他の言語で読む: [🏴 英語](../../README.md), [🇰🇷 韓国語](./README-ko.md), [🇫🇷 フランス語](./README-fr.md), [🇮🇸 アイスランド語](./README-is.md), [🇪🇸 スペイン語](./README-es.md), [🇷🇺 ロシア語](./README-ru.md), [🇺🇦 ウクライナ語](./README-uk.md)
|
||||
|
||||
**YouTube MusicのElectronラッパーには以下の機能があります:**
|
||||
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
다른 언어로 읽어보세요: [🏴 영어](../../README.md), [🇰🇷 한국인](./README-ko.md), [🇫🇷 프랑스 국민](./README-fr.md), [🇮🇸 아이슬란드어](./README-is.md), [🇪🇸 스페인 사람](./README-es.md), [🇷🇺 러시아인](./README-ru.md), [🇧🇷 포르투갈어](./README-pt.md), [🇯🇵 일본어](./README-ja.md)
|
||||
다른 언어로 읽어보세요: [🏴 영어](../../README.md), [🇰🇷 한국인](./README-ko.md), [🇫🇷 프랑스 국민](./README-fr.md), [🇮🇸 아이슬란드어](./README-is.md), [🇪🇸 스페인 사람](./README-es.md), [🇷🇺 러시아인](./README-ru.md), [🇺🇦 우크라이나어](./README-uk.md), [🇧🇷 포르투갈어](./README-pt.md), [🇯🇵 일본어](./README-ja.md)
|
||||
|
||||
**유튜브 뮤직의 Electron 래퍼; 기능:**
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Leia em outros idiomas: [🏴 Inglês](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francês](./README-fr.md), [🇮🇸 Islandês](./README-is.md), [🇪🇸 Espanhol](./README-es.md), [🇷🇺 Russo](./README-ru.md), [🇧🇷 Português](./README-pt.md)
|
||||
Leia em outros idiomas: [🏴 Inglês](../../README.md), [🇰🇷 Coreano](./README-ko.md), [🇫🇷 Francês](./README-fr.md), [🇮🇸 Islandês](./README-is.md), [🇪🇸 Espanhol](./README-es.md), [🇷🇺 Russo](./README-ru.md), [🇺🇦 Ucraniano](./README-uk.md), [🇧🇷 Português](./README-pt.md)
|
||||
|
||||
**Wrapper do Electron para o YouTube Music com os seguintes recursos:**
|
||||
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Прочтите это на других языках: [🏴 Английский](../../README.md), [🇰🇷 корейский](./README-ko.md), [🇫🇷 Французский](./README-fr.md), [🇮🇸 исландский](./README-is.md), [🇪🇸 испанский](./README-es.md), [🇷🇺 Русский](./README-ru.md), [🇧🇷 Португальский](./README-pt.md)
|
||||
Прочтите это на других языках: [🏴 Английский](../../README.md), [🇰🇷 корейский](./README-ko.md), [🇫🇷 Французский](./README-fr.md), [🇮🇸 исландский](./README-is.md), [🇪🇸 испанский](./README-es.md), [🇷🇺 Русский](./README-ru.md), [🇺🇦 Украинский](./README-uk.md), [🇧🇷 Португальский](./README-pt.md)
|
||||
|
||||
**Клиент для YouTube Music основанный на Electron с поддержкой:**
|
||||
|
||||
|
||||
372
docs/readme/README-uk.md
Normal file
372
docs/readme/README-uk.md
Normal file
@ -0,0 +1,372 @@
|
||||
<div align="center">
|
||||
|
||||
# YouTube Music
|
||||
|
||||
[](https://github.com/th-ch/youtube-music/releases/)
|
||||
[](https://github.com/th-ch/youtube-music/blob/master/license)
|
||||
[](https://github.com/th-ch/youtube-music/blob/master/eslint.config.mjs)
|
||||
[](https://GitHub.com/th-ch/youtube-music/releases/)
|
||||
[](https://GitHub.com/th-ch/youtube-music/releases/)
|
||||
[](https://aur.archlinux.org/packages/youtube-music-bin)
|
||||
[](https://snyk.io/test/github/th-ch/youtube-music)
|
||||
|
||||
</div>
|
||||
|
||||

|
||||
|
||||
|
||||
<div align="center">
|
||||
<a href="https://github.com/th-ch/youtube-music/releases/latest">
|
||||
<img src="../../web/youtube-music.svg" width="400" height="100" alt="YouTube Music SVG">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
Прочитайте це іншими мовами: [🏴 Англійська](../../README.md), [🇰🇷 Корейська](./README-ko.md), [🇫🇷 Французька](./README-fr.md), [🇮🇸 Ісландська](./README-is.md), [🇪🇸 Іспанська](./README-es.md), [🇷🇺 Російська](./README-ru.md), [🇺🇦 Українська](./README-uk.md), [🇭🇺 Угорська](./README-hu.md), [🇧🇷 Португальська](./README-pt.md), [🇯🇵 Японська](./README-ja.md)
|
||||
|
||||
**Клієнт YouTube Music на основі Electron, що має:**
|
||||
|
||||
- Нативний вигляд і функціонал, що має на меті зберегти оригінальний інтерфейс
|
||||
- Фреймворк для користувацьких плагінів: змінюйте YouTube Music відповідно до ваших потреб (стиль, вміст, функції), вмикайте/вимикайте плагіни одним клацанням миші
|
||||
|
||||
## Демонстраційне зображення
|
||||
|
||||
| Екран плеєра (колірна тема альбому та режим Ambient) |
|
||||
|:---------------------------------------------------------------------------------------------------------:|
|
||||
||
|
||||
|
||||
## Зміст
|
||||
|
||||
- [Можливості](#Можливості)
|
||||
- [Доступні плагіни](#Доступні-плагіни)
|
||||
- [Переклад](#Переклад)
|
||||
- [Завантажити](#Завантажити)
|
||||
- [Arch Linux](#arch-linux)
|
||||
- [MacOS](#macos)
|
||||
- [Windows](#windows)
|
||||
- [Як встановити без підключення до Інтернету? (у Windows)](#Встановлення-без-підключення-до-Інтернету-у-Windows)
|
||||
- [Теми](#Теми)
|
||||
- [Розробка](#Розробка)
|
||||
- [Створіть власні плагіни](#Створіть-власні-плагіни)
|
||||
- [Створення плагіна](#Створення-плагіна)
|
||||
- [Поширені випадки використання](#Поширені-випадки-використання)
|
||||
- [Збірка](#Збірка)
|
||||
- [Попередній перегляд для producción](#Попередній-перегляд-для-production)
|
||||
- [Тести](#Тести)
|
||||
- [Ліцензія](#Ліцензія)
|
||||
- [Поширені запитання](#Поширені-запитання)
|
||||
|
||||
## Можливості:
|
||||
|
||||
- **Автоматичне підтвердження під час паузи** (Завжди ввімкнено): вимикає спливаюче вікно ["Продовжити перегляд?"](https://user-images.githubusercontent.com/61631665/129977894-01c60740-7ec6-4bf0-9a2c-25da24491b0e.png),
|
||||
яке призупиняє музику через певний час
|
||||
|
||||
- Та багато іншого...
|
||||
|
||||
## Доступні плагіни:
|
||||
|
||||
- **Блокувальник реклами**: Блокує всю рекламу та відстеження «з коробки»
|
||||
|
||||
- **Дії з альбомом**: Додає кнопки «Скасувати "Не подобається"», «Не подобається», «Подобається» та «Скасувати "Подобається"», щоб застосувати це до всіх пісень у списку відтворення або альбомі
|
||||
|
||||
- **Колірна тема альбому**: Застосовує динамічну тему та візуальні ефекти на основі колірної палітри альбому
|
||||
|
||||
- **Режим Ambient**: Застосовує ефект освітлення, проектуючи м'які кольори з відео на фон екрана
|
||||
|
||||
- **Аудіокомпресор**: Застосовує компресію до аудіо (знижує гучність найгучніших частин сигналу та підвищує гучність найтихіших частин)
|
||||
|
||||
- **Розмиття панелі навігації**: робить панель навігації прозорою та розмитою
|
||||
|
||||
- **Обхід вікових обмежень**: обходить перевірку віку YouTube
|
||||
|
||||
- **Вибір субтитрів**: Увімкнути субтитри
|
||||
|
||||
- **Компактна бічна панель**: Завжди встановлювати бічну панель у компактному режимі
|
||||
|
||||
- **Плавний перехід**: Плавний перехід між піснями
|
||||
|
||||
- **Вимкнути автопрогравання**: Кожна пісня починається в режимі "пауза"
|
||||
|
||||
- **[Discord](https://discord.com/) Rich Presence**: Покажіть друзям, що ви слухаєте, за допомогою [Rich Presence](https://user-images.githubusercontent.com/28219076/104362104-a7a0b980-5513-11eb-9744-bb89eabe0016.png)
|
||||
|
||||
- **Завантажувач**: завантажує MP3 [безпосередньо з інтерфейсу](https://user-images.githubusercontent.com/61631665/129977677-83a7d067-c192-45e1-98ae-b5a4927393be.png) [(youtube-dl)](https://github.com/ytdl-org/youtube-dl)
|
||||
|
||||
- **Експоненціальна гучність**: Робить повзунок гучності [експоненціальним](https://greasyfork.org/en/scripts/397686-youtube-music-fix-volume-ratio/), щоб було легше вибирати нижчу гучність
|
||||
|
||||
- **Меню в програмі**: [надає панелям модного, темного вигляду](https://user-images.githubusercontent.com/78568641/112215894-923dbf00-8c29-11eb-95c3-3ce15db27eca.png)
|
||||
|
||||
> (дивіться [цей пост](https://github.com/th-ch/youtube-music/issues/410#issuecomment-952060709), якщо у вас виникли проблеми з доступом до меню після ввімкнення цього плагіна та опції приховування меню)
|
||||
|
||||
- **Скробблер**: Додає підтримку скробблінгу для [Last.fm](https://www.last.fm/) та [ListenBrainz](https://listenbrainz.org/)
|
||||
|
||||
- **Lumia Stream**: Додає підтримку [Lumia Stream](https://lumiastream.com/)
|
||||
|
||||
- **Тексти пісень Genius**: Додає підтримку текстів для більшості пісень
|
||||
|
||||
- **Музика разом**: Поділіться списком відтворення з іншими. Коли хост відтворює пісню, всі інші чутимуть ту саму пісню
|
||||
|
||||
- **Навігація**: Стрілки навігації «Вперед»/«Назад» безпосередньо інтегровані в інтерфейс, як у вашому улюбленому браузері
|
||||
|
||||
- **Без входу в Google**: Видаляє кнопки та посилання для входу в Google з інтерфейсу
|
||||
|
||||
- **Сповіщення**: Відображає сповіщення, коли починає грати пісня ([інтерактивні сповіщення](https://user-images.githubusercontent.com/78568641/114102651-63ce0e00-98d0-11eb-9dfe-c5a02bb54f9c.png) доступні у Windows)
|
||||
|
||||
- **Картинка в картинці**: дозволяє перемикати програму в режим «картинка в картинці»
|
||||
|
||||
- **Швидкість відтворення**: Слухайте швидко, слухайте повільно! [Додає повзунок, який контролює швидкість пісні](https://user-images.githubusercontent.com/61631665/129976003-e55db5ba-bf42-448c-a059-26a009775e68.png)
|
||||
|
||||
- **Точна гучність**: Точно керуйте гучністю за допомогою коліщатка миші/гарячих клавіш, з власним HUD та настроюваними кроками гучності
|
||||
|
||||
- **Гарячі клавіші (та MPRIS)**: Дозволяє встановлювати глобальні гарячі клавіші для відтворення (відтворення/пауза/наступна/попередня) + вимкнути [екранне меню медіа](https://user-images.githubusercontent.com/84923831/128601225-afa38c1f-dea8-4209-9f72-0f84c1dd8b54.png) шляхом перевизначення медіаклавіш + увімкнути Ctrl/CMD + F для пошуку + увімкнути підтримку mpris у Linux для медіаклавіш + [власні гарячі клавіші](https://github.com/Araxeus/youtube-music/blob/1e591d6a3df98449bcda6e63baab249b28026148/providers/song-controls.js#L13-L50) для [досвідчених користувачів](https://github.com/th-ch/youtube-music/issues/106#issuecomment-952156902)
|
||||
|
||||
- **Пропускати пісні, що не сподобалися**: Пропускає пісні, які вам не сподобалися
|
||||
|
||||
- **Пропускати тишу**: Автоматично пропускати тихі фрагменти
|
||||
|
||||
- [**SponsorBlock**](https://github.com/ajayyy/SponsorBlock): Автоматично пропускає немузичні частини, такі як інтро/аутро, або частини музичних відео, де пісня не грає
|
||||
|
||||
- **Керування медіа на панелі завдань**: Керуйте відтворенням з [панелі завдань Windows](https://user-images.githubusercontent.com/78568641/111916130-24a35e80-8a82-11eb-80c8-5021c1aa27f4.png)
|
||||
|
||||
- **TouchBar**: Власний макет TouchBar для macOS
|
||||
|
||||
- **Tuna OBS**: Інтеграція з плагіном [Tuna](https://obsproject.com/forum/resources/tuna.843/) для [OBS](https://obsproject.com/)
|
||||
|
||||
- **Зміна якості відео**: Дозволяє змінювати якість відео за допомогою [кнопки](https://user-images.githubusercontent.com/78568641/138574366-70324a5e-2d64-4f6a-acdd-dc2a2b9cecc5.png) на відеопрогравачі
|
||||
|
||||
- **Перемикач відео**: Додає [кнопку](https://user-images.githubusercontent.com/28893833/173663950-63e6610e-a532-49b7-9afa-54cb57ddfc15.png) для перемикання між режимом відео/пісні. Також може опціонально видалити всю вкладку відео
|
||||
|
||||
- **Візуалізатор**: Різні музичні візуалізатори
|
||||
|
||||
- **Синхронізовані тексти**: Надає синхронізовані тексти пісень, використовуючи такі джерела, як [LRClib](https://lrclib.net).
|
||||
|
||||
## Переклад
|
||||
|
||||
Ви можете допомогти з перекладом на [Hosted Weblate](https://hosted.weblate.org/projects/youtube-music/).
|
||||
|
||||
<a href="https://hosted.weblate.org/engage/youtube-music/">
|
||||
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/multi-auto.svg" alt="статус перекладу" />
|
||||
<img src="https://hosted.weblate.org/widget/youtube-music/i18n/287x66-black.png" alt="статус перекладу 2" />
|
||||
</a>
|
||||
|
||||
## Завантажити
|
||||
|
||||
Ви можете переглянути [останній реліз](https://github.com/th-ch/youtube-music/releases/latest), щоб швидко знайти найновішу версію.
|
||||
|
||||
### Arch Linux
|
||||
|
||||
Встановіть пакет [`youtube-music-bin`](https://aur.archlinux.org/packages/youtube-music-bin) з AUR. Інструкції щодо встановлення з AUR можна знайти на цій [сторінці вікі](https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages).
|
||||
|
||||
### macOS
|
||||
|
||||
Ви можете встановити програму за допомогою Homebrew (дивіться [визначення cask](https://github.com/th-ch/homebrew-youtube-music)):
|
||||
|
||||
```bash
|
||||
brew install th-ch/youtube-music/youtube-music
|
||||
```
|
||||
|
||||
Якщо ви встановлюєте програму вручну та отримуєте помилку "is damaged and can’t be opened.", запустіть у Терміналі таку команду:
|
||||
|
||||
```bash
|
||||
/usr/bin/xattr -cr /Applications/YouTube\ Music.app
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
Ви можете використовувати [менеджер пакунків Scoop](https://scoop.sh) для встановлення пакунка `youtube-music` з [`extras` bucket](https://github.com/ScoopInstaller/Extras).
|
||||
|
||||
```bash
|
||||
scoop bucket add extras
|
||||
scoop install extras/youtube-music
|
||||
```
|
||||
|
||||
Крім того, ви можете використовувати [Winget](https://learn.microsoft.com/en-us/windows/package-manager/winget/), офіційний менеджер пакунків командного рядка Windows 11, для встановлення пакунка `th-ch.YouTubeMusic`.
|
||||
|
||||
*Примітка: Microsoft Defender SmartScreen може блокувати встановлення, оскільки воно від "невідомого видавця". Це також стосується ручного встановлення під час спроби запустити виконуваний файл (.exe) після ручного завантаження тут, на GitHub (той самий файл).*
|
||||
|
||||
```bash
|
||||
winget install th-ch.YouTubeMusic
|
||||
```
|
||||
|
||||
#### Як встановити без підключення до Інтернету? (у Windows)
|
||||
|
||||
- Завантажте файл `*.nsis.7z` для _архітектури вашого пристрою_ зі [сторінки релізів](https://github.com/th-ch/youtube-music/releases/latest).
|
||||
- `x64` для 64-розрядної Windows
|
||||
- `ia32` для 32-розрядної Windows
|
||||
- `arm64` для ARM64 Windows
|
||||
- Завантажте інсталятор зі сторінки релізів. (`*-Setup.exe`)
|
||||
- Розмістіть їх в **одному каталозі**.
|
||||
- Запустіть інсталятор.
|
||||
|
||||
## Теми
|
||||
|
||||
Ви можете завантажити файли CSS, щоб змінити вигляд програми (Опції > Візуальні налаштування > Теми).
|
||||
|
||||
Деякі попередньо визначені теми доступні за адресою https://github.com/kerichdev/themes-for-ytmdesktop-player.
|
||||
|
||||
## Розробка
|
||||
|
||||
```bash
|
||||
git clone https://github.com/th-ch/youtube-music
|
||||
cd youtube-music
|
||||
pnpm install --frozen-lockfile
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
## Створіть власні плагіни
|
||||
|
||||
Використовуючи плагіни, ви можете:
|
||||
|
||||
- маніпулювати програмою - `BrowserWindow` з Electron передається обробнику плагінів
|
||||
- змінювати фронтенд, маніпулюючи HTML/CSS
|
||||
|
||||
### Створення плагіна
|
||||
|
||||
Створіть теку в `src/plugins/НАЗВА_ВАШОГО_ПЛАГІНА`:
|
||||
|
||||
- `index.ts`: основний файл плагіна
|
||||
```typescript
|
||||
import style from './style.css?inline'; // імпортувати стиль як вбудований
|
||||
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
export default createPlugin({
|
||||
name: 'Назва плагіна',
|
||||
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
|
||||
config: {
|
||||
enabled: false,
|
||||
}, // ваша власна конфігурація
|
||||
stylesheets: [style], // ваш власний стиль,
|
||||
menu: async ({ getConfig, setConfig }) => {
|
||||
// Усі методи *Config є обгорнутими Promise<T>
|
||||
const config = await getConfig();
|
||||
return [
|
||||
{
|
||||
label: 'меню',
|
||||
submenu: [1, 2, 3].map((value) => ({
|
||||
label: `значення ${value}`,
|
||||
type: 'radio',
|
||||
checked: config.value === value,
|
||||
click() {
|
||||
setConfig({ value });
|
||||
},
|
||||
})),
|
||||
},
|
||||
];
|
||||
},
|
||||
backend: {
|
||||
start({ window, ipc }) {
|
||||
window.maximize();
|
||||
|
||||
// ви можете спілкуватися з плагіном рендерера
|
||||
ipc.handle('some-event', () => {
|
||||
return 'hello';
|
||||
});
|
||||
},
|
||||
// викликається при зміні конфігурації
|
||||
onConfigChange(newConfig) { /* ... */ },
|
||||
// викликається при вимкненні плагіна
|
||||
stop(context) { /* ... */ },
|
||||
},
|
||||
renderer: {
|
||||
async start(context) {
|
||||
console.log(await context.ipc.invoke('some-event'));
|
||||
},
|
||||
// Хук, доступний лише для рендерера
|
||||
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
|
||||
// легко встановити конфігурацію плагіна
|
||||
context.setConfig({ myConfig: api.getVolume() });
|
||||
},
|
||||
onConfigChange(newConfig) { /* ... */ },
|
||||
stop(_context) { /* ... */ },
|
||||
},
|
||||
preload: {
|
||||
async start({ getConfig }) {
|
||||
const config = await getConfig();
|
||||
},
|
||||
onConfigChange(newConfig) {},
|
||||
stop(_context) {},
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
### Поширені випадки використання
|
||||
|
||||
- ін'єкція власного CSS: створіть файл `style.css` у тій самій теці, а потім:
|
||||
|
||||
```typescript
|
||||
// index.ts
|
||||
import style from './style.css?inline'; // імпортувати стиль як вбудований
|
||||
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
export default createPlugin({
|
||||
name: 'Назва плагіна',
|
||||
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
|
||||
config: {
|
||||
enabled: false,
|
||||
}, // ваша власна конфігурація
|
||||
stylesheets: [style], // ваш власний стиль
|
||||
renderer() {} // визначити хук рендерера
|
||||
});
|
||||
```
|
||||
|
||||
- Якщо ви хочете змінити HTML:
|
||||
|
||||
```typescript
|
||||
import { createPlugin } from '@/utils';
|
||||
|
||||
export default createPlugin({
|
||||
name: 'Назва плагіна',
|
||||
restartNeeded: true, // якщо значення true, ytmusic покаже діалогове вікно перезапуску
|
||||
config: {
|
||||
enabled: false,
|
||||
}, // ваша власна конфігурація
|
||||
renderer() {
|
||||
// Видалити кнопку входу
|
||||
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
|
||||
} // визначити хук рендерера
|
||||
});
|
||||
```
|
||||
|
||||
- зв'язок між фронтендом та бекендом: можна здійснити за допомогою модуля ipcMain з Electron. Дивіться файл `index.ts` та
|
||||
приклад у плагіні `sponsorblock`.
|
||||
|
||||
## Збірка
|
||||
|
||||
1. Клонуйте репозиторій
|
||||
2. Дотримуйтесь [цієї інструкції](https://pnpm.io/installation), щоб встановити `pnpm`
|
||||
3. Запустіть `pnpm install --frozen-lockfile` для встановлення залежностей
|
||||
4. Запустіть `pnpm build:OS`
|
||||
|
||||
- `pnpm dist:win` - Windows
|
||||
- `pnpm dist:linux` - Linux (amd64)
|
||||
- `pnpm dist:linux:deb-arm64` - Linux (arm64 для Debian)
|
||||
- `pnpm dist:linux:rpm-arm64` - Linux (arm64 для Fedora)
|
||||
- `pnpm dist:mac` - macOS (amd64)
|
||||
- `pnpm dist:mac:arm64` - macOS (arm64)
|
||||
|
||||
Збирає програму для macOS, Linux та Windows,
|
||||
використовуючи [electron-builder](https://github.com/electron-userland/electron-builder).
|
||||
|
||||
## Попередній перегляд для production
|
||||
|
||||
```bash
|
||||
pnpm start
|
||||
```
|
||||
|
||||
## Тести
|
||||
|
||||
```bash
|
||||
pnpm test
|
||||
```
|
||||
|
||||
Використовує [Playwright](https://playwright.dev/) для тестування програми.
|
||||
|
||||
## Ліцензія
|
||||
|
||||
MIT © [th-ch](https://github.com/th-ch/youtube-music)
|
||||
|
||||
## Поширені запитання
|
||||
|
||||
### Чому меню програми не відображається?
|
||||
|
||||
Якщо опція `Приховати меню` увімкнена - ви можете показати меню клавішею <kbd>Alt</kbd> (або <kbd>\`</kbd> [зворотний апостроф], якщо використовуєте плагін "Меню в програмі")
|
||||
125
electron-builder.yml
Normal file
125
electron-builder.yml
Normal file
@ -0,0 +1,125 @@
|
||||
appId: com.github.th-ch.youtube-music
|
||||
productName: YouTube Music
|
||||
files:
|
||||
- '!*'
|
||||
- dist
|
||||
- assets
|
||||
- license
|
||||
- '!node_modules'
|
||||
- 'node_modules/custom-electron-prompt/**'
|
||||
- 'node_modules/@ghostery/adblocker-electron-preload/**'
|
||||
- 'node_modules/@ffmpeg.wasm/core-mt/**'
|
||||
- '!node_modules/**/*.map'
|
||||
- '!node_modules/**/*.ts'
|
||||
asarUnpack:
|
||||
- assets
|
||||
mac:
|
||||
identity: null
|
||||
target:
|
||||
- target: dmg
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
icon: assets/generated/icons/mac/icon.icns
|
||||
compression: maximum
|
||||
win:
|
||||
icon: assets/generated/icons/win/icon.ico
|
||||
target:
|
||||
- target: nsis-web
|
||||
arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
- target: portable
|
||||
arch:
|
||||
- x64
|
||||
- ia32
|
||||
- arm64
|
||||
compression: maximum
|
||||
nsisWeb:
|
||||
runAfterFinish: false
|
||||
linux:
|
||||
icon: assets/generated/icons/png
|
||||
category: AudioVideo
|
||||
desktop:
|
||||
entry:
|
||||
StartupWMClass: com.github.th_ch.youtube_music
|
||||
target:
|
||||
- target: AppImage
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- armv7l
|
||||
- target: flatpak
|
||||
arch:
|
||||
- x64
|
||||
- target: deb
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- armv7l
|
||||
- target: rpm
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- target: snap
|
||||
arch:
|
||||
- x64
|
||||
- target: freebsd
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- armv7l
|
||||
- target: tar.gz
|
||||
arch:
|
||||
- x64
|
||||
- arm64
|
||||
- armv7l
|
||||
appImage:
|
||||
description: >-
|
||||
YouTube Music Desktop App bundled with custom plugins (and built-in ad
|
||||
blocker / downloader)
|
||||
category: AudioVideo
|
||||
flatpak:
|
||||
description: >-
|
||||
YouTube Music Desktop App bundled with custom plugins (and built-in ad
|
||||
blocker / downloader)
|
||||
category: AudioVideo
|
||||
runtimeVersion: '24.08'
|
||||
baseVersion: '24.08'
|
||||
finishArgs:
|
||||
- '--socket=wayland'
|
||||
- '--socket=x11'
|
||||
- '--share=ipc'
|
||||
- '--device=dri'
|
||||
- '--socket=pulseaudio'
|
||||
- '--share=network'
|
||||
- '--filesystem=xdg-music:rw'
|
||||
- '--talk-name=org.freedesktop.Notifications'
|
||||
- '--talk-name=org.gnome.SessionManager'
|
||||
- '--talk-name=org.kde.StatusNotifierWatcher'
|
||||
- '--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*'
|
||||
deb:
|
||||
depends:
|
||||
- libgtk-3-0
|
||||
- libnotify4
|
||||
- libnss3
|
||||
- libxss1
|
||||
- libxtst6
|
||||
- xdg-utils
|
||||
- libatspi2.0-0
|
||||
- libuuid1
|
||||
- libasound2
|
||||
- libgbm1
|
||||
rpm:
|
||||
depends:
|
||||
- /usr/lib64/libuuid.so.1
|
||||
fpm:
|
||||
- '--rpm-rpmbuild-define'
|
||||
- _build_id_links none
|
||||
snap:
|
||||
slots:
|
||||
- mpris:
|
||||
interface: mpris
|
||||
directories:
|
||||
output: ./pack/
|
||||
@ -1,16 +1,17 @@
|
||||
import { dirname, join, resolve } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
import { UserConfig } from 'vite';
|
||||
import { defineConfig, defineViteConfig } from 'electron-vite';
|
||||
import builtinModules from 'builtin-modules';
|
||||
import viteResolve from 'vite-plugin-resolve';
|
||||
|
||||
import Inspect from 'vite-plugin-inspect';
|
||||
import solidPlugin from 'vite-plugin-solid';
|
||||
import viteResolve from 'vite-plugin-resolve';
|
||||
|
||||
import { withFilter, type UserConfig } from 'vite';
|
||||
|
||||
import { pluginVirtualModuleGenerator } from './vite-plugins/plugin-importer.mjs';
|
||||
import pluginLoader from './vite-plugins/plugin-loader.mjs';
|
||||
|
||||
import { i18nImporter } from './vite-plugins/i18n-importer.mjs';
|
||||
|
||||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||||
@ -23,6 +24,9 @@ const resolveAlias = {
|
||||
export default defineConfig({
|
||||
main: defineViteConfig(({ mode }) => {
|
||||
const commonConfig: UserConfig = {
|
||||
experimental: {
|
||||
enableNativePlugin: true,
|
||||
},
|
||||
plugins: [
|
||||
pluginLoader('backend'),
|
||||
viteResolve({
|
||||
@ -31,16 +35,17 @@ export default defineConfig({
|
||||
}),
|
||||
],
|
||||
publicDir: 'assets',
|
||||
define: {
|
||||
'__dirname': 'import.meta.dirname',
|
||||
'__filename': 'import.meta.filename',
|
||||
},
|
||||
build: {
|
||||
lib: {
|
||||
entry: 'src/index.ts',
|
||||
formats: ['cjs'],
|
||||
formats: ['es'],
|
||||
},
|
||||
outDir: 'dist/main',
|
||||
commonjsOptions: {
|
||||
ignoreDynamicRequires: true,
|
||||
},
|
||||
rollupOptions: {
|
||||
rolldownOptions: {
|
||||
external: ['electron', 'custom-electron-prompt', ...builtinModules],
|
||||
input: './src/index.ts',
|
||||
},
|
||||
@ -72,6 +77,9 @@ export default defineConfig({
|
||||
}),
|
||||
preload: defineViteConfig(({ mode }) => {
|
||||
const commonConfig: UserConfig = {
|
||||
experimental: {
|
||||
enableNativePlugin: true,
|
||||
},
|
||||
plugins: [
|
||||
pluginLoader('preload'),
|
||||
viteResolve({
|
||||
@ -88,7 +96,7 @@ export default defineConfig({
|
||||
commonjsOptions: {
|
||||
ignoreDynamicRequires: true,
|
||||
},
|
||||
rollupOptions: {
|
||||
rolldownOptions: {
|
||||
external: ['electron', 'custom-electron-prompt', ...builtinModules],
|
||||
input: './src/preload.ts',
|
||||
},
|
||||
@ -120,13 +128,18 @@ export default defineConfig({
|
||||
}),
|
||||
renderer: defineViteConfig(({ mode }) => {
|
||||
const commonConfig: UserConfig = {
|
||||
experimental: {
|
||||
enableNativePlugin: mode !== 'development', // Disable native plugin in development mode to avoid issues with HMR (bug in rolldown-vite)
|
||||
},
|
||||
plugins: [
|
||||
pluginLoader('renderer'),
|
||||
viteResolve({
|
||||
'virtual:i18n': i18nImporter(),
|
||||
'virtual:plugins': pluginVirtualModuleGenerator('renderer'),
|
||||
}),
|
||||
solidPlugin(),
|
||||
withFilter(solidPlugin(), {
|
||||
load: { id: [/\.(tsx|jsx)$/, '/@solid-refresh'] },
|
||||
}),
|
||||
],
|
||||
root: './src/',
|
||||
build: {
|
||||
@ -136,10 +149,7 @@ export default defineConfig({
|
||||
name: 'renderer',
|
||||
},
|
||||
outDir: 'dist/renderer',
|
||||
commonjsOptions: {
|
||||
ignoreDynamicRequires: true,
|
||||
},
|
||||
rollupOptions: {
|
||||
rolldownOptions: {
|
||||
external: ['electron', ...builtinModules],
|
||||
input: './src/index.html',
|
||||
},
|
||||
|
||||
@ -2,7 +2,8 @@
|
||||
|
||||
import eslint from '@eslint/js';
|
||||
import prettier from 'eslint-plugin-prettier/recommended';
|
||||
import stylistic from '@stylistic/eslint-plugin-js';
|
||||
import solid from 'eslint-plugin-solid/configs/recommended';
|
||||
import stylistic from '@stylistic/eslint-plugin';
|
||||
import tsEslint from 'typescript-eslint';
|
||||
|
||||
import * as importPlugin from 'eslint-plugin-import';
|
||||
@ -12,6 +13,7 @@ export default tsEslint.config(
|
||||
tsEslint.configs.eslintRecommended,
|
||||
...tsEslint.configs.recommendedTypeChecked,
|
||||
prettier,
|
||||
solid,
|
||||
{ ignores: ['dist', 'node_modules', '*.config.*js', '*.test.*js'] },
|
||||
{
|
||||
plugins: {
|
||||
@ -29,11 +31,19 @@ export default tsEslint.config(
|
||||
rules: {
|
||||
'stylistic/arrow-parens': ['error', 'always'],
|
||||
'stylistic/object-curly-spacing': ['error', 'always'],
|
||||
'stylistic/jsx-pascal-case': 'error',
|
||||
'stylistic/jsx-curly-spacing': ['error', { when: 'never', children: true }],
|
||||
'stylistic/jsx-sort-props': 'error',
|
||||
'prettier/prettier': ['error', { singleQuote: true, semi: true, tabWidth: 2, trailingComma: 'all', quoteProps: 'preserve' }],
|
||||
'@typescript-eslint/no-floating-promises': 'off',
|
||||
'@typescript-eslint/no-misused-promises': ['off', { checksVoidReturn: false }],
|
||||
'@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }],
|
||||
'@typescript-eslint/no-non-null-assertion': 'off',
|
||||
'@typescript-eslint/consistent-type-imports': ['error', {
|
||||
fixStyle: 'inline-type-imports',
|
||||
prefer: 'type-imports',
|
||||
disallowTypeAnnotations: false,
|
||||
}],
|
||||
'importPlugin/first': 'error',
|
||||
'importPlugin/newline-after-import': 'off',
|
||||
'importPlugin/no-default-export': 'off',
|
||||
|
||||
327
package.json
327
package.json
@ -2,9 +2,10 @@
|
||||
"name": "youtube-music",
|
||||
"desktopName": "com.github.th_ch.youtube_music",
|
||||
"productName": "YouTube Music",
|
||||
"version": "3.9.0",
|
||||
"version": "3.11.0",
|
||||
"description": "YouTube Music Desktop App - including custom plugins",
|
||||
"main": "./dist/main/index.js",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"repository": "th-ch/youtube-music",
|
||||
"author": {
|
||||
@ -12,195 +13,17 @@
|
||||
"email": "th-ch@users.noreply.github.com",
|
||||
"url": "https://github.com/th-ch/youtube-music"
|
||||
},
|
||||
"build": {
|
||||
"appId": "com.github.th-ch.youtube-music",
|
||||
"productName": "YouTube Music",
|
||||
"files": [
|
||||
"!*",
|
||||
"dist",
|
||||
"assets",
|
||||
"license",
|
||||
"!node_modules",
|
||||
"node_modules/custom-electron-prompt/**",
|
||||
"node_modules/@ghostery/adblocker-electron-preload/**",
|
||||
"node_modules/@ffmpeg.wasm/core-mt/**",
|
||||
"!node_modules/**/*.map",
|
||||
"!node_modules/**/*.ts"
|
||||
],
|
||||
"asarUnpack": [
|
||||
"assets"
|
||||
],
|
||||
"mac": {
|
||||
"identity": null,
|
||||
"target": [
|
||||
{
|
||||
"target": "dmg",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"icon": "assets/generated/icons/mac/icon.icns",
|
||||
"compression": "maximum"
|
||||
},
|
||||
"win": {
|
||||
"icon": "assets/generated/icons/win/icon.ico",
|
||||
"target": [
|
||||
{
|
||||
"target": "nsis-web",
|
||||
"arch": [
|
||||
"x64",
|
||||
"ia32",
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "portable",
|
||||
"arch": [
|
||||
"x64",
|
||||
"ia32",
|
||||
"arm64"
|
||||
]
|
||||
}
|
||||
],
|
||||
"compression": "maximum"
|
||||
},
|
||||
"nsisWeb": {
|
||||
"runAfterFinish": false
|
||||
},
|
||||
"linux": {
|
||||
"icon": "assets/generated/icons/png",
|
||||
"category": "AudioVideo",
|
||||
"desktop": {
|
||||
"entry": {
|
||||
"StartupWMClass": "com.github.th_ch.youtube_music"
|
||||
}
|
||||
},
|
||||
"target": [
|
||||
{
|
||||
"target": "AppImage",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64",
|
||||
"armv7l"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "flatpak",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "deb",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64",
|
||||
"armv7l"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "rpm",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "snap",
|
||||
"arch": [
|
||||
"x64"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "freebsd",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64",
|
||||
"armv7l"
|
||||
]
|
||||
},
|
||||
{
|
||||
"target": "tar.gz",
|
||||
"arch": [
|
||||
"x64",
|
||||
"arm64",
|
||||
"armv7l"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"appImage": {
|
||||
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
|
||||
"category": "AudioVideo"
|
||||
},
|
||||
"flatpak": {
|
||||
"description": "YouTube Music Desktop App bundled with custom plugins (and built-in ad blocker / downloader)",
|
||||
"category": "AudioVideo",
|
||||
"runtimeVersion": "24.08",
|
||||
"baseVersion": "24.08",
|
||||
"finishArgs": [
|
||||
"--socket=wayland",
|
||||
"--socket=x11",
|
||||
"--share=ipc",
|
||||
"--device=dri",
|
||||
"--socket=pulseaudio",
|
||||
"--share=network",
|
||||
"--filesystem=xdg-music:rw",
|
||||
"--talk-name=org.freedesktop.Notifications",
|
||||
"--talk-name=org.gnome.SessionManager",
|
||||
"--talk-name=org.kde.StatusNotifierWatcher",
|
||||
"--own-name=org.mpris.MediaPlayer2.YoutubeMusic.*"
|
||||
]
|
||||
},
|
||||
"deb": {
|
||||
"depends": [
|
||||
"libgtk-3-0",
|
||||
"libnotify4",
|
||||
"libnss3",
|
||||
"libxss1",
|
||||
"libxtst6",
|
||||
"xdg-utils",
|
||||
"libatspi2.0-0",
|
||||
"libuuid1",
|
||||
"libasound2",
|
||||
"libgbm1"
|
||||
]
|
||||
},
|
||||
"rpm": {
|
||||
"depends": [
|
||||
"/usr/lib64/libuuid.so.1"
|
||||
],
|
||||
"fpm": [
|
||||
"--rpm-rpmbuild-define",
|
||||
"_build_id_links none"
|
||||
]
|
||||
},
|
||||
"snap": {
|
||||
"slots": [
|
||||
{
|
||||
"mpris": {
|
||||
"interface": "mpris"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"directories": {
|
||||
"output": "./pack/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"test": "playwright test",
|
||||
"test:debug": "cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
|
||||
"build": "electron-vite build",
|
||||
"test": "pnpm playwright test",
|
||||
"test:debug": "pnpm cross-env DEBUG=pw:*,-pw:test:protocol playwright test",
|
||||
"build": "pnpm electron-vite build",
|
||||
"vite:inspect": "pnpm clean && electron-vite build --mode development && pnpm exec serve .vite-inspect",
|
||||
"start": "electron-vite preview",
|
||||
"start:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
|
||||
"dev": "cross-env NODE_OPTIONS=--enable-source-maps electron-vite dev --watch",
|
||||
"dev:renderer": "cross-env NODE_OPTIONS=--enable-source-maps electron-vite dev",
|
||||
"dev:debug": "cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
|
||||
"clean": "del-cli dist && del-cli pack && del-cli .vite-inspect",
|
||||
"start": "pnpm electron-vite preview",
|
||||
"start:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm start",
|
||||
"dev": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev --watch",
|
||||
"dev:renderer": "pnpm cross-env NODE_ENV=development NODE_OPTIONS=--enable-source-maps electron-vite dev",
|
||||
"dev:debug": "pnpm cross-env ELECTRON_ENABLE_LOGGING=1 pnpm dev",
|
||||
"clean": "pnpm del-cli dist && pnpm del-cli pack && pnpm del-cli .vite-inspect",
|
||||
"dist": "pnpm clean && pnpm build && pnpm electron-builder --win --mac --linux -p never",
|
||||
"dist:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p never",
|
||||
"dist:linux:deb-arm64": "pnpm clean && pnpm build && pnpm electron-builder --linux deb:arm64 -p never",
|
||||
@ -209,77 +32,82 @@
|
||||
"dist:mac:arm64": "pnpm clean && pnpm build && pnpm electron-builder --mac dmg:arm64 -p never",
|
||||
"dist:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p never",
|
||||
"dist:win:x64": "pnpm clean && pnpm build && pnpm electron-builder --win nsis-web:x64 -p never",
|
||||
"lint": "eslint .",
|
||||
"changelog": "npx --yes auto-changelog",
|
||||
"lint": "pnpm eslint ./src",
|
||||
"changelog": "pnpm dlx auto-changelog",
|
||||
"release:linux": "pnpm clean && pnpm build && pnpm electron-builder --linux -p always -c.snap.publish=github",
|
||||
"release:mac": "pnpm clean && pnpm build && pnpm electron-builder --mac -p always",
|
||||
"release:win": "pnpm clean && pnpm build && pnpm electron-builder --win -p always",
|
||||
"typecheck": "tsc -p tsconfig.json --noEmit"
|
||||
"typecheck": "pnpm tsc -p tsconfig.json --noEmit"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18",
|
||||
"node": ">=22",
|
||||
"pnpm": ">=10"
|
||||
},
|
||||
"pnpm": {
|
||||
"overrides": {
|
||||
"vite": "6.3.3",
|
||||
"node-gyp": "11.2.0",
|
||||
"vite": "npm:rolldown-vite@7.1.8",
|
||||
"node-gyp": "11.4.2",
|
||||
"xml2js": "0.6.2",
|
||||
"node-fetch": "3.3.2",
|
||||
"@electron/universal": "2.0.2",
|
||||
"@babel/runtime": "7.27.0"
|
||||
"@electron/universal": "3.0.1",
|
||||
"@babel/runtime": "7.28.4"
|
||||
},
|
||||
"patchedDependencies": {
|
||||
"vudio@2.1.1": "patches/vudio@2.1.1.patch",
|
||||
"@malept/flatpak-bundler@0.4.0": "patches/@malept__flatpak-bundler@0.4.0.patch",
|
||||
"kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch"
|
||||
"kuromoji@0.1.2": "patches/kuromoji@0.1.2.patch",
|
||||
"file-type@16.5.4": "patches/file-type@16.5.4.patch",
|
||||
"electron-is@3.0.0": "patches/electron-is@3.0.0.patch"
|
||||
},
|
||||
"neverBuiltDependencies": []
|
||||
},
|
||||
"dependencies": {
|
||||
"@dehoist/romanize-thai": "1.0.0",
|
||||
"@electron-toolkit/tsconfig": "1.0.1",
|
||||
"@electron/remote": "2.1.2",
|
||||
"@electron/remote": "2.1.3",
|
||||
"@ffmpeg.wasm/core-mt": "0.12.0",
|
||||
"@ffmpeg.wasm/main": "0.12.0",
|
||||
"@floating-ui/dom": "1.6.13",
|
||||
"@floating-ui/dom": "1.7.4",
|
||||
"@foobar404/wave": "2.0.5",
|
||||
"@ghostery/adblocker-electron": "2.5.1",
|
||||
"@ghostery/adblocker-electron-preload": "2.5.1",
|
||||
"@hono/node-server": "1.14.1",
|
||||
"@hono/swagger-ui": "0.5.1",
|
||||
"@hono/zod-openapi": "0.19.5",
|
||||
"@hono/zod-validator": "0.4.3",
|
||||
"@ghostery/adblocker-electron": "2.11.6",
|
||||
"@ghostery/adblocker-electron-preload": "2.11.6",
|
||||
"@hono/node-server": "1.19.1",
|
||||
"@hono/node-ws": "1.2.0",
|
||||
"@hono/swagger-ui": "0.5.2",
|
||||
"@hono/zod-openapi": "1.1.0",
|
||||
"@hono/zod-validator": "0.7.2",
|
||||
"@jellybrick/dbus-next": "0.10.3",
|
||||
"@jellybrick/electron-better-web-request": "1.0.4",
|
||||
"@jellybrick/mpris-service": "2.1.5",
|
||||
"@jimp/plugin-color": "1.6.0",
|
||||
"@skyra/jaro-winkler": "1.1.1",
|
||||
"@xhayper/discord-rpc": "1.2.1",
|
||||
"@xhayper/discord-rpc": "1.3.0",
|
||||
"async-mutex": "0.5.0",
|
||||
"bgutils-js": "3.2.0",
|
||||
"butterchurn": "3.0.0-beta.4",
|
||||
"butterchurn": "3.0.0-beta.5",
|
||||
"butterchurn-presets": "3.0.0-beta.4",
|
||||
"color": "5.0.0",
|
||||
"conf": "13.1.0",
|
||||
"conf": "14.0.0",
|
||||
"custom-electron-prompt": "1.5.8",
|
||||
"deepmerge-ts": "7.1.5",
|
||||
"delay": "6.0.0",
|
||||
"electron-debug": "4.1.0",
|
||||
"electron-is": "3.0.0",
|
||||
"electron-localshortcut": "3.2.1",
|
||||
"electron-store": "10.0.1",
|
||||
"electron-unhandled": "4.0.1",
|
||||
"electron-store": "10.1.0",
|
||||
"electron-unhandled": "5.0.0",
|
||||
"electron-updater": "6.6.2",
|
||||
"es-hangul": "2.3.2",
|
||||
"es-hangul": "2.3.5",
|
||||
"fast-average-color": "9.5.0",
|
||||
"fast-equals": "5.2.2",
|
||||
"fflate": "0.8.2",
|
||||
"filenamify": "6.0.0",
|
||||
"hanja": "1.1.4",
|
||||
"happy-dom": "17.4.4",
|
||||
"hono": "4.7.7",
|
||||
"hanja": "1.1.5",
|
||||
"happy-dom": "18.0.1",
|
||||
"hono": "4.9.7",
|
||||
"howler": "2.2.4",
|
||||
"html-to-text": "9.0.5",
|
||||
"i18next": "25.0.1",
|
||||
"i18next": "25.5.2",
|
||||
"jimp": "1.6.0",
|
||||
"keyboardevent-from-electron-accelerator": "2.0.0",
|
||||
"keyboardevents-areequal": "0.2.2",
|
||||
@ -289,62 +117,65 @@
|
||||
"lazy-var": "2.2.2",
|
||||
"node-html-parser": "7.0.1",
|
||||
"node-id3": "0.2.9",
|
||||
"peerjs": "1.5.4",
|
||||
"pinyin": "4.0.0-alpha.2",
|
||||
"segmentit": "2.0.3",
|
||||
"semver": "7.7.1",
|
||||
"serve": "14.2.4",
|
||||
"peerjs": "1.5.5",
|
||||
"semver": "7.7.2",
|
||||
"serve": "14.2.5",
|
||||
"simple-youtube-age-restriction-bypass": "github:organization/Simple-YouTube-Age-Restriction-Bypass#v2.5.9",
|
||||
"socks": "2.8.7",
|
||||
"solid-element": "1.9.1",
|
||||
"solid-floating-ui": "0.3.1",
|
||||
"solid-js": "1.9.5",
|
||||
"solid-js": "1.9.9",
|
||||
"solid-styled-components": "0.28.5",
|
||||
"solid-transition-group": "0.3.0",
|
||||
"ts-morph": "25.0.1",
|
||||
"tiny-pinyin": "1.3.2",
|
||||
"tinyld": "1.3.4",
|
||||
"virtua": "0.42.3",
|
||||
"vudio": "2.1.1",
|
||||
"x11": "2.3.0",
|
||||
"youtubei.js": "13.4.0",
|
||||
"zod": "3.24.3"
|
||||
"youtubei.js": "15.0.1",
|
||||
"zod": "4.1.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "9.25.1",
|
||||
"@electron-toolkit/tsconfig": "1.0.1",
|
||||
"@eslint/js": "9.35.0",
|
||||
"@malept/flatpak-bundler": "0.4.0",
|
||||
"@playwright/test": "1.52.0",
|
||||
"@stylistic/eslint-plugin-js": "4.2.0",
|
||||
"@playwright/test": "1.55.0",
|
||||
"@stylistic/eslint-plugin": "5.3.1",
|
||||
"@total-typescript/ts-reset": "0.6.1",
|
||||
"@types/electron-localshortcut": "3.1.3",
|
||||
"@types/howler": "2.2.12",
|
||||
"@types/html-to-text": "9.0.4",
|
||||
"@types/semver": "7.7.0",
|
||||
"@types/semver": "7.7.1",
|
||||
"@types/trusted-types": "2.0.7",
|
||||
"bufferutil": "4.0.9",
|
||||
"builtin-modules": "5.0.0",
|
||||
"cross-env": "7.0.3",
|
||||
"cross-env": "10.0.0",
|
||||
"del-cli": "6.0.0",
|
||||
"discord-api-types": "0.38.1",
|
||||
"electron": "34.5.3",
|
||||
"discord-api-types": "0.38.23",
|
||||
"electron": "38.0.0",
|
||||
"electron-builder": "26.0.12",
|
||||
"electron-builder-squirrel-windows": "26.0.12",
|
||||
"electron-devtools-installer": "4.0.0",
|
||||
"electron-vite": "3.1.0",
|
||||
"esbuild": "0.25.3",
|
||||
"eslint": "9.25.1",
|
||||
"eslint-config-prettier": "10.1.2",
|
||||
"electron-vite": "4.0.0",
|
||||
"eslint": "9.35.0",
|
||||
"eslint-config-prettier": "10.1.8",
|
||||
"eslint-import-resolver-exports": "1.0.0-beta.5",
|
||||
"eslint-import-resolver-typescript": "4.3.4",
|
||||
"eslint-plugin-import": "2.31.0",
|
||||
"eslint-plugin-prettier": "5.2.6",
|
||||
"glob": "11.0.2",
|
||||
"node-gyp": "11.2.0",
|
||||
"playwright": "1.52.0",
|
||||
"rollup": "4.40.0",
|
||||
"typescript": "5.8.3",
|
||||
"typescript-eslint": "8.31.0",
|
||||
"eslint-import-resolver-typescript": "4.4.4",
|
||||
"eslint-plugin-import": "2.32.0",
|
||||
"eslint-plugin-prettier": "5.5.4",
|
||||
"eslint-plugin-solid": "0.14.5",
|
||||
"glob": "11.0.3",
|
||||
"node-gyp": "11.4.2",
|
||||
"playwright": "1.55.0",
|
||||
"ts-morph": "27.0.0",
|
||||
"typescript": "5.9.2",
|
||||
"typescript-eslint": "8.43.0",
|
||||
"utf-8-validate": "6.0.5",
|
||||
"vite": "6.3.3",
|
||||
"vite-plugin-inspect": "11.0.1",
|
||||
"vite": "npm:rolldown-vite@7.1.8",
|
||||
"vite-plugin-inspect": "11.3.3",
|
||||
"vite-plugin-resolve": "2.5.2",
|
||||
"vite-plugin-solid": "2.11.6",
|
||||
"ws": "8.18.1"
|
||||
"vite-plugin-solid": "2.11.8",
|
||||
"ws": "8.18.3"
|
||||
},
|
||||
"auto-changelog": {
|
||||
"hideCredit": true,
|
||||
|
||||
27
patches/electron-is@3.0.0.patch
Normal file
27
patches/electron-is@3.0.0.patch
Normal file
@ -0,0 +1,27 @@
|
||||
diff --git a/is.d.ts b/is.d.ts
|
||||
index fb861f7b401914f0f89cb4edf25c51df5cb05812..82144733cd34d88e2deb2e4713b104418e673f2e 100644
|
||||
--- a/is.d.ts
|
||||
+++ b/is.d.ts
|
||||
@@ -5,6 +5,7 @@ declare namespace is {
|
||||
export function macOS(): boolean;
|
||||
export function windows(): boolean;
|
||||
export function linux(): boolean;
|
||||
+ export function freebsd(): boolean;
|
||||
export function x86(): boolean;
|
||||
export function x64(): boolean;
|
||||
export function production(): boolean;
|
||||
diff --git a/is.js b/is.js
|
||||
index a76bb1755a2728bde185b35d847031d3b8ea4ab0..f6b03406c17342f5af078de069e5bbbd2246e152 100644
|
||||
--- a/is.js
|
||||
+++ b/is.js
|
||||
@@ -39,6 +39,10 @@ module.exports = {
|
||||
linux: function () {
|
||||
return process.platform === 'linux'
|
||||
},
|
||||
+ // Checks if we are under FreeBSD OS
|
||||
+ freebsd: function () {
|
||||
+ return process.platform === "freebsd"
|
||||
+ },
|
||||
// Checks if we are the processor's arch is x86
|
||||
x86: function () {
|
||||
return process.arch === 'ia32'
|
||||
14
patches/file-type@16.5.4.patch
Normal file
14
patches/file-type@16.5.4.patch
Normal file
@ -0,0 +1,14 @@
|
||||
diff --git a/core.js b/core.js
|
||||
index d653e66a4056c27cca777d4e25222acae3b2ec85..a91741d67df85fd9627889a6c7197ac4e6a3a813 100644
|
||||
--- a/core.js
|
||||
+++ b/core.js
|
||||
@@ -1415,8 +1415,7 @@ async function _fromTokenizer(tokenizer) {
|
||||
}
|
||||
|
||||
const stream = readableStream => new Promise((resolve, reject) => {
|
||||
- // Using `eval` to work around issues when bundling with Webpack
|
||||
- const stream = eval('require')('stream'); // eslint-disable-line no-eval
|
||||
+ const stream = require('node:stream');
|
||||
|
||||
readableStream.on('error', reject);
|
||||
readableStream.once('readable', async () => {
|
||||
File diff suppressed because it is too large
Load Diff
3949
pnpm-lock.yaml
generated
3949
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -12,8 +12,8 @@ export interface DefaultConfig {
|
||||
'window-size': WindowSizeConfig;
|
||||
'window-maximized': boolean;
|
||||
'window-position': WindowPositionConfig;
|
||||
url: string;
|
||||
options: {
|
||||
'url': string;
|
||||
'options': {
|
||||
language?: string;
|
||||
tray: boolean;
|
||||
appVisible: boolean;
|
||||
@ -31,14 +31,16 @@ export interface DefaultConfig {
|
||||
likeButtons: string;
|
||||
proxy: string;
|
||||
startingPage: string;
|
||||
backgroundMaterial?: 'none' | 'mica' | 'acrylic' | 'tabbed';
|
||||
overrideUserAgent: boolean;
|
||||
usePodcastParticipantAsArtist: boolean;
|
||||
themes: string[];
|
||||
customWindowTitle?: string;
|
||||
};
|
||||
plugins: Record<string, unknown>;
|
||||
'plugins': Record<string, unknown>;
|
||||
}
|
||||
|
||||
const defaultConfig: DefaultConfig = {
|
||||
export const defaultConfig: DefaultConfig = {
|
||||
'window-size': {
|
||||
width: 1100,
|
||||
height: 550,
|
||||
@ -72,5 +74,3 @@ const defaultConfig: DefaultConfig = {
|
||||
},
|
||||
'plugins': {},
|
||||
};
|
||||
|
||||
export default defaultConfig;
|
||||
|
||||
@ -1,30 +1,36 @@
|
||||
import { deepmergeCustom } from 'deepmerge-ts';
|
||||
|
||||
import defaultConfig from './defaults';
|
||||
|
||||
import store, { IStore } from './store';
|
||||
import plugins from './plugins';
|
||||
|
||||
import { store, type IStore } from './store';
|
||||
import { restart } from '@/providers/app-controls';
|
||||
|
||||
import type { defaultConfig } from './defaults';
|
||||
|
||||
const deepmerge = deepmergeCustom({
|
||||
mergeArrays: false,
|
||||
});
|
||||
|
||||
const set = (key: string, value: unknown) => {
|
||||
export { defaultConfig } from './defaults';
|
||||
export * as plugins from './plugins';
|
||||
|
||||
export const set = (key: string, value: unknown) => {
|
||||
store.set(key, value);
|
||||
};
|
||||
const setPartial = (key: string, value: object, defaultValue?: object) => {
|
||||
|
||||
export const setPartial = (
|
||||
key: string,
|
||||
value: object,
|
||||
defaultValue?: object,
|
||||
) => {
|
||||
const newValue = deepmerge(defaultValue ?? {}, store.get(key) ?? {}, value);
|
||||
store.set(key, newValue);
|
||||
};
|
||||
|
||||
function setMenuOption(key: string, value: unknown) {
|
||||
export const setMenuOption = (key: string, value: unknown) => {
|
||||
set(key, value);
|
||||
if (store.get('options.restartOnConfigChanges')) {
|
||||
restart();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// MAGIC OF TYPESCRIPT
|
||||
|
||||
@ -74,18 +80,11 @@ type PathValue<T, K extends string> =
|
||||
? PathValue<T[A], B>
|
||||
: T;
|
||||
|
||||
const get = <Key extends Paths<typeof defaultConfig>>(key: Key) =>
|
||||
export const get = <Key extends Paths<typeof defaultConfig>>(key: Key) =>
|
||||
store.get(key) as PathValue<typeof defaultConfig, typeof key>;
|
||||
|
||||
export default {
|
||||
defaultConfig,
|
||||
get,
|
||||
set,
|
||||
setPartial,
|
||||
setMenuOption,
|
||||
edit: () => store.openInEditor(),
|
||||
watch(cb: Parameters<IStore['onDidAnyChange']>[0]) {
|
||||
store.onDidAnyChange(cb);
|
||||
},
|
||||
plugins,
|
||||
export const edit = () => store.openInEditor();
|
||||
|
||||
export const watch = (cb: Parameters<IStore['onDidAnyChange']>[0]) => {
|
||||
store.onDidAnyChange(cb);
|
||||
};
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { deepmerge } from 'deepmerge-ts';
|
||||
import { allPlugins } from 'virtual:plugins';
|
||||
|
||||
import store from './store';
|
||||
import { store } from './store';
|
||||
|
||||
import { restart } from '@/providers/app-controls';
|
||||
|
||||
@ -11,9 +11,9 @@ export function getPlugins() {
|
||||
return store.get('plugins') as Record<string, PluginConfig>;
|
||||
}
|
||||
|
||||
export function isEnabled(plugin: string) {
|
||||
export async function isEnabled(plugin: string) {
|
||||
const pluginConfig = deepmerge(
|
||||
allPlugins[plugin].config ?? { enabled: false },
|
||||
(await allPlugins())[plugin].config ?? { enabled: false },
|
||||
(store.get('plugins') as Record<string, PluginConfig>)[plugin] ?? {},
|
||||
);
|
||||
return pluginConfig !== undefined && pluginConfig.enabled;
|
||||
@ -68,13 +68,3 @@ export function enable(plugin: string) {
|
||||
export function disable(plugin: string) {
|
||||
setMenuOptions(plugin, { enabled: false }, []);
|
||||
}
|
||||
|
||||
export default {
|
||||
isEnabled,
|
||||
getPlugins,
|
||||
enable,
|
||||
disable,
|
||||
setOptions,
|
||||
setMenuOptions,
|
||||
getOptions,
|
||||
};
|
||||
|
||||
@ -1,13 +1,42 @@
|
||||
import Store from 'electron-store';
|
||||
|
||||
import defaults from './defaults';
|
||||
import { defaultConfig as defaults } from './defaults';
|
||||
|
||||
import { DefaultPresetList, type Preset } from '@/plugins/downloader/types';
|
||||
|
||||
// prettier-ignore
|
||||
export type IStore = InstanceType<typeof import('conf/dist/source/index').default<Record<string, unknown>>>;
|
||||
import type { SyncedLyricsPluginConfig } from '@/plugins/synced-lyrics/types';
|
||||
|
||||
export type IStore = InstanceType<
|
||||
typeof import('conf').default<Record<string, unknown>>
|
||||
>;
|
||||
|
||||
const migrations = {
|
||||
'>=3.10.0'(store: IStore) {
|
||||
const lyricGeniusConfig = store.get('plugins.lyrics-genius') as
|
||||
| {
|
||||
enabled?: boolean;
|
||||
romanizedLyrics?: boolean;
|
||||
}
|
||||
| undefined;
|
||||
|
||||
if (lyricGeniusConfig) {
|
||||
const syncedLyricsConfig = store.get('plugins.synced-lyrics') as
|
||||
| SyncedLyricsPluginConfig
|
||||
| undefined;
|
||||
|
||||
if (
|
||||
!syncedLyricsConfig ||
|
||||
syncedLyricsConfig?.enabled !== lyricGeniusConfig?.enabled
|
||||
) {
|
||||
store.set('plugins.synced-lyrics', {
|
||||
...syncedLyricsConfig,
|
||||
enabled: lyricGeniusConfig.enabled,
|
||||
});
|
||||
}
|
||||
|
||||
store.delete('plugins.lyrics-genius');
|
||||
}
|
||||
},
|
||||
'>=3.3.0'(store: IStore) {
|
||||
const lastfmConfig = store.get('plugins.lastfm') as {
|
||||
enabled?: boolean;
|
||||
@ -228,7 +257,7 @@ const migrations = {
|
||||
},
|
||||
};
|
||||
|
||||
export default new Store({
|
||||
export const store = new Store({
|
||||
defaults: {
|
||||
...defaults,
|
||||
// README: 'plugin' uses deepmerge to populate the default values, so it is not necessary to include it here
|
||||
|
||||
2
src/custom-electron-prompt.d.ts
vendored
2
src/custom-electron-prompt.d.ts
vendored
@ -1,5 +1,5 @@
|
||||
declare module 'custom-electron-prompt' {
|
||||
import { BrowserWindow } from 'electron';
|
||||
import { type BrowserWindow } from 'electron';
|
||||
|
||||
export type SelectOptions = Record<string, string>;
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ import { languageResources } from 'virtual:i18n';
|
||||
|
||||
export const loadI18n = async () =>
|
||||
await init({
|
||||
resources: languageResources,
|
||||
resources: await languageResources(),
|
||||
lng: 'en',
|
||||
fallbackLng: 'en',
|
||||
interpolation: {
|
||||
|
||||
@ -2,9 +2,9 @@ export interface LanguageResources {
|
||||
[lang: string]: {
|
||||
translation: Record<string, unknown> & {
|
||||
language?: {
|
||||
name: string;
|
||||
'name': string;
|
||||
'local-name': string;
|
||||
code: string;
|
||||
'code': string;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@ -333,6 +333,30 @@
|
||||
"description": "تطبيق الضغط على الصوت (يخفض مستوى صوت الأجزاء الأعلى من الإشارة ويرفع مستوى صوت الأجزاء الأكثر نعومة)",
|
||||
"name": "ضاغط الصوت"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "دعم استخدام خدمات وكيل المصادقة",
|
||||
"menu": {
|
||||
"disable": "تعطيل مكيف الوكيل",
|
||||
"enable": "تفعيل مكيف الوكيل",
|
||||
"hostname": {
|
||||
"label": "إسم المستضيف"
|
||||
},
|
||||
"port": {
|
||||
"label": "المدخل"
|
||||
}
|
||||
},
|
||||
"name": "مكيّف وسيط المصادقة",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "أدخل اسم المستضيف لخادم الوسيط المحلي (يتطلب إعادة التشغيل):",
|
||||
"title": "إسم مستضيف الوسيط"
|
||||
},
|
||||
"port": {
|
||||
"label": "أدخل مدخلًا لخادم الوسيط المحلي (يتطلب إعادة التشغيل):",
|
||||
"title": "مدخل الوسيط"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "يجعل شريط التنقل شفاف و ضبابي",
|
||||
"name": "تغبيش شريط التنقل"
|
||||
@ -357,6 +381,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "فتح محدد الترجمة"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "تم تغيير الترجمة الى {{language}}",
|
||||
"caption-disabled": "الترجمة معطلة",
|
||||
"no-captions": "الترجمة لهاته الأغنية غير متاحة"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +605,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "أسهم التنقل \"التالي/السابق\" مدمجة مباشرة في الواجهة، كما في متصفحك",
|
||||
"name": "التنقل"
|
||||
"name": "التنقل",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "العودة إلى الصفحة السابقة"
|
||||
},
|
||||
"forward": {
|
||||
"title": "إذهب إلى الصفحة المقبلة"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "إزالة أزرار وروابط تسجيل الدخول بجوجل من الواجهة",
|
||||
@ -600,6 +637,10 @@
|
||||
},
|
||||
"name": "الإشعارات"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "تحسين الأداء عبر تفعيل السكربتات التجريبية",
|
||||
"name": "تحسين الأداء [بيتا]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "يسمح بتحويل التطبيق إلى وضع الصورة داخل الصورة",
|
||||
"menu": {
|
||||
@ -664,7 +705,12 @@
|
||||
}
|
||||
},
|
||||
"description": "يسمح بتغيير جودة الفيديو باستخدام زر على صورة الفيديو",
|
||||
"name": "مغير جودة الفيديو"
|
||||
"name": "مغير جودة الفيديو",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "إفتح مغير الجودة"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "إضافة دعم Scrobbling (مثل Last.fm، ListenBrainz)",
|
||||
@ -831,7 +877,8 @@
|
||||
},
|
||||
"name": "تفعيل الفيديو",
|
||||
"templates": {
|
||||
"button": "أغنية"
|
||||
"button-song": "أغنية",
|
||||
"button-video": "فيديو"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
126
src/i18n/resources/az.json
Normal file
126
src/i18n/resources/az.json
Normal file
@ -0,0 +1,126 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Plagini icra etmək mümkün olmadı {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plagin {{pluginName}}::{{contextName}} {{ms}} millisaniyədə icra edildi",
|
||||
"initialize-failed": "\"{{pluginName}}\" plaginini başlatmaq mümkün olmadı",
|
||||
"load-all": "Bütün plaginlər yüklənir",
|
||||
"load-failed": "\"{{pluginName}}\" plaginini yükləmək mümkün olmadı",
|
||||
"loaded": "\"{{pluginName}}\" plagini yükləndi",
|
||||
"unload-failed": "\"{{pluginName}}\" plaqinini yükləmək mümkün olmadı",
|
||||
"unloaded": "\"{{pluginName}}\" plaqini yükləmədən çıxarıldı"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "az",
|
||||
"local-name": "Azərbaycan dili",
|
||||
"name": "Azerbaijani"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Yükləmə tamamlandı. DevTools açıldı"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n yükləndi"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Protokol üzərindən əmr alındı: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS faylı \"{{cssFile}}\" mövcud deyil, nəzərə alınmır"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Cavabsız Səhv!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Proqram keşi təmizlənir"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Pəncərə ekran kənarında göstərilməyə çalışıldı, PəncərəÖlçüsü={{windowSize}}, EkranÖlçüsü={{displaySize}}, Vəziyyət={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu gizlədildi, yenidən göstərmək üçün 'Alt' istifadə edin (Proqramiçi menu üçün 'Esc')",
|
||||
"message": "Gizlət menusu aktivləşdirildi",
|
||||
"title": "Gizlət menusu aktivləşdirildi"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Sonra",
|
||||
"restart-now": "Yenidən başlat"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" plaginin işləməsi üçün proqramı yenidən başladın",
|
||||
"message": "\"{{pluginName}}\" üçün proqram yenidən başlamalıdır",
|
||||
"title": "Yenidən başlatmaq tələb edilir"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Tərk et",
|
||||
"relaunch": "Yenidən işə sal",
|
||||
"wait": "Gözləyin"
|
||||
},
|
||||
"detail": "Narahatçılıq üçün üzr istəyirik! Nə etməli olduğumuzu seçin:",
|
||||
"message": "Proqram cavab vermir",
|
||||
"title": "Pəncərə Cavab vermir"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Yeniləmələri deaktiv et",
|
||||
"download": "Yüklə",
|
||||
"ok": "Oldu"
|
||||
},
|
||||
"detail": "Yeni versiya mövcuddur və bu linkdən yüklənə bilər {{downloadLink}}",
|
||||
"message": "Yeni versiya mövcuddur",
|
||||
"title": "Yeniləmə mövcuddur"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Haqqında",
|
||||
"navigation": {
|
||||
"label": "İstiqamət",
|
||||
"submenu": {
|
||||
"copy-current-url": "Hazırkı linki kopyala",
|
||||
"go-back": "Geri qayıt",
|
||||
"go-forward": "İrəli get",
|
||||
"quit": "Çıx",
|
||||
"restart": "Proqramı Yenidən Başlat"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Seçimlər",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Əlavə seçimlər",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Proqram başlayanda keşi təmizlə",
|
||||
"disable-hardware-acceleration": "Aparat təminatı sürətlənməsini deaktiv et",
|
||||
"edit-config-json": "Config.json dəyiş",
|
||||
"override-user-agent": "User-Agent dəyişdirildi",
|
||||
"restart-on-config-changes": "Konfiqurasiya dəyişikliklərində yenidən başladılır",
|
||||
"set-proxy": {
|
||||
"label": "Proxy təyin et",
|
||||
"prompt": {
|
||||
"label": "Proxy Ünvanını daxil edin: (deaktiv etmək üçün boş buraxın)",
|
||||
"placeholder": "Nümunə: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Proxy təyin et"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "DevTools-u açıb bağla"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Həmişə üst tərəfdə",
|
||||
"auto-update": "Avtomatik Yeniləmə",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu will be hidden on next launch, use [Alt] to show it (or backtick [`] if using in-app-menu)"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -333,6 +333,30 @@
|
||||
"description": "Прилага компресия на аудиото (намалява обема на най-силните части от сигнала и увеличава обема на най-тихите части)",
|
||||
"name": "Аудио компресор"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Поддръжка за използване на услуги за удостоверяване чрез прокси",
|
||||
"menu": {
|
||||
"disable": "Деактивирай адаптера за удостоверяване чрез прокси",
|
||||
"enable": "Активирай адаптера за удостоверяване чрез прокси",
|
||||
"hostname": {
|
||||
"label": "Име на хост"
|
||||
},
|
||||
"port": {
|
||||
"label": "Порт"
|
||||
}
|
||||
},
|
||||
"name": "Адаптер за удостоверяване чрез прокси",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Въведи име за локалния прокси сървър (необходимо е рестартиране):",
|
||||
"title": "Име на прокси хост"
|
||||
},
|
||||
"port": {
|
||||
"label": "Въведи порт за локалния прокси сървър (необходимо е рестартиране):",
|
||||
"title": "Прокси порт"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Прави навигационната лента прозрачна и размазана",
|
||||
"name": "Размазанa навигационна лента"
|
||||
@ -357,6 +381,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Отвори избора на надписи"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Надписите са сменени на {{language}}",
|
||||
"caption-disabled": "Надписите са деактивирани",
|
||||
"no-captions": "Няма налични надписи за тази песен"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +605,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Навигационни стрелки Напред/Назад, директно интегрирани в интерфейса, както в любимия ви браузър",
|
||||
"name": "Навигация"
|
||||
"name": "Навигация",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Предишна страница"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Следваща страница"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Премахни бутоните за вход с Google и връзките от интерфейса",
|
||||
@ -600,6 +637,10 @@
|
||||
},
|
||||
"name": "Известия"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Подобри производителността като пуснеш експериментални скриптове",
|
||||
"name": "Производителни подобрения"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Позволява превключване на приложението в режим картинка във картинка",
|
||||
"menu": {
|
||||
@ -664,7 +705,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Позволява промяна на качеството на видеото с бутон върху видеото",
|
||||
"name": "Промяна на качеството на видеото"
|
||||
"name": "Промяна на качеството на видеото",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Отвори настройките за качество на плейъра"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Добавяне на скробблинг поддръжка (last.fm, Listenbrainz и т.н.)",
|
||||
@ -831,7 +877,8 @@
|
||||
},
|
||||
"name": "Превключване на видео",
|
||||
"templates": {
|
||||
"button": "Песен"
|
||||
"button-song": "Песен",
|
||||
"button-video": "Видео"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
899
src/i18n/resources/bn.json
Normal file
899
src/i18n/resources/bn.json
Normal file
@ -0,0 +1,899 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "প্লাগইন {{pluginName}}::{{contextName}} কার্যকর করতে ব্যর্থ হয়েছে",
|
||||
"executed-at-ms": "প্লাগইন {{pluginName}}::{{contextName}} {{ms}}মিলিসেকেন্ডে কার্যকর হয়েছে",
|
||||
"initialize-failed": "প্লাগইন \"{{pluginName}}\" চালু করতে ব্যর্থ হয়েছে",
|
||||
"load-all": "সকল প্লাগইন লোড করা হচ্ছে",
|
||||
"load-failed": "প্লাগইন \"{{pluginName}}\" লোড হতে ব্যর্থ হয়েছে",
|
||||
"loaded": "প্লাগইন \"{{pluginName}}\" লোড হয়েছে",
|
||||
"unload-failed": "প্লাগইন \"{{pluginName}}\" আনলোড করতে ব্যর্থ হয়েছে",
|
||||
"unloaded": "প্লাগইন \"{{pluginName}}\" আনলোড হয়েছে"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "bn",
|
||||
"local-name": "বাংলা",
|
||||
"name": "Bengali"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "লোড সম্পন্ন হয়েছে। ডেভটুলস খোলা হয়েছে"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n লোড হয়েছে"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "প্রোটোকলের মাধ্যমে কমান্ড গ্রহণ করা হয়েছে: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS ফাইল \"{{cssFile}}\" পাওয়া যায়নি, ইগনোর করা হয়েছে"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "অকার্যকর ত্রুটি!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "অ্যাপ ক্যাশ মুছে ফেলা হচ্ছে"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "উইন্ডোটি স্ক্রিনের বাইরে রেন্ডার করার চেষ্টা করেছে, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "মেনু লুকানো রয়েছে, দেখতে 'Alt' চাপুন ( অথবা ইন-অ্যাপ মেনু ব্যবহার করে থাকলে 'Escape' চাপুন )",
|
||||
"message": "মেনু লুকান সক্রিয় করা হয়েছে",
|
||||
"title": "মেনু লুকান সক্রিয় হয়েছে"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "পরে",
|
||||
"restart-now": "রিস্টার্ট করুন"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" প্লাগইন কার্যকর করতে পুনরারম্ভ করতে হবে",
|
||||
"message": "\"{{pluginName}}\" পুনরায় চালু করা প্রয়োজন",
|
||||
"title": "পুনরায় চালু করা প্রয়োজন"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "বন্ধ করুন",
|
||||
"relaunch": "পুনরায় চালু করুন",
|
||||
"wait": "অপেক্ষা করুন"
|
||||
},
|
||||
"detail": "অসুবিধার জন্য আমরা দুঃখিত! অনুগ্রহ করে কী করতে চান তা নির্বাচন করুন:",
|
||||
"message": "অ্যাপ্লিকেশনটি কাজ করছে না",
|
||||
"title": "উইন্ডোটি কাজ করছে না"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "আপডেট বন্ধ করুন",
|
||||
"download": "ডাউনলোড",
|
||||
"ok": "ওকে"
|
||||
},
|
||||
"detail": "একটি নতুন ভার্সন এসেছে এবং এটি {{downloadLink}} থেকে ডাউনলোড করতে পারেন",
|
||||
"message": "একটি নতুন ভার্সন এসেছে",
|
||||
"title": "আপডেট করতে পারেন"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "সম্পর্কে",
|
||||
"navigation": {
|
||||
"label": "নেভিগেশন",
|
||||
"submenu": {
|
||||
"copy-current-url": "বর্তমান URL কপি করুন",
|
||||
"go-back": "পেছনে যান",
|
||||
"go-forward": "সামনে যান",
|
||||
"quit": "বন্ধ",
|
||||
"restart": "অ্যাপ পুনরায় চালু করুন"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "অপশন",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "এডভ্যান্স অপশন",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "অ্যাপ চালুর সময় ক্যাশ রিসেট করুন",
|
||||
"disable-hardware-acceleration": "হার্ডওয়্যার অ্যাকসেলারেশন নিষ্ক্রিয় করুন",
|
||||
"edit-config-json": "config.json এডিট করুন",
|
||||
"override-user-agent": "ইউজার এজেন্ট বদলান",
|
||||
"restart-on-config-changes": "কনফিগ পরিবর্তন হলে আবার চালু করুন",
|
||||
"set-proxy": {
|
||||
"label": "প্রক্সি সেট করুন",
|
||||
"prompt": {
|
||||
"label": "প্রক্সি ঠিকানা দিন: (বন্ধ করতে ফাকা রাখুন)",
|
||||
"placeholder": "যেমন: SOCKS5://127.0.0.1:9999",
|
||||
"title": "প্রক্সি সেট করুন"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "ডেভ টুল চালু/বন্ধ"
|
||||
}
|
||||
},
|
||||
"always-on-top": "সবসময় উপরে রাখুন",
|
||||
"auto-update": "স্বয়ংক্রিয় আপডেট চালু করুন",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "পরবর্তী চালুর সময় মেনু লুকানো থাকবে, দেখতে [Alt] চাপুন (অথবা ইন-অ্যাপ মেনু হলে [`] ব্যবহার করুন)",
|
||||
"title": "মেনু লুকানো হয়েছে"
|
||||
},
|
||||
"label": "মেনু লুকান"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "পুনরায় চালু করলে ভাষা পরিবর্তন হয়ে যাবে",
|
||||
"title": "ভাষা নির্বাচন করুন"
|
||||
},
|
||||
"label": "ভাষা",
|
||||
"submenu": {
|
||||
"to-help-translate": "অনুবাদে সাহায্য করতে চান? এখানে চাপ দিন"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "অ্যাপ চালু হলে শেষ গানটি আবার চালু করুন",
|
||||
"single-instance-lock": "একক ইনস্ট্যান্স লক",
|
||||
"start-at-login": "লগইনের সময় চালু করুন",
|
||||
"starting-page": {
|
||||
"label": "শুরুর পেজ",
|
||||
"unset": "নির্ধারণ করা হয়নি"
|
||||
},
|
||||
"tray": {
|
||||
"label": "ট্রে",
|
||||
"submenu": {
|
||||
"disabled": "ট্রে বন্ধ",
|
||||
"enabled-and-hide-app": "ট্রে চালু ও অ্যাপ লুকান",
|
||||
"enabled-and-show-app": "ট্রে চালু ও অ্যাপ দেখান",
|
||||
"play-pause-on-click": "ট্রে ক্লিক করলে প্লে/পজ"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "দৃষ্টিনন্দন পরিবর্তন",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "কাস্টম উইন্ডো টাইটেল",
|
||||
"prompt": {
|
||||
"label": "নিজস্ব উইন্ডোর টাইটেল দিন (বন্ধ করতে ফাঁকা রাখুন)",
|
||||
"placeholder": "উদাহরণস্বরূপ: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "ডিফল্ট লাইক বাটন",
|
||||
"force-show": "সবসময় লাইক বাটন দেখান",
|
||||
"hide": "লাইক বাটন লুকান",
|
||||
"label": "লাইক বাটনের নিয়ন্ত্রণ"
|
||||
},
|
||||
"remove-upgrade-button": "আপগ্রেড বাটন সরান",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "বাতিল",
|
||||
"remove": "থিম সরান"
|
||||
},
|
||||
"remove-theme": "থিম সরাতে চান?",
|
||||
"remove-theme-message": "এটি কাস্টম থিমটি বাদ দিয়ে দিবে"
|
||||
},
|
||||
"label": "থিম",
|
||||
"submenu": {
|
||||
"import-css-file": "CSS ফাইল ইমপোর্ট করুন",
|
||||
"no-theme": "কোন থিম নেই"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "প্লাগইন চালু",
|
||||
"label": "প্লাগইন",
|
||||
"new": "নতুন প্লাগইন"
|
||||
},
|
||||
"view": {
|
||||
"label": "দেখুন",
|
||||
"submenu": {
|
||||
"force-reload": "জোর করে রিফ্রেশ করুন",
|
||||
"reload": "রিফ্রেশ করুন",
|
||||
"reset-zoom": "জুম রিসেট করুন",
|
||||
"toggle-fullscreen": "ফুলস্ক্রিন চালু/বন্ধ",
|
||||
"zoom-in": "বড় করুন",
|
||||
"zoom-out": "ছোট করুন"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "নেক্সট",
|
||||
"play-pause": "চালু/বন্ধ",
|
||||
"previous": "পূর্ববর্তী",
|
||||
"quit": "বন্ধ",
|
||||
"restart": "অ্যাপ পুনরায় চালু করুন",
|
||||
"show": "উইন্ডো দেখান",
|
||||
"tooltip": {
|
||||
"default": "ইউটিউব মিউজিক",
|
||||
"with-song-info": "ইউটিউব মিউজিক: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "বিজ্ঞাপন চললে, এটি অডিও বন্ধ করে দেয় এবং প্লেব্যাক গতি ১৬ গুণ করে দেয়",
|
||||
"name": "বিজ্ঞাপন দ্রুত করুন"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "সব বিজ্ঞাপন ও ট্র্যাকিং শুরু থেকেই ব্লক করুন",
|
||||
"menu": {
|
||||
"blocker": "ব্লকার"
|
||||
},
|
||||
"name": "এড ব্লকার"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "প্লেলিস্ট বা অ্যালবামের সব গানেই প্রয়োগ করতে আনডিসলাইক, ডিসলাইক, লাইক ও আনলাইক বাটন যোগ করে",
|
||||
"name": "অ্যালবাম অ্যাকশনসমূহ"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "অ্যালবামের রঙের উপর ভিত্তি করে ডাইনামিক থিম ও ভিজ্যুয়াল ইফেক্ট প্রয়োগ করুন",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "কালার মিক্স রেশিও",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"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": "পরিবেষ্টিত মোড"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "ইউটিউব মিউজিকে অ্যামিউজ সমর্থন যোগ করা হয়েছে যা এখন ৬কে ল্যাবস উইজেটে চলছে",
|
||||
"name": "মনোরঞ্জন",
|
||||
"response": {
|
||||
"query": "অ্যামিউজ API সার্ভার চলছে। /query ব্যবহার করে গান সম্পর্কিত তথ্য পান।"
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "প্লেয়ার নিয়ন্ত্রণের জন্য একটি API সার্ভার যোগ করা হয়েছে",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "অনুমতি দিন",
|
||||
"deny": "অস্বীকার করা"
|
||||
},
|
||||
"message": "{{ID}} ({{origin}}) কে API ব্যবহারের অনুমতি দিবেন?",
|
||||
"title": "API অথোরাইজ এর অনুরোধ"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "অথোরাইজেশন স্ট্র্যাটেজি",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "প্রথম অনুরোধে অথোরাইজ করুন"
|
||||
},
|
||||
"none": {
|
||||
"label": "কোন অথোরাইজেশন নেই"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "হোস্টনেম"
|
||||
},
|
||||
"port": {
|
||||
"label": "পোর্ট"
|
||||
}
|
||||
},
|
||||
"name": "API সার্ভার [বেটা]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "API সার্ভারের জন্য হোস্টনেম (যেমন 0.0.0.0) লিখুন:",
|
||||
"title": "হোস্টনেম"
|
||||
},
|
||||
"port": {
|
||||
"label": "API সার্ভারের জন্য পোর্ট লিখুন:",
|
||||
"title": "পোর্ট"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "অডিওতে কম্প্রেশন প্রয়োগ করুন (উচ্চতর শব্দের অংশগুলোর ভলিউম কমিয়ে দেয় এবং নীরবতম অংশগুলোর ভলিউম বাড়িয়ে দেয়)",
|
||||
"name": "অডিও কম্প্রেসর"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "অথেনটিকেশন প্রক্সি সার্ভিস ব্যবহারের সাপোর্ট",
|
||||
"menu": {
|
||||
"disable": "প্রক্সি অ্যাডাপ্টার বন্ধ করুন",
|
||||
"enable": "প্রক্সি অ্যাডাপ্টার চালু করুন",
|
||||
"hostname": {
|
||||
"label": "হোস্টনেম"
|
||||
},
|
||||
"port": {
|
||||
"label": "পোর্ট"
|
||||
}
|
||||
},
|
||||
"name": "অথেনটিকেশন প্রক্সি অ্যাডাপ্টার",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "লোকাল প্রক্সি সার্ভারের জন্য হোস্টনেম লিখুন (পুনরায় চালু করতে হবে):",
|
||||
"title": "প্রক্সি হোস্টনেম"
|
||||
},
|
||||
"port": {
|
||||
"label": "লোকাল প্রক্সি সার্ভারের জন্য পোর্ট লিখুন (পুনরায় চালু করতে হবে):",
|
||||
"title": "প্রক্সি পোর্ট"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "নেভিগেশন বারকে স্বচ্ছ এবং ঝাপসা করে",
|
||||
"name": "নেভিগেশন বার ঝাপসা করুন"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "ইউটিউবের বয়স যাচাইকরণ এড়িয়ে যান",
|
||||
"name": "বয়স সীমাবদ্ধতা এড়ান"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "ইউটিউব মিউজিক অডিও ট্র্যাকের জন্য ক্যাপশন নির্বাচক",
|
||||
"menu": {
|
||||
"autoload": "সর্বশেষ ব্যবহৃত ক্যাপশন স্বয়ংক্রিয়ভাবে নির্বাচন করুন",
|
||||
"disable-captions": "ডিফল্টভাবে কোন ক্যাপশন নেই"
|
||||
},
|
||||
"name": "ক্যাপশন নির্বাচক",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "বর্তমান ক্যাপশন ভাষা: {{language}}",
|
||||
"none": "কোনোটি নয়",
|
||||
"title": "ক্যাপশন ভাষা নির্বাচন করুন"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "ক্যাপশন নির্বাচক খুলুন"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "ক্যাপশন {{language}} ভাষায় পরিবর্তিত হয়েছে",
|
||||
"caption-disabled": "ক্যাপশন বন্ধ করা হয়েছে",
|
||||
"no-captions": "এই গানটির জন্য কোনো ক্যাপশন উপলব্ধ নেই"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "সাইডবারকে সবসময় কম্প্যাক্ট মোডে সেট করুন",
|
||||
"name": "কম্প্যাক্ট সাইডবার"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "গানগুলির মধ্যে ক্রসফেড করুন",
|
||||
"menu": {
|
||||
"advanced": "এডভান্স"
|
||||
},
|
||||
"name": "ক্রসফেড [বেটা]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "ফেড-ইন সময়কাল (ms)",
|
||||
"fade-out-duration": "ফেড-আউট সময়কাল (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "ফেড স্কেলিং",
|
||||
"linear": "রৈখিক",
|
||||
"logarithmic": "লগারিদমিক"
|
||||
},
|
||||
"seconds-before-end": "শেষ হওয়ার N সেকেন্ড আগে ক্রসফেড করুন"
|
||||
},
|
||||
"title": "ক্রসফেড অপশনসমূহ"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "গান \"পজ\" মোডে শুরু করে",
|
||||
"menu": {
|
||||
"apply-once": "শুধুমাত্র স্টার্টআপে প্রয়োগ হয়"
|
||||
},
|
||||
"name": "অটোপ্লে বন্ধ করুন"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "একটিভ সংযোগের সাথে সংযোগ করার চেষ্টা করা হয়েছে",
|
||||
"connected": "ডিসকর্ডের সাথে সংযুক্ত",
|
||||
"disconnected": "ডিসকর্ড থেকে সংযোগ বিচ্ছিন্ন"
|
||||
},
|
||||
"description": "রিচ প্রেজেন্স ব্যবহার করে আপনি কি শুনছেন তা আপনার বন্ধুদের দেখান",
|
||||
"menu": {
|
||||
"auto-reconnect": "স্বয়ংক্রিয় রিকানেক্ট",
|
||||
"clear-activity": "কার্যকলাপ মুছুন",
|
||||
"clear-activity-after-timeout": "সময়সীমা শেষ হওয়ার পরে কার্যকলাপ মুছুন",
|
||||
"connected": "সংযুক্ত",
|
||||
"disconnected": "সংযোগ বিচ্ছিন্ন",
|
||||
"hide-duration-left": "অবশিষ্ট সময় লুকান",
|
||||
"hide-github-button": "গিটহাব লিঙ্ক বাটন লুকান",
|
||||
"play-on-youtube-music": "ইউটিউব মিউজিকে চালান",
|
||||
"set-inactivity-timeout": "নিষ্ক্রিয়তার সময়সীমা সেট করুন"
|
||||
},
|
||||
"name": "ডিসকর্ড রিচ প্রেজেন্স",
|
||||
"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": "কোনো প্লেলিস্ট আইডি পাওয়া যায়নি",
|
||||
"playlist-is-empty": "প্লেলিস্ট খালি",
|
||||
"playlist-is-mix-or-private": "প্লেলিস্ট তথ্য পেতে সমস্যা: নিশ্চিত করুন এটি প্রাইভেট বা \"আপনার জন্য মিক্সড\" প্লেলিস্ট নয়\n\n{{error}}",
|
||||
"preparing-file": "ফাইল প্রস্তুত করা হচ্ছে…",
|
||||
"saving": "সংরক্ষণ করা হচ্ছে…",
|
||||
"trying-to-get-playlist-id": "প্লেলিস্ট আইডি পাওয়ার চেষ্টা করা হচ্ছে: {{playlistId}}",
|
||||
"video-id-not-found": "ভিডিও পাওয়া যায়নি",
|
||||
"writing-id3": "ID3 ট্যাগ লেখা হচ্ছে…"
|
||||
}
|
||||
},
|
||||
"description": "ইন্টারফেস থেকে সরাসরি MP3 / উৎস অডিও ডাউনলোড করে",
|
||||
"menu": {
|
||||
"choose-download-folder": "ডাউনলোড ফোল্ডার বেছে নিন",
|
||||
"download-finish-settings": {
|
||||
"label": "শেষ হলে ডাউনলোড করুন",
|
||||
"prompt": {
|
||||
"last-percent": "x শতাংশ পরে",
|
||||
"last-seconds": "শেষ x সেকেন্ড",
|
||||
"title": "কখন ডাউনলোড করবেন তা কনফিগার করুন"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "উন্নত",
|
||||
"enabled": "সক্রিয়",
|
||||
"mode": "টাইম মোড",
|
||||
"percent": "শতাংশ",
|
||||
"seconds": "সেকেন্ড"
|
||||
}
|
||||
},
|
||||
"download-playlist": "প্লেলিস্ট ডাউনলোড করুন",
|
||||
"presets": "প্রিসেট",
|
||||
"skip-existing": "বিদ্যমান ফাইলগুলি এড়িয়ে যান"
|
||||
},
|
||||
"name": "ডাউনলোডার",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "প্রগ্রেস আপডেট করা যাচ্ছে না"
|
||||
},
|
||||
"templates": {
|
||||
"button": "ডাউনলোড"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "প্লেয়ারে একটি ইকুয়ালাইজার যোগ করে",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "প্রিসেট",
|
||||
"list": {
|
||||
"bass-booster": "বেস বুস্টার"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "ইকুয়ালাইজার"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "ভলিউম স্লাইডারকে এক্সপোটেনশিয়াল করে তোলে যাতে কম ভলিউম নির্বাচন করা সহজ হয়।",
|
||||
"name": "এক্সপোটেনশিয়াল ভলিউম"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "মেনু-বারগুলোকে আকর্ষণীয়, গাঢ় বা অ্যালবাম-রঙের চেহারা দেয়",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "DOM উইন্ডো কন্ট্রোলগুলো লুকান"
|
||||
},
|
||||
"name": "অ্যাপ-ভিতরের মেনু"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "লুমিয়া স্ট্রিম সমর্থন যোগ করে",
|
||||
"name": "লুমিয়া স্ট্রিম [বেটা]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "বেশিরভাগ গানের জন্য লিরিক্স সমর্থন যোগ করে",
|
||||
"menu": {
|
||||
"romanized-lyrics": "রোমানাইজড লিরিক্স"
|
||||
},
|
||||
"name": "লিরিক্স জিনিয়াস",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "জিনিয়াসের জন্য লিরিক্স সংগ্রহ করা হয়েছে"
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "অন্যদের সাথে প্লেলিস্ট শেয়ার করুন। যখন হোস্ট একটি গান বাজায়, অন্য সবাই একই গানটি শুনবে",
|
||||
"dialog": {
|
||||
"enter-host": "হোস্ট আইডি লিখুন"
|
||||
},
|
||||
"internal": {
|
||||
"save": "সংরক্ষণ করুন",
|
||||
"track-source": "ট্র্যাক উৎস",
|
||||
"unknown-user": "অজানা ব্যবহারকারী"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "হোস্ট আইডি কপি করুন",
|
||||
"close": "মিউজিক টুগেদার বন্ধ করুন",
|
||||
"connected-users": "সংযুক্ত ব্যবহারকারীরা",
|
||||
"disconnect": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন করুন",
|
||||
"empty-user": "কোন সংযুক্ত ব্যবহারকারী নেই",
|
||||
"host": "মিউজিক টুগেদার হোস্ট",
|
||||
"join": "মিউজিক টুগেদারে যোগ দিন",
|
||||
"permission": {
|
||||
"all": "অতিথিদের প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে দিন",
|
||||
"host-only": "শুধুমাত্র হোস্ট প্লেলিস্ট এবং প্লেয়ার নিয়ন্ত্রণ করতে পারবেন",
|
||||
"playlist": "অতিথিদের প্লেলিস্ট নিয়ন্ত্রণ করতে দিন"
|
||||
},
|
||||
"set-permission": "নিয়ন্ত্রণ অনুমতি পরিবর্তন করুন",
|
||||
"status": {
|
||||
"disconnected": "সংযোগ বিচ্ছিন্ন",
|
||||
"guest": "অতিথি হিসাবে সংযুক্ত",
|
||||
"host": "হোস্ট হিসাবে সংযুক্ত"
|
||||
}
|
||||
},
|
||||
"name": "মিউজিক টুগেদার [বেটা]",
|
||||
"toast": {
|
||||
"add-song-failed": "গান যোগ করা ব্যর্থ হয়েছে",
|
||||
"closed": "মিউজিক টুগেদার বন্ধ হয়েছে",
|
||||
"disconnected": "মিউজিক টুগেদার সংযোগ বিচ্ছিন্ন হয়েছে",
|
||||
"host-failed": "মিউজিক টুগেদার হোস্ট করা ব্যর্থ হয়েছে",
|
||||
"id-copied": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা হয়েছে",
|
||||
"id-copy-failed": "হোস্ট আইডি ক্লিপবোর্ডে কপি করা ব্যর্থ হয়েছে",
|
||||
"join-failed": "মিউজিক টুগেদারে যোগদান ব্যর্থ হয়েছে",
|
||||
"joined": "মিউজিক টুগেদারে যোগ দেওয়া হয়েছে",
|
||||
"permission-changed": "মিউজিক টুগেদার অনুমতি \"{{permission}}\" এ পরিবর্তন করা হয়েছে",
|
||||
"remove-song-failed": "গান সরানো ব্যর্থ হয়েছে",
|
||||
"user-connected": "{{name}} মিউজিক টুগেদারে যোগ দিয়েছেন",
|
||||
"user-disconnected": "{{name}} মিউজিক টুগেদার ছেড়ে চলে গেছেন"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "পরবর্তী/পূর্ববর্তী নেভিগেশন তীরগুলি আপনার প্রিয় ব্রাউজারের মতো সরাসরি ইন্টারফেসে অন্তর্ভুক্ত করা হয়েছে",
|
||||
"name": "নেভিগেশন",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "আগের পাতায় যান"
|
||||
},
|
||||
"forward": {
|
||||
"title": "পরের পাতায় যান"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "ইন্টারফেস থেকে Google লগইন বাটন এবং লিঙ্কগুলি সরান",
|
||||
"name": "গুগল লগইন নয়"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "একটি গান বাজতে শুরু হলে একটি বিজ্ঞপ্তি প্রদর্শন করে (উইন্ডোজে ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিগুলি উপলব্ধ)",
|
||||
"menu": {
|
||||
"interactive": "ইন্টারঅ্যাকটিভ বিজ্ঞপ্তিসমূহ",
|
||||
"interactive-settings": {
|
||||
"label": "ইন্টারঅ্যাকটিভ সেটিংস",
|
||||
"submenu": {
|
||||
"hide-button-text": "বাটন টেক্সট লুকান",
|
||||
"refresh-on-play-pause": "প্লে/পজে রিফ্রেশ করুন",
|
||||
"tray-controls": "ট্রে ক্লিকে খুলুন/বন্ধ করুন"
|
||||
}
|
||||
},
|
||||
"priority": "বিজ্ঞপ্তি অগ্রাধিকার",
|
||||
"toast-style": "টোস্ট স্টাইল",
|
||||
"unpause-notification": "বিরতি থেকে ফিরলে বিজ্ঞপ্তি দেখান"
|
||||
},
|
||||
"name": "বিজ্ঞপ্তিসমূহ"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "পরীক্ষামূলক স্ক্রিপ্টগুলি সক্ষম করে পারফরম্যান্স উন্নত করুন",
|
||||
"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": "ব্রাউজারের নেটিভ PiP ব্যবহার করুন"
|
||||
},
|
||||
"name": "পিকচার-ইন-পিকচার",
|
||||
"templates": {
|
||||
"button": "পিকচার-ইন-পিকচার"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "দ্রুত শুনুন, ধীরে শুনুন! গানের গতি নিয়ন্ত্রণ করার জন্য একটি স্লাইডার যোগ করে",
|
||||
"name": "প্লেব্যাক স্পিড",
|
||||
"templates": {
|
||||
"button": "গতি"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "মাউসহুইল/হটকি ব্যবহার করে সঠিকভাবে ভলিউম নিয়ন্ত্রণ করুন, কাস্টম HUD এবং কাস্টমাইজযোগ্য ভলিউম স্টেপ সহ",
|
||||
"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": "ভিডিও কোয়ালিটি পরিবর্তক",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "প্লেয়ারের মান পরিবর্তনের অপশন খুলুন"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "স্ক্রবলিং সমর্থন যোগ করুন (যেমন last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Last.fm এর সাথে প্রমাণীকরণ ব্যর্থ হয়েছে\nপরবর্তী পুনরায় চালু না হওয়া পর্যন্ত পপআপ লুকান।",
|
||||
"title": "প্রমাণীকরণ ব্যর্থ হয়েছে"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Last.fm API সেটিংস"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "ListenBrainz ব্যবহারকারী টোকেন লিখুন"
|
||||
},
|
||||
"scrobble-alternative-title": "বিকল্প শিরোনাম ব্যবহার করুন",
|
||||
"scrobble-other-media": "অন্যান্য মিডিয়া স্ক্রবল করুন"
|
||||
},
|
||||
"name": "স্ক্রবলার",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API কি",
|
||||
"api-secret": "Last.fm API সিক্রেট"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "আপনার ListenBrainz ব্যবহারকারী টোকেন লিখুন:",
|
||||
"title": "ListenBrainz টোকেন"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "প্লেব্যাকের জন্য গ্লোবাল হটকি (প্লে/পজ/পরবর্তী/পূর্ববর্তী) সেট করতে এবং মিডিয়া কী ওভাররাইড করে মিডিয়া OSD বন্ধ করতে, Ctrl/CMD + F চালু করে অনুসন্ধান করতে, মিডিয়া কীগুলির জন্য Linux MPRIS সমর্থন চালু করতে এবং অ্যাডভান্সড ব্যবহারকারীদের জন্য কাস্টম হটকি সেট করতে অনুমতি দেয়",
|
||||
"menu": {
|
||||
"override-media-keys": "মিডিয়া কী ওভাররাইড করুন",
|
||||
"set-keybinds": "গ্লোবাল গান কন্ট্রোল সেট করুন"
|
||||
},
|
||||
"name": "শর্টকাট (এবং MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "পরবর্তী",
|
||||
"play-pause": "চালান / বিরতি",
|
||||
"previous": "পূর্ববর্তী"
|
||||
},
|
||||
"label": "গান নিয়ন্ত্রণের জন্য গ্লোবাল কিবাইন্ড নির্বাচন করুন:",
|
||||
"title": "গ্লোবাল কিবাইন্ড"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "পছন্দ হয়নি এমন গানগুলো এড়িয়ে যায়",
|
||||
"name": "অপছন্দ গান এড়ান"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "স্বয়ংক্রিয়ভাবে গানের নীরব অংশগুলো এড়িয়ে যান",
|
||||
"name": "নীরবতা এড়িয়ে যান"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "স্বয়ংক্রিয়ভাবে ইন্ট্রো/আউটট্রো বা মিউজিক ভিডিওর যেসব অংশে গান বাজছে না সেগুলি এড়িয়ে যায়",
|
||||
"name": "স্পনসরব্লক"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "LRClib এর মত প্রোভাইডার ব্যবহার করে গানের সাথে সিঙ্ক করা লিরিক্স প্রদান করে।",
|
||||
"errors": {
|
||||
"fetch": "⚠️\tলিরিক্স আনার সময় একটি ত্রুটি ঘটেছে।\n\tঅনুগ্রহ করে পরে আবার চেষ্টা করুন।",
|
||||
"not-found": "⚠️ এই গানের জন্য কোন লিরিক্স পাওয়া যায়নি।"
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
"label": "লিরিক্সের মাঝে ডিফল্ট অক্ষর",
|
||||
"tooltip": "লিরিক্সের মধ্যে ফাঁকের জন্য ব্যবহৃত ডিফল্ট অক্ষর নির্বাচন করুন"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "লাইন ইফেক্ট",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "ফ্যান্সি",
|
||||
"tooltip": "বর্তমান লাইনে বড়, অ্যাপের মত ইফেক্ট ব্যবহার করুন"
|
||||
},
|
||||
"focus": {
|
||||
"label": "ফোকাস",
|
||||
"tooltip": "শুধুমাত্র বর্তমান লাইনটি সাদা করুন"
|
||||
},
|
||||
"offset": {
|
||||
"label": "অফসেট",
|
||||
"tooltip": "বর্তমান লাইনকে ডানদিকে অফসেট করুন"
|
||||
},
|
||||
"scale": {
|
||||
"label": "স্কেল",
|
||||
"tooltip": "বর্তমান লাইন স্কেল করুন"
|
||||
}
|
||||
},
|
||||
"tooltip": "বর্তমান লাইনে প্রয়োগ করার জন্য ইফেক্ট নির্বাচন করুন"
|
||||
},
|
||||
"precise-timing": {
|
||||
"label": "লিরিক্স পুরোপুরি সিঙ্ক করুন",
|
||||
"tooltip": "পরবর্তী লাইন প্রদর্শনের মিলিসেকেন্ড পর্যন্ত গণনা করুন (পারফরম্যান্সে সামান্য প্রভাব পড়তে পারে)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "লিরিক্স রোমানাইজ করুন",
|
||||
"tooltip": "যদি লিরিক্স ভিন্ন ভাষায় হয়, তাহলে একটি ল্যাটিন সংস্করণ প্রদর্শন করার চেষ্টা করুন।"
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "অনির্ভুল হলেও লিরিক্স দেখান",
|
||||
"tooltip": "যদি গানটি না পাওয়া যায়, প্লাগইনটি একটি ভিন্ন অনুসন্ধান কোয়েরি দিয়ে আবার চেষ্টা করে।\nদ্বিতীয় প্রচেষ্টার ফলাফল সঠিক নাও হতে পারে।"
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "টাইম কোড দেখান",
|
||||
"tooltip": "লিরিক্সের পাশে টাইম কোড দেখান"
|
||||
}
|
||||
},
|
||||
"name": "সিঙ্ক করা লিরিক্স",
|
||||
"refetch-btn": {
|
||||
"fetching": "আনছে..।",
|
||||
"normal": "লিরিক্স পুনরায় আনুন"
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - সময়কাল মিলে না যাওয়ার কারণে লিরিক্স সিঙ্ক হতে নাও পারে।",
|
||||
"inexact": "⚠️ - এই গানের লিরিক্স সঠিক নাও হতে পারে",
|
||||
"instrumental": "⚠️ - এটি একটি ইনস্ট্রুমেন্টাল গান"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "উইন্ডোজ টাস্কবার থেকে প্লেব্যাক নিয়ন্ত্রণ করুন",
|
||||
"name": "টাস্কবার মিডিয়া কন্ট্রোল"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "macOS ব্যবহারকারীদের জন্য একটি টাচবার উইজেট যোগ করে",
|
||||
"name": "টাচবার"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "OBS এর প্লাগইন টুনার সাথে সংযোগ",
|
||||
"name": "টুনা OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "গান চালানোর সময় প্লেয়ারকে পপ আপ হওয়া থেকে বিরত রাখে",
|
||||
"name": "অনাড়ম্বর প্লেয়ার"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "ভিডিও/গান মোডের মধ্যে স্যুইচ করার জন্য একটি বাটন যোগ করে। ঐচ্ছিকভাবে সম্পূর্ণ ভিডিও ট্যাবও সরাতে পারে",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "সারিবদ্ধকরণ",
|
||||
"submenu": {
|
||||
"left": "বাম",
|
||||
"middle": "মাঝখানে",
|
||||
"right": "ডান"
|
||||
}
|
||||
},
|
||||
"force-hide": "জোর করে ভিডিও ট্যাব সরান",
|
||||
"mode": {
|
||||
"label": "মোড",
|
||||
"submenu": {
|
||||
"custom": "কাস্টম টগল",
|
||||
"disabled": "নিষ্ক্রিয়",
|
||||
"native": "নেটিভ টগল"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "ভিডিও টগল",
|
||||
"templates": {
|
||||
"button-song": "গান",
|
||||
"button-video": "ভিডিও"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "প্লেয়ারে একটি ভিজ্যুয়ালাইজার যোগ করে",
|
||||
"menu": {
|
||||
"visualizer-type": "ভিজ্যুয়ালাইজার প্রকার"
|
||||
},
|
||||
"name": "ভিজ্যুয়ালাইজার"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -123,10 +123,79 @@
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Jezik će se promijeniti nakon ponovnog pokretanja"
|
||||
"message": "Jezik će se promijeniti nakon ponovnog pokretanja",
|
||||
"title": "Jezik je uspješno promjenjen"
|
||||
},
|
||||
"label": "Jezik",
|
||||
"submenu": {
|
||||
"to-help-translate": "Želite da pomognete s prijevodom? Kliknite ovdje"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Nastavi posljednju pjesmu pri sljedećem pokretaju",
|
||||
"single-instance-lock": "Sprječavanje višestrukog pokretanja",
|
||||
"start-at-login": "Pokreni čim se prijavite",
|
||||
"starting-page": {
|
||||
"label": "Početna stranica",
|
||||
"unset": "Ukinite postavu"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Tacna",
|
||||
"submenu": {
|
||||
"disabled": "Onemogućeno",
|
||||
"enabled-and-hide-app": "Tacna je uključena, i prozor aplikacije skrijte",
|
||||
"enabled-and-show-app": "Tacna je uključena, i prozor aplikacije prikažite",
|
||||
"play-pause-on-click": "Pokreni/Zaustavi na klik"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vizualne postavke",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Prilagođeni naslov prozora",
|
||||
"prompt": {
|
||||
"label": "Unesite vlastiti naslov prozora: (ostavite prazno za isključenje)",
|
||||
"placeholder": "Primjer: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Zadano",
|
||||
"force-show": "Prinudno prikaži",
|
||||
"hide": "Sakrij",
|
||||
"label": "'Sviđa mi se' dugmadi"
|
||||
},
|
||||
"remove-upgrade-button": "Ukloni dugme za nadogradnju",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Otkaži",
|
||||
"remove": "Ukloni"
|
||||
},
|
||||
"remove-theme": "Jeste li sigurni da želite ukloniti prilagođenu temu?",
|
||||
"remove-theme-message": "Ovo će ukloniti prilagođenu temu"
|
||||
},
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Uvoz prilagođene CSS datoteke",
|
||||
"no-theme": "Bez teme"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Omogući",
|
||||
"label": "Dodaci",
|
||||
"new": "Novo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ambient-mode": {
|
||||
"menu": {
|
||||
"quality": {
|
||||
"label": "Kvalitet"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,11 +4,11 @@
|
||||
"plugins": {
|
||||
"execute-failed": "Ha fallat l'execució de l'extensió {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "L'extensió {{pluginName}}::{{contextName}} s'ha executat als {{ms}}ms",
|
||||
"initialize-failed": "Ha fallat la inicialització de l'extensió «{{pluginName}}»",
|
||||
"initialize-failed": "Ha fallat la inicialització de l'extensió \"{{pluginName}}\"",
|
||||
"load-all": "Carregant totes les extensions",
|
||||
"load-failed": "Error al carregar l'extensió «{{pluginName}}»",
|
||||
"load-failed": "Error en carregar l'extensió «{{pluginName}}»",
|
||||
"loaded": "L'extensió «{{pluginName}}» s'ha carregat",
|
||||
"unload-failed": "Error al deshabilitar l'extensió «{{pluginName}}»",
|
||||
"unload-failed": "Error en deshabilitar l'extensió «{{pluginName}}»",
|
||||
"unloaded": "Extensió «{{pluginName}}» deshabilitada"
|
||||
}
|
||||
}
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Opcions visuals",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Títol personalitzat de la finestra",
|
||||
"prompt": {
|
||||
"label": "Introdueix un títol personalitzat per a la finestra (deixa-ho buit per deshabilitar-ho)",
|
||||
"placeholder": "Exemple: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Per defecte",
|
||||
"force-show": "Força que es mostri",
|
||||
@ -279,6 +286,13 @@
|
||||
},
|
||||
"name": "Mode ambient"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Afegeix suport a Youtube Music per el widget \"now playing\" d'Amuse per 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "L'API del servidor de Amuse està funcionant. GET /query per tenir informació de la cançó."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Afegeix un servidor API per controlar el reproductor",
|
||||
"dialog": {
|
||||
@ -326,6 +340,30 @@
|
||||
"description": "Aplica compressió a l'àudio (baixa el volum de les parts més sorolloses de la senyal d'àudio i puja el volum de les parts més fluixes)",
|
||||
"name": "Compressió d'àudio"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Suport per l'ús de servidors d'autenticació proxy",
|
||||
"menu": {
|
||||
"disable": "Desactivar adaptador Proxy",
|
||||
"enable": "Activar adaptador Proxy",
|
||||
"hostname": {
|
||||
"label": "Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Adaptador de proxy d'autenticació",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Posa hostname pel servidor del proxy local (requereix reiniciar):",
|
||||
"title": "Hostname del proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Entra un port pel servidor local del proxy (requereix reiniciar):",
|
||||
"title": "Port proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Desenfoca i aplica transparència a la barra de navegació",
|
||||
"name": "Desenfoca la barra de navegació"
|
||||
@ -350,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Obra el selector de subtítols"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Subtítols canviats a {{language}}",
|
||||
"caption-disabled": "Subtítols desactivats",
|
||||
"no-captions": "Subtítols no disponibles per aquesta cançó"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -378,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Configura un dispositiu multimèdia de sortida personalitzat per a cançons",
|
||||
"menu": {
|
||||
"device-selector": "Selecciona un dispositiu"
|
||||
},
|
||||
"name": "Dispositiu de sortida personalitzat",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Trieu el dispositiu de sortida que s'utilitzarà",
|
||||
"title": "Escull el dispositiu de sortida"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Fa que la cançó comenci en mode «pausat»",
|
||||
"menu": {
|
||||
@ -401,7 +457,15 @@
|
||||
"hide-duration-left": "Amaga la durada restant",
|
||||
"hide-github-button": "Amaga el botó de l'enllaç a GitHub",
|
||||
"play-on-youtube-music": "Reprodueix a YouTube Music",
|
||||
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat"
|
||||
"set-inactivity-timeout": "Estableix temps d'espera d'inactivitat",
|
||||
"set-status-display-type": {
|
||||
"label": "Text d'estat",
|
||||
"submenu": {
|
||||
"artist": "Escoltant {artist}",
|
||||
"title": "Escoltant {song title}",
|
||||
"youtube-music": "Escoltant YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Estat d'activitat de Discord",
|
||||
"prompt": {
|
||||
@ -484,6 +548,18 @@
|
||||
"button": "Descarrega"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Afegeix un equalitzador al reproductor",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Predefinits",
|
||||
"list": {
|
||||
"bass-booster": "Augmentar baixos"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Equalitzador"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Fa que el control lliscant del volum sigui exponencial per que sigui més fàcil seleccionar volums més baixos.",
|
||||
"name": "Volum exponencial"
|
||||
@ -557,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Fletxes de navegació Següent / Enrere integrades directament a la interfície, com al teu navegador preferit",
|
||||
"name": "Navegació"
|
||||
"name": "Navegació",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Pàgina anterior"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Pàgina següent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Elimina els botons d'inici de sessió de Google de la interfície",
|
||||
@ -581,6 +665,10 @@
|
||||
},
|
||||
"name": "Notificacions"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Millora el rendiment habilitant scripts experimentals",
|
||||
"name": "Millora del rendiment [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permet commutar el mode d'imatge en imatge (PiP)",
|
||||
"menu": {
|
||||
@ -645,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Permet canviar la qualitat del vídeo amb un botó que s'hi mostra a sobre",
|
||||
"name": "Botó de qualitat del vídeo"
|
||||
"name": "Botó de qualitat del vídeo",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Obre les opcions de qualitat del reproductor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Afegeix suport per scrobbling (Last.fm, ListenBrainz, etc.)",
|
||||
@ -664,6 +757,8 @@
|
||||
"listenbrainz": {
|
||||
"token": "Introduir token d'usuari de ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Utilitza artistes alternatius",
|
||||
"scrobble-alternative-title": "Useu títols alternatius",
|
||||
"scrobble-other-media": "Scrobble amb altres mitjans"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
@ -714,8 +809,8 @@
|
||||
"synced-lyrics": {
|
||||
"description": "Proporciona lletres sincronitzades amb les cançons, a través de proveïdors com LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️ - Se ha produït un error en descarregar la lletra. Si us plau, intenta-ho més tard.",
|
||||
"not-found": "⚠️ - No s'ha trobat la lletra per aquesta cançó."
|
||||
"fetch": "⚠️\tS'ha produït un error en descarregar la lletra.\n\tSi us plau, intenta-ho més tard.",
|
||||
"not-found": "⚠️ No s'ha trobat la lletra per aquesta cançó."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
@ -725,6 +820,10 @@
|
||||
"line-effect": {
|
||||
"label": "Efecte de la línia",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Caprici",
|
||||
"tooltip": "Utilitza efectes grans \"app-like\" en la línia actual"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Focus",
|
||||
"tooltip": "Mostra tan sols la línia actual en blanc"
|
||||
@ -744,6 +843,18 @@
|
||||
"label": "Fes que les lletres es sincronitzin a la perfecció",
|
||||
"tooltip": "Calcula al mil·lisegon l'aparició de la següent línia (pot tenir un petit impacte en el rendiment)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Proveïdor preferit",
|
||||
"none": {
|
||||
"label": "Cap",
|
||||
"tooltip": "Cap proveïdor preferit"
|
||||
},
|
||||
"tooltip": "Trieu el proveïdor predeterminat que voleu utilitzar"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanitza les lletres",
|
||||
"tooltip": "Si les lletres són en un idioma diferent, intenta mostrar la versió amb alfabet llatí."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Mostra la lletra tot i que sigui inexacta",
|
||||
"tooltip": "Si no es troba la cançó, el plugin torna a intentar obtenir la lletra amb una cerca diferent.\nEl resultat d'aquesta segona cerca podria no ser exacte."
|
||||
@ -772,10 +883,17 @@
|
||||
"description": "Afegeix un giny a la Touch Bar per usuaris de macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Fa la finestra de l'aplicació transparent"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integració amb l'extensió «Tuna» del OBS",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Impedeix que salti el reproductor mentre se sent una cançó",
|
||||
"name": "Reproductor Discret"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Afegeix un botó per commutar entre el mode de vídeo o de cançó. Opcionalment, es pot eliminar la pestanya de vídeo per complet",
|
||||
"menu": {
|
||||
@ -799,7 +917,8 @@
|
||||
},
|
||||
"name": "Botó de vídeo",
|
||||
"templates": {
|
||||
"button": "Cançó"
|
||||
"button-song": "Cançó",
|
||||
"button-video": "Vídeo"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
"load-all": "Načítání všech pluginů",
|
||||
"load-failed": "Selhalo načtení \"{{pluginName}}\" pluginu",
|
||||
"loaded": "Plugin \"{{pluginName}}\" načten",
|
||||
"unload-failed": "Selhalo unload \"{{pluginName}}\" pluginu",
|
||||
"unload-failed": "Selhalo vypnutí \"{{pluginName}}\" pluginu",
|
||||
"unloaded": "Plugin {{pluginName}} byl odnačten"
|
||||
}
|
||||
}
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Vzhledové vylepšení",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Vlastní název okna",
|
||||
"prompt": {
|
||||
"label": "Zadejte vlastní název okna: (zanechejte prázdné pro zakázání)",
|
||||
"placeholder": "Příklad: Hudba YouTube"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Výchozí",
|
||||
"force-show": "Vynutit zobrazení",
|
||||
@ -202,7 +209,7 @@
|
||||
"show": "Zobrazit okno",
|
||||
"tooltip": {
|
||||
"default": "Youtube Music",
|
||||
"with-song-info": "Youtube Music {{Umělec}} - {{Titul}}"
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -220,7 +227,7 @@
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Přidává Undislike, Dislike, Like, a Unlike tlačítka k aplikování tohoto ke všem písničkám v seznamu písniček nebo albumu",
|
||||
"name": "Možnosti Albumu"
|
||||
"name": "Možnosti Alba"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Používá dynamický motiv a vizuální efekty na základě palety barev alba",
|
||||
@ -228,7 +235,7 @@
|
||||
"color-mix-ratio": {
|
||||
"label": "Poměr míchání barev",
|
||||
"submenu": {
|
||||
"percent": "{{poměr}}%"
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -280,7 +287,10 @@
|
||||
"name": "Ambientní režim"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Přídá YouTube Music podporu pro Amuse právě těď hraje widget od 6k Labs"
|
||||
"description": "Přídá YouTube Music podporu pro Amuse ‚právě hraje‘ widget od 6K Labs",
|
||||
"response": {
|
||||
"query": "Server Amuse API běží. Pošli požadavek typu GET na /query, aby ses dozvěděl info o písničce."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Vlož API server abys mohl ovládat přehrávač",
|
||||
@ -302,7 +312,7 @@
|
||||
"label": "Ověřit při prvním dotazu"
|
||||
},
|
||||
"none": {
|
||||
"label": "Žádná autorizace"
|
||||
"label": "Bez ověření"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -329,6 +339,29 @@
|
||||
"description": "Apply compression k audiu (snižuje hlasitost nejhlasitěších částí signálu and zvyšuje hlasitost nejjemnějších částí)",
|
||||
"name": "Audio kompresor"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Podpora pro použití ověřovacích proxy služeb",
|
||||
"menu": {
|
||||
"disable": "Vypnout Proxy Adaptér",
|
||||
"enable": "Zapnout Proxy Adaptér",
|
||||
"hostname": {
|
||||
"label": "Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Zadejte hostname lokálního proxy serveru (vyžaduje restart):",
|
||||
"title": "Proxy Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Zadejte port lokálního proxy serveru (vyžaduje restart):",
|
||||
"title": "Proxy Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Udělá navigační panel průhledný a rozmazaný",
|
||||
"name": "Rozmazaný navigační panel"
|
||||
@ -353,6 +386,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Otevřít titulový selector"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Titulky změněny na {{language}}",
|
||||
"caption-disabled": "Titulky vypnuty",
|
||||
"no-captions": "K této skladbě nejsou titulky dostupné"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -394,7 +432,7 @@
|
||||
"connected": "Připojeno k Discordu",
|
||||
"disconnected": "Odpojeno od Discordu"
|
||||
},
|
||||
"description": "Ukažte svým přátelům, co posloucháte s Bohatou přítomností",
|
||||
"description": "Ukažte svým přátelům, co posloucháte pomocí Rich Persence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automaticky znovu připojit",
|
||||
"clear-activity": "Vymazat aktivitu",
|
||||
@ -406,7 +444,7 @@
|
||||
"play-on-youtube-music": "Hrát na YouTube Music",
|
||||
"set-inactivity-timeout": "Nastavit timeout pro neaktivitu"
|
||||
},
|
||||
"name": "Discord Bohatá přítomnost",
|
||||
"name": "Discord Rich Persence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Zadejte timeout neaktivity v sekundách:",
|
||||
@ -469,7 +507,7 @@
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Pokoročile",
|
||||
"enabled": "Zapnuto",
|
||||
"enabled": "Povoleno",
|
||||
"mode": "Časový režim",
|
||||
"percent": "Procent",
|
||||
"seconds": "Sekundy"
|
||||
@ -487,6 +525,18 @@
|
||||
"button": "Stáhnout"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Přidá do přehrávače ekvalizér",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Předvolby",
|
||||
"list": {
|
||||
"bass-booster": "Zesílení basů"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ekvalizér"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Dělá posuvník hlasitosti exponenciální, takže je snazší vybrat nižší hlasitost.",
|
||||
"name": "Exponenciální hlasitost"
|
||||
@ -513,7 +563,7 @@
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "Sdílejte playlist s ostatními. Když hostitel přehrává písničku, uslyší jí i všichni ostatní.",
|
||||
"description": "Sdílejte playlist s ostatními. Když hostitel přehrává skladbu, uslyší jí i všichni ostatní",
|
||||
"dialog": {
|
||||
"enter-host": "Zadejte Host ID"
|
||||
},
|
||||
@ -560,7 +610,15 @@
|
||||
},
|
||||
"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",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Přejít na předchozí stránku"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Přejít na další stránku"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Odstranit tlačítka Google přihlášení a odkazy z rozhraní",
|
||||
@ -584,6 +642,9 @@
|
||||
},
|
||||
"name": "Oznámení"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Zlepšit výkon povolením experimentálních skriptů"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Povoluje switch aplikaci do režimu obrázek v obrázku",
|
||||
"menu": {
|
||||
@ -648,7 +709,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Umožňuje měnit kvalitu videa pomocí tlačítka na video overlay",
|
||||
"name": "Měnič kvality videa"
|
||||
"name": "Měnič kvality videa",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Otevřít volbu kvality přehrávače"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Přidat scrobbing podporu (např .last.fm , Listenbrainz)",
|
||||
@ -667,6 +733,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Vložte Listenbrainz user token"
|
||||
},
|
||||
"scrobble-alternative-title": "Používat alternativní názvy",
|
||||
"scrobble-other-media": "Scrobble jiné média"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
@ -717,8 +784,8 @@
|
||||
"synced-lyrics": {
|
||||
"description": "Poskytuje synchronizaci textů do písní, pomocí poskytovatelů, jako je LRClib.",
|
||||
"errors": {
|
||||
"fetch": "Při hledání textu došlo k chybě. Prosím skuste to znovu později.",
|
||||
"not-found": "Žáden text nebyl pro túto skladbu nalezen."
|
||||
"fetch": "⚠️ Při hledání textu došlo k chybě.\n \tProsím zkuste to znovu později.",
|
||||
"not-found": "⚠️ Pro tuto skladbu nebyl nalezen žádný text."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
@ -726,8 +793,36 @@
|
||||
"tooltip": "Vyberte výchozí znak pro mezeru mezi texty"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Efekt řádku"
|
||||
"label": "Efekt řádku",
|
||||
"submenu": {
|
||||
"offset": {
|
||||
"label": "Posun"
|
||||
}
|
||||
}
|
||||
},
|
||||
"precise-timing": {
|
||||
"tooltip": "Vypočítat zobrazení dalšího řádku na milisekundu (může mít menší dopad na výkon)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanizovat texty",
|
||||
"tooltip": "Pokud je text v jiném jazyce, zkusit zobrazit verzi v latince."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Zobrazit i nepřesné texty"
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "Zobrazit časové kódy",
|
||||
"tooltip": "Zobrazit časové kódy vedle textu"
|
||||
}
|
||||
},
|
||||
"name": "Synchronizované texty",
|
||||
"refetch-btn": {
|
||||
"fetching": "Získávání..."
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Text nemusí být synchronizován kvůli neshodě v délce trvání.",
|
||||
"inexact": "⚠️ - Text pro tuto skladbu nemusí být přesný",
|
||||
"instrumental": "⚠️ - Tato skladba je instrumentální"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
@ -765,7 +860,8 @@
|
||||
},
|
||||
"name": "Přepínač videa",
|
||||
"templates": {
|
||||
"button": "Písnička"
|
||||
"button-song": "Skladba",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Visuelle Optimierungen",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Benutzerdefinierter Fenstertitel",
|
||||
"prompt": {
|
||||
"label": "Benutzerdefinierten Fenstertitel eingeben: (zum Deaktivieren leer lassen)",
|
||||
"placeholder": "Beispiel: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Standard",
|
||||
"force-show": "Zeigen erzwungen",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Kompressor auf Audio anwenden (senkt die Lautstärke der lautesten Teile des Signals und hebt die Lautstärke der leisesten Teile an)",
|
||||
"name": "Audio-Komprimierer"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Unterstützung für Proxy-Authentifizierungsdienste",
|
||||
"menu": {
|
||||
"disable": "Proxy-Adapter deaktivieren",
|
||||
"enable": "Proxy-Adapter aktivieren",
|
||||
"hostname": {
|
||||
"label": "Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Authentifizierungs-Proxyadapter",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Hostnamen eingeben für lokalen Proxy-Server (Neustart erforderlich):",
|
||||
"title": "Proxy Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Geben Sie den Port für den lokalen Proxyserver ein (Neustart erforderlich):",
|
||||
"title": "Proxy Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Macht Navigationsleiste durchsichtig und unscharf",
|
||||
"name": "Verschwommene Navigationsleiste"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Untertitelwähler öffnen"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Untertitel gewechselt zu {{language}}",
|
||||
"caption-disabled": "Untertitel deaktiviert",
|
||||
"no-captions": "Keine Untertitel für dieses Lied verfügbar"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Einen maßgeschneiderten Ausgabemedienträger für Lieder einrichten",
|
||||
"menu": {
|
||||
"device-selector": "Gerät auswählen"
|
||||
},
|
||||
"name": "Benutzerdefiniertes Ausgabegerät",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Wähle das Ausgabegerät, welches benutzt werden soll",
|
||||
"title": "Wähle ein Ausgabegerät"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Startet Lied im pausierten Modus",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "Verbleibende Zeit verstecken",
|
||||
"hide-github-button": "Knopf mit Link zu GitHub ausblenden",
|
||||
"play-on-youtube-music": "Auf YouTube Music abspielen",
|
||||
"set-inactivity-timeout": "Inaktivitätstimeout setzen"
|
||||
"set-inactivity-timeout": "Inaktivitätstimeout setzen",
|
||||
"set-status-display-type": {
|
||||
"label": "Status Text",
|
||||
"submenu": {
|
||||
"artist": "Hört {artist} zu",
|
||||
"title": "Du hörst {song title}",
|
||||
"youtube-music": "Hört YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discords Aktivitätsstatus",
|
||||
"prompt": {
|
||||
@ -523,7 +580,7 @@
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanisierte Songtexte"
|
||||
},
|
||||
"name": "Liedtexte von Genius",
|
||||
"name": "Songtexte von Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Liedtexte für Genius abgerufen"
|
||||
}
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Vorwärts/Zurück Navigationspfeile direkt in die Oberfläche integriert - wie in deinem geliebten Browser",
|
||||
"name": "Navigation"
|
||||
"name": "Navigation",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Zur vorherigen Seite gehen"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Zur nächsten Seite gehen"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Googles Anmelden-Knöpfe und -Links von der Oberfläche entfernen",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Benachrichtigungen"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Leistung durch Aktivieren experimenteller Skripte verbessern",
|
||||
"name": "Leistungs Verbesserung [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Erlaubt die App in den Bild-im-Bild-Modus zu wechseln",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Erlaubt die Videoqualität über einen Knopf auf dem Video",
|
||||
"name": "Videoqualitätsänderer"
|
||||
"name": "Videoqualitätsänderer",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Videoqualität ändern"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Scrobbling-Unterstützung aktivieren (z.B. für last.fm, Listenbrainz)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "ListenBrainz-Benutzer-Token eintragen"
|
||||
},
|
||||
"scrobble-alternative-artist": "Benutze Alternative Künstler",
|
||||
"scrobble-alternative-title": "Nutze alternative Titel",
|
||||
"scrobble-other-media": "Andere Medien scrobbeln"
|
||||
},
|
||||
@ -768,12 +843,20 @@
|
||||
"label": "Den Songtext perfekt synchronisieren",
|
||||
"tooltip": "Auf die Millisekunde genau berechnen, wann die nächste Zeile angezeigt werden soll (Kann Einfluss auf die Leistung haben)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "bevorzugter Anbieter",
|
||||
"none": {
|
||||
"label": "Nichts",
|
||||
"tooltip": "Kein bevorzugter Anbieter"
|
||||
},
|
||||
"tooltip": "Standardanbieter auswählen"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Lateinische Umschrift anzeigen",
|
||||
"tooltip": "Wenn der Liedtext in einer anderen Schrift ist, zeige nach Möglichkeit eine Version in lateinischer Schrift an."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Zeige die Liedtexte, auch wenn sie ungenau sind.",
|
||||
"label": "Songtext anzeigen, auch wenn er ungenau ist",
|
||||
"tooltip": "Die Erweiterung sucht mit anderen Suchparameter nochmals, wenn der Song nicht gefunden wurde.\nEs kann sein, dass das Ergebnis von der zweiten Anfrage nicht genau ist."
|
||||
},
|
||||
"show-time-codes": {
|
||||
@ -788,7 +871,7 @@
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Es kann sein, dass die Synchronization nicht stimmt, da die Songdauer nicht übereinstimmt.",
|
||||
"inexact": "⚠️ - Es ist Möglich, dass der Songtext für diesen Song nicht übereinstimmt.",
|
||||
"inexact": "⚠️ - Der Songtext stimmt möglicherweise nicht überein",
|
||||
"instrumental": "⚠️ - Das ist ein instrumentales Lied"
|
||||
}
|
||||
},
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "Fügt ein TouchBar-Widget für macOS-Benutzer hinzu",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Macht das Player-Fenster transparent",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Hintergrund-Sichtbarkeit",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Typ",
|
||||
"submenu": {
|
||||
"acrylic": "Acrylic",
|
||||
"mica": "Mica",
|
||||
"none": "Nichts",
|
||||
"tabbed": "Tabbed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Transparent Player"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integration mit dem OBS-Plugin Tuna",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Videoumschalter",
|
||||
"templates": {
|
||||
"button": "Lied"
|
||||
"button-song": "Lied",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -8,8 +8,8 @@
|
||||
"load-all": "Φόρτωση όλων των πρόσθετων",
|
||||
"load-failed": "Απέτυχε η φόρτωση του πρόσθετου \"{{pluginName}}\"",
|
||||
"loaded": "Το πρόσθετο \"{{pluginName}}\" φορτώθηκε",
|
||||
"unload-failed": "Απέτυχε η απεγκατάσταση του πρόσθετου \"{{pluginName}}\"",
|
||||
"unloaded": "Το πρόσθετο \"{{pluginName}}\" απεγκαταστάθηκε"
|
||||
"unload-failed": "Απέτυχε η κατάργηση φόρτωσης του πρόσθετου \"{{pluginName}}\"",
|
||||
"unloaded": "Η φόρτωση του πρόσθετου \"{{pluginName}}\" καταργήθηκε"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -21,7 +21,7 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Η φόρτωση ολοκληρώθηκε. Τα DevTools άνοιξαν"
|
||||
"dev-tools": "Ολοκληρώθηκε η φόρτωση. Τα DevTools άνοιξαν"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "Το i18n φορτώθηκε"
|
||||
@ -30,10 +30,10 @@
|
||||
"receive-command": "Λήφθηκε εντολή μέσω πρωτοκόλλου: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνοείται"
|
||||
"css-file-not-found": "Το αρχείο CSS \"{{cssFile}}\" δεν υπάρχει, αγνόηση"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Σφάλμα ανταπόκρισης!\n{{error}}"
|
||||
"details": "Σφάλμα απόκρισης!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Εκκαθάριση μνήμης cache εφαρμογής"
|
||||
@ -59,13 +59,13 @@
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Παραιτηθείτε",
|
||||
"quit": "Τερματισμός",
|
||||
"relaunch": "Επανεκκίνηση",
|
||||
"wait": "Περιμένετε"
|
||||
"wait": "Αναμονή"
|
||||
},
|
||||
"detail": "Λυπούμαστε για την ταλαιπωρία! Παρακαλώ επιλέξτε τι να κάνετε:",
|
||||
"message": "Η εφαρμογή δεν ανταποκρίνεται",
|
||||
"title": "Το παράθυρο δεν ανταποκρίνεται"
|
||||
"message": "Η εφαρμογή δεν αποκρίνεται",
|
||||
"title": "Το παράθυρο δεν αποκρίνεται"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
@ -73,13 +73,13 @@
|
||||
"download": "Λήψη",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από τον σύνδεσμο {{downloadLink}}",
|
||||
"detail": "Μια νέα έκδοση είναι διαθέσιμη και μπορεί να ληφθεί από το {{downloadLink}}",
|
||||
"message": "Μια νέα έκδοση είναι διαθέσιμη",
|
||||
"title": "Διατίθεται ενημέρωση"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Σχετικά",
|
||||
"about": "Πληροφορίες",
|
||||
"navigation": {
|
||||
"label": "Πλοήγηση",
|
||||
"submenu": {
|
||||
@ -117,7 +117,7 @@
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Το μενού θα κρυφτεί στην επόμενη εκκίνηση, χρησιμοποιήστε [Alt] για να το εμφανίσετε (ή το πλήκτρο backtick [`] αν χρησιμοποιείτε το μενού εφαρμογής)",
|
||||
"title": "Η Δυνατότητα Απόκρυψης του Μενού ενεργοποιήθηκε"
|
||||
"title": "Η απόκρυψη μενού ενεργοποιήθηκε"
|
||||
},
|
||||
"label": "Απόκρυψη μενού"
|
||||
},
|
||||
@ -132,14 +132,14 @@
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Συνέχιση τελευταίου τραγουδιού όταν η εφαρμογή ξεκινά",
|
||||
"single-instance-lock": "Κλείδωμα Μοναδικής Εκδοχής",
|
||||
"start-at-login": "Έναρξη κατά την σύνδεση",
|
||||
"single-instance-lock": "Κλείδωμα μοναδικής εκδοχής",
|
||||
"start-at-login": "Έναρξη κατά τη σύνδεση",
|
||||
"starting-page": {
|
||||
"label": "Σελίδα έναρξης",
|
||||
"label": "Αρχική σελίδα",
|
||||
"unset": "Κατάργηση ορισμού"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Δίσκος",
|
||||
"label": "Περιοχή συστήματος",
|
||||
"submenu": {
|
||||
"disabled": "Απενεργοποιημένο",
|
||||
"enabled-and-hide-app": "Ενεργοποιημένο και απόκρυψη της εφαρμογής",
|
||||
@ -148,13 +148,20 @@
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Τροποποιήσεις εμφάνισης",
|
||||
"label": "Οπτικές προσαρμογές",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Προσαρμοσμένος τίτλος παραθύρου",
|
||||
"prompt": {
|
||||
"label": "Εισαγωγή προσαρμοσμένου τίτλου παραθύρου: (κενό για απενεργοποίηση)",
|
||||
"placeholder": "Παράδειγμα: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Προεπιλογή",
|
||||
"force-show": "Επιβολή εμφάνισης",
|
||||
"hide": "Απόκρυψη",
|
||||
"label": "Μου αρέσει"
|
||||
"label": "Κουμπιά Μου αρέσει"
|
||||
},
|
||||
"remove-upgrade-button": "Αφαίρεση κουμπιού αναβάθμισης",
|
||||
"theme": {
|
||||
@ -169,7 +176,7 @@
|
||||
"label": "Θέμα",
|
||||
"submenu": {
|
||||
"import-css-file": "Εισαγωγή προσαρμοσμένου αρχείου CSS",
|
||||
"no-theme": "Κανένα θέμα"
|
||||
"no-theme": "Χωρίς θέμα"
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -201,50 +208,50 @@
|
||||
"restart": "Επανεκκίνηση εφαρμογής",
|
||||
"show": "Εμφάνιση παραθύρου",
|
||||
"tooltip": {
|
||||
"default": "YouTube Μουσική",
|
||||
"with-song-info": "YouTube Μουσική: {{artist}} - {{title}}"
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Εάν παίξει διαφήμιση κάνει σίγαση του ήχου και θέτει την ταχύτητα αναπαραγωγής στο 16x",
|
||||
"name": "Γρήγορη προώθηση διαφημίσεων"
|
||||
"description": "Εάν ξεκινήσει διαφήμιση, ο ήχος απενεργοποιείται και η ταχύτητα αναπαραγωγής ορίζεται σε 16x",
|
||||
"name": "Επιτάχυνση διαφημίσεων"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Αποκλεισμός όλων των διαφημίσεων και tracker",
|
||||
"description": "Αποκλεισμός όλων των διαφημίσεων και της παρακολούθησης από προεπιλογή",
|
||||
"menu": {
|
||||
"blocker": "Μέθοδος αποκλεισμού"
|
||||
"blocker": "Πρόγραμμα αποκλεισμού"
|
||||
},
|
||||
"name": "Μπλοκάρισμα Διαφημίσεων"
|
||||
"name": "Πρόγραμμα αποκλεισμού διαφημίσεων"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Προσθέτει κουμπιά Like/Unlike και Dislike/Undislike που δρουν συνολικά σε όλα τα κομμάτια μιας playlist ή ενός άλμπουμ",
|
||||
"name": "Ενέργειες σε Άλμπουμ"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Εφαρμόζει ένα δυναμικό θέμα και εφέ με βάση τη χρωματική παλέτα του άλμπουμ",
|
||||
"description": "Εφαρμόζει ένα δυναμικό θέμα και οπτικά εφέ βάσει της παλέτας χρωμάτων του άλμπουμ",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Αναλογία μίξης χρωμάτων",
|
||||
"label": "Αναλογία ανάμειξης χρωμάτων",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Θέμα χρώματος άλμπουμ"
|
||||
"name": "Θέμα χρωμάτων άλμπουμ"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Εφαρμόζει ένα εφέ φωτισμού ρίχνοντας απαλά χρώματα από το βίντεο στο φόντο της οθόνης σας",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Ένταση θαμπώματος",
|
||||
"label": "Ποσότητα θολώματος",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixels"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buffer",
|
||||
"label": "Ενδιάμεση μνήμη",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
@ -270,18 +277,18 @@
|
||||
"smoothness-transition": {
|
||||
"label": "Ομαλή μετάβαση",
|
||||
"submenu": {
|
||||
"during": "Σε {{interpolationTime}} δευτερόλεπτα"
|
||||
"during": "Για {{interpolationTime}} δευτερόλεπτα"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Χρήση πλήρους οθόνης"
|
||||
"label": "Σε πλήρη οθόνη"
|
||||
}
|
||||
},
|
||||
"name": "Λειτουργία περιβάλλοντος"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Προσθέτει υποστήριξη μουσικής YouTube για το widget Amuse now playing από την 6K Labs",
|
||||
"name": "Διασκέδαση",
|
||||
"description": "Προσθέτει υποστήριξη YouTube Music στο widget Amuse now playing από την 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Ο διακομιστής Amuse API εκτελείται. GET /query για να λάβετε πληροφορίες για το τραγούδι."
|
||||
}
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Συμπίεση ήχου (μειώνει την ένταση των πιο δυνατών τμημάτων του κύματος και αυξάνει την ένταση των πιο μαλακών τμημάτων)",
|
||||
"name": "Συμπιεστής ήχου"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Υποστήριξη για τη χρήση υπηρεσιών μεσολάβησης αυθεντικοποίησης",
|
||||
"menu": {
|
||||
"disable": "Απενεργοποίηση προσαρμογέα μεσολάβησης",
|
||||
"enable": "Ενεργοποίηση προσαρμογέα μεσολάβησης",
|
||||
"hostname": {
|
||||
"label": "Όνομα οικοδεσπότη"
|
||||
},
|
||||
"port": {
|
||||
"label": "Θύρα"
|
||||
}
|
||||
},
|
||||
"name": "Προσαρμογέας μεσολάβησης Auth",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Εισάγετε το όνομα κεντρικού υπολογιστή για τον τοπικό διακομιστή μεσολάβησης (απαιτείται επανεκκίνηση):",
|
||||
"title": "Όνομα κεντρικού υπολογιστή μεσολάβησης"
|
||||
},
|
||||
"port": {
|
||||
"label": "Εισάγετε τη θύρα για τον τοπικό διακομιστή μεσολάβησης (απαιτεί επανεκκίνηση):",
|
||||
"title": "Θύρα διακομιστή μεσολάβησης"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "θέτει τη γραμμή πλοήγησης διαφανή και θολή",
|
||||
"name": "Θόλωμα γραμμής πλοήγησης"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Ανοίξτε τον επιλογέα λεζάντας"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Λεζάντα άλλαξε σε {{language}}",
|
||||
"caption-disabled": "Λεζάντες απενεργοποιήθηκαν",
|
||||
"no-captions": "Λεζάντες μη διαθέσιμες για αυτό το τραγούδι"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Βέλη πλοήγησης Επόμενο/Πίσω ενσωματωμένα απευθείας στο περιβάλλον εργασίας, όπως στο αγαπημένο σας πρόγραμμα περιήγησης",
|
||||
"name": "Πλοήγηση"
|
||||
"name": "Πλοήγηση",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Μετάβαση στην προηγούμενη σελίδα"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Μετάβαση στην επόμενη σελίδα"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Αφαίρεση των κουμπιών και των συνδέσμων σύνδεσης Google από το περιβάλλον εργασίας",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "Ειδοποιήσεις"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Βελτιώστε την απόδοση ενεργοποιώντας πειραματικές δέσμες ενεργειών",
|
||||
"name": "Βελτίωση της απόδοσης με την ενεργοποίηση επικίνδυνων σεναρίωνΒελτίωση της απόδοσης [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Επιτρέπει την εναλλαγή της εφαρμογής σε λειτουργία εικόνας σε εικόνα",
|
||||
"menu": {
|
||||
@ -664,7 +712,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Επιτρέπει την αλλαγή της ποιότητας βίντεο με ένα κουμπί στην επικάλυψη βίντεο",
|
||||
"name": "Αλλαγή ποιότητας βίντεο"
|
||||
"name": "Αλλαγή ποιότητας βίντεο",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Άνοιγμα ρυθμίσεων ποιότητας αναπαραγωγέα"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Προσθήκη υποστήριξης scrobbling (κ.λπ. last.fm, Listenbrainz)",
|
||||
@ -831,7 +884,8 @@
|
||||
},
|
||||
"name": "Εναλλαγή βίντεο",
|
||||
"templates": {
|
||||
"button": "Τραγούδι"
|
||||
"button-song": "Τραγούδι",
|
||||
"button-video": "Βίντεο"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -156,6 +156,13 @@
|
||||
"hide": "Hide",
|
||||
"label": "Like buttons"
|
||||
},
|
||||
"custom-window-title": {
|
||||
"label": "Custom window title",
|
||||
"prompt": {
|
||||
"label": "Enter custom window title: (leave empty to disable)",
|
||||
"placeholder": "Example: YouTube Music"
|
||||
}
|
||||
},
|
||||
"remove-upgrade-button": "Remove upgrade button",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Apply compression to audio (lowers the volume of the loudest parts of the signal and raises the volume of the softest parts)",
|
||||
"name": "Audio Compressor"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Support for the use of authentication proxy services",
|
||||
"menu": {
|
||||
"disable": "Disable Proxy Adapter",
|
||||
"enable": "Enable Proxy Adapter",
|
||||
"hostname": {
|
||||
"label": "Hostname"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Auth Proxy Adapter",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"title": "Proxy Hostname",
|
||||
"label": "Enter hostname for local proxy server (requires restart):"
|
||||
},
|
||||
"port": {
|
||||
"title": "Proxy Port",
|
||||
"label": "Enter port for local proxy server (requires restart):"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Makes navigation bar transparent and blurry",
|
||||
"name": "Blur Navigation Bar"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Open captions selector"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Caption changed to {{language}}",
|
||||
"caption-disabled": "Captions disabled",
|
||||
"no-captions": "No captions available for this song"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Configure a custom output media device for songs",
|
||||
"menu": {
|
||||
"device-selector": "Select Device"
|
||||
},
|
||||
"name": "Custom Output Device",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Choose the output media device to be used",
|
||||
"title": "Select Output Device"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Makes song start in \"paused\" mode",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "Hide duration left",
|
||||
"hide-github-button": "Hide GitHub link Button",
|
||||
"play-on-youtube-music": "Play on YouTube Music",
|
||||
"set-inactivity-timeout": "Set inactivity timeout"
|
||||
"set-inactivity-timeout": "Set inactivity timeout",
|
||||
"set-status-display-type": {
|
||||
"label": "Status text",
|
||||
"submenu": {
|
||||
"youtube-music": "Listening to YouTube Music",
|
||||
"artist": "Listening to {artist}",
|
||||
"title": "Listening to {song title}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
@ -491,6 +548,18 @@
|
||||
"button": "Download"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Adds an equalizer to the player",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Presets",
|
||||
"list": {
|
||||
"bass-booster": "Bass booster"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Equalizer"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Makes the volume slider exponential so it's easier to select lower volumes.",
|
||||
"name": "Exponential Volume"
|
||||
@ -564,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Next/Back navigation arrows directly integrated in the interface, like in your favorite browser",
|
||||
"name": "Navigation"
|
||||
"name": "Navigation",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Go to previous page"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Go to next page"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Remove Google login buttons and links from the interface",
|
||||
@ -589,7 +666,7 @@
|
||||
"name": "Notifications"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Improve performance by enabling dangerous scripts",
|
||||
"description": "Improve performance by enabling experimental scripts",
|
||||
"name": "Performance improvement [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
@ -656,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Allows changing the video quality with a button on the video overlay",
|
||||
"name": "Video Quality Changer"
|
||||
"name": "Video Quality Changer",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Open player quality changer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Add scrobbling support (etc. last.fm, Listenbrainz)",
|
||||
@ -675,8 +757,9 @@
|
||||
"listenbrainz": {
|
||||
"token": "Enter ListenBrainz user token"
|
||||
},
|
||||
"scrobble-other-media": "Scrobble other media",
|
||||
"scrobble-alternative-title": "Use alternative titles"
|
||||
"scrobble-alternative-title": "Use alternative titles",
|
||||
"scrobble-alternative-artist": "Use alternative artists",
|
||||
"scrobble-other-media": "Scrobble other media"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
"prompt": {
|
||||
@ -730,6 +813,14 @@
|
||||
"not-found": "⚠️ No lyrics found for this song."
|
||||
},
|
||||
"menu": {
|
||||
"preferred-provider": {
|
||||
"label": "Preferred Provider",
|
||||
"tooltip": "Choose the default provider to use",
|
||||
"none": {
|
||||
"label": "None",
|
||||
"tooltip": "No preferred provider"
|
||||
}
|
||||
},
|
||||
"default-text-string": {
|
||||
"label": "Default character between lyrics",
|
||||
"tooltip": "Choose the default character to use for the gap between lyrics"
|
||||
@ -792,6 +883,27 @@
|
||||
"description": "Adds a TouchBar widget for macOS users",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Makes the app window transparent",
|
||||
"name": "Transparent Player",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacity",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Type",
|
||||
"submenu": {
|
||||
"acrylic": "Acrylic",
|
||||
"mica": "Mica",
|
||||
"tabbed": "Tabbed",
|
||||
"none": "None"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integration with OBS's plugin Tuna",
|
||||
"name": "Tuna OBS"
|
||||
@ -823,7 +935,8 @@
|
||||
},
|
||||
"name": "Video Toggle",
|
||||
"templates": {
|
||||
"button": "Song"
|
||||
"button-song": "Song",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
@ -832,18 +945,6 @@
|
||||
"visualizer-type": "Visualizer Type"
|
||||
},
|
||||
"name": "Visualizer"
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Adds an equalizer to the player",
|
||||
"name": "Equalizer",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Presets",
|
||||
"list": {
|
||||
"bass-booster": "Bass booster"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Error al ejecutar el plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} Ejecutó en {{ms}}ms",
|
||||
"initialize-failed": "Error al inicializar el 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"
|
||||
"execute-failed": "Error al ejecutar el complemento {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Complemento {{pluginName}}::{{contextName}} Ejecutó en {{ms}}ms",
|
||||
"initialize-failed": "Error al inicializar el complemento \"{{pluginName}}\"",
|
||||
"load-all": "Cargando todos los complementos",
|
||||
"load-failed": "Error al cargar el complemento \"{{pluginName}}\"",
|
||||
"loaded": "Complementos \"{{pluginName}}\" cargado",
|
||||
"unload-failed": "No se ha podido descargar el complemento \"{{pluginName}}\"",
|
||||
"unloaded": "Complemento \"{{pluginName}}\" descargado"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -45,15 +45,15 @@
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "El menú está oculto, utiliza \"Alt\" para mostrarlo (o \"Escape\" si utilizas el menú integrado en la aplicación)",
|
||||
"message": "Menú Oculto está habilitado",
|
||||
"title": "Menú oculto habilitado"
|
||||
"message": "El \"Menú Oculto\" está habilitado",
|
||||
"title": "\"Menú oculto\" habilitado"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Más tarde",
|
||||
"restart-now": "Reiniciar ahora"
|
||||
},
|
||||
"detail": "El plugin \"{{pluginName}}\" requiere reiniciar para tomar efecto",
|
||||
"detail": "El complemento \"{{pluginName}}\" requiere reiniciar para tomar efecto",
|
||||
"message": "\"{{pluginName}}\" necesita reiniciar",
|
||||
"title": "Se requiere reinicio"
|
||||
},
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Ajustes visuales",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Título de ventana personalizado",
|
||||
"prompt": {
|
||||
"label": "Ingresa un título de ventana personalizado: (déjalo vacío para desactivar)",
|
||||
"placeholder": "Ejemplo: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Predeterminado",
|
||||
"force-show": "Forzar la visualización",
|
||||
@ -178,7 +185,7 @@
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Habilitado",
|
||||
"label": "Plugins",
|
||||
"label": "Complementos",
|
||||
"new": "NUEVO"
|
||||
},
|
||||
"view": {
|
||||
@ -333,6 +340,30 @@
|
||||
"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"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Soporte para el uso de servicios de proxy de autenticación",
|
||||
"menu": {
|
||||
"disable": "Deshabilitar el adaptador proxy",
|
||||
"enable": "Habilitar el adaptador proxy",
|
||||
"hostname": {
|
||||
"label": "Nombre de host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Puerto"
|
||||
}
|
||||
},
|
||||
"name": "Adaptador de proxy de autenticación",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Ingrese el nombre de host del servidor proxy local (requiere reinicio):",
|
||||
"title": "Nombre de host del proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ingrese el puerto para el servidor de proxy local (requiere reinicio):",
|
||||
"title": "Puerto de proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Hace que la barra de navegación se vea transparente y borrosa",
|
||||
"name": "Desenfocar barra de navegación"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Abrir el selector de subtítulos"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Subtítulos cambiados a {{language}}",
|
||||
"caption-disabled": "Subtítulos desactivados",
|
||||
"no-captions": "Sin subtítulos para ésta canción"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Configura un dispositivo de salida de audio personalizado para las canciones",
|
||||
"menu": {
|
||||
"device-selector": "Seleccionar un dispositivo"
|
||||
},
|
||||
"name": "Dispositivo de audio personalizado",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Escoge el dispositivo de salida de audio que se va a usar",
|
||||
"title": "Seleccionar un dispositivo de audio"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Hace que la canción comience en modo \"pausado\"",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"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"
|
||||
"set-inactivity-timeout": "Establecer tiempo de inactividad",
|
||||
"set-status-display-type": {
|
||||
"label": "Texto de estado",
|
||||
"submenu": {
|
||||
"artist": "Escuchando a {artist}",
|
||||
"title": "Escuchando {song title}",
|
||||
"youtube-music": "Escuchando YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
@ -433,7 +490,7 @@
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} canciones)",
|
||||
"message": "Descargando Playlist {{playlistTitle}}",
|
||||
"message": "Descargando lista de reproducción {{playlistTitle}}",
|
||||
"title": "Descarga iniciada"
|
||||
}
|
||||
},
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Flechas de navegación Siguiente/Atrás directamente integradas en la interfaz, como en tu navegador favorito",
|
||||
"name": "Navegación"
|
||||
"name": "Navegación",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Volver a la página anterior"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Ir a la siguiente página"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Eliminar los botones y enlaces de inicio de sesión de Google de la interfaz",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Notificaciones"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Mejore el rendimiento habilitando scripts experimentales",
|
||||
"name": "Mejora del rendimiento [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permite cambiar la aplicación al modo picture-in-picture",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"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"
|
||||
"name": "Ajustador de calidad de vídeo",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Abrir selector de calidad del reproductor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Añadir soporte para scrobbling (last.fm, Listenbrainz, etc.)",
|
||||
@ -683,8 +757,9 @@
|
||||
"listenbrainz": {
|
||||
"token": "Introduzca el token de usuario de ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Usar artistas alternativos",
|
||||
"scrobble-alternative-title": "Usar títulos alternativos",
|
||||
"scrobble-other-media": "Scrobble en otros medios"
|
||||
"scrobble-other-media": "Hacer Scrobble sobre otros medios"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
"prompt": {
|
||||
@ -734,8 +809,8 @@
|
||||
"synced-lyrics": {
|
||||
"description": "Proporciona letras de canciones sincronizadas, utilizando proveedores como LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️\tHa ocurrido un error al obtener la letra.\n\tPor favor, inténtalo de nuevo más tarde.",
|
||||
"not-found": "⚠️ No se ha encontrado ninguna letra para esta canción."
|
||||
"fetch": "⚠️\tSe produjo un error al obtener la letra.\n\tPor favor, inténtelo de nuevo más tarde.",
|
||||
"not-found": "⚠️ No se han encontrado letras para esta canción."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "Haz que la letra esté perfectamente sincronizada",
|
||||
"tooltip": "Calcular al milisegundo la visualización de la siguiente línea (puede tener un pequeño impacto en el rendimiento)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Proveedor preferido",
|
||||
"none": {
|
||||
"label": "Ninguno",
|
||||
"tooltip": "Ningún proveedor preferido"
|
||||
},
|
||||
"tooltip": "Elige el proveedor predeterminado que deseas usar"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanizar letras",
|
||||
"tooltip": "Si la letra está en un idioma diferente, intenta mostrar una versión en latín."
|
||||
@ -789,7 +872,7 @@
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - La letra puede estar desincronizada debido a un desajuste en la duración.",
|
||||
"inexact": "⚠️ - La letra de esta canción puede no ser exacta",
|
||||
"instrumental": "⚠️ - Se trata de una canción instrumental"
|
||||
"instrumental": "⚠️ - Esta es una canción instrumental"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
@ -800,13 +883,34 @@
|
||||
"description": "Añade un widget TouchBar para los usuarios de macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Hace que la ventana de la aplicación sea transparente",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacidad",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tipo",
|
||||
"submenu": {
|
||||
"acrylic": "Acrílico",
|
||||
"mica": "Mica",
|
||||
"none": "Ninguno",
|
||||
"tabbed": "Con pestañas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Reproductor transparente"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integración con el plugin Tuna de OBS",
|
||||
"description": "Integración con el complemento Tuna de OBS",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Evita que el reproductor aparezca al reproducir una canción",
|
||||
"name": "Jugador discreto"
|
||||
"name": "Reproductor discreto"
|
||||
},
|
||||
"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",
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Alternador de vídeo",
|
||||
"templates": {
|
||||
"button": "Canción"
|
||||
"button-song": "Canción",
|
||||
"button-video": "Vídeo"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -65,10 +65,12 @@
|
||||
"ok": "Sobib"
|
||||
},
|
||||
"detail": "Saadaval on uus versioon, ning seda saad alla laadida siit {{downloadLink}}",
|
||||
"message": "Uus versioon on saadaval"
|
||||
"message": "Uus versioon on saadaval",
|
||||
"title": "Rakenduse uuendus on saadaval"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Rakenduse teave",
|
||||
"navigation": {
|
||||
"label": "Liikumine",
|
||||
"submenu": {
|
||||
@ -89,7 +91,18 @@
|
||||
"disable-hardware-acceleration": "Lülita raudvaraline kiirendamine välja",
|
||||
"edit-config-json": "Muuda config.json faili"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Keele muutmine jõustub peale uuesti käivitamist",
|
||||
"title": "Keel on muutunud"
|
||||
},
|
||||
"label": "Keel",
|
||||
"submenu": {
|
||||
"to-help-translate": "Soovid aidata tõlkimisel? Klõpsi siin"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Rakenduse käivitamisel jätka viimatiesitatud loo esitamist"
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
@ -98,6 +111,7 @@
|
||||
},
|
||||
"view": {
|
||||
"submenu": {
|
||||
"toggle-fullscreen": "Lülita täisekraanivaade sisse/välja",
|
||||
"zoom-in": "Suumi sisse",
|
||||
"zoom-out": "Suumi välja"
|
||||
}
|
||||
@ -140,6 +154,12 @@
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pikslit"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Suurus",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
7
src/i18n/resources/eu.json
Normal file
7
src/i18n/resources/eu.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"language": {
|
||||
"code": "eu",
|
||||
"local-name": "Euskara",
|
||||
"name": "Basque"
|
||||
}
|
||||
}
|
||||
@ -333,6 +333,30 @@
|
||||
"description": "اعمال فشردهسازی به صدا (کاهش حجم بلندترین بخشهای سیگنال و افزایش حجم بخشهای نرمتر)",
|
||||
"name": "فشردهساز صدا"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "پشتیبانی برای استفاده از سرویسهای پروکسی احراز هویت",
|
||||
"menu": {
|
||||
"disable": "غیرفعال کردن آداپتور پروکسی",
|
||||
"enable": "فعال کردن آداپتور پروکسی",
|
||||
"hostname": {
|
||||
"label": "نام میزبان"
|
||||
},
|
||||
"port": {
|
||||
"label": "پورت"
|
||||
}
|
||||
},
|
||||
"name": "آداپتور پروکسی احراز هویت",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "نام میزبان را برای سرور پروکسی محلی وارد کنید (نیاز به راه اندازی مجدد دارد):",
|
||||
"title": "پروکسی نام میزبان"
|
||||
},
|
||||
"port": {
|
||||
"label": "پورت مربوط به پروکسی سرور محلی را وارد کنید(نیاز به راه اندازی مجدد دارد):",
|
||||
"title": "پورت پروکسی"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "شفاف و محو کردن نوار کنترل",
|
||||
"name": "محو کردن نوار کنترل"
|
||||
@ -357,6 +381,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "باز کردن انتخابکننده زیرنویس"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "زیرنویس تغییر کرد به {{language}}",
|
||||
"caption-disabled": "زیرنویس غیرفعال شده",
|
||||
"no-captions": "برای این آهنگ زیرنویسی موجود نیست"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +605,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "بعدی/قبلی به طور مستقیم در رابط یکپارچه شدهاند، مانند مرورگر مورد علاقه شما",
|
||||
"name": "کنترل های رابط"
|
||||
"name": "کنترل های رابط",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "برو به صفحه قبل"
|
||||
},
|
||||
"forward": {
|
||||
"title": "برو به صفحه بعد"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "حذف دکمهها و لینکهای ورود به گوگل از رابط کاربری",
|
||||
@ -600,6 +637,10 @@
|
||||
},
|
||||
"name": "اعلانها"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "بهبود عملکرد با فعال کردن اسکریپتهای آزمایشی",
|
||||
"name": "بهبود عملکرد [بتا]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "اجازه میدهد تا برنامه به حالت تصویر در تصویر تغییر کند",
|
||||
"menu": {
|
||||
@ -664,7 +705,12 @@
|
||||
}
|
||||
},
|
||||
"description": "امکان تغییر کیفیت ویدیو با استفاده از دکمه در رابط پخش ویدیو",
|
||||
"name": "تغییر دهنده کیفیت ویدیو"
|
||||
"name": "تغییر دهنده کیفیت ویدیو",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "باز کردن تغییر دهنده کیفیت پخش کننده"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "اضافه کردن پشتیبانی از اسکرابلینگ (etc. last.fm, Listenbrainz)",
|
||||
@ -831,7 +877,8 @@
|
||||
},
|
||||
"name": "ویدیو به آهنگ",
|
||||
"templates": {
|
||||
"button": "ترانه"
|
||||
"button-song": "ترانه",
|
||||
"button-video": "ویدیو"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Visuaalisia tehosteita",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Mukautettu ikkunan otsikko",
|
||||
"prompt": {
|
||||
"label": "Syötä mukautettu ikkunan otsikko: (jätä tyhjäksi poistaaksesi päältä)",
|
||||
"placeholder": "Esimerkki: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Vakio",
|
||||
"force-show": "Pakota näyttämään",
|
||||
@ -280,7 +287,11 @@
|
||||
"name": "Tunnelmallinen Tila"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Lisää YouTube Music tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs"
|
||||
"description": "Lisää YouTube Music tuen Amusen nyt soitetaan -widgetille, kehittäjänä 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Amuse API-palvelin on päällä. Käytä GET /query-rajapintaa saadaksesi kappaleen tiedot."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Lisää API-palvelimen hallitsemaan soitinta",
|
||||
@ -296,19 +307,31 @@
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Valtuutus-strategia",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Valtuuta ensimmäisellä kyselyllä"
|
||||
},
|
||||
"none": {
|
||||
"label": "Ei valtuuksia"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Isäntänimi"
|
||||
},
|
||||
"port": {
|
||||
"label": "Portti"
|
||||
}
|
||||
},
|
||||
"name": "API Serveri [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Syötä isäntänimi (esimerkiksi 0.0.0.0) API-palvelimelle:",
|
||||
"title": "Isäntänimi"
|
||||
},
|
||||
"port": {
|
||||
"label": "Syötä API-palvelimen portti:",
|
||||
"title": "Portti"
|
||||
}
|
||||
}
|
||||
@ -317,6 +340,30 @@
|
||||
"description": "Lisää äänen kompressointia (hiljentää voimakkaimpien äänien voimakkuutta ja tehostaa pehmeämpien äänien voimakkuutta)",
|
||||
"name": "Äänen Kompressoija"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Tukee todennusvälipalvelinten käyttöä",
|
||||
"menu": {
|
||||
"disable": "Poista välipalvelimen adapteri pois käytöstä",
|
||||
"enable": "Aseta välipalvelimen adapteri käyttöön",
|
||||
"hostname": {
|
||||
"label": "Isäntänimi"
|
||||
},
|
||||
"port": {
|
||||
"label": "Portti"
|
||||
}
|
||||
},
|
||||
"name": "Todennusvälipalvelinadapteri",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Syötä paikallisen välipalvelimen isäntänimi (vaatii uudelleenkäynnistyksen):",
|
||||
"title": "Välipalvelimen isäntänimi"
|
||||
},
|
||||
"port": {
|
||||
"label": "Syötä paikallisen välipalvelimen portti (vaatii uudelleenkäynnistyksen):",
|
||||
"title": "Välipalvelimen portti"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Tekee siirtymäpalkista läpikuultavan ja sumean",
|
||||
"name": "Sumenna Siirtymäpalkki"
|
||||
@ -341,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Avaa tekstitysten valitsin"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Tekstitys vaihdettu kieleksi {{language}}",
|
||||
"caption-disabled": "Tekstitykset pois päältä",
|
||||
"no-captions": "Tekstityksiä ei ole saatavilla tälle kappaleelle"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -371,6 +423,9 @@
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Kappaleet alkavat \"pysäytetty\" tilassa",
|
||||
"menu": {
|
||||
"apply-once": "Käytetään vain käynnistäessä"
|
||||
},
|
||||
"name": "Poista automaattinen toisto käytöstä"
|
||||
},
|
||||
"discord": {
|
||||
@ -446,12 +501,18 @@
|
||||
"menu": {
|
||||
"choose-download-folder": "Valitse latauskansio",
|
||||
"download-finish-settings": {
|
||||
"label": "Lataa toiston päätyttyä",
|
||||
"prompt": {
|
||||
"last-seconds": "Viimeiset x sekuntia"
|
||||
"last-percent": "x prosentin jälkeen",
|
||||
"last-seconds": "Viimeiset x sekuntia",
|
||||
"title": "Määritä milloin ladata"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Edistynyt",
|
||||
"enabled": "Päällä",
|
||||
"percent": "Prosentti"
|
||||
"mode": "Aikatila",
|
||||
"percent": "Prosentti",
|
||||
"seconds": "Sekuntia"
|
||||
}
|
||||
},
|
||||
"download-playlist": "Lataa soittolista",
|
||||
@ -466,6 +527,18 @@
|
||||
"button": "Lataa"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Lisää taajuuskorjaimen toistimeen",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Pohjat",
|
||||
"list": {
|
||||
"bass-booster": "Bassonlisääjä"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Taajuuskorjain"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Tekee äänenvoimakkuuden säätimestä eksponentiaalisen, jotta matalampien äänenvoimakkuuksien valinta on helpompaa.",
|
||||
"name": "Eksponentiaalinen Äänenvoimakkuus"
|
||||
@ -539,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Eteen- ja taaksepäin vievät nuolet suoraan integroituna käyttöliittymään. Juuri niin kuin lempiselaimessasi",
|
||||
"name": "Siirtyminen"
|
||||
"name": "Siirtyminen",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Palaa edelliselle sivulle"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Siirry seuraavalle sivulle"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Poista Googlen kirjautumispainikkeet ja linkit käyttöliittymästä",
|
||||
@ -558,10 +639,15 @@
|
||||
}
|
||||
},
|
||||
"priority": "Ilmoitusten tärkeys",
|
||||
"toast-style": "Ponnahdusilmoitusten tyyli",
|
||||
"unpause-notification": "Näytä ilmoitus toistamisen yhteydessä"
|
||||
},
|
||||
"name": "Ilmoitukset"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Paranna suorituskykyä käyttämällä kokeellisia skriptejä",
|
||||
"name": "Suorituskykyparannus [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Sallii sovelluksen vaihtamisen \"kuva kuvassa\" tilaan",
|
||||
"menu": {
|
||||
@ -595,6 +681,7 @@
|
||||
"precise-volume": {
|
||||
"description": "Säädä äänenvoimakkuutta tarkasti hiiren rullaa tai pikanäppäimiä käyttäen. Kustomoidulla käyttöliittymällä ja säädettävällä äänenvoimakkuuden porrastuksella",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Paikallinen nuolinäppäinohjaus",
|
||||
"custom-volume-steps": "Aseta mukautettu äänenvoimakkuuden porrastus",
|
||||
"global-shortcuts": "Yleiset pikanäppäimet"
|
||||
},
|
||||
@ -605,7 +692,12 @@
|
||||
"decrease": "Vähennä äänenvoimakkuutta",
|
||||
"increase": "Lisää äänenvoimakkuutta"
|
||||
},
|
||||
"label": "Valitse yleiset äänenvoimakkuuden pikanäppäimet:"
|
||||
"label": "Valitse yleiset äänenvoimakkuuden pikanäppäimet:",
|
||||
"title": "Globaalit äänenvoimakkuusnäppäimet"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Valitse äänenvoimakkuuden suurennus-/pienennysaskeleet",
|
||||
"title": "Äänenvoimakkuusaskeleet"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -613,18 +705,52 @@
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Nykyinen laatu: {{quality}}"
|
||||
"detail": "Nykyinen laatu: {{quality}}",
|
||||
"message": "Valitse videon laatu:",
|
||||
"title": "Valitse videon laatu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Salli videon laadun muuttaminen videon päällä näkyvällä painikkeella",
|
||||
"name": "Videonlaadunmuuttaja",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Avaa toistimen laadun muuttaja"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Lisää jakamistuki (esim. last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Last.fm-varmennus epäonnistui\nPiilota ponnahdusikkuna kunnes käynnistät ohjelman uudelleen.",
|
||||
"title": "Todennus epäonnistui"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Last.fm API:n asetukset"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "Syötä ListenBrainz-käyttötunnus (token)"
|
||||
},
|
||||
"scrobble-alternative-title": "Käytä vaihtoehtoisia otsikoita",
|
||||
"scrobble-other-media": "Jaa muuta mediaa"
|
||||
},
|
||||
"name": "Jakaja",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm:n API-avain",
|
||||
"api-secret": "Last.fm:n API-salaisuus"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "Syötä ListenBrainz käyttötunnuksesi (token):",
|
||||
"title": "ListenBrainz-käyttötunnus"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Mga Biswal na Tweak",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Custom na window title",
|
||||
"prompt": {
|
||||
"label": "I-enter ang custom na window tile: (iwanang blanko para ma-disable)",
|
||||
"placeholder": "Halimbawa: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Default",
|
||||
"force-show": "Pilitang ipakita",
|
||||
@ -378,6 +385,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "I-configure ang custom na output media device para sa mga kanta",
|
||||
"menu": {
|
||||
"device-selector": "Pumili ng Device"
|
||||
},
|
||||
"name": "Custom na Output Device",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Pumili ng output media device na gagamitin",
|
||||
"title": "Pumili ng Output Device"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Gawing simulan ang kanta sa \"naka-pause\" na mode",
|
||||
"menu": {
|
||||
@ -401,7 +421,14 @@
|
||||
"hide-duration-left": "Itago ang natitirang oras",
|
||||
"hide-github-button": "Itago ang button na GitHub link",
|
||||
"play-on-youtube-music": "Patugtugin sa YouTube Music",
|
||||
"set-inactivity-timeout": "I-set ang inactivity timeout"
|
||||
"set-inactivity-timeout": "I-set ang inactivity timeout",
|
||||
"set-status-display-type": {
|
||||
"submenu": {
|
||||
"artist": "Nakikinig sa {artist}",
|
||||
"title": "Nakikinig sa {song title}",
|
||||
"youtube-music": "Kumikinig sa YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
@ -571,6 +598,10 @@
|
||||
},
|
||||
"name": "Mga Abiso"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Pagbutihin ang performance sa pamamagitan ng pagpapagana ng mga mapanganib na script",
|
||||
"name": "Pagpapabuti ng performance [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Payagan ang pag-palit ng app sa picture-in-picture mode",
|
||||
"menu": {
|
||||
@ -645,6 +676,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Ilagay ang user token ng ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Gumamit ng mga alternatibong artist",
|
||||
"scrobble-alternative-title": "Gumamit ng alternatibong mga title",
|
||||
"scrobble-other-media": "Mag-Scrobble ng ibang media"
|
||||
},
|
||||
@ -724,6 +756,14 @@
|
||||
"label": "Gawing perpektong naka-sync ang lyrics",
|
||||
"tooltip": "Kalkulahin sa millisecond ang pagpapakita ng susunod na linya (maaaring magkaroon ng maliit na epekto sa performance)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Napiling Provider",
|
||||
"none": {
|
||||
"label": "Wala",
|
||||
"tooltip": "Walang napiling provider"
|
||||
},
|
||||
"tooltip": "Pumili ng default na provider para gagamitin"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "I-romanize ang lyrics",
|
||||
"tooltip": "Kung ang lyrics ay nasa ibang wika, subukang magpakita ng latin na bersyon."
|
||||
@ -754,6 +794,19 @@
|
||||
"touchbar": {
|
||||
"description": "Idaragdag ang TouchBar na widget para sa mga user ng macOS"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Gawing transparent ang app window",
|
||||
"menu": {
|
||||
"type": {
|
||||
"label": "Uri",
|
||||
"submenu": {
|
||||
"none": "Wala",
|
||||
"tabbed": "Naka-tab"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Transparent na Player"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integrasyon kasama ang Tuna na OBS plugin"
|
||||
},
|
||||
@ -780,7 +833,7 @@
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"button": "Kanta"
|
||||
"button-song": "Kanta"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
"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-all": "Chargement de tous les plugins",
|
||||
"load-failed": "Échec du chargement du plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" chargé",
|
||||
"unload-failed": "Échec du déchargement du plugin \"{{pluginName}}\"",
|
||||
@ -27,7 +27,7 @@
|
||||
"loaded": "i18n chargé"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Received command over protocol : \"{{command}}\""
|
||||
"receive-command": "Received command over protocol : \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Le fichier de CSS \"{{cssFile}}\" n'existe pas, ignorer"
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Ajustements visuels",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Titre de fenêtre personnalisé",
|
||||
"prompt": {
|
||||
"label": "Entrés un titre de fenêtre : (Laissé vide pour déactiver)",
|
||||
"placeholder": "Exemple : YouTube Musique"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Par défaut",
|
||||
"force-show": "Forcer à apparaître",
|
||||
@ -280,7 +287,7 @@
|
||||
"name": "Mode ambiant"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Ajoute la prise en charge de YouTube Music pour le widget de lecture en cours Amuse par 6K Labs",
|
||||
"description": "Ajout de la prise en charge de YouTube Music pour le widget Amuse now playing de 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Le serveur API Amuse est en cours d'exécution. Envoyez une requête GET /query pour obtenir des informations sur la chanson."
|
||||
@ -320,11 +327,11 @@
|
||||
"name": "Serveur API [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Entrer le nom de l'hôte (par exemple 0.0.0.0) pour le serveur API:",
|
||||
"label": "Entrer le nom de l'hôte (par exemple : 0.0.0.0) pour le serveur API :",
|
||||
"title": "Nom d'hôte"
|
||||
},
|
||||
"port": {
|
||||
"label": "Entrez le port du serveur de l'API:",
|
||||
"label": "Entrez le port du serveur de l'API :",
|
||||
"title": "Port"
|
||||
}
|
||||
}
|
||||
@ -333,6 +340,30 @@
|
||||
"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"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Prise en charge de l'utilisation des services de proxy d'authentification",
|
||||
"menu": {
|
||||
"disable": "Désactiver l'Adaptateur Proxy",
|
||||
"enable": "Activer l'Adaptateur Proxy",
|
||||
"hostname": {
|
||||
"label": "Nom d'hôte"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Adaptateur de Proxy d'Authentification",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Saisir le nom d'hôte pour le serveur proxy local (nécessite un redémarrage) :",
|
||||
"title": "Nom d'hôte du proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Saisir le port pour le serveur proxy local (nécessite un redémarrage) :",
|
||||
"title": "Port du proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Rend la barre de navigation transparente et floue",
|
||||
"name": "Barre de navigation floue"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Ouvrir le sélecteur de sous-titres"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Sous-titres changés en {{language}}",
|
||||
"caption-disabled": "Sous-titres désactivés",
|
||||
"no-captions": "Aucun sous-titre disponible pour cette chanson"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Configurer un périphérique de sortie personnalisé pour les morceaux",
|
||||
"menu": {
|
||||
"device-selector": "Sélectionner un appareil"
|
||||
},
|
||||
"name": "Périphérique de sortie personnalisé",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Choisissez le périphérique de sortie à utiliser",
|
||||
"title": "Sélectionner le périphérique de sortie"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Fait démarrer la chanson en mode \"pause\"",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"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é"
|
||||
"set-inactivity-timeout": "Définir le délai d'inactivité",
|
||||
"set-status-display-type": {
|
||||
"label": "Texte d'état",
|
||||
"submenu": {
|
||||
"artist": "Écoute {artiste}",
|
||||
"title": "Écoute {titre de la chanson}",
|
||||
"youtube-music": "Écoute YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Flèches de navigation Suivant/Retour directement intégrées dans l'interface, comme dans votre navigateur préféré",
|
||||
"name": "Navigation"
|
||||
"name": "Navigation",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Revenir à la page précédente"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Aller à la page suivante"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Supprimer les boutons et liens de connexion Google de l'interface",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Notifications"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Améliorer les performances en activant les scripts expérimentaux",
|
||||
"name": "Amélioration des performances [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permet de basculer l’application en mode image dans image",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Permet de changer la qualité vidéo avec un bouton sur la vidéo",
|
||||
"name": "Changeur de qualité vidéo"
|
||||
"name": "Changeur de qualité vidéo",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Ouvrir le sélecteur de qualité du lecteur"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Ajouter le support de scrobbling (ex. last.fm, Listenbrainz)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Entrer le token utilisateur de ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Utilisez d'autres artistes",
|
||||
"scrobble-alternative-title": "Utiliser des titres alternatifs",
|
||||
"scrobble-other-media": "Scrobbler d'autres médias"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "Rend les paroles parfaitement synchronisées",
|
||||
"tooltip": "Calcul à la milliseconde près l'affichage de la ligne suivante (peut avoir un faible impact sur les performances)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Fournisseur privilégié",
|
||||
"none": {
|
||||
"label": "Aucun",
|
||||
"tooltip": "Aucun fournisseur privilégié"
|
||||
},
|
||||
"tooltip": "Choisissez le fournisseur par défaut à utiliser"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romaniser les paroles",
|
||||
"tooltip": "Si les paroles sont dans une autre langue, essayez de les afficher dans une version latine."
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "Ajoute un widget TouchBar pour les utilisateurs de macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Rend la fenêtre de l'application transparente",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacité",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Type",
|
||||
"submenu": {
|
||||
"acrylic": "Acrylique",
|
||||
"mica": "Mica",
|
||||
"none": "Aucun",
|
||||
"tabbed": "À onglets"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Lecteur transparent"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Intégration avec le plugin OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Basculer la vidéo",
|
||||
"templates": {
|
||||
"button": "Musique"
|
||||
"button-song": "Musique",
|
||||
"button-video": "Vidéo"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
60
src/i18n/resources/gl.json
Normal file
60
src/i18n/resources/gl.json
Normal file
@ -0,0 +1,60 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Error ao executar o plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "O plugin {{pluginName}}::{{contextName}} foi executado a {{ms}}milisegundos",
|
||||
"initialize-failed": "Erro ao iniciar o plugin \"{{pluginName}}\"",
|
||||
"load-all": "Cargando todos os plugins",
|
||||
"load-failed": "Erro ao cargar o plugin \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" cargado",
|
||||
"unload-failed": "Erro descargando o plugin {{pluginName}}",
|
||||
"unloaded": "Plugin {{pluginName}} decargado"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "gl",
|
||||
"local-name": "Galego",
|
||||
"name": "Galego"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Carga completada. DevTools aberto"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n cargado"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Recibido comando sobre protocolo \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "O arquivo CSS \"{{cssFile}}\" non existe, ignorando"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Error irresponsivo!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Limpando a caché da app"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "A ventana tentou de renderizarse fora da pantalla, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "O menú está agochado, use 'Alt' para mostralo (ou 'Escape' se usa o menú dentro da app)",
|
||||
"message": "Esconder Menú está deshabilitado",
|
||||
"title": "Esconder Menú Habilitado"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Despois",
|
||||
"restart-now": "Reiniciar Agora"
|
||||
},
|
||||
"detail": "O plugin \"{{pluginName}}\" precisa dun reinicio para tomar efecto"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -182,10 +182,10 @@
|
||||
"new": "חדש"
|
||||
},
|
||||
"view": {
|
||||
"label": "מראה",
|
||||
"label": "צפה",
|
||||
"submenu": {
|
||||
"force-reload": "התחל מחדש בכוח",
|
||||
"reload": "טען מחדש",
|
||||
"reload": "רענון",
|
||||
"reset-zoom": "גודל אמיתי",
|
||||
"toggle-fullscreen": "מסך מלא",
|
||||
"zoom-in": "התקרב",
|
||||
@ -226,6 +226,7 @@
|
||||
"description": "מחיל נושא דינמי ואפקטים חזותיים המבוססים על לוח הצבעים של האלבום",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "יחס ערבוב צבעים",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
@ -266,6 +267,7 @@
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "מעבר חלק",
|
||||
"submenu": {
|
||||
"during": "במהלך {{interpolationTime}} שניות"
|
||||
}
|
||||
@ -277,10 +279,145 @@
|
||||
"name": "מצב אווירה"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "מוסיף תמיכה ב-YouTube Music עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs"
|
||||
"description": "מוסיף תמיכה ב-YouTube Music עבור הווידג'ט של Amuse המתנגן כעת על ידי 6K Labs",
|
||||
"name": "משעשע",
|
||||
"response": {
|
||||
"query": "שרת ה-API של Amuse פועל. קבל מידע על השיר באמצעות GET /query."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "הוסף כתובת שירות כדי לשלוט בנגן",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "מותר",
|
||||
"deny": "לדחות"
|
||||
},
|
||||
"message": "אפשר ל {{ID}}{{origin}} לגשת לשירות?",
|
||||
"title": "בקשת לאימות השירות"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "שיטת אימות",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "לאמת בבקשה הראשונה"
|
||||
},
|
||||
"none": {
|
||||
"label": "ללא אימות"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "שם שרת אחסון"
|
||||
},
|
||||
"port": {
|
||||
"label": "פורט"
|
||||
}
|
||||
},
|
||||
"name": "כתובת שירות (בטא)",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "הכנסת את כתובת IP של השרת (לדוגמה 0.0.0.0) לשירות:",
|
||||
"title": "שם שרת אחסון"
|
||||
},
|
||||
"port": {
|
||||
"label": "הכנסת מספר פורט של השירות:",
|
||||
"title": "פורט"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "החל דחיסה על אודיו (מורידה את עוצמת הקול של החלקים הרועשים ביותר של האות ומעלה את עוצמת הקול של החלקים החלשים ביותר)",
|
||||
"name": "דוחס ומצפין קול"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "תמיכה בשימוש בשירותי פרוקסי אימות",
|
||||
"menu": {
|
||||
"disable": "השבת מתאם פרוקסי",
|
||||
"enable": "הפעל מתאם פרוקסי",
|
||||
"hostname": {
|
||||
"label": "שם שרת מאחסן"
|
||||
},
|
||||
"port": {
|
||||
"label": "פורט"
|
||||
}
|
||||
},
|
||||
"name": "מתאם זיהוי פרוקסי",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "הזן שם מארח עבור שרת הפרוקסי המקומי (דורש הפעלה מחדש):",
|
||||
"title": "שם פרוקסי של שרת מאחסן"
|
||||
},
|
||||
"port": {
|
||||
"label": "הזן פורט עבור שרת הפרוקסי המקומי (דורש הפעלה מחדש):",
|
||||
"title": "יציאת פרוקסי"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "הפוך את סרגל הניווט לשקוף ומטושטש",
|
||||
"name": "טשטש את סרגל הניווט"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "עקוף את אימות גיל המשתמש של יוטיוב",
|
||||
"name": "עקוף את ההחמרות של הגיל"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "בורר כתוביות עבור רצועות אודיו של YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "בחר אוטומטי את הכתובית האחרונה שנבחרה",
|
||||
"disable-captions": "ברירת מחד ללא כתוביות"
|
||||
},
|
||||
"name": "בוחר כתוביות",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "שפת כתוביות נוכחית: {{language}}",
|
||||
"none": "ללא",
|
||||
"title": "בחר שפת כתוביות"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "פתח בחירת כתוביות"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "הגדר תמיד את סרגל הצד למצב קומפקטי",
|
||||
"name": "סרגל צד קומפקטי"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "עמעם בין השירים",
|
||||
"menu": {
|
||||
"advanced": "מתקדם"
|
||||
},
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-scaling": {
|
||||
"linear": "לינארי",
|
||||
"logarithmic": "לוגריתמי"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"menu": {
|
||||
"apply-once": "חל רק בהפעלה"
|
||||
},
|
||||
"name": "השבתת הפעלה אוטומטית"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"connected": "התחבר לדיסקורד",
|
||||
"disconnected": "התנתק לדיסקורד"
|
||||
},
|
||||
"menu": {
|
||||
"auto-reconnect": "חיבור מחדש אוטומטי",
|
||||
"clear-activity": "נקה פעילות",
|
||||
"connected": "מחובר",
|
||||
"disconnected": "מנותק",
|
||||
"hide-github-button": "הסתר את לחצן הקישור של GitHub",
|
||||
"play-on-youtube-music": "הפעל ביוטיוב מיוזיק",
|
||||
"set-inactivity-timeout": "הגדר פסק זמן לחוסר פעילות"
|
||||
@ -290,7 +427,18 @@
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "אוקיי"
|
||||
},
|
||||
"message": "אה ! מתנצלים, הורדה נכשלה",
|
||||
"title": "שגיאה בהורדה!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "אוקיי"
|
||||
},
|
||||
"message": "מוריד פלייליסט {{playlistTitle}}",
|
||||
"title": "הורדה התחילה"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "दृश्य परिवर्तन",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "कस्टम विंडो टाइटल",
|
||||
"prompt": {
|
||||
"label": "कस्टम विंडो टाइटल डालें: (डिसएबल करने के लिए खाली छोड़ें)",
|
||||
"placeholder": "उदाहरण: यूट्यूब संगीत"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "डिफॉल्ट",
|
||||
"force-show": "बल पूर्वक दिखाएं",
|
||||
@ -256,7 +263,7 @@
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "गुणवत्ता",
|
||||
"label": "स्पष्टता",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} पिक्सल"
|
||||
}
|
||||
@ -287,15 +294,496 @@
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "प्लेयर को नियंत्रित करने के लिए एक API सर्वर जोड़ता है",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "अनुमति दें",
|
||||
"deny": "मना करना"
|
||||
},
|
||||
"message": "{{ID}} ({{origin}}) को ए.पि.ऐ. ऐकसेस करने की अनुमति दे?",
|
||||
"title": "एपीआई अनुमोदन अनुरोध"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "अनुमोदन रणनीति",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "अधिकार प्रदान प्रारंभिक अनुरोध पर"
|
||||
},
|
||||
"none": {
|
||||
"label": "कोई प्राधिकरण नहीं"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "होस्टनेम"
|
||||
},
|
||||
"port": {
|
||||
"label": "पोर्ट"
|
||||
}
|
||||
},
|
||||
"name": "एपीआई सर्वर [बीटा]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "एपीआई सर्वर के लिए होस्ट नाम (जैसे 0.0.0.0) दर्ज करें:",
|
||||
"title": "होस्टनेम"
|
||||
},
|
||||
"port": {
|
||||
"label": "एपीआई सर्वर के लिए पोर्ट दर्ज करें:",
|
||||
"title": "पोर्ट"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "ऑडियो पर कम्प्रेशन लागू करें (सिग्नल के सबसे ऊँचे हिस्सों की आवाज़ को कम करता है और सबसे नर्म हिस्सों की आवाज़ को बढ़ाता है)",
|
||||
"name": "ऑडियो कंप्रेसर"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "ऑथेंटिकेशन प्रॉक्सी सेवाओं के उपयोग के लिए सपोर्ट",
|
||||
"menu": {
|
||||
"disable": "प्रॉक्सी एडाप्टर बंद करें",
|
||||
"enable": "प्रॉक्सी एडाप्टर शुरू करें",
|
||||
"hostname": {
|
||||
"label": "होस्ट का नाम"
|
||||
},
|
||||
"port": {
|
||||
"label": "पोर्ट"
|
||||
}
|
||||
},
|
||||
"name": "ऑथ प्रॉक्सी एडाप्टर",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "स्थानीय प्रॉक्सी सर्वर के लिए होस्ट का नाम लिखें (पुनः आरंभ ज़रूरी है):",
|
||||
"title": "प्रॉक्सी होस्ट का नाम"
|
||||
},
|
||||
"port": {
|
||||
"label": "स्थानीय प्रॉक्सी सर्वर के लिए पोर्ट लिखें (पुनः प्रारंभ जरूरी है):",
|
||||
"title": "प्रॉक्सी का पोर्ट"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "नेविगेशन बार को पारदर्शी और धुंधला बनाता है",
|
||||
"name": "नेविगेशन बार को ब्लर करें"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "YouTube आयु की जांच को बायपास करें",
|
||||
"name": "आयु प्रतिबंध को बायपास करें"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "YouTube म्यूज़िक ऑडियो ट्रैक के लिए कैप्शन चयनकर्ता",
|
||||
"menu": {
|
||||
"autoload": "अंतिम बार उपयोग किए गए कैप्शन का ऑटोमैटिक रूप से चयन करें",
|
||||
"disable-captions": "डिफ़ॉल्ट रूप में कोई कैप्शन नहीं"
|
||||
},
|
||||
"name": "कैप्शन चयनकर्ता",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "वर्तमान कैप्शन भाषा: {{language}}",
|
||||
"none": "कुछ नहीं",
|
||||
"title": "कैप्शन भाषा चुनें"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "कैप्शन चयनकर्ता खोलें"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "कैप्शन {{language}} में बदल दिया गया है",
|
||||
"caption-disabled": "कैप्शन बंद कर दिए गए हैं",
|
||||
"no-captions": "इस गाने के लिए कोई कैप्शन उपलब्ध नहीं हैं"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "साइडबार को हमेशा कॉम्पैक्ट मोड में सेट करें",
|
||||
"name": "कॉम्पैक्ट साइडबार"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "गानों के बीच क्रॉसफ़ेड करें",
|
||||
"menu": {
|
||||
"advanced": "आधुनिक"
|
||||
},
|
||||
"name": "क्रॉसफ़ेड [बीटा]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "फ़ेड इन अवधि (मिलीसेकंड)",
|
||||
"fade-out-duration": "फ़ेड आउट अवधि (मिलीसेकंड)",
|
||||
"fade-scaling": {
|
||||
"label": "फेड स्केलिंग",
|
||||
"linear": "रेखिक",
|
||||
"logarithmic": "लघुगणक"
|
||||
},
|
||||
"seconds-before-end": "अंत से पहले N सेकंड तक क्रॉसफ़ेड करें"
|
||||
},
|
||||
"title": "क्रॉसफ़ेड विकल्प"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "गीत को \"रुके हुए \" मोड में शुरू करता है",
|
||||
"menu": {
|
||||
"apply-once": "केवल प्रारम्भ पर लागू होता है"
|
||||
},
|
||||
"name": "ऑटोप्ले अयोग्य करें"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "सक्रिय कनेक्शन से जुड़ने का प्रयास किया गया",
|
||||
"connected": "डिस्कॉर्ड से कनेक्टेड है",
|
||||
"disconnected": "डिस्कॉर्ड से कनेक्टेड नहीं है"
|
||||
},
|
||||
"description": "Rich Presence के साथ अपने दोस्तों के साथ बाटें कि आप क्या सुनते हैं",
|
||||
"menu": {
|
||||
"auto-reconnect": "स्वतः पुनः कनेक्ट करें",
|
||||
"clear-activity": "Activity साफ़ करें",
|
||||
"clear-activity-after-timeout": "समय समाप्त होने के बाद एक्टिविटी साफ़ करें",
|
||||
"connected": "स्थापित",
|
||||
"disconnected": "डिस्कनेक्ट किया गया",
|
||||
"hide-duration-left": "शेष अवधि छिपाएँ",
|
||||
"hide-github-button": "GitHub लिंक के बटन को छिपाएँ",
|
||||
"play-on-youtube-music": "YouTube म्यूज़िक पर चलाएँ",
|
||||
"set-inactivity-timeout": "निष्क्रियता समय समाप्ति सेट करें"
|
||||
},
|
||||
"name": "डिस्कॉर्ड रिच प्रेजेंस",
|
||||
"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": "कोई प्लेलिस्ट आईडी नहीं मिली",
|
||||
"playlist-is-empty": "प्लेलिस्ट ख़ाली है",
|
||||
"playlist-is-mix-or-private": "प्लेलिस्ट जानकारी प्राप्त करने में दिक्कत: सुनिश्चित करें कि यह निजी या \"आपके लिए मिश्रित\" प्लेलिस्ट नहीं है\n\n{{error}}",
|
||||
"preparing-file": "फ़ाइल तैयार की जा रही है…",
|
||||
"saving": "सेव जा रहा है…",
|
||||
"trying-to-get-playlist-id": "प्लेलिस्ट आईडी प्राप्त करने का प्रयास किया जा रहा है: {{playlistId}}",
|
||||
"video-id-not-found": "वीडियो नहीं मिला",
|
||||
"writing-id3": "ID3 टैग लिख रहे हैं…"
|
||||
}
|
||||
},
|
||||
"description": "इंटरफ़ेस से सीधे MP3 / स्रोत ऑडियो डाउनलोड करता है",
|
||||
"menu": {
|
||||
"choose-download-folder": "डाउनलोड फ़ोल्डर चुनें",
|
||||
"download-finish-settings": {
|
||||
"label": "समाप्त होने पर डाउनलोड करें",
|
||||
"prompt": {
|
||||
"last-percent": "x प्रतिशत के बाद",
|
||||
"last-seconds": "अंतिम x सेकंड",
|
||||
"title": "डाउनलोड करने का समय कॉन्फ़िगर करें"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "विकसित",
|
||||
"enabled": "सक्रिय",
|
||||
"mode": "टाइम मोड",
|
||||
"percent": "प्रतिशत",
|
||||
"seconds": "सेकंड"
|
||||
}
|
||||
},
|
||||
"download-playlist": "प्लेलिस्ट डाउनलोड करें",
|
||||
"presets": "प्रीसेट",
|
||||
"skip-existing": "मौजूदा फ़ाइलें छोड़ें"
|
||||
},
|
||||
"name": "डाउनलोडर",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "प्रगति अपडेट नहीं की जा सकती"
|
||||
},
|
||||
"templates": {
|
||||
"button": "डाउनलोड"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "प्लेयर में एक एक्विलाइज़र जोड़ता है",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "प्रीसेट",
|
||||
"list": {
|
||||
"bass-booster": "bass वर्धक"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "एक्विलाइज़र"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "वॉल्यूम स्लाइडर को घातांकीय बनाता है ताकि कम वॉल्यूम का चयन करना आसान हो।",
|
||||
"name": "तीव्र वॉल्यूम"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "मेनू-बार को फैंसी, गहरा या एल्बम-रंग का रूप दें",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "DOM विंडो कंट्रोल को छिपाएँ"
|
||||
},
|
||||
"name": "इन-ऐप मेनू"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "लूमिया स्ट्रीम सपोर्ट जोड़ा गया",
|
||||
"name": "लूमिया स्ट्रीम [बीटा]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "अधिकांश गानों के लिए गीत के लिरिक्स को जोड़ता है",
|
||||
"menu": {
|
||||
"romanized-lyrics": "रोमनकृत लिरिक्स"
|
||||
},
|
||||
"name": "लिरिक्स जीनियस",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "जीनियस के लिए प्राप्त किये गए लिरिक्स"
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "दूसरों के साथ प्लेलिस्ट साझा करें। जब होस्ट कोई गाना बजाता है, तो बाकी सभी लोग वही गाना सुनेंगे",
|
||||
"dialog": {
|
||||
"enter-host": "होस्ट आईडी दर्ज करें"
|
||||
},
|
||||
"internal": {
|
||||
"save": "सेव",
|
||||
"track-source": "ट्रैक स्रोत",
|
||||
"unknown-user": "अज्ञात उपयोगकर्ता"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "होस्ट आईडी कॉपी करें",
|
||||
"close": "संगीत को एक साथ बंद करें",
|
||||
"connected-users": "जुड़े हुए उपयोगकर्ता",
|
||||
"disconnect": "संगीत को एक साथ डिस्कनेक्ट करें",
|
||||
"empty-user": "कोई जुड़े हुए उपयोगकर्ता नहीं",
|
||||
"host": "म्यूजिक टुगेदर होस्ट",
|
||||
"join": "संगीत से साथ में जुड़ें",
|
||||
"permission": {
|
||||
"all": "मेहमानों को प्लेलिस्ट और प्लेयर को नियंत्रित करने की अनुमति दें",
|
||||
"host-only": "केवल होस्ट ही प्लेलिस्ट और प्लेयर को नियंत्रित कर सकता है",
|
||||
"playlist": "मेहमानों को प्लेलिस्ट नियंत्रित करने की अनुमति दें"
|
||||
},
|
||||
"set-permission": "नियंत्रण अनुमति बदलें",
|
||||
"status": {
|
||||
"disconnected": "डिस्कनेक्ट किया गया",
|
||||
"guest": "अतिथि के रूप में जुड़े हुए",
|
||||
"host": "मेज़बान के रूप में जुड़े हुए"
|
||||
}
|
||||
},
|
||||
"name": "संगीत टुगेदर [बीटा]",
|
||||
"toast": {
|
||||
"add-song-failed": "गाना जोड़ने में असफलता",
|
||||
"closed": "म्यूजिक टुगेदर बंद हुआ",
|
||||
"disconnected": "म्यूजिक टुगेदर डिस्कनेक्ट हुआ",
|
||||
"host-failed": "म्यूज़िक टुगेदर होस्ट करने में असफल",
|
||||
"id-copied": "होस्ट आईडी क्लिपबोर्ड पर कॉपी की गई",
|
||||
"id-copy-failed": "होस्ट आईडी को क्लिपबोर्ड पर कॉपी करने में असफल",
|
||||
"join-failed": "म्यूजिक टुगेदर में शामिल होने में विफल",
|
||||
"joined": "म्यूजिक टुगेदर में शामिल होने में सफल",
|
||||
"permission-changed": "म्यूजिक टुगेदर की अनुमति बदलकर \"{{permission}}\" कर दी गई है",
|
||||
"remove-song-failed": "गाना हटाने में विफल",
|
||||
"user-connected": "{{name}} म्यूजिक टुगेदर में शामिल हुए",
|
||||
"user-disconnected": "{{name}} ने म्यूजिक टुगेदर छोड़ा"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "आगे /पीछे नेविगेशन अर्रोस सीधे इंटरफ़ेस में एकीकृत, जैसे आपके पसंदीदा ब्राउज़र में",
|
||||
"name": "नेविगेशन",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "पिछले पेज पर जाएं"
|
||||
},
|
||||
"forward": {
|
||||
"title": "अगले पेज पर जाएं"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "इंटरफ़ेस से गूगल लॉगिन बटन और लिंक हटाएँ",
|
||||
"name": "कोई गूगल लॉगिन नहीं"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "जब कोई गाना बजना शुरू हो जाए तो नोटिफ़िकेशन दें (विंडोज़ पर इंटरैक्टिव नोटिफ़िकेशन्स उपलब्ध हैं)",
|
||||
"menu": {
|
||||
"interactive": "इंटरैक्टिव नोटिफ़िकेशन्स",
|
||||
"interactive-settings": {
|
||||
"label": "इंटरैक्टिव सेटिंग्स",
|
||||
"submenu": {
|
||||
"hide-button-text": "बटन टेक्स्ट को छिपाएँ",
|
||||
"refresh-on-play-pause": "प्ले/पॉज़ पर रिफ्रेश करें",
|
||||
"tray-controls": "ट्रे क्लिक पर खोलें/बंद करें"
|
||||
}
|
||||
},
|
||||
"priority": "नोटिफ़िकेशन प्राथमिकता",
|
||||
"toast-style": "टोस्ट स्टाइल",
|
||||
"unpause-notification": "पॉज हटने पर नोटिफ़िकेशन दिखाएं"
|
||||
},
|
||||
"name": "नोटिफ़िकेशन्स"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "प्रयोगात्मक स्क्रिप्ट सक्षम करके प्रदर्शन में सुधार करें",
|
||||
"name": "प्रदर्शन सुधार [Beta]"
|
||||
},
|
||||
"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": "ब्राउज़र के नेटिव PiP का उपयोग करें"
|
||||
},
|
||||
"name": "पिक्चर-इन-पिक्चर",
|
||||
"templates": {
|
||||
"button": "पिक्चर-इन-पिक्चर"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "तेज़ सुनो, धीरे सुनो! गाने की गति को नियंत्रित करने वाला स्लाइडर जोडें",
|
||||
"name": "प्लेबैक गति",
|
||||
"templates": {
|
||||
"button": "गति"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "कस्टम HUD और कस्टोमिज़ाबले वॉल्यूम चरणों के साथ, माउसव्हील/हॉट कीज़ का उपयोग करके वॉल्यूम को सटीक रूप से नियंत्रित करें",
|
||||
"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": "वीडियो गुणवत्ता परिवर्तक",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "प्लेयर क्वालिटी सेटिंग खोलें"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "स्क्रोब्लिंग सपोर्ट जोड़ें (etc. last.fm, listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Last.fm के साथ प्रमाणीकरण विफल\nअगले पुनरारंभ तक पॉपअप छिपाएँ।",
|
||||
"title": "प्रमाणीकरण विफल"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Last.fm API सेटिंग्स"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "listenbrainz उपयोगकर्ता टोकन दर्ज करें"
|
||||
},
|
||||
"scrobble-alternative-title": "वैकल्पिक शीर्षक का उपयोग करें",
|
||||
"scrobble-other-media": "अन्य मीडिया स्क्रोबल करें"
|
||||
},
|
||||
"name": "स्क्रोब्लर",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API की",
|
||||
"api-secret": "Last.fm गुप्त API"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "अपना ListenBrainz उपयोगकर्ता टोकन दर्ज करें:",
|
||||
"title": "ListenBrainz टोकन"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "प्लेबैक (प्ले/पॉज़/नेक्स्ट/प्रीवियस) के लिए ग्लोबल हॉटकी सेट करने की सुविधा देता है, मीडिया कुंजियों को ओवरराइड करके मीडिया OSD बंद करता है, Ctrl/CMD + F से खोज चालू करता है, Linux में मीडिया कुंजियों के लिए MPRIS सपोर्ट चालू करता है, और उन्नत उपयोगकर्ताओं के लिए कस्टम हॉटकी की अनुमति देता है",
|
||||
"menu": {
|
||||
"override-media-keys": "मीडिया कुंजियों पर नियंत्रण प्राप्त करें",
|
||||
"set-keybinds": "वैश्विक गीत नियंत्रण सेट करें"
|
||||
},
|
||||
"name": "शॉर्टकट कुंजियाँ (और MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "अगला",
|
||||
"play-pause": "चलाएं / विराम दें",
|
||||
"previous": "पिछला"
|
||||
},
|
||||
"label": "गाने कंट्रोल करने के लिए ग्लोबल कीबाइंड का चयन करें:",
|
||||
"title": "ग्लोबल कीबाइंडस"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "डिसलाइकड गानो को स्किप करता है",
|
||||
"name": "डिसलाइकड गानो को स्किप करें"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "साइलेंट सेक्शन को ऑटोमेटिकली स्किप करें",
|
||||
"name": "साइलेंस स्किप करें"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Intro/Outro जैसे गैर-संगीत भागों को स्किप करता है",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"video-toggle": {
|
||||
"menu": {
|
||||
"align": {
|
||||
|
||||
@ -2,12 +2,14 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Neuspjelo izvršenje plugina {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin{{pluginName}}::{{contextName}}{{je izvršen za {{ms}}ms",
|
||||
"initialize-failed": "Nije uspilo inicijalitirati plugin \"{{pluginName}}\"",
|
||||
"load-all": "Učitavaju se svi plugini",
|
||||
"load-failed": "Neuspješno ućitavanje plugina \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" je učitan"
|
||||
"execute-failed": "Neuspješno izvršavanje plugina {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} je izvršen za {{ms}}ms",
|
||||
"initialize-failed": "Neuspješno inicijaliziranje plugina \"{{pluginName}}\"",
|
||||
"load-all": "Učitavanje svih plugina",
|
||||
"load-failed": "Neuspješno učitavanje plugina \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" je učitan",
|
||||
"unload-failed": "Neuspješna deaktivacija plugina \"{{pluginName}}\"",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" deaktiviran"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -18,31 +20,873 @@
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Završeno učitavanje. DevTools je otvoren"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n je učitan"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Zaprimljena komanda preko protokola: \"{{command}}\""
|
||||
"receive-command": "Zaprimljena naredba preko protokola: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS fajl \"{{cssFile}}\" ne postoji, ignorišem"
|
||||
"css-file-not-found": "CSS datoteka \"{{cssFile}}\" ne postoji, zanemarujem"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Neresponzivna Pogreška!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Brisanje cache memorije u toku"
|
||||
"clearing-cache-after-20s": "Brisanje predmemorije aplikacije"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Prozor se pokušao prikazat van ekrana, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Meni je sakriven, pritisni 'Alt' da bi se prikazao (ili 'Escape' ako se koristi In-App Menu)",
|
||||
"message": "Sakriveni Meni je uključen"
|
||||
"detail": "Izbornik je sakriven, pritisnite 'Alt' da bi se prikazao (ili 'Escape' ako koristite unutar aplikacijski izbornik)",
|
||||
"message": "Sakrij Izbornik je uključen",
|
||||
"title": "Sakrij Izbornik Ukljućen"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Kasnije",
|
||||
"restart-now": "Pokreni ponovo"
|
||||
"restart-now": "Ponovo Pokreni Sada"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" dodatak zahtjeva pokretanje aplikacije ponovo da bi promjene bile vidljive"
|
||||
"detail": "\"{{pluginName}}\" plugin zahtjeva ponovno pokretanje da bi postao aktivan",
|
||||
"message": "\"{{pluginName}}\" se treba ponovo pokreniti",
|
||||
"title": "Ponovno Pokrećanje je Potrebno"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Izađi",
|
||||
"relaunch": "Ponovno Pokretanje",
|
||||
"wait": "Čekaj"
|
||||
},
|
||||
"detail": "Ispričavamo se zbog neugodnosti! izaberite sljedeću radnju:",
|
||||
"message": "Aplikacija je Neresponzivna",
|
||||
"title": "Prozor je Neresponzivan"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Isključi Ažuriranja",
|
||||
"download": "Preuzmi",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Nova verzija je dostupna i može se preuzeti preko {{downloadLink}}",
|
||||
"message": "Nova verzija je dostupna",
|
||||
"title": "Dostupno Ažuriranje"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "O programu",
|
||||
"navigation": {
|
||||
"label": "Navigacija",
|
||||
"submenu": {
|
||||
"copy-current-url": "Kopiraj trenutni URL",
|
||||
"go-back": "Idi natrag",
|
||||
"go-forward": "Idi naprijed",
|
||||
"quit": "Izađi",
|
||||
"restart": "Ponovno Pokreni Aplikaciju"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opcije",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Napredne opcije",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Resetiraj predmemoriju aplikacije pri pokretanju",
|
||||
"disable-hardware-acceleration": "Isključi hardversku akceleraciju",
|
||||
"edit-config-json": "Uredi config.json",
|
||||
"override-user-agent": "Promijeni User-Agent",
|
||||
"restart-on-config-changes": "Ponovno pokreni na promjene konfiguracije",
|
||||
"set-proxy": {
|
||||
"label": "Postavi proxy",
|
||||
"prompt": {
|
||||
"label": "Unesi Adresu za Proxy: (ostavite prazno ako želite onemogućiti)",
|
||||
"placeholder": "Primjer: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Postavi proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Uključi/isključi DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Uvijek na vrhu",
|
||||
"auto-update": "Automatsko Ažuriranje",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Izbornik će se sakriti pri sljedećem pokretanju, stisnite [Alt] da se prikaže (ili backtick [`] ako koristite meni unutar aplikacije)",
|
||||
"title": "Sakrij Izbornik Uključen"
|
||||
},
|
||||
"label": "Sakrij Izbornik"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Jezik će se promijeniti nakon ponovnog pokretanja",
|
||||
"title": "Jezik promijenjen"
|
||||
},
|
||||
"label": "Jezik",
|
||||
"submenu": {
|
||||
"to-help-translate": "Želite pomoć za prijevodom? Kliknite ovdje"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Nastavi zadnju pjesmu kad se aplikacija pokrene",
|
||||
"single-instance-lock": "Sprječavanje višestrukog pokretanja",
|
||||
"start-at-login": "Počni od prijave",
|
||||
"starting-page": {
|
||||
"label": "Početna stranica",
|
||||
"unset": "Nepostavljeno"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Traka",
|
||||
"submenu": {
|
||||
"disabled": "Isključeno",
|
||||
"enabled-and-hide-app": "Uključena i skrivena aplikacija",
|
||||
"enabled-and-show-app": "Uključena i prikaži aplikaciju",
|
||||
"play-pause-on-click": "Reproduciraj/Pauziraj na klik"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vizualna podešavanja",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Zadano",
|
||||
"force-show": "Prisilno prikaži",
|
||||
"hide": "Sakrij",
|
||||
"label": "\"Sviđa mi se\" gumbi"
|
||||
},
|
||||
"remove-upgrade-button": "Ukloni gumb za nadogradnju",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Odustani",
|
||||
"remove": "Ukloni"
|
||||
},
|
||||
"remove-theme": "Jeste li sigurni da želite ukloniti prilagođenu temu?",
|
||||
"remove-theme-message": "Ovo će ukloniti prilagođenu temu"
|
||||
},
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Uvezi prilagođenu CSS datoteku",
|
||||
"no-theme": "Bez teme"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Uključeno",
|
||||
"label": "Plugini",
|
||||
"new": "NOVO"
|
||||
},
|
||||
"view": {
|
||||
"label": "Pogled",
|
||||
"submenu": {
|
||||
"force-reload": "Prisilno Ponovo Učitaj",
|
||||
"reload": "Ponovno učitaj",
|
||||
"reset-zoom": "Prava Veličina",
|
||||
"toggle-fullscreen": "Uključi/Isključi Prikaz Preko Cijelog Ekrana",
|
||||
"zoom-in": "Povećaj",
|
||||
"zoom-out": "Smanji"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Sljedeće",
|
||||
"play-pause": "Reproduciraj/Pauziraj",
|
||||
"previous": "Prethodni",
|
||||
"quit": "Izađi",
|
||||
"restart": "Ponovo Pokreni Aplikaciju",
|
||||
"show": "Prikaži prozor",
|
||||
"tooltip": {
|
||||
"default": "YouTube Glazba",
|
||||
"with-song-info": "YouTube Glazba: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Ako se pokrene oglas, zvuk se isključi i brzina reprodukcije se postavi na 16x",
|
||||
"name": "Ubrzanje Oglasa"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Blokiraj sve oglase i praćenje odmah po pokretanju",
|
||||
"menu": {
|
||||
"blocker": "Blokator"
|
||||
},
|
||||
"name": "Blokator Oglasa"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Dodaje tipke za 'Ne sviđa mi se', 'Sviđa mi se' i 'Dislike'/'Like' za primjenu na sve pjesme u playlisti ili albumu",
|
||||
"name": "Radnje Albuma"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Primjenjuje dinamičnu temu i vizualne efekte prema paleti boje albuma",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Omjer miješanja boja",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Boja teme albuma"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Primjenjuje efekt osvjetljenja prikazivajući nježne boje iz videa na pozadinu vašeg ekrana",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Količina zamućenja",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pikseli"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Predmemorija (Bufer)",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Prozirnost",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kvaliteta",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pikseli"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Veličina",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Glatakoća prijelaza",
|
||||
"submenu": {
|
||||
"during": "Tijekom {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Koristi se prikaz preko cijelog ekrana"
|
||||
}
|
||||
},
|
||||
"name": "Ambijentalni Način"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Dodaje podršku za YouTube Glazbu za widget \"sada reproducira\" od Amuse od strane 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Amuse API poslužitelj je pokrenut. Koristi GET /query za dohvat informacija o pjesmi."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Dodaje API poslužitelj za kontrolu medija",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Dozvoli",
|
||||
"deny": "Odbij"
|
||||
},
|
||||
"message": "Dozvoli {{ID}} ({{origin}}) pristup API-ju?",
|
||||
"title": "Zahtjev za autorizaciju API-ja"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Strategija autorizacije",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Autorizacija pri prvom zahjtevu"
|
||||
},
|
||||
"none": {
|
||||
"label": "Bez autorizacije"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Naziv hosta"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "API Poslužitelj [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Unesite ime hosta (npr. 0.0.0.0) od API poslužitelja:",
|
||||
"title": "Naziv hosta"
|
||||
},
|
||||
"port": {
|
||||
"label": "Unesite port od API poslužitelja:",
|
||||
"title": "Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Primijeni kompresiju na zvuk (smanjuje glasnoću najglasnijih dijelova signala i povećava glasnoću najslabijih dijelova)",
|
||||
"name": "Kompresor Zvuka"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Podrška za korištenje usluga autentifikacijskog proxyja",
|
||||
"menu": {
|
||||
"disable": "Onemogući proxy adapter",
|
||||
"enable": "Omogući proxy adapter",
|
||||
"hostname": {
|
||||
"label": "Naziv hosta"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Proxy adapter za autentifikaciju",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Unesite naziv hosta za lokalnog proxy poslužitelja (zahtijeva ponovno pokretanje):",
|
||||
"title": "Naziv hosta proxyja"
|
||||
},
|
||||
"port": {
|
||||
"label": "Unesite port za lokalni proxy poslužitelj (zahtijeva ponovno pokretanje):",
|
||||
"title": "Port proxyja"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Čini navigacijsku traku prozirnom i zamagljenom",
|
||||
"name": "Zamagli Navigacijsku Traku"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Zaobiđi YouTubeovu provjeru dobi",
|
||||
"name": "Zaobiđi dobna ograničenja"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Izbornik titlova za audiozapise od YouTube Musica",
|
||||
"menu": {
|
||||
"autoload": "Automatski izaberi posljednje korištene titlove",
|
||||
"disable-captions": "Bez titlova"
|
||||
},
|
||||
"name": "Izbornik za titlove",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Trenutni jezik za titlove: {{language}}",
|
||||
"none": "Ništa",
|
||||
"title": "Izaberi jezik za titlove"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Otvori izbornik za titlove"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Titlovi su promenjeni u {{language}}",
|
||||
"caption-disabled": "Titlovi su isključeni",
|
||||
"no-captions": "Za ovu pjesmu nisu dostupni titlovi"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Uvijek postavi bočnu traku na kompaktni način rada",
|
||||
"name": "Kompaktna bočna traka"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Pretapanje (cross-fade) između pjesama",
|
||||
"menu": {
|
||||
"advanced": "Napredno"
|
||||
},
|
||||
"name": "Pretapanje (cross-fade) [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Trajanje postepenog pojačavanja zvuka (Fade in) (ms)",
|
||||
"fade-out-duration": "Trajanje postepenog smanjenje zvuka (Fade out) (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Skaliranje postepenog prijelaza (Fade scaling)",
|
||||
"linear": "Linearno",
|
||||
"logarithmic": "Logaritamsko"
|
||||
},
|
||||
"seconds-before-end": "Pretapanje (cross-fade) N sekundi prije kraja"
|
||||
},
|
||||
"title": "Opcije za pretapanje (cross-fade)"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Postavlja da pjesma počne pauzirana",
|
||||
"menu": {
|
||||
"apply-once": "Primjenjuje se samo pri pokretanju aplikacije"
|
||||
},
|
||||
"name": "Isključi automatsko reprodukciju"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Pokušano je povezivanje s aktivnom vezom",
|
||||
"connected": "Spojen na Discord",
|
||||
"disconnected": "Odspojen od Discorda"
|
||||
},
|
||||
"description": "Pokaži svojim prijateljima što slušate sa Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatski se ponovo spoji",
|
||||
"clear-activity": "Očisti aktivnosti",
|
||||
"clear-activity-after-timeout": "Očisti aktivnosti nakon isteka vremena",
|
||||
"connected": "Spojen",
|
||||
"disconnected": "Odspojen",
|
||||
"hide-duration-left": "Sakrij preostalo vrijeme",
|
||||
"hide-github-button": "Sakrij gumb sa GitHub poveznicom",
|
||||
"play-on-youtube-music": "Reproduciraj na YouTube Musicu",
|
||||
"set-inactivity-timeout": "Postavi vremensko ograničenje neaktivnosti (inactivity timeout)"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Postavi vremensko ograničenje neaktivnosti u sekundama:",
|
||||
"title": "Postavi vremensko ograničenje neaktivnosti"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Jao! Oprostite, preuzimanje je bilo neuspješno…",
|
||||
"title": "Pogreška pri preuzimanju!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} pjesma)",
|
||||
"message": "Preuzimanje Playliste {{playlistTitle}}",
|
||||
"title": "Preuzimanje započeto"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konverzija: {{percent}}%",
|
||||
"converting": "Konvertiranje…",
|
||||
"done": "Gotov: {{filePath}}",
|
||||
"download-info": "Preuzimanje {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Preuzimanje: {{percent}}%",
|
||||
"downloading": "Preuzimanje…",
|
||||
"downloading-counter": "Preuzimanje {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Preuzimanje playliste \"{{playlistTitle}}\" - {{playlistSize}} pjesama ({{playlistId}})",
|
||||
"error-while-downloading": "Pogreška pri preuzimanju \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Mapa {{playlistFolder}} već postoji",
|
||||
"getting-playlist-info": "Dobavljaju se informacije o playlisti…",
|
||||
"loading": "Učitavanje…",
|
||||
"playlist-has-only-one-song": "Playlista ima samo jedan stavku, preuzeti će se direktno",
|
||||
"playlist-id-not-found": "Nije pronađen ID playliste",
|
||||
"playlist-is-empty": "Playlista je prazna",
|
||||
"playlist-is-mix-or-private": "Pogreška pri dobivanju informacija o playlisti: provjerite da nije ili privatna ili \"Za vas\" playlista\n\n{{error}}",
|
||||
"preparing-file": "Priprema se datoteka…",
|
||||
"saving": "Spremanje…",
|
||||
"trying-to-get-playlist-id": "Pokušavam dobaviti playlist ID: {{playlistId}}",
|
||||
"video-id-not-found": "Videozapis nije pronađen",
|
||||
"writing-id3": "Zapisujem ID3 tagove…"
|
||||
}
|
||||
},
|
||||
"description": "Preuzima MP3 / izvorni audiozapis izravno iz sučelja",
|
||||
"menu": {
|
||||
"choose-download-folder": "Odaberite mapu za preuzimanje",
|
||||
"download-finish-settings": {
|
||||
"label": "Preuzmi pri završetku",
|
||||
"prompt": {
|
||||
"last-percent": "Nakon x posto",
|
||||
"last-seconds": "Zadnjih x sekundi",
|
||||
"title": "Podesi kada preuzeti"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Napredno",
|
||||
"enabled": "Uključeno",
|
||||
"mode": "Tip vremena",
|
||||
"percent": "Postotak",
|
||||
"seconds": "Sekunde"
|
||||
}
|
||||
},
|
||||
"download-playlist": "Preuzmi playlistu",
|
||||
"presets": "Unaprijed postavljeno",
|
||||
"skip-existing": "Preskoči datoteke koje već postoje"
|
||||
},
|
||||
"name": "Preuzimatelj",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Nemoguće ažuriranje napredka"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Preuzmi"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Dodaje equalizer reprodukciji",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Zadane postavke",
|
||||
"list": {
|
||||
"bass-booster": "Pojačivač basa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ekvalizator"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Čini klizač glasnoće (volume slider) eksponencijalnim za lakše odabranje niže glasnoće.",
|
||||
"name": "Eksponencijalna Glasnoća"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Daje izbornicima fensi, tamni ili prema boji albuma izgled",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Sakrij kontrole prozora DOM-a"
|
||||
},
|
||||
"name": "Izbornik unutar aplikacije"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Dodaje podršku za Lumia Stream",
|
||||
"name": "Lumia Stream [Beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Dodaje podršku za tekstove pjesama za većinu pjesama",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanizirani tekstovi pjesme"
|
||||
},
|
||||
"name": "Genius teksovi pjesme",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Dobavljen tekst pjesme s Genius-a"
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "Podijeli playlistu s drugima. Kada domaćin (host) pusti pjesmu, svi ostali će čuti istu pjesmu",
|
||||
"dialog": {
|
||||
"enter-host": "Unesi ID hosta"
|
||||
},
|
||||
"internal": {
|
||||
"save": "Spremi",
|
||||
"track-source": "Izvor Pjesme",
|
||||
"unknown-user": "Nepoznati Korisnik"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "Kopiraj ID Hosta",
|
||||
"close": "Zatvori Glazbu Zajedno",
|
||||
"connected-users": "Spojeni Korisnici",
|
||||
"disconnect": "Odspoji Glazbu Zajedno",
|
||||
"empty-user": "Nema spojenih korisnika",
|
||||
"host": "Host Glazbe Zajedno",
|
||||
"join": "Pridruži se Glazbi Zajedno",
|
||||
"permission": {
|
||||
"all": "Dopusti gostima da kontroliraju playlistu i reprodukciju",
|
||||
"host-only": "Samo host može kontrolirati playlistu i reprodukciju",
|
||||
"playlist": "Dozvoli gostima da kontroliraju playlistu"
|
||||
},
|
||||
"set-permission": "Promijeni dozvolu za upravljanje",
|
||||
"status": {
|
||||
"disconnected": "Odspojen",
|
||||
"guest": "Spojen kao Gost",
|
||||
"host": "Spojen kao Host"
|
||||
}
|
||||
},
|
||||
"name": "Glazba Zajedno [Beta]",
|
||||
"toast": {
|
||||
"add-song-failed": "Neuspješno dodavanje pjesme",
|
||||
"closed": "Glazba Zajedno je zatvorena",
|
||||
"disconnected": "Glazba Zajedno je odspojena",
|
||||
"host-failed": "Neuspješno hostanje Glazbe Zajedno",
|
||||
"id-copied": "ID hosta kopiran u međuspremnik",
|
||||
"id-copy-failed": "Neuspješno kopiranje ID-a hosta u međuspremnik",
|
||||
"join-failed": "Neuspješno pridruživanje Glazbi Zajedno",
|
||||
"joined": "Pridružen Glazbi Zajedno",
|
||||
"permission-changed": "Dozvola Glazbe Zajedno promijenjena na '{{permission}}'",
|
||||
"remove-song-failed": "Neuspješno uklanjanje pjesme",
|
||||
"user-connected": "{{name}} se pridružio Glazbi Zajedno",
|
||||
"user-disconnected": "{{name}} je napustio Glazbu Zajedno"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Naprijed/Nazad navigacijske strelice su izravno integrirane u sučelje, kao i u vašem omiljenom pregledniku",
|
||||
"name": "Navigacija",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Vrati se na prijethodnu stranicu"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Idi na sljedeću stranicu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Ukloni Google prijavne gumbe i linkove iz sučelja",
|
||||
"name": "Nema Google Prijave"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Prikažite obavijest kada pjesma počne svirati (interaktivne obavijesti dostupne su na Windowsu)",
|
||||
"menu": {
|
||||
"interactive": "Interaktivne Obavijesti",
|
||||
"interactive-settings": {
|
||||
"label": "Interaktivne Postavke",
|
||||
"submenu": {
|
||||
"hide-button-text": "Sakrij tekst gumba",
|
||||
"refresh-on-play-pause": "Osvježi pri Reprodukciji/Pauzi",
|
||||
"tray-controls": "Otvori/Zatvori klikom na traku"
|
||||
}
|
||||
},
|
||||
"priority": "Prioritet Obavijesti",
|
||||
"toast-style": "Tipa Toast (kao Android obavjest)",
|
||||
"unpause-notification": "Prikaži notifikaciju pri nastavku"
|
||||
},
|
||||
"name": "Obavijesti"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Poboljšati performanse uključivanjem eksperimentalnih skripti",
|
||||
"name": "Poboljšanje performansa (Beta)"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Dozvoljava aplikaciji da se prebaci u režim slike-u-slici",
|
||||
"menu": {
|
||||
"always-on-top": "Uvijek na vrhu",
|
||||
"hotkey": {
|
||||
"label": "Prečac",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Prečac"
|
||||
},
|
||||
"label": "Odaberi prečac za prebacivanje u režim slike-u-slici",
|
||||
"title": "Prečac za režim slike-u-slici"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Sačuvaj mjesto prozora",
|
||||
"save-window-size": "Sačuvaj veličinu prozora",
|
||||
"use-native-pip": "Koristi izvorni režim slike-u-slici za pretraživače"
|
||||
},
|
||||
"name": "Slika-u-slici",
|
||||
"templates": {
|
||||
"button": "Slika-u-slici"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Slušajte brzo, slušajte sporo! Ovo će dodat klizač koji kontrolira brzinu pjesme",
|
||||
"name": "Brzina pokretanja",
|
||||
"templates": {
|
||||
"button": "Brzina"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Precizno kontrolirajte jačinu zvuka korištenjem točkih na mišu/prečaca, sa prilagođenim sučeljem i prilagodivim stupnjevima jačine",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Lokalne kontrole tipkih sa strelicama",
|
||||
"custom-volume-steps": "Postavi prilagođene stope za promjenu jačine",
|
||||
"global-shortcuts": "Globalni prečaci"
|
||||
},
|
||||
"name": "Precizna jačina zvuka",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Snizi jačinu zvuka",
|
||||
"increase": "Pojačaj jačinu zvuka"
|
||||
},
|
||||
"label": "Odaberi globalne prečace na tipkovnici za jačinu zvuka:",
|
||||
"title": "Globalni prečaci na tipkovnici za jačinu zvuka"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Odaberi stope za povišenje/sniženje jačine zvuka",
|
||||
"title": "Stope za promjenu jačine zvuka"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Trenutni kvalitet: {{quality}}",
|
||||
"message": "Odaberi kvalitet videa:",
|
||||
"title": "Odaberi kvalitet videa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Dozvoljava promjenu kvaliteta videa pomoću gumba na video preklopu",
|
||||
"name": "Promjena kvalitete videa",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Otvori izbornik za promjenu kvalitete pokretača"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Dodaj podršku za 'četkanje' (poput last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Autentifikacija sa Last.fm nije uspjela.\nZatvori skočni prozor do sljedećeg ponovnog pokretanja.",
|
||||
"title": "Autentifikacija je neuspješna"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Postavke za Last.fm API"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "Unesi korisnički žeton za ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-title": "Koristi alternativne naslove",
|
||||
"scrobble-other-media": "Učetkaj druge medije"
|
||||
},
|
||||
"name": "Četkarnik",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API ključ",
|
||||
"api-secret": "Last.fm API tajna"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "Unesi svoj ListenBrainz korisnički žeton:",
|
||||
"title": "ListenBrainz žeton"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Dozvoljava postavljanje globalnih prečaca na tipkovnici za reproduciranje (pokreni/zaustavi/sljedeće/prijethodno) i isključivanje OSD-a za medije tako što će prebrisati tipke za medije, uključiti Ctrl/CMD + F za pretragu, isključiti MPRIS podršku za medijske tipke na Linux-u, i prilagođene prečace za napredne korisnike",
|
||||
"menu": {
|
||||
"override-media-keys": "Prebriši medijske tipke",
|
||||
"set-keybinds": "Postavi globalne kontrole za pjesme"
|
||||
},
|
||||
"name": "Prečaci (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Sljedeće",
|
||||
"play-pause": "Pokreni / Zaustavi",
|
||||
"previous": "Prijethodno"
|
||||
},
|
||||
"label": "Odaberi globalne prečace za upravljanje pjesmama:",
|
||||
"title": "Globalni prečaci na tipkovnici"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Preskače pjesme koje vam se ne sviđaju",
|
||||
"name": "Preskočite pjesme koje vam se ne sviđaju"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatski preskočite dijelove pjesama gdje nema zvuka",
|
||||
"name": "Preskoči tišine"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Automatski preskače dijelove pjesama koji nisu glazba poput uvoda/odjave ili dijelove spotova u kojima nema muzike",
|
||||
"name": "Bloker sponzora"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "Obezbjeđava sinkronizirane lirike pjesama, korištenjem dobavljača poput LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️\tDošlo je do greške prilikom dobavljanja stihova pjesme.\n\tMolimo vas da probate ponovno kasnije.",
|
||||
"not-found": "⚠️ Tekst za ovu pjesmu nije pronađen."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
"label": "Zadani karakteri između stihova pjesama",
|
||||
"tooltip": "Odaberi zadane karaktere koji će biti korišteni za razmake između stihova pjesama"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Efekat crte",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Kitnjast",
|
||||
"tooltip": "Koristi velike (kao iz aplikacije) efekte na trenutnu crtu"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Fokus",
|
||||
"tooltip": "Pretvorite samo trenutnu crtu bijelu"
|
||||
},
|
||||
"offset": {
|
||||
"label": "Izmak",
|
||||
"tooltip": "Izmak na trenutnoj crti"
|
||||
},
|
||||
"scale": {
|
||||
"label": "Razmjera",
|
||||
"tooltip": "Promjeni razmjeru trenutne crte"
|
||||
}
|
||||
},
|
||||
"tooltip": "Odaberi efekat koji će biti primjenjen na trenutnoj crti"
|
||||
},
|
||||
"precise-timing": {
|
||||
"label": "Napravi da tekst pjesme bude izvrsno usklađen",
|
||||
"tooltip": "Izračunaj do milisekunde prikaz sljedeće crteteksta (može malo utjecati na učinak)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanizuj stihove pjesama",
|
||||
"tooltip": "Ako je tekst pjesme na drugom jeziku, probajte da ga prikažete na latinici."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Prikaži tekst pjesme čak i ako je netačan",
|
||||
"tooltip": "Ako pjesma nije pronađena, produžetak će probati ponovno sa novim upitom za pretragu.\nRezultat iz drugog pokušaja možda neće biti tačan."
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "Prikaži vremenske oznake",
|
||||
"tooltip": "Prikaži vremenske oznake pored teksta pjesme"
|
||||
}
|
||||
},
|
||||
"name": "Sinkronizovani stihovi pjesama",
|
||||
"refetch-btn": {
|
||||
"fetching": "Dobavljanje...",
|
||||
"normal": "Ponovo dobavite tekst pjesme"
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Tekst pjesme možda nije usklađen zbog neuklapanja u daljini trajanja.",
|
||||
"inexact": "⚠️ - Tekst za ovu pjesmu možda nije tačan",
|
||||
"instrumental": "⚠️ - Ovo je instrumentalna glazba"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Upravljajte reprodukcijom iz Windows radne trake",
|
||||
"name": "Upravljanje medijima iz radne trake"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Dodaje dodatak dodirne trake za macOS korisnike",
|
||||
"name": "Dodirna Traka"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integracija sa OBS-ovim Tuna dodatkom",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Onemogućava pokretaču da iskoči u toku pokretanja pjesme",
|
||||
"name": "Nenametljivi pokretač"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Dodaje gumb za šaltanje između režima za video/numeru. Dodatno, može da ukloni cijelu karticu sa videom",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Izravnanje",
|
||||
"submenu": {
|
||||
"left": "Lijevo",
|
||||
"middle": "Sredina",
|
||||
"right": "Desno"
|
||||
}
|
||||
},
|
||||
"force-hide": "Nasilno uklonite karticu sa videom",
|
||||
"mode": {
|
||||
"label": "Režim",
|
||||
"submenu": {
|
||||
"custom": "Prilagođeno šaltanje",
|
||||
"disabled": "Isključeno",
|
||||
"native": "Izvorno šaltanje"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Video šaltanje",
|
||||
"templates": {
|
||||
"button-song": "Pjesma",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Dodaje vizualizator u plejer",
|
||||
"menu": {
|
||||
"visualizer-type": "Tip vizualizacije"
|
||||
},
|
||||
"name": "Vizualizacija"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -831,7 +831,7 @@
|
||||
},
|
||||
"name": "Videó váltó",
|
||||
"templates": {
|
||||
"button": "Zeneszám"
|
||||
"button-song": "Zeneszám"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Plugin {{pluginName}}::{{contextName}} dieksekusi di {{ms}}ms",
|
||||
"execute-failed": "Gagal menjalankan plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} dieksekusi pada {{ms}}ms",
|
||||
"initialize-failed": "Gagal dalam menginisialisasi plugin \"{{pluginName}}\"",
|
||||
"load-all": "Memuat semua plugin",
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Penyesuaian Visual",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Judul jendela kustom",
|
||||
"prompt": {
|
||||
"label": "Masukkan judul jendela kustom (kosongkan untuk menonaktifkan)",
|
||||
"placeholder": "Contoh: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Standar",
|
||||
"force-show": "Pertunjukan paksa",
|
||||
@ -333,35 +340,64 @@
|
||||
"description": "Menerapkan kompresi pada audio (mengurangi volume pada bagian paling keras dari sinyal dan meningkatkan volume pada bagian paling lembut)",
|
||||
"name": "Kompresi suara"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Dukungan untuk penggunaan layanan proxy autentikasi",
|
||||
"menu": {
|
||||
"disable": "Nonaktifkan Adapter Proxy",
|
||||
"enable": "Aktifkan Adapter Proxy",
|
||||
"hostname": {
|
||||
"label": "Nama host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Adapter Proxy Autentikasi",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Masukkan nama host untuk server proxy lokal (memerlukan restart):",
|
||||
"title": "Proxy Nama host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Masukkan port untuk server proxy lokal (memerlukan restart):",
|
||||
"title": "Port Proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Jadikan bar navigasi blur dan transparan",
|
||||
"name": "buramkan bar navigasi"
|
||||
"name": "Buramkan Bar Navigasi"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Lewati verifikasi umur dari YouTube",
|
||||
"name": "Lewati batasan umur"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "pemilih caption untuk trek audio YouTube Music",
|
||||
"description": "Pemilih caption untuk trek audio YouTube Music",
|
||||
"menu": {
|
||||
"autoload": "pilih caption terakhir secara otomatis",
|
||||
"disable-captions": "bawaannya tanpa caption"
|
||||
"autoload": "Pilih caption terakhir secara otomatis",
|
||||
"disable-captions": "Tidak ada caption secara default"
|
||||
},
|
||||
"name": "pemilih caption",
|
||||
"name": "Pemilih Caption",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "bahasa caption yang dipakai sekarang: {{language}}",
|
||||
"none": "tidak ada",
|
||||
"title": "pilih bahasa caption"
|
||||
"label": "Bahasa caption saat ini: {{language}}",
|
||||
"none": "Tidak ada",
|
||||
"title": "Pilih bahasa caption"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "buka pemilih caption"
|
||||
"title": "Buka pemilih caption"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "caption diganti ke bahasa {{language}}",
|
||||
"caption-disabled": "Caption dinonaktifkan",
|
||||
"no-captions": "tidak tersedia caption untuk lagu ini"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Selalu atur sidebar dalam mode kompak",
|
||||
"name": "sidebar ringkas"
|
||||
"name": "Sidebar Ringkas"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Crossfade antar lagu",
|
||||
@ -372,10 +408,10 @@
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "durasi fade in (ms)",
|
||||
"fade-out-duration": "durasi fade out (ms)",
|
||||
"fade-in-duration": "Durasi fade in (ms)",
|
||||
"fade-out-duration": "Durasi fade out (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "redup perlahan",
|
||||
"label": "Skala fade",
|
||||
"linear": "Linear",
|
||||
"logarithmic": "Logaritmik"
|
||||
},
|
||||
@ -385,6 +421,18 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"menu": {
|
||||
"device-selector": "Pilih Perangkat"
|
||||
},
|
||||
"name": "Perangkat Keluaran Kustom",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Pilih perangkat media keluaran yang akan digunakan",
|
||||
"title": "Pilih Perangkat Keluaran"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Buat lagu mulai dalam mode \"jeda\"",
|
||||
"menu": {
|
||||
@ -398,17 +446,25 @@
|
||||
"connected": "Terhubung dengan Discord",
|
||||
"disconnected": "Terputus dari Discord"
|
||||
},
|
||||
"description": "tunjukan apa yang kamu dengarkan dengan Rich Presence",
|
||||
"description": "Tunjukkan apa yang kamu dengarkan dengan Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Reconnect otomatis",
|
||||
"clear-activity": "Hapus riwayat aktifitas",
|
||||
"clear-activity-after-timeout": "hapus riwayat aktifitas setelah timeout",
|
||||
"connected": "terhubung",
|
||||
"disconnected": "tidak terhubung",
|
||||
"hide-duration-left": "sembunyikan sisa durasi",
|
||||
"hide-github-button": "sembunyikan tombol link GitHub",
|
||||
"clear-activity-after-timeout": "Hapus aktivitas setelah timeout",
|
||||
"connected": "Terhubung",
|
||||
"disconnected": "Terputus",
|
||||
"hide-duration-left": "Sembunyikan sisa durasi",
|
||||
"hide-github-button": "Sembunyikan tombol link GitHub",
|
||||
"play-on-youtube-music": "Mainkan di YouTube Music",
|
||||
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif"
|
||||
"set-inactivity-timeout": "Tetapkan batas waktu tidak aktif",
|
||||
"set-status-display-type": {
|
||||
"label": "Teks status",
|
||||
"submenu": {
|
||||
"artist": "Sedang mendengarkan {artist}",
|
||||
"title": "Sedang mendengarkan {song title}",
|
||||
"youtube-music": "Sedang mendengarkan YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Rich Presence Discord",
|
||||
"prompt": {
|
||||
@ -425,16 +481,16 @@
|
||||
"buttons": {
|
||||
"ok": "Oke"
|
||||
},
|
||||
"message": "Argh! Maaf, dowloadnya gagal…",
|
||||
"title": "Downloadnya error!"
|
||||
"message": "Argh! Maaf, dowload gagal…",
|
||||
"title": "Terjadi kesalahan dalam unduhan!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "Oke"
|
||||
},
|
||||
"detail": "({{playlistSize}} lagu-lagu)",
|
||||
"message": "Mengunduh Playlist {{playlistTitle}}",
|
||||
"title": "Download dimulai"
|
||||
"message": "Mengunduh Daftar Putar {{playlistTitle}}",
|
||||
"title": "Pengunduhan dimulai"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
@ -445,8 +501,8 @@
|
||||
"download-progress": "Mengunduh: {{percent}}%",
|
||||
"downloading": "Mengunduh…",
|
||||
"downloading-counter": "Mengunduh {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Mengunduh playlist \"{{playlistTitle}}\" - {{playlistSize}} lagu ({{playlistId}})",
|
||||
"error-while-downloading": "Gagal mengunduh \"{{author}} - {{title}}\": {{error}}",
|
||||
"downloading-playlist": "Mengunduh Daftar Putar \"{{playlistTitle}}\" - {{playlistSize}} lagu-lagu ({{playlistId}})",
|
||||
"error-while-downloading": "Gagal dalam mengunduh \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Folder {{playlistFolder}} sudah ada",
|
||||
"getting-playlist-info": "Mendapatkan informasi playlist…",
|
||||
"loading": "Memuat…",
|
||||
@ -501,7 +557,7 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Equalizer"
|
||||
"name": "Ekualiser"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Buat penggeser volume menjadi eksponen sehingga memudahkan memilih volume yang lebih rendah.",
|
||||
@ -576,7 +632,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "panah navigasi Selanjutnya/Sebelumnya terintegrasi pada antarmuka, layaknya peramban kesukaan Anda",
|
||||
"name": "Navigasi"
|
||||
"name": "Navigasi",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Kunjungi halaman sebelumnya"
|
||||
},
|
||||
"forward": {
|
||||
"title": "pergi ke halaman berikutnya"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Hapus tombol dan tautan masuk Google dari antarmuka",
|
||||
@ -600,6 +664,10 @@
|
||||
},
|
||||
"name": "Pemberitahuan"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Tingkatkan kinerja dengan mengaktifkan skrip eksperimental",
|
||||
"name": "Peningkatan kinerja [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Izinkan untuk memindahkan aplikasi ke mode gambar-dalam-gambar",
|
||||
"menu": {
|
||||
@ -664,7 +732,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Izinkan untuk mengubah kualitas video dengan tombol pada hamparan video",
|
||||
"name": "Pengubah Kualitas Video"
|
||||
"name": "Pengubah Kualitas Video",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "pengubah kualitas pemain terbuka"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Tambahkan dukungan scrobbling (mis. last.fm, Listenbrainz)",
|
||||
@ -831,7 +904,8 @@
|
||||
},
|
||||
"name": "Peralih Video",
|
||||
"templates": {
|
||||
"button": "Lagu"
|
||||
"button-song": "Lagu",
|
||||
"button-video": "video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -799,7 +799,7 @@
|
||||
},
|
||||
"name": "Myndbandsrofi",
|
||||
"templates": {
|
||||
"button": "Lag"
|
||||
"button-song": "Lag"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Miglioramenti visivi",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Personalizza titolo finestra",
|
||||
"prompt": {
|
||||
"label": "Inserisci un titolo della finestra personalizzato: (lascia vuoto per disattivare)",
|
||||
"placeholder": "Esempio: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Predefinito",
|
||||
"force-show": "Forza la visualizzazione",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Attiva la compressione audio (abbassa il volume delle parti più alte e alza quello delle parti più basse del segnale)",
|
||||
"name": "Compressore audio"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Supporto per l'utilizzo di servizi proxy di autenticazione",
|
||||
"menu": {
|
||||
"disable": "Disattiva adattatore proxy",
|
||||
"enable": "Attiva adattatore proxy",
|
||||
"hostname": {
|
||||
"label": "Nome host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Porta"
|
||||
}
|
||||
},
|
||||
"name": "Adattatore proxy di autenticazione",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Inserire hostname del server proxy locale (richiede riavvio):",
|
||||
"title": "Nome host del proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Inserire porta del server proxy locale (richiede riavvio):",
|
||||
"title": "Porta Proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Rende la barra di navigazione trasparente e sfuocata",
|
||||
"name": "Barra di navigazione trasparente"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Apri il selettore dei sottotitoli"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Sottotitoli cambiati in {{language}}",
|
||||
"caption-disabled": "Sottotitoli disattivati",
|
||||
"no-captions": "Nessun sottotitolo disponibile per questa canzone"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Scegli da quale uscita audio vuoi riprodurre i brani",
|
||||
"menu": {
|
||||
"device-selector": "Seleziona un'uscita"
|
||||
},
|
||||
"name": "Dispositivo di Output Personalizzato",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Scegli il dispositivo d'output da utilizzare",
|
||||
"title": "Scegli il dispositivo d'output"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Fa iniziare i brani in modalità \"pausa\"",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"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à"
|
||||
"set-inactivity-timeout": "Imposta il timeout di inattività",
|
||||
"set-status-display-type": {
|
||||
"label": "Testo dello status",
|
||||
"submenu": {
|
||||
"artist": "Stai ascoltando {artist}",
|
||||
"title": "Stai ascoltando {song title}",
|
||||
"youtube-music": "Ascoltando YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
@ -544,7 +601,7 @@
|
||||
"connected-users": "Utenti connessi",
|
||||
"disconnect": "Disconetti Music Together",
|
||||
"empty-user": "Utenti non connessi",
|
||||
"host": "Music Together Host",
|
||||
"host": "Host di Music Together",
|
||||
"join": "Unisciti a Music Together",
|
||||
"permission": {
|
||||
"all": "Consenti ai Guest di controllare la playlist e il player",
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Frecce di navigazione Avanti/Indietro integrate direttamente nell'interfaccia, come nel tuo browser preferito",
|
||||
"name": "Navigazione"
|
||||
"name": "Navigazione",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Vai alla pagina precedente"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Vai alla pagina successiva"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Rimuovi i pulsanti di accesso e i link di Google dall'interfaccia",
|
||||
@ -600,18 +665,22 @@
|
||||
},
|
||||
"name": "Notifiche"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Migliora le prestazioni abilitando gli script sperimentali",
|
||||
"name": "Miglioramento prestazioni [Beta]"
|
||||
},
|
||||
"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",
|
||||
"label": "Tasto di scelta rapida",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Hotkey"
|
||||
"hotkey": "Tasto di scelta rapida"
|
||||
},
|
||||
"label": "Scegliere un'hotkey per attivare Picture-in-picture",
|
||||
"title": "Picture-in-picture Hotkey"
|
||||
"title": "Tasto di scelta rapida per Picture-in-picture"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Salva la posizione della finestra",
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Permette di cambiare la qualità del video con un pulsante in sovrimpressione",
|
||||
"name": "Cambia qualità video"
|
||||
"name": "Cambia qualità video",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Apri il selettore di qualità del player"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Aggiunge il supporto per lo scrobbling (Last.fm, Listenbrainz ecc.)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Inserire il token utente per ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Usa artisti alternativi",
|
||||
"scrobble-alternative-title": "Usa titoli alternativi",
|
||||
"scrobble-other-media": "Scrobble altri media"
|
||||
},
|
||||
@ -720,7 +795,7 @@
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Salta i brani che non ti piacciono",
|
||||
"description": "Salta le canzoni non gradite",
|
||||
"name": "Salta i brani che non ti piacciono"
|
||||
},
|
||||
"skip-silences": {
|
||||
@ -746,6 +821,7 @@
|
||||
"label": "Effetto linea",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Fantasia",
|
||||
"tooltip": "Usa effetti grandi, simili a quelli di un'app sulla riga attuale"
|
||||
},
|
||||
"focus": {
|
||||
@ -767,6 +843,14 @@
|
||||
"label": "Rendi i testi perfettamente sincronizzati",
|
||||
"tooltip": "Calcola al millisecondo la visualizzazione della riga successiva (può avere un piccolo impatto sulle prestazioni)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Provider preferito",
|
||||
"none": {
|
||||
"label": "Nessuno",
|
||||
"tooltip": "Nessun provider preferito"
|
||||
},
|
||||
"tooltip": "Scegli quale provider predefinito utilizzare"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Testi in caratteri occidentali",
|
||||
"tooltip": "Qualora il testo fosse scritto in una lingua non occidentale, prova a visualizzarlo in caratteri latini."
|
||||
@ -799,6 +883,27 @@
|
||||
"description": "Aggiunge un widget TouchBar per gli utenti macOS",
|
||||
"name": "Touch Bar (per MacOS)"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Rende trasparente la finestra del programma",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacità",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tipo",
|
||||
"submenu": {
|
||||
"acrylic": "Acrilico",
|
||||
"mica": "Mica",
|
||||
"none": "Nessuno",
|
||||
"tabbed": "In scheda"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Player Trasparente"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integrazione con il plugin OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
@ -830,7 +935,8 @@
|
||||
},
|
||||
"name": "Selettore Brano/Video",
|
||||
"templates": {
|
||||
"button": "Brano"
|
||||
"button-song": "Brano",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "見た目の微調整",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "カスタムウィンドウタイトル",
|
||||
"prompt": {
|
||||
"label": "カスタムウィンドウタイトルを入力: (未入力の場合無効になります)",
|
||||
"placeholder": "例: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "デフォルト",
|
||||
"force-show": "強制的に表示",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "オーディオにコンプレッサーを適用します(信号での一番大きい部分の音量を下げ、小さい部分の音量を上げる)",
|
||||
"name": "オーディオコンプレッサー"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "認証プロキシサービスの利用サポート",
|
||||
"menu": {
|
||||
"disable": "プロキシアダプターを無効にする",
|
||||
"enable": "プロキシアダプターを有効にする",
|
||||
"hostname": {
|
||||
"label": "ホスト名"
|
||||
},
|
||||
"port": {
|
||||
"label": "ポート"
|
||||
}
|
||||
},
|
||||
"name": "認証プロキシアダプタ",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "ローカルプロキシサーバのホスト名を入力します(再起動が必要です):",
|
||||
"title": "プロキシホスト名"
|
||||
},
|
||||
"port": {
|
||||
"label": "ローカルプロキシサーバのポートを入力します(再起動が必要です):",
|
||||
"title": "プロキシポート"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "ナビゲーションバーを透明かつぼやけにします",
|
||||
"name": "ナビゲーションバーの曇り効果"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "字幕選択機を開く"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "字幕を{{language}}に変更しました",
|
||||
"caption-disabled": "字幕を無効にしました",
|
||||
"no-captions": "この曲には字幕がありません"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "ブラウザの戻る・進むボタンのようにUIからコントロールできるボタン",
|
||||
"name": "ナビゲーション"
|
||||
"name": "ナビゲーション",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "前のページに戻ります"
|
||||
},
|
||||
"forward": {
|
||||
"title": "次のページに進みます"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "インターフェースからGoogleのログインボタンとリンクを削除",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "通知"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "実験的スクリプトを有効にすることによってパフォーマンス改善します",
|
||||
"name": "パフォーマンス改善 [ベータ]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "アプリでピクチャ・イン・ピクチャを切り替えられるようになります",
|
||||
"menu": {
|
||||
@ -664,7 +712,12 @@
|
||||
}
|
||||
},
|
||||
"description": "ビデオオーバーレイのボタンを使用してビデオ品質を変更できるようにします",
|
||||
"name": "ビデオ品質チェンジャー"
|
||||
"name": "ビデオ品質チェンジャー",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "ビデオ品質チェンジャーを開きます"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "スクロブリング対応を追加します(例:last.fm、Listenbrainzなど)",
|
||||
@ -831,7 +884,8 @@
|
||||
},
|
||||
"name": "動画の切り替え",
|
||||
"templates": {
|
||||
"button": "曲"
|
||||
"button-song": "曲",
|
||||
"button-video": "動画"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "시각적 변경",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "사용자 정의 앱 제목",
|
||||
"prompt": {
|
||||
"label": "앱 제목으로 표시할 내용 : (빈 칸 일시 비활성화)",
|
||||
"placeholder": "예: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "기본",
|
||||
"force-show": "강제로 표시",
|
||||
@ -164,7 +171,7 @@
|
||||
"remove": "제거"
|
||||
},
|
||||
"remove-theme": "사용자 정의 테마를 제거하시겠습니까?",
|
||||
"remove-theme-message": "사용자 정의 테마가 제거됩니다. 계속하시겠습니까?"
|
||||
"remove-theme-message": "사용자 정의 테마를 제거하시겠습니까?"
|
||||
},
|
||||
"label": "테마",
|
||||
"submenu": {
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "오디오에 컴프레서를 적용합니다 (신호에서 가장 시끄러운 부분의 음량을 낮추고 가장 조용한 부분의 음량을 높임)",
|
||||
"name": "오디오 컴프레서"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "아이디/패스워드가 필요한 프록시를 지원합니다",
|
||||
"menu": {
|
||||
"disable": "프록시 어댑터 차단",
|
||||
"enable": "프록시 어댑터 허용",
|
||||
"hostname": {
|
||||
"label": "호스트 명"
|
||||
},
|
||||
"port": {
|
||||
"label": "포트"
|
||||
}
|
||||
},
|
||||
"name": "권한 프록시 어댑터",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "로컬 프록시 서버의 호스트명 을 입력 해주세요 (재시동이 필요합니다):",
|
||||
"title": "프록시 호스트명"
|
||||
},
|
||||
"port": {
|
||||
"label": "로컬 프록시 서버의 포트를 입력 해주세요 (재시동이 필요합니다):",
|
||||
"title": "프록시 포트"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "탐색 바를 투명하고 흐릿하게 만듭니다",
|
||||
"name": "탐색 바 흐림 효과"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "자막 선택기 열기"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "자막 언어가 {{language}}(으)로 변경되었습니다",
|
||||
"caption-disabled": "자막이 비활성화 되었습니다",
|
||||
"no-captions": "이 곡에는 자막이 없습니다"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "미디어 출력 장치 구성",
|
||||
"menu": {
|
||||
"device-selector": "장치 선택"
|
||||
},
|
||||
"name": "출력 장치 커스텀",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "사용할 미디어 출력 장치를 선택하세요",
|
||||
"title": "출력 장치 선택"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "노래를 '일시 정지' 모드로 시작하게 합니다",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "남은 재생 시간 숨기기",
|
||||
"hide-github-button": "GitHub 링크 버튼 숨기기",
|
||||
"play-on-youtube-music": "유튜브 뮤직에서 재생",
|
||||
"set-inactivity-timeout": "비활성 시간 제한 설정"
|
||||
"set-inactivity-timeout": "비활성 시간 제한 설정",
|
||||
"set-status-display-type": {
|
||||
"label": "상태 텍스트",
|
||||
"submenu": {
|
||||
"artist": "{아티스트} 듣는 중",
|
||||
"title": "{곡 제목} 듣는 중",
|
||||
"youtube-music": "YouTube Music 듣는 중"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "디스코드 활동 상태",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "브라우저에서처럼, UI에 직접 통합된 앞으로/뒤로 탐색하는 화살표",
|
||||
"name": "탐색"
|
||||
"name": "탐색",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "이전 페이지로 이동"
|
||||
},
|
||||
"forward": {
|
||||
"title": "다음 페이지로 이동"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "UI에서 Google 로그인 버튼 및 링크 제거하기",
|
||||
@ -601,7 +666,7 @@
|
||||
"name": "알림"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "위험한 스크립트를 활성화하여 성능을 개선합니다",
|
||||
"description": "실험적인 스크립트를 활성화하여 성능을 개선합니다",
|
||||
"name": "성능 개선 [베타]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
@ -668,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "영상 오버레이의 버튼으로 영상 품질을 변경할 수 있습니다",
|
||||
"name": "영상 품질 체인저"
|
||||
"name": "영상 품질 체인저",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "영상 품질 선택기 열기"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "스크로블링 지원을 추가합니다 (예: last.fm, Listenbrainz)",
|
||||
@ -687,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "ListenBrainz 유저 토큰 입력"
|
||||
},
|
||||
"scrobble-alternative-artist": "대체 아티스트 명 사용",
|
||||
"scrobble-alternative-title": "대체 제목 사용하기",
|
||||
"scrobble-other-media": "다른 미디어 스크로블하기"
|
||||
},
|
||||
@ -772,6 +843,14 @@
|
||||
"label": "가사를 최대한 정교하게 동기화",
|
||||
"tooltip": "다음 줄의 표시를 밀리초 단위로 계산합니다 (성능에 약간의 영향을 미칠 수 있음)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "선호하는 가사 제공자",
|
||||
"none": {
|
||||
"label": "없음",
|
||||
"tooltip": "선호하는 가사 제공자 없음"
|
||||
},
|
||||
"tooltip": "사용할 기본 가사 제공자를 선택하세요"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "가사 로마자 변환",
|
||||
"tooltip": "가사가 영어가 아닌 언어로 되어있는 경우, 로마자 표기를 표시합니다."
|
||||
@ -804,6 +883,27 @@
|
||||
"description": "macOS 사용자를 위한 TouchBar 위젯을 추가합니다",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "애플리케이션 창을 투명하게 만듭니다",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "불투명도",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "종류",
|
||||
"submenu": {
|
||||
"acrylic": "아크릴",
|
||||
"mica": "미카",
|
||||
"none": "없음",
|
||||
"tabbed": "탭"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "투명 플레이어"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "OBS의 확장인 Tuna와의 통합을 활성화합니다",
|
||||
"name": "Tuna OBS"
|
||||
@ -835,7 +935,8 @@
|
||||
},
|
||||
"name": "영상 전환",
|
||||
"templates": {
|
||||
"button": "노래"
|
||||
"button-song": "노래",
|
||||
"button-video": "영상"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -207,6 +207,10 @@
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Jeigu gros reklama, bus įrašo garsas išjungtas ir pagreitintas 16x",
|
||||
"name": "Reklamos Pagreitinimas"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Blokuoti visas reklamas ir seklius",
|
||||
"menu": {
|
||||
@ -215,6 +219,7 @@
|
||||
"name": "Reklamų blokuotojas"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Prideda Nepatinka, Patinka bei atžymėti Nepatika ir Patinka visoms dainoms grojaraštyje arba albume.",
|
||||
"name": "Albumo Veiksmai"
|
||||
},
|
||||
"album-color-theme": {
|
||||
@ -274,6 +279,56 @@
|
||||
},
|
||||
"name": "Aplinkos rėžimas"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Prideda Youtube Muzika palaikyma Amuse grojimo valdikliui pagal 6K Labs",
|
||||
"name": "Amuse (Platforma Dainininkams)",
|
||||
"response": {
|
||||
"query": "Amuse API serveris yra veikiantis. Parašykite Get /query kad gautumėte dainos informacija."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Prideda API serveri, kad būtų galima kontroliuoti grotuvą",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Leisti",
|
||||
"deny": "Neleisti"
|
||||
},
|
||||
"message": "Leisti {{ID}} ({{origin}}) prieiga prie API?",
|
||||
"title": "API įgaliojimo užklausa"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Įgaliojimo strategija",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Įgalioti per pirmą užklausą"
|
||||
},
|
||||
"none": {
|
||||
"label": "Nėra įgaliojimo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Serverio Pavadinimas"
|
||||
},
|
||||
"port": {
|
||||
"label": "Prievadas"
|
||||
}
|
||||
},
|
||||
"name": "API Serverio {Beta}",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Įveskite serverio pavadinimą (pavyzdžiui kaip 0.0.0.0) skirtą API serveriui:",
|
||||
"title": "Serverio Pavadinimas"
|
||||
},
|
||||
"port": {
|
||||
"label": "Įveskite prievadą API serveriui:",
|
||||
"title": "Prievadas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Pritaikyti garso kompresiją (sumažina garsiausių signalo dalių garsumą ir padidina švelniausių dalių garsumą)",
|
||||
"name": "Garso Kompresorius"
|
||||
@ -583,6 +638,17 @@
|
||||
"description": "Automatiškai praleidžia ne muzikines dalis, pvz., įžangą/užvedimą arba muzikinių vaizdo įrašų dalis, kuriose daina negrojama",
|
||||
"name": "Rėmėjų blokuotojas"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"refetch-btn": {
|
||||
"fetching": "Gaunama...",
|
||||
"normal": "Atgauti dainos žodžius"
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Dainos žodžiai gali būti nesinchronizuoti dėl trukmės nesutikimo.",
|
||||
"inexact": "⚠️ - Dainos žodžiai gali šiek tiek skirtis",
|
||||
"instrumental": "⚠️ – Tai instrumentinė daina"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Valdykite atkūrimą iš „Windows“ užduočių juostos",
|
||||
"name": "Užduočių juostos medijos valdymas"
|
||||
@ -618,7 +684,7 @@
|
||||
},
|
||||
"name": "Vaizdo įrašo perjungimas",
|
||||
"templates": {
|
||||
"button": "Daina"
|
||||
"button-song": "Daina"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
494
src/i18n/resources/lv.json
Normal file
494
src/i18n/resources/lv.json
Normal file
@ -0,0 +1,494 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Problēma ielādēt plaginu {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plagins {{pluginName}}::{{contextName}} ielādējās par{{ms}}ms",
|
||||
"initialize-failed": "Kļūda inicializējot plaginu \"{{pluginName}}\"",
|
||||
"load-all": "Ielādē visus plaginus",
|
||||
"load-failed": "Kļūda ielādējot plaginu \"{{pluginName}}\"",
|
||||
"loaded": "Plagins \"{{pluginName}}\" ielādēts",
|
||||
"unload-failed": "Kļūda izlādējot plaginu \"{{pluginName}}\"",
|
||||
"unloaded": "Plagins \"{{pluginName}}\" izlādēts"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "lv",
|
||||
"local-name": "Latviešu",
|
||||
"name": "Latvian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Lejupielāde pabeigta. DevTools atvērts"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n ielādēts"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Saņemta komanda pāri protokolam: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS fails \"{{cssFile}}\" neeksistē, ignorējas"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Lietotne neatbild\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Iztīra lietotnes kešu"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Logs mēģināja atvērties ārpuss ekrāna barjeriem, loga izmērs={{windowSize}}, ekrāna izškirtspēja={{displaySize}}, pozīcija={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Izvēlne ir noslēpta, izmantojiet 'Alt' lai to parādītu (vai 'Escape' ja izmanto lietotnes iekšējo izvēlni)",
|
||||
"message": "Izvēlnes noslēpšana ir ieslēgta",
|
||||
"title": "Izvēlnes noslēpšana ieslēgta"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Vēlāk",
|
||||
"restart-now": "Restartēt Tagad"
|
||||
},
|
||||
"detail": "Restartējiet lietotni lai aktivizētu plaginu {{pluginName}}",
|
||||
"message": "{{pluginName}} pieprasa restartēšanu",
|
||||
"title": "Vajadzīga restartēšana"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Iziet",
|
||||
"relaunch": "Restartēt",
|
||||
"wait": "Pagaidat"
|
||||
},
|
||||
"detail": "Atvainojamies par neērtībām! Lūdzu izvēlaties ko darīt:",
|
||||
"message": "Lietotne neatbild",
|
||||
"title": "Logs neatbild"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Izslēgt atjauninājumus",
|
||||
"download": "Lejupielādēt",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Jauna versija ir pieejama, un var tikt lejupielādēta šeit {{downloadLink}}",
|
||||
"message": "Pieejama jauna versija",
|
||||
"title": "Pieejams atjauninājums"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "Par",
|
||||
"navigation": {
|
||||
"label": "Navigācija",
|
||||
"submenu": {
|
||||
"copy-current-url": "Kopēt pašreizējo URL",
|
||||
"go-back": "Atgriezties",
|
||||
"go-forward": "Uz priekšu",
|
||||
"quit": "Iziet",
|
||||
"restart": "Restartēt lietotni"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Iestatījumi",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Paplašināti iestatījumi",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Iztīrīt kešu kad lietotne palaižas",
|
||||
"disable-hardware-acceleration": "Atslēgt aparatūras paātrinājumu",
|
||||
"edit-config-json": "Labot config.json",
|
||||
"override-user-agent": "Pārrakstīt lietotāja aģenta informāciju",
|
||||
"restart-on-config-changes": "Restartēt kad mainās konfigurācija",
|
||||
"set-proxy": {
|
||||
"label": "Iestatīt proxy",
|
||||
"prompt": {
|
||||
"label": "Ievadiet Proxy adresi: (atstajiet tukšu lai izslēgtu)",
|
||||
"placeholder": "Piemērs: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Iestatīt proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Ieslēgt DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Vienmēr priekšā",
|
||||
"auto-update": "Automātiski atjauninājumi",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Izvēlne tiks paslēpta kad palaidīsiet letotni atkal, izmantojiet [Alt] lai parādīt to (vai [`] ja izmantojiet lietotnes iekšējo izvēlni)",
|
||||
"title": "Izvēlnes paslepšana ieslēgta"
|
||||
},
|
||||
"label": "Paslēpt izvēlni"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Valoda tiks pamainīta pēc restartēšanas",
|
||||
"title": "Valoda pamainīta"
|
||||
},
|
||||
"label": "Valoda",
|
||||
"submenu": {
|
||||
"to-help-translate": "Gribat palīdzēt ar tulkošanu? Spiežat šeit"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Turpināt pēdējo dziesmu kad lietotne palaižas",
|
||||
"single-instance-lock": "Liegums palaists vairākas lietotnes",
|
||||
"start-at-login": "Palaist ieslēdzot datoru",
|
||||
"starting-page": {
|
||||
"label": "Sākuma lapa",
|
||||
"unset": "Nav iestatīts"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Minimizēt uz teknīti",
|
||||
"submenu": {
|
||||
"disabled": "Izslēgts",
|
||||
"enabled-and-hide-app": "Teknīte ieslēgta, paslēpt lietotnes logu",
|
||||
"enabled-and-show-app": "Ielsēgts un rādīt lietotni",
|
||||
"play-pause-on-click": "Atskaņot/Pauzēt piespiežot"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vizuāli Iestatījumi",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Noklusējums",
|
||||
"force-show": "Vienmēr rādīt",
|
||||
"hide": "Paslēpt",
|
||||
"label": "Like pogas"
|
||||
},
|
||||
"remove-upgrade-button": "Noslēpt YouTube Premium pogu",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Atcelt",
|
||||
"remove": "Noņemt"
|
||||
},
|
||||
"remove-theme": "Vai tiešām, gribat noņemt šo lietotāj tēmu?",
|
||||
"remove-theme-message": "Šis noņems lietotāja tēmu"
|
||||
},
|
||||
"label": "Tēma",
|
||||
"submenu": {
|
||||
"import-css-file": "Importēt CSS failu",
|
||||
"no-theme": "Bez tēmas"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Ieslēgts",
|
||||
"label": "Plagini",
|
||||
"new": "JAUNS"
|
||||
},
|
||||
"view": {
|
||||
"label": "Skats",
|
||||
"submenu": {
|
||||
"force-reload": "Piespiedu Restartēt",
|
||||
"reload": "Atsvaidzināt",
|
||||
"reset-zoom": "Noklusējuma izmērs",
|
||||
"toggle-fullscreen": "Pārslēgt pilnekrāna režīmu",
|
||||
"zoom-in": "Pietuvināt",
|
||||
"zoom-out": "Attālināt"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Nākošais",
|
||||
"play-pause": "Atskaņot/Pauzēt",
|
||||
"previous": "Iepriekšējais",
|
||||
"quit": "Iziet",
|
||||
"restart": "Restartēt Lietotni",
|
||||
"show": "Rādīt logu",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Ja reklāma atskaņojas, tad skaņa izlēdzas, un ātrums pārslēdzas uz 16x",
|
||||
"name": "Reklāmu paātrinājums"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Bloķēt visas reklāmas un trekerus uzreiz pēc instalēšanas",
|
||||
"menu": {
|
||||
"blocker": "Bloķētājs"
|
||||
},
|
||||
"name": "Reklāmu bloķētājs"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Pievieno Undislike, Dislike, Like, un Unlike pogas lai izdarītu to visām dziesmām Mūzikas sarakstā vai albumā",
|
||||
"name": "Darbības ar Albumu"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Iestata dinamisku motīvu un efektus, pamatojoties uz albuma krāsu paleti",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Krāsu attiecība",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Albuma krāsu tēma"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Pielieto apgaismojuma efektu, kas maigā krāsā atstaro video attēlu uz ekrāna fona",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Izplūšanas itensitāte",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pikseļi"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "buferis",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Caurspīdīgums",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kvalitāte",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pikseļi"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Izmērs",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Vienmērīga pāreja",
|
||||
"submenu": {
|
||||
"during": "Pa {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Izmantot pilnekrāna režīmu"
|
||||
}
|
||||
},
|
||||
"name": "Ambientais Režīms"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Pievieno YouTube Music atblastu priekš Amuse \"tagad spēlē\" no 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Amuse API serveris ir palaists. GET /query lai dabūtu dziesmas info."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Pievieno API serveri lai kontrolētu atskaņotāju",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Atļaut",
|
||||
"deny": "Aizliegt"
|
||||
},
|
||||
"message": "Vai atļaut {{ID}} ({{origin}}) piekļūt pie API?",
|
||||
"title": "API autorizācijas pieprasījums"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Autorizācijas veids",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Autorizēt pie pirmā pieprasījuma"
|
||||
},
|
||||
"none": {
|
||||
"label": "Bez autorizācijas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Hosta nosaukums"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ports"
|
||||
}
|
||||
},
|
||||
"name": "API Serveris [BETA]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Ievadiet hosta vārdu (piemēram 0.0.0.0) priekš API severa:",
|
||||
"title": "Hosta vārds"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ievadiet portu priekš API servera:",
|
||||
"title": "Ports"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Pievieno saspiešanu pie audio (samazina skaļāko audio daļu skaļumu un palielina mīkstāko daļu skaļumu)",
|
||||
"name": "Audio saspiedējs"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Atbalsts priekš proxy servisu autentifikācijas",
|
||||
"menu": {
|
||||
"disable": "Izslēgt Proxy Adapteri",
|
||||
"enable": "Ieslēgt Proxy Adapteri",
|
||||
"hostname": {
|
||||
"label": "Hosta vārds"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ports"
|
||||
}
|
||||
},
|
||||
"name": "Autorizācijas Proxy Adapteris",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Ievadiet hosta vārdu priekš lokālā proxy servera (nepieciešama restartēšana):",
|
||||
"title": "Proxy hosta vārds"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ievadiet portu priekš lokālā proxy servera (nepieciešams restartēt):",
|
||||
"title": "Proxy Ports"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Taisa navigāzijas joslu caurspīdīgu un izplūdušu",
|
||||
"name": "Izplūdusi Navigācijas Josla"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Apiet YouTube vecuma pārbaudi",
|
||||
"name": "Apiet Vecuma Ierobežojumus"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Subtitru izvēlne priekš YouTube Music audio ceļiem",
|
||||
"menu": {
|
||||
"autoload": "Automātiski izvēlēties pēdējo izmantotos subtitrus",
|
||||
"disable-captions": "Bez subtitriem pēc noklusējuma"
|
||||
},
|
||||
"name": "Subtitru Izvēlne",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Tekošā subtitru valoda: {{language}}",
|
||||
"none": "Neviens",
|
||||
"title": "Izvēlieties subtitru valodu"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Atvērt subtitru izvēlni"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Subtitri pamainīti uz {{language}}",
|
||||
"caption-disabled": "Subtitri izslēgti",
|
||||
"no-captions": "Subtitri nav pieejami priekš šīs dziesmas"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Vienmēr iestatīt malējo paneli kompaktajā režīmā",
|
||||
"name": "Kompakts malējais panelis"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Maiga pāreja starp dziesmām",
|
||||
"menu": {
|
||||
"advanced": "Paplašināts"
|
||||
},
|
||||
"name": "Maiga pāreja [BETA]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Ieplūšanas ilgums (ms)",
|
||||
"fade-out-duration": "Izplūšanas ilgums (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Pārejas stiprums",
|
||||
"linear": "Lineārs",
|
||||
"logarithmic": "Logaritmisks"
|
||||
},
|
||||
"seconds-before-end": "Maigas pārejas N sekundes pirms beigām"
|
||||
},
|
||||
"title": "Maigas pārejas iestatījumi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Palaiž dziesmu nopauzētu",
|
||||
"menu": {
|
||||
"apply-once": "Iedarbojas tikai palaišanas brīdī"
|
||||
},
|
||||
"name": "Atspējot automātisku atskaņošanu"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Mēģināja pieslēgties jau ar aktīvu savienojumu",
|
||||
"connected": "Pieslēgts pie Discord",
|
||||
"disconnected": "Atslēgts no Discord"
|
||||
},
|
||||
"description": "Parādiet saviem draugiem ko jūs klausaties ar Rich Presence",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automātiska atkārtota pieslēgšanās",
|
||||
"clear-activity": "Attīrīt aktivitāti",
|
||||
"clear-activity-after-timeout": "Attīrīt aktivitāti pēc taimauta",
|
||||
"connected": "Pievienojies",
|
||||
"disconnected": "Atvienojies",
|
||||
"hide-duration-left": "Paslēpt cik palika laika",
|
||||
"hide-github-button": "Paslēpt GitHub saites pogu",
|
||||
"play-on-youtube-music": "Atskaņot uz YouTube Music",
|
||||
"set-inactivity-timeout": "Iestatīt neaktivitātes taimeru"
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Ievadiet neaktivitātes taimeru sekundēs:",
|
||||
"title": "Iestatīt neaktivitātes taimeru"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Atvainojamies, lejupielāde neizdevās…",
|
||||
"title": "Lejupielādes kļūda!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}}Dziesmas)",
|
||||
"message": "Lejupielādē atskaņošanas sarakstu {{playlistTitle}}",
|
||||
"title": "Lejupielāde sākta"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konvertēšana: {{percent}}%",
|
||||
"converting": "Konvertēšana…",
|
||||
"done": "Pabeigts: {{filePath}}",
|
||||
"download-info": "Lejupielādē {{artist}} - {{title}}{{videoId}}",
|
||||
"download-progress": "Lejupielāde: {{percent}}%",
|
||||
"downloading": "Lejupielādē…",
|
||||
"downloading-counter": "Notiek lejupielāde {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Atskaņošanas saraksta lejupielāde \"{{playlistTitle}}\" - {{playlistSize}} songs ({{playlistId}})",
|
||||
"error-while-downloading": "Kļūda lejuplādējot \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Mape {{playlistFolder}} jau eksistē",
|
||||
"getting-playlist-info": "Tiek iegūta atskaņošanas saraksta informācija…",
|
||||
"loading": "Ielādē…",
|
||||
"playlist-has-only-one-song": "Sarakstā ir tikai viena dziesma, tā tiek lejupielādēta uzreiz",
|
||||
"playlist-id-not-found": "Neizdevās atrast atskaņošanas saraksta ID",
|
||||
"playlist-is-empty": "Atskaņošanas saraksts ir tukšs",
|
||||
"playlist-is-mix-or-private": "Neizdevās iegūt atskaņošanas saraksta informāciju: pārliecinieties, ka tas nav privāts vai \"Jums izveidotā izlase\" saraksts.\n\n{{error}}",
|
||||
"preparing-file": "Faila sagatavošana…",
|
||||
"saving": "Saglabāšana…",
|
||||
"video-id-not-found": "Video nav atrasts",
|
||||
"writing-id3": "Rakstam ID3 tegus…"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -2,9 +2,13 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "{{pluginName}}::{{contextName}} പ്ലഗിൻ നടപ്പിലാക്കുന്നതിൽ പരാജയപ്പെട്ടു",
|
||||
"executed-at-ms": "{{pluginName}}::{{contextName}} പ്ലഗിൻ {{ms}}ms-ൽ നടപ്പിലാക്കി",
|
||||
"initialize-failed": "{{pluginName}}എന്ന പ്ലഗിൻ തുടങ്ങുന്നതിൽ പരാജയപെട്ടു",
|
||||
"load-all": "എല്ലാ പ്ലേഗിനും ലോഡ് ചെയ്യുന്നു",
|
||||
"load-failed": "\"{{pluginName}}\" പ്ലഗിൻ ലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
|
||||
"loaded": "{{pluginName}} എന്ന പ്ലഗിൻ ലോഡ് ചെയ്തു",
|
||||
"unload-failed": "\"{{pluginName}}\" പ്ലഗിൻ അൺലോഡ് ചെയ്യുന്നതിൽ പരാജയപ്പെട്ടു",
|
||||
"unloaded": "{{pluginName}} എന്ന പ്ലഗിൻ അൺലോഡ് ചെയ്തു"
|
||||
}
|
||||
}
|
||||
@ -50,7 +54,77 @@
|
||||
"restart-now": "ഇപ്പോൾ പുനരാരംഭിക്കുക"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" പ്രവർത്തിയിൽ ആകാൻ restart വേണ്ടിയിരിക്കുന്നു",
|
||||
"message": "\"{{pluginName}}\" restart ആവശ്യപെടുന്നു"
|
||||
"message": "\"{{pluginName}}\" restart ആവശ്യപെടുന്നു",
|
||||
"title": "പുനരാരംഭിക്കേണ്ടതുണ്ട്"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "ഉപേക്ഷിക്കുക",
|
||||
"relaunch": "പുനരാരംഭിക്കുക",
|
||||
"wait": "കാത്തിരിക്കൂ"
|
||||
},
|
||||
"detail": "അസൗകര്യത്തിൽ ഞങ്ങൾ ഖേദിക്കുന്നു! എന്തുചെയ്യണമെന്ന് ദയവായി തിരഞ്ഞെടുക്കുക:",
|
||||
"message": "ആപ്ലിക്കേഷൻ പ്രതികരിക്കുന്നില്ല",
|
||||
"title": "വിൻഡോ പ്രതികരിക്കുന്നില്ല"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "അപ്ഡേറ്റുകൾ പ്രവർത്തനരഹിതമാക്കുക",
|
||||
"download": "ഡൗൺലോഡ് ചെയ്യുക",
|
||||
"ok": "ശരി"
|
||||
},
|
||||
"detail": "ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്, അത് {{downloadLink}} എന്ന വിലാസത്തിൽ നിന്ന് ഡൗൺലോഡ് ചെയ്യാം",
|
||||
"message": "ഒരു പുതിയ പതിപ്പ് ലഭ്യമാണ്",
|
||||
"title": "അപ്ഡേറ്റ് ലഭ്യമാണ്"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"navigation": {
|
||||
"label": "നാവിഗേഷൻ",
|
||||
"submenu": {
|
||||
"copy-current-url": "നിലവിലെ URL പകർത്തുക",
|
||||
"go-back": "മടങ്ങിപ്പോവുക",
|
||||
"go-forward": "മുന്നോട്ട് പോകുക",
|
||||
"quit": "പുറത്തുകടക്കുക",
|
||||
"restart": "ആപ്പ് പുനരാരംഭിക്കുക"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "ഓപ്ഷനുകൾ",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "വിപുലമായ ഓപ്ഷനുകൾ",
|
||||
"submenu": {
|
||||
"restart-on-config-changes": "കോൺഫിഗറേഷൻ മാറ്റങ്ങൾ വരുത്തുമ്പോൾ പുനരാരംഭിക്കുക"
|
||||
}
|
||||
},
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "അടുത്ത ലോഞ്ചിൽ മെനു മറയ്ക്കപ്പെടും, അത് കാണിക്കാൻ [Alt] ഉപയോഗിക്കുക (അല്ലെങ്കിൽ ഇൻ-ആപ്പ്-മെനു ഉപയോഗിക്കുകയാണെങ്കിൽ ബാക്ക്ടിക്ക് [`])",
|
||||
"title": "മെനു മറയ്ക്കൽ സജീവമാക്കി"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "പ്രവർത്തനക്ഷമമാക്കി"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"video-toggle": {
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "ക്രമപ്പെടുത്തൽ",
|
||||
"submenu": {
|
||||
"left": "ഇടത്",
|
||||
"middle": "മധ്യഭാഗം",
|
||||
"right": "വലത്"
|
||||
}
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"button-video": "വീഡിയോ"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} dilaksanakan pada {{ms}}ms",
|
||||
"initialize-failed": "Gagal untuk memulakan plugin \"{{pluginName}}\"",
|
||||
"load-all": "Memuatkan semua plugin",
|
||||
"load-failed": "Gagal untuk memuatkan \"{{pluginName}}\"",
|
||||
"loaded": "Plugin \"{{pluginName}}\" dimuatkan",
|
||||
"unload-failed": "Gagal untuk memunggah plugin \"{{pluginName}}\"",
|
||||
"unloaded": "Plugin \"{{pluginName}}\" dipunggahkan"
|
||||
@ -31,19 +32,28 @@
|
||||
"theme": {
|
||||
"css-file-not-found": "Fail CSS \"{{cssFile}}\" tidak wujud, mengabaikan"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Ralat Tidak Bertindak Balas!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Membersihkan cache aplikasi"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Tetingkap cuba dirender di luar skrin, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu telah disembunyikan, guna 'Alt' untuk menunjukkannya (atau 'Escape' jika menggunakan In-App Menu)"
|
||||
"detail": "Menu telah disembunyikan, guna 'Alt' untuk menunjukkannya (atau 'Escape' jika menggunakan In-App Menu)",
|
||||
"message": "Sembunyikan Menu telah diaktifkan",
|
||||
"title": "Sembunyikan Menu diaktifkan"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Nanti",
|
||||
"restart-now": "Restart Sekarang"
|
||||
},
|
||||
"detail": "Plugin {{pluginName}} perlu dimulakan semula untuk berkuatkuasa",
|
||||
"message": "\"{{pluginName}}\" perlu dimulakan semula",
|
||||
"title": "Mulakan Semula Diperlukan"
|
||||
},
|
||||
@ -59,10 +69,13 @@
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Lumpuhkan Kemas Kini",
|
||||
"download": "Muat Turun",
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "Versi baharu kini tersedia dan boleh dimuat turun di {{downloadLink}}"
|
||||
"detail": "Versi baharu kini tersedia dan boleh dimuat turun di {{downloadLink}}",
|
||||
"message": "Versi baharu tersedia",
|
||||
"title": "Kemas Kini Tersedia"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
@ -73,7 +86,8 @@
|
||||
"copy-current-url": "Salin URL semasa",
|
||||
"go-back": "Belakang",
|
||||
"go-forward": "Depan",
|
||||
"quit": "Keluar"
|
||||
"quit": "Keluar",
|
||||
"restart": "Mula Semula Aplikasi"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
@ -82,20 +96,30 @@
|
||||
"advanced-options": {
|
||||
"label": "Tetapan Lanjutan",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Tetapkan semula cache aplikasi apabila aplikasi dimulakan",
|
||||
"disable-hardware-acceleration": "Lumpuhkan pecutan perkakasan",
|
||||
"edit-config-json": "Ubah suai config.json",
|
||||
"override-user-agent": "Gantikan Ejen Pengguna",
|
||||
"restart-on-config-changes": "Mulakan semula pada perubahan konfigurasi",
|
||||
"set-proxy": {
|
||||
"label": "Tetapkan proksi",
|
||||
"prompt": {
|
||||
"label": "Masukkan Alamat Proksi: (biarkan kosong untuk menyahdayakan)",
|
||||
"placeholder": "Contoh: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Set proksi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Togol DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Sentiasa di atas",
|
||||
"auto-update": "Kemas Kini Automatik",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu akan disembunyikan pada pelancaran seterusnya, gunakan [Alt] untuk menunjukkannya (atau backtick [`] jika menggunakan dalam aplikasi-menu)"
|
||||
}
|
||||
"message": "Menu akan disembunyikan pada pelancaran seterusnya, gunakan [Alt] untuk menunjukkannya (atau backtick [`] jika menggunakan dalam aplikasi-menu)",
|
||||
"title": "Sembunyikan Menu Diaktifkan"
|
||||
},
|
||||
"label": "Sembunyikan Menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
@ -108,12 +132,18 @@
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Mulakan semula lagu terakhir apabila aplikasi dimulakan",
|
||||
"single-instance-lock": "Kunci Kejadian Tunggal",
|
||||
"start-at-login": "Mulakan semasa log masuk",
|
||||
"starting-page": {
|
||||
"label": "Halaman Permulaan"
|
||||
"label": "Halaman Permulaan",
|
||||
"unset": "Nyahset"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Dulang",
|
||||
"submenu": {
|
||||
"disabled": "Dilumpuhkan",
|
||||
"enabled-and-hide-app": "Didayakan dan sembunyikan aplikasi",
|
||||
"enabled-and-show-app": "Didayakan dan paparkan aplikasi",
|
||||
"play-pause-on-click": "Main / Hentikan pada klik"
|
||||
}
|
||||
},
|
||||
@ -122,20 +152,45 @@
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "Lalai",
|
||||
"hide": "Sembunyi"
|
||||
"force-show": "Paksa pamer",
|
||||
"hide": "Sembunyi",
|
||||
"label": "Suka butang"
|
||||
},
|
||||
"remove-upgrade-button": "Buang butang naik taraf",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Batalkan",
|
||||
"remove": "Padam"
|
||||
}
|
||||
},
|
||||
"remove-theme": "Adakah anda pasti mahu mengalih keluar tema tersuai?",
|
||||
"remove-theme-message": "Ini akan membuang tema tersuai"
|
||||
},
|
||||
"label": "Tema"
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Import fail CSS tersuai",
|
||||
"no-theme": "Tiada tema"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Didayakan",
|
||||
"label": "Pemalam",
|
||||
"new": "BARU"
|
||||
},
|
||||
"view": {
|
||||
"label": "Pandangan",
|
||||
"submenu": {
|
||||
"force-reload": "Paksa Muat Semula",
|
||||
"reload": "Muat semula",
|
||||
"reset-zoom": "Saiz Sebenar",
|
||||
"toggle-fullscreen": "Togol Skrin Penuh",
|
||||
"zoom-in": "Zum Masuk",
|
||||
"zoom-out": "Zum Keluar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
@ -143,23 +198,153 @@
|
||||
"play-pause": "Main / Jeda",
|
||||
"previous": "Sebelumnya",
|
||||
"quit": "Keluar",
|
||||
"restart": "Mulakan Semula Aplikasi"
|
||||
"restart": "Mulakan Semula Aplikasi",
|
||||
"show": "Papar tetingkap",
|
||||
"tooltip": {
|
||||
"default": "YouTube Muzik",
|
||||
"with-song-info": "YouTube Muzik : {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ambient-mode": {
|
||||
"ad-speedup": {
|
||||
"description": "Jika iklan dimainkan, ia meredamkan audio dan menetapkan kelajuan main semula kepada 16x",
|
||||
"name": "Kelajuan Iklan"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Sekat semua iklan dan penjejakan di luar kotak",
|
||||
"menu": {
|
||||
"blocker": "Penyekat"
|
||||
},
|
||||
"name": "Penyekat Iklan"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Menambah butang Suka dan Tidak Suka pada semua lagu dalam senarai main atau album",
|
||||
"name": "Tindakan Album"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Menggunakan tema dinamik dan kesan visual berdasarkan palet warna album",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Nisbah campuran warna",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Tema Warna Album"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Menggunakan kesan pencahayaan dengan menghantar warna lembut daripada video, ke latar belakang skrin anda",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Jumlah Kekaburan",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}}piksel"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Kelegapan"
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kualiti"
|
||||
"label": "Kualiti",
|
||||
"submenu": {
|
||||
"pixels": "{{kualiti}} piksel"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Saiz"
|
||||
"label": "Saiz",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Kelancaran transisi",
|
||||
"submenu": {
|
||||
"during": "Semasa {{masaInterpolasi}}s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Menggunakan skrin penuh"
|
||||
}
|
||||
},
|
||||
"name": "Mod Sekitaran"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Menambahkan sokongan YouTube Music untuk widget sedang dimain Amuse oleh 6K Labs"
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Perlukan server API untuk mengawal pemain",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Benarkan",
|
||||
"deny": "Nafi"
|
||||
},
|
||||
"message": "Benarkan {{ID}} {{origin}} untuk akses API?",
|
||||
"title": "Permintaan pemberian kuasa kepada API"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Strategi Pengesahan",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Pengesahan pada permintaan pertama"
|
||||
},
|
||||
"none": {
|
||||
"label": "Tiada pengesahan"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Nama perumah"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Server API [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Masukkan nama perumah (seperti 0.0.0.0) untuk server API:",
|
||||
"title": "Nama perumah"
|
||||
},
|
||||
"port": {
|
||||
"label": "Masukkan port untuk API server:",
|
||||
"title": "Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Laksanakan pemampatan untuk audio (mengurangkan kelantangan bagi bahagian signal yang kuat dan menaikkan kelantangan untuk bahagian yang lembut)",
|
||||
"name": "Pemampat Audio"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"menu": {
|
||||
"hostname": {
|
||||
"label": "Nama perumah"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"name": "Kaburkan Bar navigasi"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Pintas verifikasi umur Youtube",
|
||||
"name": "Pintas Sekatan Umur"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Pemilih kapsyen untuk trek audio Youtube Music",
|
||||
"menu": {
|
||||
"autoload": "Pilih kapsyen terakhir diguna secara automatik",
|
||||
"disable-captions": "Tiada kapsyen secara lalai"
|
||||
},
|
||||
"name": "Pemilih kapsyen",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Bahasa kapsyen sekarang: {{bahasa}}",
|
||||
"none": "Tiada",
|
||||
"title": "Pilih bahasa kapsyen"
|
||||
}
|
||||
}
|
||||
@ -196,7 +381,7 @@
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"button": "Lagu"
|
||||
"button-song": "Lagu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -577,7 +577,7 @@
|
||||
},
|
||||
"name": "Videoveksling",
|
||||
"templates": {
|
||||
"button": "Spor"
|
||||
"button-song": "Spor"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -333,6 +333,30 @@
|
||||
"description": "अडियोमा कम्प्रेसन लागू गर्नुहोस् (सङ्केतको सबैभन्दा चर्को भागहरूको भोल्युम कम गर्दछ र नरम भागहरूको भोल्युम बढाउँछ)",
|
||||
"name": "अडियो कम्प्रेसर"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "प्रमाणीकरण प्रोक्सी सेवाहरूको प्रयोगको लागि समर्थन",
|
||||
"menu": {
|
||||
"disable": "प्रोक्सी एडाप्टर बन्द गर्नुहोस्",
|
||||
"enable": "प्रोक्सी एडाप्टर खोल्नुहोस्",
|
||||
"hostname": {
|
||||
"label": "होस्टनाम"
|
||||
},
|
||||
"port": {
|
||||
"label": "पोर्ट"
|
||||
}
|
||||
},
|
||||
"name": "प्रमाणीकरण प्रोक्सी एडाप्टर",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "स्थानीय प्रोक्सी सर्भरको लागि होस्टनाम प्रविष्ट गर्नुहोस् (पुनःसुरु गर्न आवश्यक छ):",
|
||||
"title": "प्रोक्सी होस्टनाम"
|
||||
},
|
||||
"port": {
|
||||
"label": "स्थानीय प्रोक्सी सर्भरको लागि पोर्ट प्रविष्ट गर्नुहोस् (पुनःसुरु गर्न आवश्यक छ):",
|
||||
"title": "प्रोक्सी पोर्ट"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "नेभिगेसन बारलाई पारदर्शी र धुवाँलो बनाउँछ",
|
||||
"name": "ब्लर नेभिगेसन बार"
|
||||
@ -357,6 +381,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "क्याप्सन चयनकर्ता खोल्नुहोस्"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "क्याप्सन {{language}} मा परिवर्तन भयो",
|
||||
"caption-disabled": "क्याप्सन उपलब्ध छैन",
|
||||
"no-captions": "यो गीतको लागि कुनै क्याप्सन उपलब्ध छैन।"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +605,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "अर्को/पछाडि नेभिगेसन तपाईँको मनपर्ने ब्राउजरमा जस्तै सिधा इन्टरफेसमा एकीकृत तीरहरू",
|
||||
"name": "नेभिगेसन"
|
||||
"name": "नेभिगेसन",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "अघिल्लो पृष्ठमा जानुहोस्"
|
||||
},
|
||||
"forward": {
|
||||
"title": "अर्को पृष्ठमा जानुहोस्"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "इन्टरफेसबाट गुगल लगइन बटन र लिङ्कहरू हटाउनुहोस्",
|
||||
@ -600,6 +637,10 @@
|
||||
},
|
||||
"name": "सूचनाहरू"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "प्रयोगात्मक स्क्रिप्टहरू सक्रिय गरेर कार्यसम्पादन सुधार गर्नुहोस्",
|
||||
"name": "कार्यसम्पादन सुधार [प्रयोगात्मक]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "एपलाई पिक्चर-इन-पिक्चर मोडमा परिवर्तन गर्न अनुमति दिन्छ",
|
||||
"menu": {
|
||||
@ -683,6 +724,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "ListenBrainz प्रयोगकर्ता टोकन प्रविष्ट गर्नुहोस्"
|
||||
},
|
||||
"scrobble-alternative-title": "वैकल्पिक शीर्षकहरू प्रयोग गर्नुहोस्",
|
||||
"scrobble-other-media": "अन्य मिडियालाई स्क्रबल गर्नुहोस्"
|
||||
},
|
||||
"name": "स्क्रबबलर",
|
||||
@ -767,6 +809,10 @@
|
||||
"label": "गीतशब्दहरू पूर्ण रूपमा समक्रमित बनाउनुहोस्",
|
||||
"tooltip": "अर्को लाइनको प्रदर्शनलाई मिलिसेकेन्डमा गणना गर्नुहोस् (यसले प्रदर्शनमा हल्का प्रभाव पार्न सक्छ)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "रोमनकृत शब्दहरू",
|
||||
"tooltip": "यदि गीतका शब्दहरू फरक भाषामा छन् भने, ल्याटिन संस्करण प्रदर्शन गर्ने प्रयास गर्नुहोस्।"
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "गीतशब्दहरू अपर्याप्त भए पनि देखाउनुहोस्",
|
||||
"tooltip": "यदि गीत फेला परेन भने, प्लगिनले फरक खोजी सोधपुछसँग पुन: प्रयास गर्छ।\nदोस्रो प्रयासको परिणाम ठ्याक्कै मिल्न नपनि सक्छ।"
|
||||
@ -799,6 +845,10 @@
|
||||
"description": "OBS को टुना प्लगइनसँग एकीकरण",
|
||||
"name": "टुना OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "गीत बजाउँदा प्लेयरलाई पप अप हुनबाट रोक्छ",
|
||||
"name": "अवरोधरहित संगीत प्लेयर"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "भिडियो/गीत मोड बीच स्विच गर्न बटन थप्दछ। वैकल्पिक रूपमा सम्पूर्ण भिडियो ट्याब हटाउन पनि सक्छ",
|
||||
"menu": {
|
||||
@ -822,7 +872,8 @@
|
||||
},
|
||||
"name": "भिडियो टगल",
|
||||
"templates": {
|
||||
"button": "गीत"
|
||||
"button-song": "गीत",
|
||||
"button-video": "भिडियो"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Visuele Aanpassingen",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Aangepaste venstertitel",
|
||||
"prompt": {
|
||||
"label": "Voer aangepaste venstertitel in: (laat leeg om uit te schakelen)",
|
||||
"placeholder": "Voorbeeld: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Standaard",
|
||||
"force-show": "Forceren weergeven",
|
||||
@ -163,12 +170,12 @@
|
||||
"cancel": "Annuleren",
|
||||
"remove": "Verwijderen"
|
||||
},
|
||||
"remove-theme": "Weet je zeker dat je het aangepaste thema wilt verwijderen?",
|
||||
"remove-theme-message": "Dit verwijderd het aangepaste thema"
|
||||
"remove-theme": "Weet je zeker dat je het aangepaste thema wil verwijderen?",
|
||||
"remove-theme-message": "Dit verwijdert het aangepaste thema"
|
||||
},
|
||||
"label": "Thema",
|
||||
"submenu": {
|
||||
"import-css-file": "Aangepast CSS-bestand importeren",
|
||||
"import-css-file": "Importeer aangepast CSS-bestand",
|
||||
"no-theme": "Geen thema"
|
||||
}
|
||||
}
|
||||
@ -178,11 +185,11 @@
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Ingeschakeld",
|
||||
"label": "Plugins",
|
||||
"label": "Invoegtoepassingen",
|
||||
"new": "NIEUW"
|
||||
},
|
||||
"view": {
|
||||
"label": "Weergave",
|
||||
"label": "Weergeven",
|
||||
"submenu": {
|
||||
"force-reload": "Forceer Herladen",
|
||||
"reload": "Herladen",
|
||||
@ -195,31 +202,31 @@
|
||||
},
|
||||
"tray": {
|
||||
"next": "Volgende",
|
||||
"play-pause": "Afspelen/Pauzeren",
|
||||
"play-pause": "Afspelen/Pauze",
|
||||
"previous": "Vorige",
|
||||
"quit": "Afsluiten",
|
||||
"restart": "Applicatie Opnieuw Opstarten",
|
||||
"show": "Venster Weergeven",
|
||||
"restart": "Herstarten App",
|
||||
"show": "Weergeven Venster",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
"with-song-info": "YouTube Music: {{artiest}} - {{titel}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Wanneer een advertentie afspeelt, dempt het geluid en versnelt de playback naar 16x",
|
||||
"name": "Snellere advertenties"
|
||||
"description": "Bij het afspelen van een advertentie wordt het geluid gedempt en wordt de afspeelsnelheid wordt verhoogd naar 16x",
|
||||
"name": "Advertenties versnellen"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Blokkeer alle advertenties en tracking vanuit de doos",
|
||||
"description": "Blokkeer alle advertenties en trackers buiten het kader",
|
||||
"menu": {
|
||||
"blocker": "Blokkeerder"
|
||||
},
|
||||
"name": "Advertentieblokkeerder"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Voegt knoppen toe voor Ondisliken, Disliken, Liken en Ontliken om dit toe te passen op alle nummers in een afspeellijst of album",
|
||||
"description": "Voegt niet-Niet Leuk, Niet Leuk, Leuk, niet-Leuk knoppen toe om dit toe te passen op alle nummers in een afspeellijst of album",
|
||||
"name": "Albumacties"
|
||||
},
|
||||
"album-color-theme": {
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Past compressie toe op audio (verlaagt het volume van de luidste delen van het signaal en verhoogt het volume van de zachtste delen)",
|
||||
"name": "Audiocompressor"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Ondersteuning voor het gebruik van authenticatie proxy diensten",
|
||||
"menu": {
|
||||
"disable": "Proxy adapter uitschakelen",
|
||||
"enable": "Proxy adapter inschakelen",
|
||||
"hostname": {
|
||||
"label": "Hostnaam"
|
||||
},
|
||||
"port": {
|
||||
"label": "Poort"
|
||||
}
|
||||
},
|
||||
"name": "Proxy-authenticatieadapter",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Hostname voor lokale proxy server (vereist herstart):",
|
||||
"title": "Proxy hostnaam"
|
||||
},
|
||||
"port": {
|
||||
"label": "Poort voor lokale proxy server (herstart vereist):",
|
||||
"title": "Proxy poort"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Maakt de navigatiebalk transparant en wazig",
|
||||
"name": "Vervagen Navigatiebalk"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Open ondertitelkeuze"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Ondertitel veranderd naar {{language}}",
|
||||
"caption-disabled": "Ondertitels uitgeschakeld",
|
||||
"no-captions": "Geen ondertitels beschikbaar voor dit lied"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Volgende/Vorige navigatiepijlen rechtstreeks geïntegreerd in de interface, zoals in je favoriete browser",
|
||||
"name": "Navigatie"
|
||||
"name": "Navigatie",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Ga naar de vorige pagina"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Ga naar de volgende pagina"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Verwijder Google aanmeldknoppen en -links uit de interface",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "Meldingen"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Verbeter prestaties door experimentale scripts aan te zetten",
|
||||
"name": "Prestatie-verbetering"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Laat de app toe om naar picture-in-picture modus om te schakelen",
|
||||
"menu": {
|
||||
@ -664,7 +712,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Maakt het mogelijk de videokwaliteit te wijzigen met een knop op de video-overlay",
|
||||
"name": "Videokwaliteitwisselaar"
|
||||
"name": "Videokwaliteitwisselaar",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Open speler kwaliteitswisselaar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Ondersteuning voor scrobbling toevoegen (etc. last.fm, Listenbrainz)",
|
||||
@ -768,6 +821,11 @@
|
||||
"label": "Zorg ervoor dat de songteksten perfect gesynchroniseerd zijn",
|
||||
"tooltip": "Bereken tot op de milliseconde de weergave van de volgende regel (kan een kleine impact hebben op de prestaties)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"none": {
|
||||
"tooltip": "Geen provider beschikbaar"
|
||||
}
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romaniseer songtekst",
|
||||
"tooltip": "Als de songtekst in een andere taal is, probeer dan een Latijnse versie weer te geven."
|
||||
@ -805,7 +863,7 @@
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Voorkomt dat de speler bij het afspelen van een nummer verschijnt",
|
||||
"description": "Voorkomt dat de speler omhoog springt tijdens het afspelen van een nummer",
|
||||
"name": "Minder opdringerige speler"
|
||||
},
|
||||
"video-toggle": {
|
||||
@ -831,7 +889,8 @@
|
||||
},
|
||||
"name": "Videoschakelaar",
|
||||
"templates": {
|
||||
"button": "Nummer"
|
||||
"button-song": "Nummer",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Poprawki wizualne",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Niestandardowy tytuł okna",
|
||||
"prompt": {
|
||||
"label": "Podaj niestandardowy tytuł okna (zostaw puste, aby to wyłączyć):",
|
||||
"placeholder": "Przykład: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Domyślne",
|
||||
"force-show": "Wymuś pokazywanie",
|
||||
@ -333,6 +340,30 @@
|
||||
"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"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Wparcie dla uwierzytalniających usług proxy",
|
||||
"menu": {
|
||||
"disable": "Wyłącz adapter proxy",
|
||||
"enable": "Włącz adapter proxy",
|
||||
"hostname": {
|
||||
"label": "Nazwa hosta"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Uwierzytelnij adapter proxy",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Wpisz nazwę hosta dla lokalnego serwera proxy (wymaga restaru):",
|
||||
"title": "Nazwa hosta proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Wpisz port dla lokalnego serwera proxy (wymaga restartu):",
|
||||
"title": "Port proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Sprawia, że pasek nawigacji jest przezroczysty i rozmazany",
|
||||
"name": "Rozmycie paska nawigacji"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Otwórz selektor napisów"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Zmieniono napisy na {{language}}",
|
||||
"caption-disabled": "Napisy zostały wyłączone",
|
||||
"no-captions": "Nie znaleziono napisów dla tego utworu"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Strzałki nawigacyjne Dalej/Wstecz zintegrowane bezpośrednio z interfejsem, tak jak w Twojej ulubionej przeglądarce",
|
||||
"name": "Nawigacja"
|
||||
"name": "Nawigacja",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Przejdź do poprzedniej strony"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Przejdź do następnej strony"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Usuń przyciski i linki logowania Google z interfejsu",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "Powiadomienia"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Popraw wydajność przez włączenie skryptów eksperymentalnych",
|
||||
"name": "Poprawienie wydajności [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Umożliwia przełączenie aplikacji w tryb obrazu w obrazie",
|
||||
"menu": {
|
||||
@ -664,7 +712,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Umożliwia zmianę jakości wideo za pomocą przycisku na nakładce wideo",
|
||||
"name": "Zmieniacz jakości wideo"
|
||||
"name": "Zmieniacz jakości wideo",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Otwórz manipulator jakości odtwarzacza"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Umożliwia scrobbling utworów do m.in. last.fm lub Listenbrainz",
|
||||
@ -831,7 +884,8 @@
|
||||
},
|
||||
"name": "Przełącznik wideo",
|
||||
"templates": {
|
||||
"button": "Utwór"
|
||||
"button-song": "Utwór",
|
||||
"button-video": "Wideo"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Ajustes visuais",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Título da janela customizado",
|
||||
"prompt": {
|
||||
"label": "Insira título customizado para a janela: (deixe em branco para desabilitar)",
|
||||
"placeholder": "Exemplo: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Padrão",
|
||||
"force-show": "Forçar exibir",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Aplicar compressão ao áudio (reduz o volume das partes mais altas e aumenta o volume das partes mais baixas)",
|
||||
"name": "Compressor de áudio"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Suporte para o uso de serviços de proxy de autenticação",
|
||||
"menu": {
|
||||
"disable": "Desativar adaptador proxy",
|
||||
"enable": "Ativar adaptador proxy",
|
||||
"hostname": {
|
||||
"label": "Nome do host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Porta"
|
||||
}
|
||||
},
|
||||
"name": "Adaptador de proxy de autenticação",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Entre o nome do host do servidor proxy local (necessário reiniciar):",
|
||||
"title": "Nome do host do proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Entre a porta do servidor proxy local (necessário reiniciar):",
|
||||
"title": "Porta do proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Torna a barra de navegação transparente e desfocada",
|
||||
"name": "Desfocar barra de navegação"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Abrir seletor de legendas"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Legenda alterada para {{language}}",
|
||||
"caption-disabled": "Legendas desativadas",
|
||||
"no-captions": "Sem legendas disponíveis para essa música"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Configure um dispositivo de saída de mídia personalizado para músicas",
|
||||
"menu": {
|
||||
"device-selector": "Selecionar dispositivo"
|
||||
},
|
||||
"name": "Dispositivo de saída personalizado",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Escolha o dispositivo de saída de mídia que será usado",
|
||||
"title": "Selecionar dispositivo de saída"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Faz a música começar no modo \"pausado\"",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "Ocultar duração restante",
|
||||
"hide-github-button": "Ocultar botão do GitHub",
|
||||
"play-on-youtube-music": "Reproduzir no YouTube Music",
|
||||
"set-inactivity-timeout": "Definir tempo limite de inatividade"
|
||||
"set-inactivity-timeout": "Definir tempo limite de inatividade",
|
||||
"set-status-display-type": {
|
||||
"label": "Texto de status",
|
||||
"submenu": {
|
||||
"artist": "Ouvindo {artist}",
|
||||
"title": "Ouvindo {song title}",
|
||||
"youtube-music": "Ouvindo YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Rich Presence do Discord",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Setas de navegação para avançar/retornar diretamente integradas na interface, como no seu navegador favorito",
|
||||
"name": "Navegação"
|
||||
"name": "Navegação",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Ir para a página anterior"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Ir para a próxima página"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Remova os botões e links de login do Google da interface",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Notificações"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Melhore o desempenho habilitando scripts experimentais",
|
||||
"name": "Melhoria de desempenho [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permite alternar o aplicativo para o modo picture-in-picture",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Permite alterar a qualidade do vídeo com um botão na sobreposição de vídeo",
|
||||
"name": "Alterador de qualidade do vídeo"
|
||||
"name": "Alterador de qualidade do vídeo",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Abrir o player de troca de qualidade"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Adicionar suporte para scrobbling (last.fm, Listenbrainz, etc.)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Insira o token de usuário ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Use artistas alternativos",
|
||||
"scrobble-alternative-title": "Usar títulos alternativos",
|
||||
"scrobble-other-media": "Scrobble outras mídias"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "Deixa as letras perfeitamente sincronizadas",
|
||||
"tooltip": "Calcular até o milissegundo a exibição da próxima linha (pode ter um pequeno impacto no desempenho)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Provedor Preferido",
|
||||
"none": {
|
||||
"label": "Nenhum",
|
||||
"tooltip": "Sem provedor preferido"
|
||||
},
|
||||
"tooltip": "Escolha o provedor padrão para uso"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Letras romanizadas",
|
||||
"tooltip": "Se as letras estiverem em um idioma diferente, tente exibir uma versão latina."
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "Adiciona um widget TouchBar para usuários do macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Faz a janela do app transparente",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacidade",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tipo",
|
||||
"submenu": {
|
||||
"acrylic": "Acrílico",
|
||||
"mica": "Mica",
|
||||
"none": "Nenhum",
|
||||
"tabbed": "Em abas"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Player transparente"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integração com o plugin Tuna do OBS",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Alternar vídeo",
|
||||
"templates": {
|
||||
"button": "Música"
|
||||
"button-song": "Música",
|
||||
"button-video": "Vídeo"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Modificări Vizuale",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Titlul ferestrei personalizate",
|
||||
"prompt": {
|
||||
"label": "Introduceți titlul ferestrei personalizate: (lăsați gol pentru a dezactiva)",
|
||||
"placeholder": "Exemplu: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Default",
|
||||
"force-show": "Forțează randarea",
|
||||
@ -333,8 +340,32 @@
|
||||
"description": "Aplică compresie pe audio (scade volumul părților cele mai zgomotoase și crește volumul părților mai puțin zgomotoase)",
|
||||
"name": "Compresor audio"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Suport pentru utilizarea serviciilor proxy de autentificare",
|
||||
"menu": {
|
||||
"disable": "Dezactivează Adaptorul Proxy",
|
||||
"enable": "Activează Adaptorul Proxy",
|
||||
"hostname": {
|
||||
"label": "Nume host"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Adaptor Proxy de Autentificare",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Introduceți numele de gazdă pentru serverul proxy local (necesită repornire):",
|
||||
"title": "Nume host proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Introduceți portul pentru serverul proxy local (necesită repornire):",
|
||||
"title": "Port Proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Face bara de navigare semi-transparentă",
|
||||
"description": "Face bara de navigare semi-transparentă și difuză",
|
||||
"name": "Estompează Bara de Navigație"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Deschide selectorul de subtitrări"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Subtitrare schimbata in {{language}}",
|
||||
"caption-disabled": "Subtitrari dezactivate",
|
||||
"no-captions": "Nu exista subtitrari disponibile pentru aceasta piesa"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Săgețile pentru Următorul/Anteriorul integrate direct în interfață, ca în browser-ul tău preferat",
|
||||
"name": "Navigație"
|
||||
"name": "Navigație",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Inapoi la pagina anterioara"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Urmatoarea pagina"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Elimină butonul de autentificare Google și link-urile din interfață",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "Notificări"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Îmbunătățește performanța activând scripturile experimentale",
|
||||
"name": "Îmbunătățirea performanței [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Permite să schimbi aplicația la modul picture-in-picture",
|
||||
"menu": {
|
||||
@ -683,6 +731,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Introdu token-ul de utilizator ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-title": "Folosește titluri alternative",
|
||||
"scrobble-other-media": "Scrobble alte surse media"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
@ -745,6 +794,7 @@
|
||||
"label": "Efect de linie",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Elegant",
|
||||
"tooltip": "Folosește efecte largi pe linia curentă"
|
||||
},
|
||||
"focus": {
|
||||
@ -766,6 +816,10 @@
|
||||
"label": "Sincronizează versurile perfect",
|
||||
"tooltip": "Calculează afisarea următoarei linii până la milisecundă (poate afecta performanța)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Transcrie versurile în alfabet latin",
|
||||
"tooltip": "Dacă versurile sunt într-o altă limbă, încearcă să afișezi o versiune în alfabet latin."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Afișează versurile chiar dacă sunt inexacte",
|
||||
"tooltip": "Dacă melodia nu este găsită, plugin-ul încearcă din nou cu o căutare diferită.\nRezultatul acestei încercări poate să nu fie exact."
|
||||
@ -798,6 +852,10 @@
|
||||
"description": "Integrare cu plugin-ul OBS Tuna",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Împiedică playerul să apară atunci când redați o melodie",
|
||||
"name": "Player discret"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Adaugă un buton ce schimbă între modurile Video/Melodie. De asemenea se poate elimina opțional toată fila video",
|
||||
"menu": {
|
||||
@ -821,7 +879,8 @@
|
||||
},
|
||||
"name": "Comutator video",
|
||||
"templates": {
|
||||
"button": "Melodie"
|
||||
"button-song": "Melodie",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Загрузка завершена. DevTools открыт"
|
||||
"dev-tools": "Загрузка завершена. DevTools открыты"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n загружен"
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Визуальные настройки",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Собственное название окна",
|
||||
"prompt": {
|
||||
"label": "Введите собственное название окна: (оставьте пустым, чтобы отключить)",
|
||||
"placeholder": "Например: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Default",
|
||||
"force-show": "Всегда показывать",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "Применяет компрессию к аудио (уменьшает громкость самых громких частей сигнала и повышает громкость самых тихих частей)",
|
||||
"name": "Нормализация аудио"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Поддержка использования сервисов аутентификационного прокси",
|
||||
"menu": {
|
||||
"disable": "Отключить адаптер прокси",
|
||||
"enable": "Включить адаптер прокси",
|
||||
"hostname": {
|
||||
"label": "Имя хоста"
|
||||
},
|
||||
"port": {
|
||||
"label": "Порт"
|
||||
}
|
||||
},
|
||||
"name": "Адаптер аутентификационного прокси",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Введите имя хоста для локального прокси-сервера (требуется перезапуск):",
|
||||
"title": "Имя хоста прокси"
|
||||
},
|
||||
"port": {
|
||||
"label": "Введите порт для локального прокси-сервера (требуется перезапуск):",
|
||||
"title": "Порт прокси"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Делает панель навигации прозрачной и размытой",
|
||||
"name": "Размытие панели навигации"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Открыть выбор субтитров"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Субтитры изменены на {{language}}",
|
||||
"caption-disabled": "Субтитры отключены",
|
||||
"no-captions": "Нет доступных субтитров для этой песни"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Настройка устройства вывода медиа для песен",
|
||||
"menu": {
|
||||
"device-selector": "Выберите устройство"
|
||||
},
|
||||
"name": "Пользовательское устройство вывода",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Выберите устройство вывода медиа, которое будет использоваться",
|
||||
"title": "Выберите устройство вывода"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Запускает песню сразу на паузе",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "Скрыть сколько осталось времени",
|
||||
"hide-github-button": "Скрыть ссылку на GitHub",
|
||||
"play-on-youtube-music": "Воспроизвести на YouTube Music",
|
||||
"set-inactivity-timeout": "Поставить таймер неактивности"
|
||||
"set-inactivity-timeout": "Поставить таймер неактивности",
|
||||
"set-status-display-type": {
|
||||
"label": "Текст статуса",
|
||||
"submenu": {
|
||||
"artist": "Слушает {исполнитель}",
|
||||
"title": "Слушает {название трека}",
|
||||
"youtube-music": "Слушает YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Стрелки навигации \"вперед/назад\" интегрированы в интерфейс, как в вашем любимом браузере",
|
||||
"name": "Навигация"
|
||||
"name": "Навигация",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Предыдущая страница"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Следующая страница"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Убрать из интерфейса кнопки и ссылки для входа через Google",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Уведомления"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Улучшает производительность с помощью включения экспериментальных скриптов",
|
||||
"name": "Улучшение производительности [Бета]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Позволяет переключить приложение в режим «картинка в картинке»",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Позволяет изменять качество видео с помощью кнопки на оверлее видео",
|
||||
"name": "Изменение качества видео"
|
||||
"name": "Изменение качества видео",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Открыть настройки качества плеера"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Добавляет поддержку скробблинга (last.fm, Listenbrainz)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Введите токен пользователя ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Использовать альтернативных исполнителей",
|
||||
"scrobble-alternative-title": "Использовать альтернативные названия",
|
||||
"scrobble-other-media": "Скробблинг других медиа"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "Идеально синхронизировать слова",
|
||||
"tooltip": "До миллисекунды рассчитывает отображение следующей строки(может оказать небольшое влияние на производительность)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Предпочитаемый источник",
|
||||
"none": {
|
||||
"label": "Никакой",
|
||||
"tooltip": "Нет предпочитаемого источника"
|
||||
},
|
||||
"tooltip": "Выберите источник по умолчанию"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Романизировать слова",
|
||||
"tooltip": "Если слова на другом языке, пытаться отображать версию на латинице."
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "Добавляет виджет тачбара для пользователей macOS",
|
||||
"name": "Тачбар"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Делает окно приложения прозрачным",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Непрозрачность",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Тип",
|
||||
"submenu": {
|
||||
"acrylic": "Acrylic",
|
||||
"mica": "Mica",
|
||||
"none": "Отключено",
|
||||
"tabbed": "Tabbed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Прозрачный плеер"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Интеграция с плагином Tuna от OBS",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Переключатель видео",
|
||||
"templates": {
|
||||
"button": "Песня"
|
||||
"button-song": "Песня",
|
||||
"button-video": "Видео"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -44,7 +44,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "මෙනුව සැගවී ඇත, නැවත පෙන්වීමට 'Alt' යතුර භාවිතා කරන්න. (හෝ In-App මෙනුවේ 'Escape')",
|
||||
"detail": "මෙනුව සැගවී ඇත, නැවත පෙන්වීමට 'Alt' භාවිතා කරන්න. (මෙනුවේ 'Escape')",
|
||||
"message": "මෙනුව සැගවීම සක්රීය කර ඇත",
|
||||
"title": "මෙනුව සැගවීම සක්රීයයි"
|
||||
},
|
||||
@ -98,11 +98,117 @@
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "යෙදුම් කෑච් යෙදුම ආරම්භයේදී යලි පිහිටුවන්න",
|
||||
"disable-hardware-acceleration": "දෘඩාංග භාවිත වේගවත් කිරීම් අක්රීය කරන්න",
|
||||
"edit-config-json": "config.json සකසන්න"
|
||||
"edit-config-json": "config.json සකසන්න",
|
||||
"override-user-agent": "User-Agent ව වෙනස් කරන්න",
|
||||
"restart-on-config-changes": "Config change එකක් වෙද්දී app එක auto restart වෙන්න",
|
||||
"set-proxy": {
|
||||
"label": "Proxy එක set කරන්න",
|
||||
"prompt": {
|
||||
"label": "Proxy ලිපිනය ඇතුළත් කරන්න: (නවතන්න නම් හිස්ව තබන්න)",
|
||||
"placeholder": "උදාහරණය: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Proxy එක set කරන්න"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "DevTools On/Off කරන්න"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Always on top කරන්න",
|
||||
"auto-update": "Auto Update කරන්න",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu එක ඊළඟ වතාවට ආරම්භක වෙලාවේ හෝ hide වෙයි. දැක්වීමට [Alt] හෝ in-app menu එකේ නම් [`] key එක ඔබන්න",
|
||||
"title": "Menu hide කිරීම enable කරලා"
|
||||
},
|
||||
"label": "Menu hide කරන්න"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Restart කිරීමෙන් පසු භාෂාව වෙනස් වේ",
|
||||
"title": "Language change වුනා"
|
||||
},
|
||||
"label": "භාෂාව",
|
||||
"submenu": {
|
||||
"to-help-translate": "පරිවර්තනය කිරීමට උදව් කරන්න ඕනේද? මෙතන ක්ලික් කරන්න"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "App එක start වෙද්දි අවසන් ගීතය නැවත ඇරඹෙන්න",
|
||||
"single-instance-lock": "Single Instance Lock සක්රීය කරන්න",
|
||||
"start-at-login": "ලොගින් වුන විට start කරන්න",
|
||||
"starting-page": {
|
||||
"label": "ආරම්භක පිටුව",
|
||||
"unset": "අවලංගු කරන්න"
|
||||
},
|
||||
"tray": {
|
||||
"label": "ට්රේ එක",
|
||||
"submenu": {
|
||||
"disabled": "Disable කරන ලදී",
|
||||
"enabled-and-hide-app": "ට්රේ එක enable කරලා, app window එක hide කරන්න",
|
||||
"enabled-and-show-app": "Enable කරලා app එක පෙන්වන්න",
|
||||
"play-pause-on-click": "Click කළ විට play/ pause වෙනවා"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Visual tweaks කරන්න",
|
||||
"submenu": {
|
||||
"like-buttons": {
|
||||
"default": "මූලික",
|
||||
"force-show": "Force show කරන්න",
|
||||
"hide": "සඟවන්න",
|
||||
"label": "Like බොත්තම්"
|
||||
},
|
||||
"remove-upgrade-button": "Upgrade බොත්තම ඉවත් කරන්න",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "අවලංගු කරන්න",
|
||||
"remove": "ඉවත් කරන්න"
|
||||
},
|
||||
"remove-theme": "ඔබට විශ්වාසද ඔබගේ custom theme එක ඉවත් කිරීමට අවශ්ය බව?",
|
||||
"remove-theme-message": "මෙය custom theme එක ඉවත් කරයි"
|
||||
},
|
||||
"label": "Theme",
|
||||
"submenu": {
|
||||
"import-css-file": "Custom CSS ගොනුව import කරන්න",
|
||||
"no-theme": "Theme එකක් නැහැ"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "සක්රිය කරන්න",
|
||||
"label": "ප්ලගීන",
|
||||
"new": "නව"
|
||||
},
|
||||
"view": {
|
||||
"label": "බලන්න",
|
||||
"submenu": {
|
||||
"force-reload": "බලෙන් රීලෝඩ් කරන්න",
|
||||
"reload": "රීලෝඩ් කරන්න",
|
||||
"reset-zoom": "සැබෑ ප්රමාණය",
|
||||
"toggle-fullscreen": "සම්පූර්ණ තිරය ටොගල් කරන්න",
|
||||
"zoom-in": "විශාලනය කරන්න",
|
||||
"zoom-out": "කුඩා කරන්න"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "ඊළඟ",
|
||||
"play-pause": "වාදනය / විරාමය",
|
||||
"previous": "පෙර",
|
||||
"quit": "පිටවීම",
|
||||
"restart": "නැවත ආරම්භ කරන්න",
|
||||
"show": "තිරය පෙන්වන්න",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"adblocker": {
|
||||
"description": "සියලුම දැන්වීම් අවහිර කර කොටුවෙන් පිටත ලුහුබැඳීම"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
10
src/i18n/resources/sq.json
Normal file
10
src/i18n/resources/sq.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Dështoi në ekzekutimin e plugin-it {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Shtojca {{pluginName}}::{{contextName}} u ekzekutua në {{ms}}ms"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,7 +1,950 @@
|
||||
{
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Neuspešno izvršavanje ekstenzije {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Ekstenzija {{pluginName}}::{{contextName}} se izvršila za {{ms}}ms",
|
||||
"initialize-failed": "Greška pri učitavanju ekstenzije \"{{pluginName}}\"",
|
||||
"load-all": "Učitavanje svih ekstenzija",
|
||||
"load-failed": "Neuspešno učitavanje ekstenzije \"{{pluginName}}\"",
|
||||
"loaded": "Ekstenzija \"{{pluginName}}\" je učitana",
|
||||
"unload-failed": "Greška pri oslobađanju ekstenzije \"{{pluginName}}\"",
|
||||
"unloaded": "Ekstenzija \"{{pluginName}}\" je oslobođena"
|
||||
}
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"code": "sr",
|
||||
"local-name": "Српски",
|
||||
"name": "Serbian"
|
||||
},
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Završeno učitavanje. DevTools alat je otvoren"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n su učitani"
|
||||
},
|
||||
"second-instance": {
|
||||
"receive-command": "Primljena je komanda kroz protokol: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "CSS datoteka \"{{cssFile}}\" ne postoji, ignorišem"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Aplikacija se ne odaziva!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Čišćenje keširanih podataka"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Prozor je pokušao da se učita van ekrana: windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
}
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Meni je sakriven, pritisnite 'Alt' da biste ga prikazali (ili 'Escape' ako koristite meni u aplikaciji)",
|
||||
"message": "Opcija sakrivanja menija je omogućena",
|
||||
"title": "Opcija sakrivanja menija je omogućena"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Kasnije",
|
||||
"restart-now": "Ponovo pokreni odmah"
|
||||
},
|
||||
"detail": "Ekstenzija \"{{pluginName}}\" zahteva ponovno pokretanje aplikacije da bi se učitala",
|
||||
"message": "\"{{pluginName}}\" zahteva ponovno pokretanje",
|
||||
"title": "Ponovno pokretanje je neophodno"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "Izađi",
|
||||
"relaunch": "Pokreni ponovo",
|
||||
"wait": "Čekaj"
|
||||
},
|
||||
"detail": "Izvinjavamo se zbog neprijatnosti! Molimo odaberite sledeći korak:",
|
||||
"message": "Aplikacija ne odgovara ili je zamrznuta",
|
||||
"title": "Prozor ne odgovara ili je zamrznut"
|
||||
},
|
||||
"update-available": {
|
||||
"buttons": {
|
||||
"disable": "Onemogući ažuriranja",
|
||||
"download": "Preuzmi",
|
||||
"ok": "U redu"
|
||||
},
|
||||
"detail": "Nova verzija je dostupna za preuzimanje na {{downloadLink}}",
|
||||
"message": "Nova verzija je dostupna",
|
||||
"title": "Ažuriranje je dostupno"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"about": "O aplikaciji",
|
||||
"navigation": {
|
||||
"label": "Navigacija",
|
||||
"submenu": {
|
||||
"copy-current-url": "Kopiraj trenutnu adresu",
|
||||
"go-back": "Nazad",
|
||||
"go-forward": "Napred",
|
||||
"quit": "Izađi",
|
||||
"restart": "Ponovo pokreni aplikaciju"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Opcije",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Napredne opcije",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Očisti keširane podatke pri pokretanju aplikacije",
|
||||
"disable-hardware-acceleration": "Onemogući hardversko ubrzanje",
|
||||
"edit-config-json": "Izmeni config.json",
|
||||
"override-user-agent": "Prepiši User-Agent",
|
||||
"restart-on-config-changes": "Pokreni ponovo po promeni konfiguracije",
|
||||
"set-proxy": {
|
||||
"label": "Podesi proxy",
|
||||
"prompt": {
|
||||
"label": "Unesi Proxy adresu: (ostavi prazno da bi proxy bio onemogućen)",
|
||||
"placeholder": "Primer: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Podesi proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Pokreni/napusti DevTools"
|
||||
}
|
||||
},
|
||||
"always-on-top": "Uvek na vrhu",
|
||||
"auto-update": "Automatsko ažuriranje",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Meni će biti sakriven posle sledećeg pokretanje, upotrebite [Alt] da ga ponovo prikažete (ili backtick [`] ukoliko koristite meni u aplikaciji)",
|
||||
"title": "Sakrivanje menija je omogućeno"
|
||||
},
|
||||
"label": "Sakrij meni"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Jezik aplikacije će biti promenjen nakon sledećeg pokretanja aplikacije",
|
||||
"title": "Jezik je uspešno promenjen"
|
||||
},
|
||||
"label": "Jezik",
|
||||
"submenu": {
|
||||
"to-help-translate": "Želite da pomognete u prevođenju? Kliknite ovde"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Nastavi trenutnu numeru pri sledećem pokretanju",
|
||||
"single-instance-lock": "Sprečavanje višestrukog pokretanja",
|
||||
"start-at-login": "Pokreni po prijavi u sistem",
|
||||
"starting-page": {
|
||||
"label": "Početna strana",
|
||||
"unset": "Poništi podešavanje"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Lista",
|
||||
"submenu": {
|
||||
"disabled": "Onemogućeno",
|
||||
"enabled-and-hide-app": "Omogući sklanjanje aplikacije u sistemsku listu",
|
||||
"enabled-and-show-app": "Omogući i prikaži aplikaciju",
|
||||
"play-pause-on-click": "Pokreni/Pauziraj na klik"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Vizuelna podešavanja",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Prilagođeni naziv prozora",
|
||||
"prompt": {
|
||||
"label": "Unesite prilagođeni naslov prozora: (ostavite prazno da onemogućite)",
|
||||
"placeholder": "Primer: YouTube Muzika"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Podrazumevano",
|
||||
"force-show": "Prinudno prikaži",
|
||||
"hide": "Sakrij",
|
||||
"label": "'Sviđa mi se' dugmići"
|
||||
},
|
||||
"remove-upgrade-button": "Ukloni dugme za nadogradnju",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Otkaži",
|
||||
"remove": "Ukloni"
|
||||
},
|
||||
"remove-theme": "Da li ste sigurni da želite da uklonite prilagođenu temu?",
|
||||
"remove-theme-message": "Ova opcija će ukloniti prilagođenu temu"
|
||||
},
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Uvezi prilagođenu CSS datoteku (stil)",
|
||||
"no-theme": "Bez teme"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Omogućeno",
|
||||
"label": "Ekstenzije",
|
||||
"new": "NOVO"
|
||||
},
|
||||
"view": {
|
||||
"label": "Prikaz",
|
||||
"submenu": {
|
||||
"force-reload": "Prinudno osveži",
|
||||
"reload": "Osveži",
|
||||
"reset-zoom": "Realna veličina",
|
||||
"toggle-fullscreen": "Aktiviraj/deaktiviraj pun ekran",
|
||||
"zoom-in": "Uvećaj",
|
||||
"zoom-out": "Umanji"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Sledeće",
|
||||
"play-pause": "Pokreni/Pauziraj",
|
||||
"previous": "Prethodno",
|
||||
"quit": "Izađi",
|
||||
"restart": "Ponovo pokreni aplikaciju",
|
||||
"show": "Prikaži prozor",
|
||||
"tooltip": {
|
||||
"default": "YouTube Muzika",
|
||||
"with-song-info": "YouTube Muzika: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Ukoliko dođe do prikaza reklame, zvuk se prigušuje i podešava se brzina na 16x",
|
||||
"name": "Ubrzanje reklama"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Podrazumevano blokiranje svih reklama i praćenja",
|
||||
"menu": {
|
||||
"blocker": "Bloker"
|
||||
},
|
||||
"name": "Bloker reklama"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Dodaje mogućnost primene opcija 'Sviđa mi se, ne sviđa mi se' kao i opciju njihovog poništenja na nivou plejliste ili albuma",
|
||||
"name": "Akcije albuma"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Primenjuje dinamičku temu i vizuelne efekte na osnovu palete boja albuma",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Odnos mešavine boja",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}}%"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Paleta boja albuma"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Primenjuje svetlosne efekte na pozadini ekrana upotrebom blagih boja iz video snimka",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Zamagljenje",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} piksela"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Bafer",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Prozirnost",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kvalitet",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} piksela"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Veličina",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Blag prelaz",
|
||||
"submenu": {
|
||||
"during": "U trajanju od {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Korišćenje punog ekrana"
|
||||
}
|
||||
},
|
||||
"name": "Ambijentalni režim"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Dodaje podršku za 'Amuse now' vidžet (6K Labs) u YouTube Muziku",
|
||||
"name": "Zabavi",
|
||||
"response": {
|
||||
"query": "Amuse API server je pokrenut. Koristite GET /query da biste dobili informacije o numeri."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Dodaje API server za kontrolu muzičkog plejera",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Dozvoli",
|
||||
"deny": "Odbij"
|
||||
},
|
||||
"message": "Dozvoli {{ID}} ({{origin}}) da pristupa API-ju?",
|
||||
"title": "Zahtev za autorizaciju na API"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Strategija za autorizaciju",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Autorizuj na prvom zahtevu"
|
||||
},
|
||||
"none": {
|
||||
"label": "Bez autorizacije"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Ime host-a"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "API Server [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Unesite ime host-a (npr. 0.0.0.0) za API server:",
|
||||
"title": "Ime host-a"
|
||||
},
|
||||
"port": {
|
||||
"label": "Unesite port za API server:",
|
||||
"title": "Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Primeni kompresiju audio trake (smanjuje jačinu zvuka na najglasnijim delovima signala, i povećava jačinu na najnižim)",
|
||||
"name": "Kompresor zvuka"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Podrška za upotrebu proxy servisa za autentifikaciju",
|
||||
"menu": {
|
||||
"disable": "Onemogući Proxy adapter",
|
||||
"enable": "Omogući Proxy adapter",
|
||||
"hostname": {
|
||||
"label": "Ime host-a"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Proxy adapter za autentifikaciju",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Unesi ime host-a za lokalni proxy server (zahteva ponovno pokretanje):",
|
||||
"title": "Ime host-a za Proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Unesi port za lokalni proxy server (zahteva ponovno pokretanje):",
|
||||
"title": "Proxy Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Čini navigacioni meni prozirnim i zamućenim",
|
||||
"name": "Zamuti navigacioni meni"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Preskoči starosnu verifikaciju za YouTube",
|
||||
"name": "Preskoči starosna ograničenja"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Odabir prevoda za numere/audio trake na YouTube Muzici",
|
||||
"menu": {
|
||||
"autoload": "Automatski odaberi prethodno odabrani prevod",
|
||||
"disable-captions": "Podrazumevano bez prevoda"
|
||||
},
|
||||
"name": "Odabir prevoda",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Trenutno odabrani jezik prevoda: {{language}}",
|
||||
"none": "Ništa",
|
||||
"title": "Odaberi jezik prevoda"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Otvori meni za izbor prevoda"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Prevod promenjen u {{language}}",
|
||||
"caption-disabled": "Prevod onemogućen",
|
||||
"no-captions": "Za ovu pesmu nisu dostupni prevodi"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Uvek koristi kompaktni meni sa strane",
|
||||
"name": "Kompaktni meni sa strane"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Ublaženi prelaz između numera",
|
||||
"menu": {
|
||||
"advanced": "Napredno"
|
||||
},
|
||||
"name": "Ublaženi prelaz [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Ulazno trajanje prelaza (ms)",
|
||||
"fade-out-duration": "Izlazno trajanje prelaza (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Skaliranje prelaza",
|
||||
"linear": "Linearno",
|
||||
"logarithmic": "Logaritamsko"
|
||||
},
|
||||
"seconds-before-end": "Prelaz N sekundi pre kraja"
|
||||
},
|
||||
"title": "Opcije prelaza"
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Konfigurišite prilagođeni izlazni medijski uređaj za pesme",
|
||||
"menu": {
|
||||
"device-selector": "Izaberite uređaj"
|
||||
},
|
||||
"name": "Prilagođeni izlazni uređaj",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Izaberite izlazni medijski uređaj koji će se koristiti",
|
||||
"title": "Izaberite izlazni uređaj"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Numere se pokreću u pauziranom režimu",
|
||||
"menu": {
|
||||
"apply-once": "Primenjuje se samo pri pokretanju"
|
||||
},
|
||||
"name": "Onemogući automatsko reprodukovanje"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Pokušano je da se poveže sa aktivnom vezom",
|
||||
"connected": "Spojeno sa Discord-om",
|
||||
"disconnected": "Poništeno povezivanje sa Discord-om"
|
||||
},
|
||||
"description": "Prikaži prijateljima šta slušaš uz 'Rich Presence'",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatsko ponovno povezivanje",
|
||||
"clear-activity": "Očisti aktivnosti",
|
||||
"clear-activity-after-timeout": "Očisti aktivnosti nakon isteka vremena",
|
||||
"connected": "Povezano",
|
||||
"disconnected": "Nije povezano",
|
||||
"hide-duration-left": "Sakrij preostalo vreme",
|
||||
"hide-github-button": "Sakrij dugme sa GitHub linkom",
|
||||
"play-on-youtube-music": "Reprodukuj na YouTube Muzici",
|
||||
"set-inactivity-timeout": "Podesi tajmer za neaktivnost",
|
||||
"set-status-display-type": {
|
||||
"label": "Tekst statusa",
|
||||
"submenu": {
|
||||
"artist": "Slušanje {artist}",
|
||||
"title": "Slušanje {song title}",
|
||||
"youtube-music": "Slušanje YouTube muzike"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Bogato Prisustvo",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Unesi vreme za tajmer neaktivnosti u sekundama:",
|
||||
"title": "Podesi tajmer neaktivnosti"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "U redu"
|
||||
},
|
||||
"message": "Greška! Izvinjavamo se, preuzimanje nije uspelo…",
|
||||
"title": "Greška pri preuzimanju!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "U redu"
|
||||
},
|
||||
"detail": "({{playlistSize}} numera)",
|
||||
"message": "Preuzimanje plejliste {{playlistTitle}}",
|
||||
"title": "Preuzimanje je započeto"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konverzija: {{percent}}%",
|
||||
"converting": "Konvertuje se…",
|
||||
"done": "Završeno: {{filePath}}",
|
||||
"download-info": "Preuzima se {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Preuzimanje: {{percent}}%",
|
||||
"downloading": "Preuzimanje…",
|
||||
"downloading-counter": "Preuzimanje {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Preuzimanje plejliste \"{{playlistTitle}}\" - {{playlistSize}} numera ({{playlistId}})",
|
||||
"error-while-downloading": "Greška pri preuzimanju \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Direktorijum {{playlistFolder}} već postoji",
|
||||
"getting-playlist-info": "Preuzimanje informacija o plejlisti…",
|
||||
"loading": "Učitavanje…",
|
||||
"playlist-has-only-one-song": "Plejlista sadrži samo jednu numeru, preuzima se direktno",
|
||||
"playlist-id-not-found": "Nije pronađen ID plejliste",
|
||||
"playlist-is-empty": "Plejlista je prazna",
|
||||
"playlist-is-mix-or-private": "Greška pri preuzimanju informacija o plejlisti: proverite da li je možda skrivena ili \"Za tebe\" plejlista\n\n{{error}}",
|
||||
"preparing-file": "Pripremanje datoteke…",
|
||||
"saving": "Čuvanje…",
|
||||
"trying-to-get-playlist-id": "Pokušaj preuzimanja ID plejliste: {{playlistId}}",
|
||||
"video-id-not-found": "Video nije pronađen",
|
||||
"writing-id3": "Zapisivanje ID3 tagova…"
|
||||
}
|
||||
},
|
||||
"description": "Preuzimanje MP3 / izvornog zvuka direktno sa interfejsa",
|
||||
"menu": {
|
||||
"choose-download-folder": "Odaberite direktorijum za preuzimanja",
|
||||
"download-finish-settings": {
|
||||
"label": "Preuzmi na završetku",
|
||||
"prompt": {
|
||||
"last-percent": "Nakon x procenata",
|
||||
"last-seconds": "Poslednjih x sekundi",
|
||||
"title": "Podesite kad da se vrši preuzimanje"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Napredno",
|
||||
"enabled": "Omogućeno",
|
||||
"mode": "Vremenski režim",
|
||||
"percent": "Procenat(a)",
|
||||
"seconds": "Sekundi"
|
||||
}
|
||||
},
|
||||
"download-playlist": "Preuzmi plejlistu",
|
||||
"presets": "Predefinisana podešavanja",
|
||||
"skip-existing": "Preskoči postojeće datoteke"
|
||||
},
|
||||
"name": "Servis za preuzimanje",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Nemoguće ažuriranje trenutnog napretka"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Preuzimanje"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Dodaje ekvilajzer u muzički plejer",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Predefinisana podešavanja",
|
||||
"list": {
|
||||
"bass-booster": "Pojačivač basa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Ekvilajzer"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Postavlja slajder jačine kao eksponencijalan radi lakšeg izbora nižih jačina.",
|
||||
"name": "Eksponencijalna jačina"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Daje izbornim trakama fensi, tamni ili izgled prema boji albuma",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Sakrij kontrole DOM prozora"
|
||||
},
|
||||
"name": "Izborni menu unutar aplikacije"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Dodaje podršku za Lumia Stream",
|
||||
"name": "Lumia Stream [Beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Dodaje podršku za tekstove za većinu pesama",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romanizovani tekstovi"
|
||||
},
|
||||
"name": "Genius tekstovi",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Dobavljen tekst pesme sa Genius-a"
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "Podeli plejlistu sa drugima. Kada domaćin (host) pusti pesmu, svi ostali će čuti istu pesmu",
|
||||
"dialog": {
|
||||
"enter-host": "Unesi ID host-a"
|
||||
},
|
||||
"internal": {
|
||||
"save": "Sačuvaj",
|
||||
"track-source": "Izvor pesme",
|
||||
"unknown-user": "Nepoznat korisnik"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "Kopiraj ID host-a",
|
||||
"close": "Zatvori 'Music Together'",
|
||||
"connected-users": "Spojeni korisnici",
|
||||
"disconnect": "Prekini vezu sa 'Music Together'",
|
||||
"empty-user": "Nema povezanih korisnika",
|
||||
"host": "'Music Together' domaćin (host)",
|
||||
"join": "Pridruži se 'Music Together'",
|
||||
"permission": {
|
||||
"all": "Dozvoli gostima da kontrolišu plejlistu i reprodukciju",
|
||||
"host-only": "Samo domaćin (host) može da kontroliše plejlistu i reprodukciju",
|
||||
"playlist": "Dozvoli gostima da kontrolišu plejlistu"
|
||||
},
|
||||
"set-permission": "Promeni dozvole za upravljanje",
|
||||
"status": {
|
||||
"disconnected": "Nije povezan",
|
||||
"guest": "Povezan kao gost",
|
||||
"host": "Povezan kao domaćin (host)"
|
||||
}
|
||||
},
|
||||
"name": "Music Together [Beta]",
|
||||
"toast": {
|
||||
"add-song-failed": "Dodavanje pesme nije uspelo",
|
||||
"closed": "'Music Together' je zatvorena",
|
||||
"disconnected": "Veza sa 'Music Together' je prekinuta",
|
||||
"host-failed": "Pokretanje 'Music Together' kao domaćin (host) nije uspelo",
|
||||
"id-copied": "ID domaćina (host) kopiran u privremenu memoriju",
|
||||
"id-copy-failed": "Kopiranje ID domaćina (host) u privremenu memoriju nije uspelo",
|
||||
"join-failed": "Povezivanje na 'Music Together' neuspešno",
|
||||
"joined": "Povezan na 'Music Together'",
|
||||
"permission-changed": "Dozvola 'Music Together' promenjena na \"{{permission}}\"",
|
||||
"remove-song-failed": "Uklanjanje pesme nije uspelo",
|
||||
"user-connected": "{{name}} se pridružio na 'Music Together'",
|
||||
"user-disconnected": "{{name}} je napustio 'Music Together'"
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Strelice za navigaciju napred/nazad su direktno integrisane u interfejs, kao i u tvom omiljenom pregledaču",
|
||||
"name": "Navigacija",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Vrati se na prethodnu stranicu"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Idi na sledeću stranicu"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Ukloni Google dugmad i linkove za prijavu sa interfejsa",
|
||||
"name": "Bez Google prijave"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Prikaži obaveštenje kada numera krene sa reprodukcijom (interaktivna obaveštenja su dostupna na Windows-u)",
|
||||
"menu": {
|
||||
"interactive": "Interaktivna obaveštenja",
|
||||
"interactive-settings": {
|
||||
"label": "Podešavanja za interakciju",
|
||||
"submenu": {
|
||||
"hide-button-text": "Sakrij tekst dugmeta",
|
||||
"refresh-on-play-pause": "Osveži prilikom Pokreni/Pauziraj",
|
||||
"tray-controls": "Otvori/Zatvori klikom na sistemsku traku"
|
||||
}
|
||||
},
|
||||
"priority": "Prioritet obaveštenja",
|
||||
"toast-style": "Toast stil obaveštenja",
|
||||
"unpause-notification": "Prikaži obaveštenje prilikom nastavka reprodukcije"
|
||||
},
|
||||
"name": "Obaveštenja"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Poboljšaj performanse omogućavanjem eksperimentalnih skripti",
|
||||
"name": "Poboljšaj performanse [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Dozvoljava aplikaciji da se prebaci u režim slike-u-slici",
|
||||
"menu": {
|
||||
"always-on-top": "Uvek na vrhu",
|
||||
"hotkey": {
|
||||
"label": "Prečica",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Prečica"
|
||||
},
|
||||
"label": "Izaberi prečicu za prebacivanje u režim slike-u-slici",
|
||||
"title": "Prečica za režim slike-u-slici"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Sačuvaj poziciju prozora",
|
||||
"save-window-size": "Sačuvaj veličinu prozora",
|
||||
"use-native-pip": "Koristi izvorni režim slike-u-slici za pregledače"
|
||||
},
|
||||
"name": "Slika-u-slici",
|
||||
"templates": {
|
||||
"button": "Slika-u-slici"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Slušaj brzo, slušaj sporo! Dodaje slajder koji kontroliše brzinu pesme",
|
||||
"name": "Brzina reprodukcije",
|
||||
"templates": {
|
||||
"button": "Brzina"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Precizno kontroliši jačinu zvuka korišćenjem točka na mišu/prečica, sa prilagođenim interfejsom i prilagodivim inkrementalnim koracima jačine",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Lokalne kontrole tastera sa strelicama",
|
||||
"custom-volume-steps": "Postavi prilagođene korake za promenu jačine",
|
||||
"global-shortcuts": "Globalne prečice"
|
||||
},
|
||||
"name": "Precizna jačina",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Smanji jačinu",
|
||||
"increase": "Povećaj jačinu"
|
||||
},
|
||||
"label": "Izaberi globalne prečice na tastaturi za jačinu:",
|
||||
"title": "Globalne prečice na tastaturi za jačinu"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Izaberi korake za povećanje/smanjenje jačine",
|
||||
"title": "Koraci za promenu jačine"
|
||||
}
|
||||
}
|
||||
},
|
||||
"quality-changer": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Trenutni kvalitet: {{quality}}",
|
||||
"message": "Izaberi kvalitet videa:",
|
||||
"title": "Izaberi kvalitet videa"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Dozvoljava promenu kvaliteta videa pomoću dugmeta na video preklapanju",
|
||||
"name": "Promena kvaliteta videa",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Otvori meni za promenu kvaliteta plejera"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Dodaj podršku za 'četkanje' (poput last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Autentifikacija sa Last.fm nije uspela.\nZatvori iskačući prozor do sledećeg ponovnog pokretanja.",
|
||||
"title": "Autentifikacija neuspešna"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Podešavanja za Last.fm API"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "Unesi korisnički žeton za ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Koristi alternativne izvođače",
|
||||
"scrobble-alternative-title": "Koristi alternativne naslove",
|
||||
"scrobble-other-media": "Učetkaj druge medije"
|
||||
},
|
||||
"name": "Četkarnik",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API ključ",
|
||||
"api-secret": "Last.fm API tajna"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "Unesi svoj ListenBrainz korisnički žeton:",
|
||||
"title": "ListenBrainz žeton"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Dozvoljava postavljanje globalnih prečica na tastaturi za reproduciju (pusti/pauziraj/sledeće/prethodno) i isključivanje OSD za medije tako što će prepisati tastere za medije, uključiti Ctrl/CMD + F za pretragu, isključiti MPRIS podršku za medija tastere na Linux-u, i prilagođene prečice za napredne korisnike",
|
||||
"menu": {
|
||||
"override-media-keys": "Prepiši medija tastere",
|
||||
"set-keybinds": "Podesi globalne kontrole za pesme"
|
||||
},
|
||||
"name": "Prečice (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Sledeće",
|
||||
"play-pause": "Pusti / Pauziraj",
|
||||
"previous": "Prethodno"
|
||||
},
|
||||
"label": "Izaberi globalne prečice za upravljanje pesmama:",
|
||||
"title": "Globalne prečice na tastaturi"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Preskače pesme koje vam se nisu svidele",
|
||||
"name": "Preskočite pesme koje vam se nisu svidele"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Automatski preskočite delove pesama gde nema zvuka",
|
||||
"name": "Preskoči tišine"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Automatski preskače delove pesama koji nisu muzika poput uvod/odjava ili delove muzičkih spotova u kojima nema muzike",
|
||||
"name": "Blok sponzora"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "Obezbeđuje sinhronizovane lirike pesama, korišćenjem dobavljača poput LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️\tDošlo je do greške prilikom dobavljanja stihova pesme.\n\tMolimo vas da pokušate ponovo kasnije.",
|
||||
"not-found": "⚠️ Tekst za ovu pesmu nije pronađen."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
"label": "Podrazumevani karakteri između tekstova pesama",
|
||||
"tooltip": "Izaberi podrazumevane karaktere koji će biti korišćeni za razmake između tekstova pesama"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Efekat linije",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Kitnjast",
|
||||
"tooltip": "Koristi velike (kao iz aplikacije) efekte na trenutnu liniju"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Fokus",
|
||||
"tooltip": "Učini samo trenutnu liniju belom"
|
||||
},
|
||||
"offset": {
|
||||
"label": "Pomeraj",
|
||||
"tooltip": "Pomeraj na trenutnoj liniji"
|
||||
},
|
||||
"scale": {
|
||||
"label": "Razmera",
|
||||
"tooltip": "Promeni razmeru trenutne linije"
|
||||
}
|
||||
},
|
||||
"tooltip": "Izaberi efekat koji će biti primenjen na trenutnoj liniji"
|
||||
},
|
||||
"precise-timing": {
|
||||
"label": "Učini da tekst pesme bude savršeno usklađen",
|
||||
"tooltip": "Izračunaj do milisekunde prikaz sledeće linije teksta (može malo uticati na učinak)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Preferirani dobavljač",
|
||||
"none": {
|
||||
"label": "Nijedan",
|
||||
"tooltip": "Bez preferiranog dobavljača"
|
||||
},
|
||||
"tooltip": "Izaberite podrazumevanog dobavljača kog ćete koristiti"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanizuj tekstove pesama",
|
||||
"tooltip": "Ako je tekst pesme na drugom jeziku, pokušaj da ga prikažeš u latiničnoj varijanti."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Prikaži tekst pesme čak iako nije tačan",
|
||||
"tooltip": "Ako pesma nije pronađena, produžetak će pokušati ponovo sa novim upitom za pretragu.\nRezultat iz drugog pokušaja možda neće biti tačan."
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "Prikaži vremenske oznake",
|
||||
"tooltip": "Prikaži vremenske oznake pored teksta pesme"
|
||||
}
|
||||
},
|
||||
"name": "Sinhronizovani tekstovi pesama",
|
||||
"refetch-btn": {
|
||||
"fetching": "Dobavljanje...",
|
||||
"normal": "Ponovo dobavi tekst pesme"
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Tekst pesme možda nije usklađen zbog neuklapanja u dužini trajanja.",
|
||||
"inexact": "⚠️ - Tekst za ovu pesmu možda nije tačan",
|
||||
"instrumental": "⚠️ - Ovo je instrumentalna pesma"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Upravljaj reprodukcijom iz Windows trake sa zadacima",
|
||||
"name": "Upravljanje medijima iz trake sa zadacima"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Dodaje dodatak dodirne trake za macOS korisnike",
|
||||
"name": "Dodirna Traka"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Čini prozor aplikacije transparentnim",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Neprozirnost",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tip",
|
||||
"submenu": {
|
||||
"acrylic": "Akrilan",
|
||||
"mica": "Mika",
|
||||
"none": "Nijedan",
|
||||
"tabbed": "Kartice"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Transparentni plejer"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integracija sa OBS-ovim Tuna dodatkom",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Onemogućava plejeru da iskače u toku pokretanja pesme",
|
||||
"name": "Nenametljivi plejer"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Dodaje dugme za promenu između režima za video/numeru. Opciono, može da ukloni celu karticu sa videom",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Poravnanje",
|
||||
"submenu": {
|
||||
"left": "Levo",
|
||||
"middle": "Sredina",
|
||||
"right": "Desno"
|
||||
}
|
||||
},
|
||||
"force-hide": "Nasilno ukloni karticu sa videom",
|
||||
"mode": {
|
||||
"label": "Režim",
|
||||
"submenu": {
|
||||
"custom": "Prilagođeno prebacivanje",
|
||||
"disabled": "Onemogućeno",
|
||||
"native": "Izvorno prebacivanje"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Video prebacivanje",
|
||||
"templates": {
|
||||
"button-song": "Pesma",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Dodaje vizualizaciju u plejer",
|
||||
"menu": {
|
||||
"visualizer-type": "Tip vizualizacije"
|
||||
},
|
||||
"name": "Vizualizacija"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,14 +2,14 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Misslyckades med att köra plugin {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Plugin {{pluginName}}::{{contextName}} kördes på {{ms}} ms",
|
||||
"initialize-failed": "Misslyckades med att initialisera pluginen \"{{pluginName}}\"",
|
||||
"load-all": "Laddar alla pluginer",
|
||||
"load-failed": "Misslyckades med att ladda pluginen \"{{pluginName}}\"",
|
||||
"loaded": "Pluginen \"{{pluginName}}\" laddad",
|
||||
"unload-failed": "Misslyckades med att avlasta pluginen \"{{pluginName}}\"",
|
||||
"unloaded": "Pluginen \"{{pluginName}}\" avlastad"
|
||||
"execute-failed": "Misslyckades med att köra tillägget {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Tillägget {{pluginName}}::{{contextName}} kördes på {{ms}}ms",
|
||||
"initialize-failed": "Misslyckades med att initialisera tillägget \"{{pluginName}}\"",
|
||||
"load-all": "Laddar alla tillägg",
|
||||
"load-failed": "Misslyckades med att ladda tillägget \"{{pluginName}}\"",
|
||||
"loaded": "Tillägget \"{{pluginName}}\" laddades in",
|
||||
"unload-failed": "Kunde inte inaktivera {{pluginName}}-tillägget",
|
||||
"unloaded": "{{pluginName}}-tillägget inaktiverat"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -21,7 +21,7 @@
|
||||
"main": {
|
||||
"console": {
|
||||
"did-finish-load": {
|
||||
"dev-tools": "Laddning klar. DevTools öppnad"
|
||||
"dev-tools": "Laddning slutförd. Utvecklarverktyg öppnad"
|
||||
},
|
||||
"i18n": {
|
||||
"loaded": "i18n laddad"
|
||||
@ -45,16 +45,16 @@
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menyn är dold, använd 'Alt' för att visa den (eller 'Escape' om du använder inbyggd meny)",
|
||||
"message": "Dölj Meny är aktiverat",
|
||||
"title": "Dölj Meny aktiverad"
|
||||
"message": "Dölj meny är aktiverad",
|
||||
"title": "Dölj meny aktiverad"
|
||||
},
|
||||
"need-to-restart": {
|
||||
"buttons": {
|
||||
"later": "Senare",
|
||||
"restart-now": "Starta om nu"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" pluginen kräver en omstart för att träda i kraft",
|
||||
"message": "\"{{pluginName}}\" behöver startas om",
|
||||
"detail": "\"{{pluginName}}\"-tillägget kräver en omstart för att träda i kraft",
|
||||
"message": "\"{{pluginName}}\"-tillägget behöver startas om",
|
||||
"title": "Omstart krävs"
|
||||
},
|
||||
"unresponsive": {
|
||||
@ -84,17 +84,17 @@
|
||||
"label": "Navigering",
|
||||
"submenu": {
|
||||
"copy-current-url": "Kopiera nuvarande länk",
|
||||
"go-back": "Föregående",
|
||||
"go-forward": "Nästa",
|
||||
"quit": "Lämna",
|
||||
"go-back": "Gå tillbaka",
|
||||
"go-forward": "Gå framåt",
|
||||
"quit": "Avsluta",
|
||||
"restart": "Starta om appen"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
"label": "Valmöjligheter",
|
||||
"label": "Alternativ",
|
||||
"submenu": {
|
||||
"advanced-options": {
|
||||
"label": "Avancerade valmöjligheter",
|
||||
"label": "Avancerade alternativ",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Nollställ appcache när appen startar",
|
||||
"disable-hardware-acceleration": "Stäng av hårdvaruacceleration",
|
||||
@ -114,60 +114,610 @@
|
||||
},
|
||||
"always-on-top": "Alltid överst",
|
||||
"auto-update": "Uppdatera automatiskt",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menyn kommer att döljas efter omstart, använd [Alt] för att visa menyn (eller [`] vid användning av menyn inuti applikationen)",
|
||||
"title": "Dölj meny aktiverad"
|
||||
},
|
||||
"label": "Dölj meny"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Språket ändras efter omstart",
|
||||
"title": "Språket har ändrats"
|
||||
},
|
||||
"label": "Språk"
|
||||
"label": "Språk",
|
||||
"submenu": {
|
||||
"to-help-translate": "Vill du hjälpa till att översätta? Klicka här"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Fortsätt spela när appen öppnas"
|
||||
"resume-on-start": "Fortsätt spela när appen öppnas",
|
||||
"single-instance-lock": "Lås enskild instans",
|
||||
"start-at-login": "Starta vid inloggning",
|
||||
"starting-page": {
|
||||
"label": "Startsidа",
|
||||
"unset": "Ej inställt"
|
||||
},
|
||||
"tray": {
|
||||
"label": "Systemfält",
|
||||
"submenu": {
|
||||
"disabled": "Inaktiverad",
|
||||
"enabled-and-hide-app": "Aktiverad och dölj app",
|
||||
"enabled-and-show-app": "Aktiverad och visa app",
|
||||
"play-pause-on-click": "Spela/Pausa vid klick"
|
||||
}
|
||||
},
|
||||
"visual-tweaks": {
|
||||
"label": "Visuella justeringar",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Anpassad titel på fönstret",
|
||||
"prompt": {
|
||||
"label": "Ange anpassad fönstertitel: (lämna tomt för att inaktivera)",
|
||||
"placeholder": "Exempelvis: YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Standard",
|
||||
"force-show": "Tvinga fram visning",
|
||||
"hide": "Dölj",
|
||||
"label": "Gilla-knappar"
|
||||
},
|
||||
"remove-upgrade-button": "Ta bort knappen för uppgradering",
|
||||
"theme": {
|
||||
"dialog": {
|
||||
"button": {
|
||||
"cancel": "Avbryt",
|
||||
"remove": "Ta bort"
|
||||
},
|
||||
"remove-theme": "Vill du verkligen radera det anpassade temat?",
|
||||
"remove-theme-message": "Det här raderar ditt anpassade tema"
|
||||
},
|
||||
"label": "Tema",
|
||||
"submenu": {
|
||||
"import-css-file": "Importera anpassad CSS-fil",
|
||||
"no-theme": "Inget tema"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"enabled": "Aktiverad",
|
||||
"label": "Tillägg",
|
||||
"new": "NY"
|
||||
},
|
||||
"view": {
|
||||
"label": "Visa",
|
||||
"submenu": {
|
||||
"force-reload": "Tvinga omladdning",
|
||||
"reload": "Ladda om",
|
||||
"reset-zoom": "Verklig storlek",
|
||||
"toggle-fullscreen": "Växla helskärm",
|
||||
"zoom-in": "Zooma in",
|
||||
"zoom-out": "Zooma ut"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
"next": "Nästa",
|
||||
"play-pause": "Spela/Pausa",
|
||||
"previous": "Föregående",
|
||||
"quit": "Stäng",
|
||||
"restart": "Starta om appen",
|
||||
"show": "Visa fönster",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} – {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Om en annons spelas, tystas ljudet och uppspelningshastigheten sätts till 16×",
|
||||
"name": "Snabba upp annonser"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Blockerar annonser och spårning automatiskt",
|
||||
"menu": {
|
||||
"blocker": "Blockerare"
|
||||
},
|
||||
"name": "Annonsblockerare"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Lägger till knappar för Undislike, Dislike, Like och Unlike för att använda detta på alla spår i en spellista eller ett album",
|
||||
"name": "Albumåtgärder"
|
||||
},
|
||||
"album-color-theme": {
|
||||
"description": "Använder ett dynamiskt tema och visuella effekter baserat på albumets färgpalett",
|
||||
"menu": {
|
||||
"color-mix-ratio": {
|
||||
"label": "Färgblandningsförhållande",
|
||||
"submenu": {
|
||||
"percent": "{{ratio}} %"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Albumfärgtema"
|
||||
},
|
||||
"ambient-mode": {
|
||||
"description": "Ger en ljuseffekt genom att försiktigt kasta färger från videon på skärmens bakgrund",
|
||||
"menu": {
|
||||
"blur-amount": {
|
||||
"label": "Oskärpa",
|
||||
"submenu": {
|
||||
"pixels": "{{blurAmount}} pixlar"
|
||||
}
|
||||
},
|
||||
"buffer": {
|
||||
"label": "Buffert",
|
||||
"submenu": {
|
||||
"buffer": "{{buffer}}"
|
||||
}
|
||||
},
|
||||
"opacity": {
|
||||
"label": "Opacitet",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"quality": {
|
||||
"label": "Kvalitet",
|
||||
"submenu": {
|
||||
"pixels": "{{quality}} pixlar"
|
||||
}
|
||||
},
|
||||
"size": {
|
||||
"label": "Storlek",
|
||||
"submenu": {
|
||||
"percent": "{{size}}%"
|
||||
}
|
||||
},
|
||||
"smoothness-transition": {
|
||||
"label": "Mjuk övergång",
|
||||
"submenu": {
|
||||
"during": "Under {{interpolationTime}} s"
|
||||
}
|
||||
},
|
||||
"use-fullscreen": {
|
||||
"label": "Använder helskärm"
|
||||
}
|
||||
},
|
||||
"name": "Ambiensläge"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Lägger till stöd för YouTube Music i Amuse ‘Now Playing’-widgeten av 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Amuse API-servern körs. Använd GET /query för att hämta information om låt."
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "Lägger till en API-server för att styra spelaren",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
"allow": "Tillåt",
|
||||
"deny": "Avvisa"
|
||||
},
|
||||
"message": "Tillåt {{ID}} ({{origin}}) att få åtkomst till API:et?",
|
||||
"title": "Förfrågan om API-åtkomst"
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"auth-strategy": {
|
||||
"label": "Metod för åtkomstkontroll",
|
||||
"submenu": {
|
||||
"auth-at-first": {
|
||||
"label": "Ge åtkomst vid första begäran"
|
||||
},
|
||||
"none": {
|
||||
"label": "Ingen åtkomstkontroll"
|
||||
}
|
||||
}
|
||||
},
|
||||
"hostname": {
|
||||
"label": "Värdnamn"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "API-server [Beta]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Ange värdnamnet (t.ex. 0.0.0.0) för API-servern:",
|
||||
"title": "Värdnamn"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ange porten för API-servern:",
|
||||
"title": "Port"
|
||||
}
|
||||
}
|
||||
},
|
||||
"audio-compressor": {
|
||||
"description": "Applicera komprimering på ljudet (sänker volymen på de starkaste delarna av signalen och höjer volymen på de svagaste delarna)",
|
||||
"name": "Ljudkompressor"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Stöd för användning av autentiseringsproxy-tjänster",
|
||||
"menu": {
|
||||
"disable": "Inaktivera proxy-adapter",
|
||||
"enable": "Aktivera proxy-adapter",
|
||||
"hostname": {
|
||||
"label": "Värdnamn"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Adapter För Autentiseringsproxy",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Ange värdnamn för lokal proxyserver (kräver omstart):",
|
||||
"title": "Proxy-värdnamn"
|
||||
},
|
||||
"port": {
|
||||
"label": "Ange port för lokal proxyserver (kräver omstart):",
|
||||
"title": "Port för proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Gör navigeringsfältet transparent och suddigt",
|
||||
"name": "Suddigt Navigeringsfält"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Hoppa över YouTubes åldersverifiering",
|
||||
"name": "Hoppa Över Åldersbegränsningar"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "Välj textning för YouTube Music-ljudspår",
|
||||
"menu": {
|
||||
"autoload": "Välj automatiskt senast använda textning",
|
||||
"disable-captions": "Ingen textning som standard"
|
||||
},
|
||||
"name": "Textväljare",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "Aktuellt textningsspråk: {{language}}",
|
||||
"none": "Inget",
|
||||
"title": "Välj textspråk"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "Öppna textväljaren"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Textning ändrad till {{language}}",
|
||||
"caption-disabled": "Textning inaktiverad",
|
||||
"no-captions": "Inga undertexter tillgängliga för denna låt"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Sätt alltid sidomenyn i kompakt läge",
|
||||
"name": "Kompakt Sidomeny"
|
||||
},
|
||||
"crossfade": {
|
||||
"description": "Mjuk övergång mellan låtar",
|
||||
"menu": {
|
||||
"advanced": "Avancerat"
|
||||
},
|
||||
"name": "Mjuk Övergång [Beta]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Fade-in-varaktighet (ms)",
|
||||
"fade-out-duration": "Fade-out-varaktighet (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Fade-skalning",
|
||||
"linear": "Linjär",
|
||||
"logarithmic": "Logaritmisk"
|
||||
},
|
||||
"seconds-before-end": "Övergång i sekunder före slutet"
|
||||
},
|
||||
"title": "Övergångsinställningar"
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Konfigurera en anpassad utdataenhet för låtar",
|
||||
"menu": {
|
||||
"device-selector": "Välj enhet"
|
||||
},
|
||||
"name": "Anpassad Utdataenhet",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Välj den utdataenhet som ska användas",
|
||||
"title": "Välj utdataenhet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Starta låt i \"pausat\" läge",
|
||||
"menu": {
|
||||
"apply-once": "Gäller endast vid uppstart"
|
||||
},
|
||||
"name": "Inaktivera Automatisk Uppspelning"
|
||||
},
|
||||
"discord": {
|
||||
"backend": {
|
||||
"already-connected": "Försökte ansluta med aktiv anslutning",
|
||||
"connected": "Ansluten till Discord",
|
||||
"disconnected": "Frånkopplad från Discord"
|
||||
},
|
||||
"description": "Visa dina vänner vad du lyssnar på med Aktivitetsdelning",
|
||||
"menu": {
|
||||
"auto-reconnect": "Automatisk återanslutning",
|
||||
"clear-activity": "Rensa aktivitet",
|
||||
"clear-activity-after-timeout": "Rensa aktivitet efter tidsgräns",
|
||||
"connected": "Ansluten",
|
||||
"disconnected": "Frånkopplad",
|
||||
"hide-duration-left": "Dölj återstående tid",
|
||||
"hide-github-button": "Dölj knapp för GitHub-länk",
|
||||
"play-on-youtube-music": "Spela på YouTube Music",
|
||||
"set-inactivity-timeout": "Ställ in inaktivitetstid",
|
||||
"set-status-display-type": {
|
||||
"label": "Statusmeddelande",
|
||||
"submenu": {
|
||||
"artist": "Lyssnar på {artist}",
|
||||
"title": "Lyssnar på {song title}",
|
||||
"youtube-music": "Lyssnar på YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Aktivitetsdelning",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Ange inaktivitetstid i sekunder:",
|
||||
"title": "Ställ in inaktivitetstid"
|
||||
}
|
||||
}
|
||||
},
|
||||
"downloader": {
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"error": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"message": "Hoppsan! Nedladdningen misslyckades…",
|
||||
"title": "Fel vid nedladdning!"
|
||||
},
|
||||
"start-download-playlist": {
|
||||
"buttons": {
|
||||
"ok": "OK"
|
||||
},
|
||||
"detail": "({{playlistSize}} låtar)",
|
||||
"message": "Laddar ner {{playlistTitle}}-spellistan",
|
||||
"title": "Nedladdning påbörjad"
|
||||
}
|
||||
},
|
||||
"feedback": {
|
||||
"conversion-progress": "Konvertering: {{percent}}%",
|
||||
"converting": "Konverterar…",
|
||||
"done": "Klart: {{filePath}}",
|
||||
"download-info": "Laddar ner {{artist}} - {{title}} [{{videoId}}",
|
||||
"download-progress": "Nedladdning: {{percent}}%",
|
||||
"downloading": "Laddar ner…",
|
||||
"downloading-counter": "Laddar ner {{current}}/{{total}}…",
|
||||
"downloading-playlist": "Laddar ner {{playlistTitle}}-spellistan — {{playlistSize}} spår ({{playlistId}})",
|
||||
"error-while-downloading": "Fel vid nedladdning \"{{author}} - {{title}}\": {{error}}",
|
||||
"folder-already-exists": "Mappen {{playlistFolder}} finns redan",
|
||||
"getting-playlist-info": "Hämtar information om spellista…",
|
||||
"loading": "Laddar…",
|
||||
"playlist-has-only-one-song": "Spellistan innehåller bara ett objekt. Laddar ner direkt.",
|
||||
"playlist-id-not-found": "Hittade inget ID för spellista",
|
||||
"playlist-is-empty": "Spellistan är tom",
|
||||
"playlist-is-mix-or-private": "Fel vid hämtning av spellisteinformation. Se till att den inte är privat eller en 'Mixed for you'-spellista\n\n{{error}}",
|
||||
"preparing-file": "Förbereder fil…",
|
||||
"saving": "Sparar…",
|
||||
"trying-to-get-playlist-id": "Försöker hämta spelliste-ID: {{playlistId}}",
|
||||
"video-id-not-found": "Videon hittades inte",
|
||||
"writing-id3": "Skriver ID3-taggar…"
|
||||
}
|
||||
},
|
||||
"description": "Laddar ner MP3 / originalljud direkt från gränssnittet",
|
||||
"menu": {
|
||||
"choose-download-folder": "Välj nedladdningsmapp",
|
||||
"download-finish-settings": {
|
||||
"label": "Ladda ner när klart",
|
||||
"prompt": {
|
||||
"last-percent": "Efter x procent",
|
||||
"last-seconds": "Senaste x sekunderna",
|
||||
"title": "Ställ in när nedladdning ska ske"
|
||||
},
|
||||
"submenu": {
|
||||
"advanced": "Avancerat",
|
||||
"enabled": "Aktiverad",
|
||||
"mode": "Tidsläge",
|
||||
"percent": "Procent",
|
||||
"seconds": "Sekunder"
|
||||
}
|
||||
},
|
||||
"download-playlist": "Ladda ner spellista",
|
||||
"presets": "Förinställningar",
|
||||
"skip-existing": "Hoppa över befintliga filer"
|
||||
},
|
||||
"name": "Nedladdare",
|
||||
"renderer": {
|
||||
"can-not-update-progress": "Kan inte uppdatera förlopp"
|
||||
},
|
||||
"templates": {
|
||||
"button": "Ladda ner"
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"description": "Lägger till en equalizer i spelaren",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Förinställningar",
|
||||
"list": {
|
||||
"bass-booster": "Basförstärkning"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Equalizer"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Gör volymreglaget exponentiellt så att det blir lättare att välja lägre volymer.",
|
||||
"name": "Exponentiell Volym"
|
||||
},
|
||||
"in-app-menu": {
|
||||
"description": "Ger menyrader ett snyggt, mörkt, eller albumfärgat utseende",
|
||||
"menu": {
|
||||
"hide-dom-window-controls": "Dölj DOM-fönsterkontroller"
|
||||
},
|
||||
"name": "Meny I Appen"
|
||||
},
|
||||
"lumiastream": {
|
||||
"description": "Lägger till stöd för Lumia Stream",
|
||||
"name": "Lumia Stream [Beta]"
|
||||
},
|
||||
"lyrics-genius": {
|
||||
"description": "Lägger till stöd för texter till de flesta låtar",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Romiserade texter"
|
||||
},
|
||||
"name": "Texter från Genius",
|
||||
"renderer": {
|
||||
"fetched-lyrics": "Hämtade texter från Genius"
|
||||
}
|
||||
},
|
||||
"music-together": {
|
||||
"description": "Dela en spellista med andra. När värden spelar en låt kommer alla andra höra samma låt",
|
||||
"dialog": {
|
||||
"enter-host": "Ange värd-ID"
|
||||
},
|
||||
"internal": {
|
||||
"save": "Spara",
|
||||
"track-source": "Ljudkälla",
|
||||
"unknown-user": "Okänd användare"
|
||||
},
|
||||
"menu": {
|
||||
"click-to-copy-id": "Kopiera värd-ID",
|
||||
"close": "Stäng \"Music Together\"",
|
||||
"connected-users": "Anslutna användare",
|
||||
"disconnect": "Koppla från \"Music Together\"",
|
||||
"empty-user": "Inga anslutna användare",
|
||||
"host": "Värd för \"Music Together\"",
|
||||
"join": "Gå med i \"Music Together\"",
|
||||
"permission": {
|
||||
"all": "Tillåt gäster att styra spellista och spelare",
|
||||
"host-only": "Endast värden kan styra spellista och spelare",
|
||||
"playlist": "Tillåt gäster att styra spellistan"
|
||||
},
|
||||
"set-permission": "Ändra behörighet för styrning",
|
||||
"status": {
|
||||
"disconnected": "Frånkopplad",
|
||||
"guest": "Ansluten som gäst",
|
||||
"host": "Ansluten som värd"
|
||||
}
|
||||
},
|
||||
"name": "Music Together [Beta]",
|
||||
"toast": {
|
||||
"add-song-failed": "Misslyckades med att lägga till låt",
|
||||
"closed": "\"Music Together\" stängdes",
|
||||
"disconnected": "\"Music Together\" frånkopplad",
|
||||
"host-failed": "Misslyckades med att vara värd för \"Music Together\"",
|
||||
"id-copied": "Värd-ID kopierat till urklipp",
|
||||
"id-copy-failed": "Misslyckades med att kopiera värd-ID till urklipp",
|
||||
"join-failed": "Misslyckades med att gå med i \"Music Together\"",
|
||||
"joined": "Gick med i \"Music Together\"",
|
||||
"permission-changed": "Behörighet för \"Music Together\" ändrad till \"{{permission}}\"",
|
||||
"remove-song-failed": "Misslyckades med att radera låt",
|
||||
"user-connected": "{{name}} gick med i \"Music Together\"",
|
||||
"user-disconnected": "{{name}} lämnade \"Music Together\""
|
||||
}
|
||||
},
|
||||
"navigation": {
|
||||
"name": "Navigering"
|
||||
"description": "Direkt integrering av Nästa-/Tillbaka-navigeringspilar i gränssnittet, som i din favoritwebbläsare",
|
||||
"name": "Navigering",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Gå till föregående sida"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Gå till nästa sida"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"name": "Inget Google Login"
|
||||
"description": "Ta bort Google-inloggningsknappar och länkar från gränssnittet",
|
||||
"name": "Ingen Google-inloggning"
|
||||
},
|
||||
"notifications": {
|
||||
"description": "Visa en notis när en låt börjar spelas (interaktiva notiser finns på Windows)",
|
||||
"menu": {
|
||||
"interactive": "Interaktiva notiser",
|
||||
"interactive-settings": {
|
||||
"label": "Interaktiva inställningar",
|
||||
"submenu": {
|
||||
"hide-button-text": "Dölj knapptext",
|
||||
"refresh-on-play-pause": "Uppdatera vid Play/Pause",
|
||||
"tray-controls": "Öppna/stäng vid klick i systemfältet"
|
||||
}
|
||||
},
|
||||
"priority": "Notisprioritet",
|
||||
"toast-style": "Stil för \"toast\"-notiser",
|
||||
"unpause-notification": "Visa notis när uppspelning återupptas"
|
||||
},
|
||||
"name": "Notiser"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Förbättra prestanda genom att aktivera experimentella skript",
|
||||
"name": "Prestandaförbättring [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Tillåter appen att växla till bild-i-bild-läge",
|
||||
"menu": {
|
||||
"always-on-top": "Alltid överst",
|
||||
"hotkey": {
|
||||
"label": "Snabbkommando",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Snabbkommando"
|
||||
},
|
||||
"label": "Välj ett snabbkommando för att växla bild-i-bild-läge",
|
||||
"title": "Bild-I-Bild genväg"
|
||||
}
|
||||
}
|
||||
},
|
||||
"save-window-position": "Spara fönsterposition",
|
||||
"save-window-size": "Spara fönsterstorlek",
|
||||
"use-native-pip": "Använd webbläsarens inbyggda bild-i-bild"
|
||||
},
|
||||
"name": "Bild-I-Bild",
|
||||
"name": "Bild-i-bild",
|
||||
"templates": {
|
||||
"button": "Bild-i-bild"
|
||||
}
|
||||
},
|
||||
"playback-speed": {
|
||||
"description": "Lägger till ett reglage för att ändra uppspelningshastighet",
|
||||
"name": "Uppspelningshastighet",
|
||||
"templates": {
|
||||
"button": "Hasighet"
|
||||
"button": "Hastighet"
|
||||
}
|
||||
},
|
||||
"precise-volume": {
|
||||
"description": "Styr ljudstyrkan exakt med mushjul/snabbtangenter, med anpassat skärmlager och justerbara volymsteg",
|
||||
"menu": {
|
||||
"arrows-shortcuts": "Kontroller för lokala piltangenter",
|
||||
"custom-volume-steps": "Ställ in egna volymsteg",
|
||||
"global-shortcuts": "Globala snabbkommandon"
|
||||
},
|
||||
"name": "Noggrann Volymkontroll",
|
||||
"prompt": {
|
||||
"global-shortcuts": {
|
||||
"keybind-options": {
|
||||
"decrease": "Minska Volym",
|
||||
"increase": "Öka Volym"
|
||||
}
|
||||
"decrease": "Sänk volymen",
|
||||
"increase": "Öka volymen"
|
||||
},
|
||||
"label": "Välj globala kortkommandon för volym:",
|
||||
"title": "Globala kortkommandon för volym"
|
||||
},
|
||||
"volume-steps": {
|
||||
"label": "Välj volymsteg för ökning/minskning",
|
||||
"title": "Volymsteg"
|
||||
}
|
||||
}
|
||||
@ -176,54 +726,225 @@
|
||||
"backend": {
|
||||
"dialog": {
|
||||
"quality-changer": {
|
||||
"detail": "Nuvarande kvalité: {{quality}}",
|
||||
"message": "Välj Video Kvalité:",
|
||||
"title": "Välj Video Kvalité"
|
||||
"detail": "Nuvarande kvalitet: {{quality}}",
|
||||
"message": "Välj videokvalitet:",
|
||||
"title": "Välj videokvalitet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Tillåter att ändra videokvalitet med en knapp i videons overlay",
|
||||
"name": "Videokvalitetsväxlare",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Öppna kvalitetsväxlare för spelaren"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Lägg till scrobbling-stöd (t.ex. last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Misslyckades att autentisera med Last.fm\nDölj popup-fönstret till nästa omstart.",
|
||||
"title": "Autentisering misslyckades"
|
||||
}
|
||||
}
|
||||
},
|
||||
"menu": {
|
||||
"lastfm": {
|
||||
"api-settings": "Last.fm API-inställningar"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": "Ange ListenBrainz användartoken"
|
||||
},
|
||||
"scrobble-alternative-artist": "Använd alternativa artister",
|
||||
"scrobble-alternative-title": "Använd alternativa titlar",
|
||||
"scrobble-other-media": "Scrobbla annan media"
|
||||
},
|
||||
"name": "Scrobbler",
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API nyckel"
|
||||
"api-key": "Last.fm API nyckel",
|
||||
"api-secret": "Last.fm API-hemlighet"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
"label": "Ange din ListenBrainz användartoken:",
|
||||
"title": "ListenBrainz token"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"shortcuts": {
|
||||
"description": "Tillåter inställning av globala kortkommandon för uppspelning (spela/pausa/nästa/föregående) och inaktiverar medie-OSD genom att åsidosätta medietangenter. Aktiverar Ctrl/CMD + F för sökning. Aktiverar Linux MPRIS-stöd för medietangenter och anpassade kortkommandon för avancerade användare",
|
||||
"menu": {
|
||||
"override-media-keys": "Åsidosätt medietangenter",
|
||||
"set-keybinds": "Ställ in globala kontroller för låtar"
|
||||
},
|
||||
"name": "Genvägar (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
"next": "Nästa",
|
||||
"play-pause": "Spela / Pausa",
|
||||
"previous": "Föregående"
|
||||
}
|
||||
},
|
||||
"label": "Välj globala kortkommandon för kontroll av låtar:",
|
||||
"title": "Globala kortkommandon"
|
||||
}
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Hoppar över låtar du inte gillar",
|
||||
"name": "Hoppa Över Låtar Du Inte Gillar"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Hoppa automatiskt över tysta partier i låtar",
|
||||
"name": "Hoppa Över Tysta Partier"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Hoppar automatiskt över icke-musikdelar som intro/outro eller delar av musikvideor där ingen musik spelas",
|
||||
"name": "Blockera Sponsorer"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "Visar synkroniserade låttexter med hjälp av tjänster som LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️ Ett fel uppstod när texterna skulle hämtas.\n\tFörsök igen senare.",
|
||||
"not-found": "⚠️ Inga texter hittades för denna låt."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
"label": "Standardtecken mellan låttexter",
|
||||
"tooltip": "Välj standardtecken att använda för mellanrummet mellan låttexter"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Linjeeffekt",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Stiligt",
|
||||
"tooltip": "Använd stora, app-liknande effekter på den aktuella raden"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Fokus",
|
||||
"tooltip": "Gör endast den aktuella raden vit"
|
||||
},
|
||||
"offset": {
|
||||
"label": "Förskjutning",
|
||||
"tooltip": "Förskjut den aktuella raden åt höger"
|
||||
},
|
||||
"scale": {
|
||||
"label": "Skala",
|
||||
"tooltip": "Skala den aktuella raden"
|
||||
}
|
||||
},
|
||||
"tooltip": "Välj effekt att applicera på den aktuella raden"
|
||||
},
|
||||
"precise-timing": {
|
||||
"label": "Gör låttexterna perfekt synkroniserade",
|
||||
"tooltip": "Beräkna till millisekunden när nästa rad ska visas (kan ha en liten inverkan på prestanda)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Föredragen leverantör",
|
||||
"none": {
|
||||
"label": "Ingen",
|
||||
"tooltip": "Ingen föredragen leverantör"
|
||||
},
|
||||
"tooltip": "Välj standardleverantör att använda"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Romanisera låttexter",
|
||||
"tooltip": "Om låttexterna är på ett annat språk, försök visa en latinsk version."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "Visa låttexter även om de inte är exakta",
|
||||
"tooltip": "Om låten inte hittas försöker tillägget igen med en annan sökförfrågan.\nResultatet från det andra försöket kanske inte är exakt."
|
||||
},
|
||||
"show-time-codes": {
|
||||
"label": "Visa tidskoder",
|
||||
"tooltip": "Visa tidskoderna bredvid låttexterna"
|
||||
}
|
||||
},
|
||||
"name": "Synkroniserade Låttexter",
|
||||
"refetch-btn": {
|
||||
"fetching": "Hämtar...",
|
||||
"normal": "Hämta låttexter igen"
|
||||
},
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Texterna kan vara osynkroniserade på grund av en skillnad i spårlängd.",
|
||||
"inexact": "⚠️ - Låttexterna för den här låten kanske inte är exakta",
|
||||
"instrumental": "⚠️ - Det här är en instrumentallåt"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Kontrollera uppspelning från aktivitetsfältet i Windows",
|
||||
"name": "Mediakontroll i aktivitetsfältet"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Lägger till en TouchBar-widget för macOS-användare",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Gör appfönstret genomskinligt",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opacitet",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Typ",
|
||||
"submenu": {
|
||||
"acrylic": "Akryl",
|
||||
"mica": "Mica",
|
||||
"none": "Ingen",
|
||||
"tabbed": "Flikad"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Genomskinlig Spelare"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Integration med OBS-pluginprogrammet Tuna",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Undviker att spelaren visas när musik spelas",
|
||||
"name": "Diskret Spelare"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Lägger till en knapp för att växla mellan video/musik-läge. Kan också valfritt ta bort hela videofliken",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Justering",
|
||||
"submenu": {
|
||||
"left": "Vänster",
|
||||
"middle": "Mitten",
|
||||
"right": "Höger"
|
||||
}
|
||||
},
|
||||
"force-hide": "Tvinga borttagning av videoflik",
|
||||
"mode": {
|
||||
"label": "Läge",
|
||||
"submenu": {
|
||||
"disabled": "Inaktiverad"
|
||||
"custom": "Anpassad växling",
|
||||
"disabled": "Inaktiverad",
|
||||
"native": "Inbyggd växling"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Video PÅ/AV",
|
||||
"templates": {
|
||||
"button": "Låt"
|
||||
"button-song": "Låt",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Lägger till en visualisering i spelaren",
|
||||
"menu": {
|
||||
"visualizer-type": "Visualiseringstyp"
|
||||
},
|
||||
"name": "Visualiserare"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "காட்சி மாற்றங்கள்",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "தனிப்பயன் சாளர தலைப்பு",
|
||||
"prompt": {
|
||||
"label": "தனிப்பயன் சாளர தலைப்பை உள்ளிடவும்: (முடக்க காலியாக விடவும்)",
|
||||
"placeholder": "எடுத்துக்காட்டு: YouTube இசை"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "இயல்புநிலை",
|
||||
"force-show": "படை நிகழ்ச்சி",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "ஆடியோவுக்கு சுருக்கத்தைப் பயன்படுத்துங்கள் (சமிக்ஞையின் உரத்த பகுதிகளின் அளவைக் குறைத்து, மென்மையான பகுதிகளின் அளவை உயர்த்துகிறது)",
|
||||
"name": "ஆடியோ அமுக்கி"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "அங்கீகார ப்ராக்ஸி சேவைகளைப் பயன்படுத்துவதற்கான ஆதரவு",
|
||||
"menu": {
|
||||
"disable": "ப்ராக்ஸி அடாப்டரைத் துண்டிக்கவும்",
|
||||
"enable": "ப்ராக்ஸி அடாப்டரை இயக்கு",
|
||||
"hostname": {
|
||||
"label": "ஹோஸ்ட் பெயர்"
|
||||
},
|
||||
"port": {
|
||||
"label": "port"
|
||||
}
|
||||
},
|
||||
"name": "அங்கீகார பதிலாள் அடாப்டர்",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "ப்ராக்ஸி சர்வருக்கான ஹோஸ்ட் பெயரை உள்ளிடவும் (மறுதொடக்கம் தேவை):",
|
||||
"title": "ப்ராக்ஸி ஹோஸ்ட்பெயர்"
|
||||
},
|
||||
"port": {
|
||||
"label": "ப்ராக்ஸி சர்வருக்கான போர்ட்டை உள்ளிடவும் (மறுதொடக்கம் தேவை):",
|
||||
"title": "ப்ராக்ஸி போர்ட்"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "வழிசெலுத்தல் பட்டியை வெளிப்படையானதாகவும் மங்கலாகவும் ஆக்குகிறது",
|
||||
"name": "மங்கலான வழிசெலுத்தல் பட்டி"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "திறந்த தலைப்புகள் தேர்வாளர்"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "தலைப்பு {{language}} என மாற்றப்பட்டது",
|
||||
"caption-disabled": "தலைப்புகள் முடக்கப்பட்டன",
|
||||
"no-captions": "இந்த பாடலுக்கு தலைப்புகள் எதுவும் கிடைக்கவில்லை"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -576,7 +612,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "உங்களுக்கு பிடித்த உலாவியைப் போலவே இடைமுகத்தில் நேரடியாக ஒருங்கிணைக்கப்பட்ட அடுத்த/பின் வழிசெலுத்தல் அம்புகள்",
|
||||
"name": "வானோடல்"
|
||||
"name": "வானோடல்",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "முந்தைய பக்கத்திற்குச் செல்"
|
||||
},
|
||||
"forward": {
|
||||
"title": "அடுத்த பக்கத்திற்குச் செல்"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "இடைமுகத்திலிருந்து Google உள்நுழைவு பொத்தான்கள் மற்றும் இணைப்புகளை அகற்று",
|
||||
@ -600,6 +644,10 @@
|
||||
},
|
||||
"name": "அறிவிப்புகள்"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "சோதனை ஸ்கிரிப்ட்களை இயக்குவதன் மூலம் செயல்திறனை மேம்படுத்தும்",
|
||||
"name": "செயல்திறன் மேம்பாடு [பீட்டா]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "பயன்பாட்டை பட-பட பயன்முறைக்கு மாற்ற அனுமதிக்கிறது",
|
||||
"menu": {
|
||||
@ -664,7 +712,12 @@
|
||||
}
|
||||
},
|
||||
"description": "வீடியோ மேலடுக்கில் ஒரு பொத்தானைக் கொண்டு வீடியோ தரத்தை மாற்ற அனுமதிக்கிறது",
|
||||
"name": "வீடியோ தர மாற்றி"
|
||||
"name": "வீடியோ தர மாற்றி",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "திறந்த பிளேயர் தர மாற்றி"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "ச்க்ரோப்ளிங் ஆதரவைச் சேர் (last.fm, Listenbrainz முதலியன)",
|
||||
@ -683,6 +736,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "WeskBrainz பயனர் கிள்ளாக்கை உள்ளிடவும்"
|
||||
},
|
||||
"scrobble-alternative-title": "மாற்று தலைப்புகளைப் பயன்படுத்தவும்",
|
||||
"scrobble-other-media": "மற்ற ஊடகங்களை வெல்லுங்கள்"
|
||||
},
|
||||
"name": "ச்க்ரோபிளர்",
|
||||
@ -767,6 +821,10 @@
|
||||
"label": "பாடல் வரிகளை சரியாக ஒத்திசைக்கவும்",
|
||||
"tooltip": "அடுத்த வரியின் காட்சியைக் கணக்கிடுங்கள் (செயல்திறனில் ஒரு சிறிய தாக்கத்தை ஏற்படுத்தும்)"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "பாடல் வரிகள் ரோமானியமாக்குங்கள்",
|
||||
"tooltip": "பாடல் வரிகள் வேறு மொழியில் இருந்தால், லத்தீன் பதிப்பைக் காட்ட முயற்சிக்கவும்."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
"label": "துல்லியமாக இருந்தாலும் பாடல்களைக் காட்டு",
|
||||
"tooltip": "பாடல் காணப்படாவிட்டால், சொருகி மீண்டும் வேறு தேடல் வினவலுடன் முயற்சிக்கிறது.\n இரண்டாவது முயற்சியின் முடிவு துல்லியமாக இருக்காது."
|
||||
@ -799,6 +857,10 @@
|
||||
"description": "OBS இன் சொருகி டுனாவுடன் ஒருங்கிணைப்பு",
|
||||
"name": "டுனா குறிப்பு"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "பாடலைப் பாடும்போது பாப் அப் செய்வதைத் தடுக்கிறது",
|
||||
"name": "எளிதில் கேட்கக்கூடிய பாடல்"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "வீடியோ/பாடல் பயன்முறைக்கு இடையில் மாற ஒரு பொத்தானைச் சேர்க்கிறது. முழு வீடியோ தாவலையும் விருப்பமாக அகற்றலாம்",
|
||||
"menu": {
|
||||
@ -822,7 +884,8 @@
|
||||
},
|
||||
"name": "வீடியோ மாற்று",
|
||||
"templates": {
|
||||
"button": "பாடல்"
|
||||
"button-song": "பாடல்",
|
||||
"button-video": "காணொளி"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "ปรับแต่งหน้าตาแอป",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "ชื่อหน้าต่างกำหนดเอง",
|
||||
"prompt": {
|
||||
"label": "กำหนดชื่อหน้าต่างที่ต้องการ: (ปล่อยว่างเพื่อปิดใช้งาน)",
|
||||
"placeholder": "ตัวอย่าง: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "ค่าเริ่มต้น",
|
||||
"force-show": "บังคับให้แสดง",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "ใช้การบีบอัดเสียง (ลดระดับเสียงของส่วนที่ดังที่สุดของสัญญาณและเพิ่มระดับเสียงของส่วนที่เบาที่สุด)",
|
||||
"name": "เครื่องมือบีบอัดเสียง"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "รองรับการใช้พร็อกซีสำหรับการตรวจสอบสิทธิ์",
|
||||
"menu": {
|
||||
"disable": "เปิดใช้งาน ตัวเชื่อมต่อพร็อกซี",
|
||||
"enable": "ปิดใช้งาน ตัวเชื่อมต่อพร็อกซี",
|
||||
"hostname": {
|
||||
"label": "ชื่อโฮสต์"
|
||||
},
|
||||
"port": {
|
||||
"label": "พอร์ต"
|
||||
}
|
||||
},
|
||||
"name": "ตัวเชื่อมต่อสำหรับตรวจสอบสิทธิ์ผ่านพร็อกซี",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "ป้อนชื่อโฮสต์สำหรับพร็อกซีเซิร์ฟเวอร์ภายในเครื่อง (ต้องรีสตาร์ท):",
|
||||
"title": "ชื่อโฮสต์พร็อกซี"
|
||||
},
|
||||
"port": {
|
||||
"label": "ป้อนพอร์ตสำหรับพร็อกซีเซิร์ฟเวอร์ภายในเครื่อง (ต้องรีสตาร์ท):",
|
||||
"title": "พอร์ตพร็อกซี"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "ทำให้แถบนำทางโปร่งแสงและเบลอ",
|
||||
"name": "เบลอแถบนำทาง"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "เปิดตัวเลือกคำบรรยาย"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "เปลี่ยนคำบรรยายเป็นภาษา {{language}}",
|
||||
"caption-disabled": "คำบรรยายถูกปิดใช้งาน",
|
||||
"no-captions": "ไม่มีคำบรรยายสำหรับเพลงนี้"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "ตั้งค่าอุปกรณ์เสียงออกสำหรับเพลง",
|
||||
"menu": {
|
||||
"device-selector": "เลือกอุปกรณ์"
|
||||
},
|
||||
"name": "อุปกรณ์เสียงออกที่กำหนดเอง",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "เลือกอุปกรณ์เสียงออกที่ต้องการใช้",
|
||||
"title": "เลือกอุปกรณ์เสียงออก"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "เริ่มเพลงในโหมดหยุดชั่วคราว",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "ซ่อนระยะเวลาที่เหลือ",
|
||||
"hide-github-button": "ซ่อนปุ่มลิงก์ GitHub",
|
||||
"play-on-youtube-music": "เล่นบน YouTube Music",
|
||||
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม"
|
||||
"set-inactivity-timeout": "ตั้งระยะเวลาไม่มีกิจกรรม",
|
||||
"set-status-display-type": {
|
||||
"label": "ข้อความสถานะ",
|
||||
"submenu": {
|
||||
"artist": "กำลังฟัง {ชื่อนักร้อง}",
|
||||
"title": "กำลังฟัง {ชื่อเพลง}",
|
||||
"youtube-music": "กำลังฟัง YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "แสดงกิจกรรมบนดิสคอร์ด",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "ลูกศรนำทางถัดไป/ย้อนกลับรวมอยู่ในอินเทอร์เฟซโดยตรง เช่นเดียวกับในเบราว์เซอร์ที่คุณชื่นชอบ",
|
||||
"name": "การนำทาง"
|
||||
"name": "การนำทาง",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "ไปหน้าก่อนหน้า"
|
||||
},
|
||||
"forward": {
|
||||
"title": "ไปหน้าถัดไป"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "ลบปุ่มเข้าสู่ระบบ Google และลิงก์ออกจากอินเทอร์เฟซ",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "การแจ้งเตือน"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "ปรับปรุงประสิทธิภาพโดยเปิดใช้งานสคริปต์ทดลอง",
|
||||
"name": "ปรับปรุงประสิทธิภาพ [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "อนุญาตให้สลับแอปเป็นโหมดภาพในภาพ",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "อนุญาตให้เปลี่ยนคุณภาพของวิดีโอด้วยปุ่มที่แสดงเหนือวิดีโอ",
|
||||
"name": "ที่เปลี่ยนคุณภาพวิดีโอ"
|
||||
"name": "ที่เปลี่ยนคุณภาพวิดีโอ",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "เปิดตัวเปลี่ยนคุณภาพเครื่องเล่น"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "รองรับการบันทึกการเล่นเพลง (เช่น last.fm, Listenbrainz)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "ใส่ user token ของ ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "ใช้ชื่อศิลปินอื่น",
|
||||
"scrobble-alternative-title": "ใช้ชื่ออื่น",
|
||||
"scrobble-other-media": "บันทึกการเล่นสื่ออื่นๆ"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "ให้เนื้อเพลงตรงกับเพลงเป๊ะๆ",
|
||||
"tooltip": "คำนวณมิลิวินาทีในการแสดงบรรทัดถัดไป (มีผลเล็กน้อยกับประสิทธิภาพการทำงาน)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "ผู้ให้บริการที่ต้องการ",
|
||||
"none": {
|
||||
"label": "ไม่มี",
|
||||
"tooltip": "ไม่มีผู้ให้บริการที่ต้องการ"
|
||||
},
|
||||
"tooltip": "เลือกผู้ให้บริการที่ต้องการใช้งาน"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "เนื้อเพลงตัวด้วยอักษรโรมัน",
|
||||
"tooltip": "ถ้าหากเนื้อเพลงอยู่ในภาษาอื่น ลองเปลี่ยนการแสดงผลโดยใช้เวอร์ชั่นลาติน"
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "เพิ่ม Widget บน TouchBar สำหรับผู้ใช้ macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "ทำให้หน้าต่างของแอปโปร่งใส",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "ความทึบแสง",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "ประเภท",
|
||||
"submenu": {
|
||||
"acrylic": "อะคริลิก",
|
||||
"mica": "ไมกา",
|
||||
"none": "ไม่มี",
|
||||
"tabbed": "Tabbed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "ที่เล่นเพลงโปร่งใส"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "ใช้งานร่วมกันกับปลั้กอิน Tuna บน OBS",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "ปุ่มวิดีโอ",
|
||||
"templates": {
|
||||
"button": "เพลง"
|
||||
"button-song": "เพลง",
|
||||
"button-video": "วิดีโอ"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
"details": "Yanıt verilmedi!\n{{error}}"
|
||||
},
|
||||
"when-ready": {
|
||||
"clearing-cache-after-20s": "Uygulama ön belleği temizleme"
|
||||
"clearing-cache-after-20s": "Uygulama ön belleği temizle"
|
||||
},
|
||||
"window": {
|
||||
"tried-to-render-offscreen": "Pencere ekranın dışında oluşturulmaya çalışıldı, windowSize={{windowSize}}, displaySize={{displaySize}}, position={{position}}"
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Görsel İnce Ayarlar",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Özel pencere başlığı",
|
||||
"prompt": {
|
||||
"label": "Özel pencere başlığı girin: (devre dışı bırakmak için boş bırakın)",
|
||||
"placeholder": "Örnek: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Varsayılan",
|
||||
"force-show": "Zorla göster",
|
||||
@ -209,7 +216,7 @@
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "Bir reklam oynatılırsa sesi kapatır ve oynatma hızını 16x olarak ayarlar",
|
||||
"name": "Hızlandırma"
|
||||
"name": "Reklam Hızlandırma"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Tüm reklamları ve izleyicileri engelle",
|
||||
@ -287,7 +294,7 @@
|
||||
}
|
||||
},
|
||||
"api-server": {
|
||||
"description": "APİ ekle ve oynatıcıyı kontrol et",
|
||||
"description": "Oynatıcıyı kontrol etmek için bir API sunucusu ekle",
|
||||
"dialog": {
|
||||
"request": {
|
||||
"buttons": {
|
||||
@ -321,7 +328,7 @@
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "API sunucusu için hostname (örneğin 0.0.0.0) girin:",
|
||||
"title": "Hostname"
|
||||
"title": "Hostname(Ana bilgisayar adı)"
|
||||
},
|
||||
"port": {
|
||||
"label": "API sunucusu için port girin:",
|
||||
@ -333,6 +340,30 @@
|
||||
"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)",
|
||||
"name": "Ses Sıkıştırma"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Kimlik doğrulama proxy hizmetlerinin kullanımına destek",
|
||||
"menu": {
|
||||
"disable": "Proxy Bağdaştırıcısını Devre Dışı Bırak",
|
||||
"enable": "Proxy Bağdaştırıcısını Etkinleştir",
|
||||
"hostname": {
|
||||
"label": "Ana makine adı"
|
||||
},
|
||||
"port": {
|
||||
"label": "Port"
|
||||
}
|
||||
},
|
||||
"name": "Ara Sunucu Doğrulama Bağdaştırıcısı",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Yerel proxy sunucusu için ana makine adını girin (yeniden başlatma gerektirir):",
|
||||
"title": "Proxy Ana Makine Adı"
|
||||
},
|
||||
"port": {
|
||||
"label": "Yerel proxy sunucusu için bağlantı noktasını girin (yeniden başlatma gerektirir):",
|
||||
"title": "Proxy Bağlantı Noktası"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Gezinme çubuğunu şeffaf ve bulanık yapar",
|
||||
"name": "Navigasyon barını bulanıklaştır"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Altyazı seçiciyi aç"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Başlık {{language}} olarak değiştirildi",
|
||||
"caption-disabled": "Altyazılar devre dışı",
|
||||
"no-captions": "Bu şarkı için altyazı mevcut değil"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "Şarkılar için özel bir medya çıkış aygıtı ayarlayın",
|
||||
"menu": {
|
||||
"device-selector": "Aygıt Seçin"
|
||||
},
|
||||
"name": "Özel Çıkış Aygıtı",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Kullanılacak medya çıkış aygıtını seçin",
|
||||
"title": "Çıkış Aygıtını Seçin"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Şarkıların otomatik olarak duraklatılmasını sağlar",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "Kalan süreyi gizle",
|
||||
"hide-github-button": "GitHub bağlantısını gizle",
|
||||
"play-on-youtube-music": "YouTube Music de oynat",
|
||||
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla"
|
||||
"set-inactivity-timeout": "Hareketsizlik zaman aşımını ayarla",
|
||||
"set-status-display-type": {
|
||||
"label": "Durum metni",
|
||||
"submenu": {
|
||||
"artist": "{artist} Dinleniyor",
|
||||
"title": "{song title} Dinleniyor",
|
||||
"youtube-music": "YouTube Müzik Dinleniyor"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Etkinlik Durumu",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Favori tarayıcınızdaki gibi doğrudan arayüze entegre edilmiş İleri/Geri gezinme okları",
|
||||
"name": "Navigasyon"
|
||||
"name": "Navigasyon",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Önceki sayfaya git"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Sonraki sayfaya geç"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Google giriş düğmelerini ve bağlantılarını arayüzden kaldır",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "Bildirimler"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Deneysel komut dosyalarını etkinleştirerek performansı artırın",
|
||||
"name": "Performans iyileştirmesi [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Uygulamayı resim-içinde-resim moduna geçirmeye izin verir",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "Video katmanı üzerindeki bir düğme ile video kalitesinin değiştirilmesine izin verir",
|
||||
"name": "Video Kalitesi Değiştirici"
|
||||
"name": "Video Kalitesi Değiştirici",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Açık oynatıcı kalite değiştirici"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Listeleme desteği ekler (lastfm, listenbrainz ve benzeri)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "ListenBrainz kullanıcı kimliğinizi girin"
|
||||
},
|
||||
"scrobble-alternative-artist": "Alternatif sanatçıları kullan",
|
||||
"scrobble-alternative-title": "Alternatif başlıklar kullan",
|
||||
"scrobble-other-media": "Diğer medya ortamlarında listele"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "Şarkı sözlerini mükemmel şekilde senkronize edin",
|
||||
"tooltip": "Bir sonraki satırın görüntülenmesini milisaniyesine kadar hesaplayın (performans üzerinde küçük bir etkisi olabilir)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Tercih edilen Sağlayıcı",
|
||||
"none": {
|
||||
"label": "Hiçbiri",
|
||||
"tooltip": "Varsayılan sağlayıcı yok"
|
||||
},
|
||||
"tooltip": "Kullanmak İçin varsayılan sağlayıcıyı seçin"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Sözleri Romanize Et",
|
||||
"tooltip": "Sözler başka bir dilde gözüküyorsa, Latin versiyonunu dene."
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "macOS kullanıcıları için bir TouchBar widget'ı ekler",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Uygulama penceresini şeffaf yapar",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Opaklık",
|
||||
"submenu": {
|
||||
"percent": "%{{opacity}}"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Tür",
|
||||
"submenu": {
|
||||
"acrylic": "Akrilik",
|
||||
"mica": "Mika",
|
||||
"none": "Hiçbiri",
|
||||
"tabbed": "Sekmeli"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Şeffaf Oynatıcı"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "OBS eklentisi Tuna ile entegrasyon sağlar",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "Video Geçiş",
|
||||
"templates": {
|
||||
"button": "Şarkı"
|
||||
"button-song": "Şarkı",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
"common": {
|
||||
"console": {
|
||||
"plugins": {
|
||||
"execute-failed": "Не вдалося запустити плагін {{pluginName}}::{{contextName}}",
|
||||
"execute-failed": "Не вдалося виконати плагін {{pluginName}}::{{contextName}}",
|
||||
"executed-at-ms": "Плагін {{pluginName}}::{{contextName}} запущено за {{ms}}ms",
|
||||
"initialize-failed": "Не вдалося ініціалізувати плагін \"{{pluginName}}\"",
|
||||
"load-all": "Завантаження всіх плагінів",
|
||||
@ -209,7 +209,7 @@
|
||||
"plugins": {
|
||||
"ad-speedup": {
|
||||
"description": "При програванні реклами звук вимикається і встановлюється швидкість відтворення 16х",
|
||||
"name": "Пришвидшення релками"
|
||||
"name": "Пришвидшення реклами"
|
||||
},
|
||||
"adblocker": {
|
||||
"description": "Блокувати всю рекламу та відстеження з коробки",
|
||||
@ -333,6 +333,30 @@
|
||||
"description": "Застосувати стиснення аудіо (зменшити гучність найгучніших фрагментів сигналу та збільшити гучність тихих фрагментів)",
|
||||
"name": "Аудіокомпресор"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Підтримка використання проксі-сервісів з аутентифікацією",
|
||||
"menu": {
|
||||
"disable": "Вимкнути проксі-адаптер",
|
||||
"enable": "Ввімкнути проксі-адаптер",
|
||||
"hostname": {
|
||||
"label": "Ім'я хоста"
|
||||
},
|
||||
"port": {
|
||||
"label": "Порт"
|
||||
}
|
||||
},
|
||||
"name": "Адаптер проксі-авторизації",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Введіть ім'я хоста для локального проксі сервера(вимагає перезапуск):",
|
||||
"title": "Назва проксі-хоста"
|
||||
},
|
||||
"port": {
|
||||
"label": "Введіть порт для локального проксі серверу (потрібен рестарт):",
|
||||
"title": "Порт проксі"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Робить панель навігації прозорою та розмитою",
|
||||
"name": "Розмиття панелі навігації"
|
||||
@ -495,7 +519,7 @@
|
||||
"description": "Додає еквалайзер до програвача",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Пресети",
|
||||
"label": "Шаблони",
|
||||
"list": {
|
||||
"bass-booster": "Підсилювач басів"
|
||||
}
|
||||
@ -600,6 +624,10 @@
|
||||
},
|
||||
"name": "Сповіщення"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Поліпшіть продуктивність, ввімкнувши експериментальні сценарії",
|
||||
"name": "Поліпшення продуктивності [Бета]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Дозволяє перемикати програму в режим «картинка в картинці»",
|
||||
"menu": {
|
||||
@ -831,7 +859,7 @@
|
||||
},
|
||||
"name": "Перемикач відео",
|
||||
"templates": {
|
||||
"button": "Пісня"
|
||||
"button-song": "Пісня"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
"receive-command": "Đã nhận được lệnh qua giao thức: \"{{command}}\""
|
||||
},
|
||||
"theme": {
|
||||
"css-file-not-found": "Tệp tin CSS \"{{cssFile}}\"không tồn tại, đang bỏ qua"
|
||||
"css-file-not-found": "Tệp CSS \"{{cssFile}}\" không tồn tại, đang bỏ qua"
|
||||
},
|
||||
"unresponsive": {
|
||||
"details": "Lỗi không phản hồi!\n{{error}}"
|
||||
@ -44,7 +44,7 @@
|
||||
},
|
||||
"dialog": {
|
||||
"hide-menu-enabled": {
|
||||
"detail": "Menu đã ẩn, ấn phím 'Alt' để hiện menu (hoặc ấn 'Escape' nếu bạn đang bật In-app Menu)",
|
||||
"detail": "Menu đã ẩn, ấn phím 'Alt' để hiện menu (hoặc ấn phím 'Esc' nếu bạn đang bật In-app Menu)",
|
||||
"message": "Ẩn Menu đã được bật",
|
||||
"title": "Ẩn Menu đã được bật"
|
||||
},
|
||||
@ -53,7 +53,7 @@
|
||||
"later": "Để sau",
|
||||
"restart-now": "Khởi động lại ngay"
|
||||
},
|
||||
"detail": "Tiện ích mở rộng \"{{pluginName}}\" yêu cầu khởi động lại ứng dụng để áp dụng",
|
||||
"detail": "Phần mở rộng \"{{pluginName}}\" yêu cầu khởi động lại ứng dụng để áp dụng",
|
||||
"message": "\"{{pluginName}}\" cần khởi động lại",
|
||||
"title": "Yêu cầu khởi động lại"
|
||||
},
|
||||
@ -74,7 +74,7 @@
|
||||
"ok": "Đồng ý"
|
||||
},
|
||||
"detail": "Đã có phiên bản mới hơn, bạn có thể tải xuống tại {{downloadLink}}",
|
||||
"message": "Đã có phiên bản mới",
|
||||
"message": "Đã có một phiên bản mới",
|
||||
"title": "Cập nhật có sẵn"
|
||||
}
|
||||
},
|
||||
@ -96,7 +96,7 @@
|
||||
"advanced-options": {
|
||||
"label": "Tùy chọn nâng cao",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "Làm mới bộ nhớ đệm khi khởi động ứng dụng",
|
||||
"auto-reset-app-cache": "Làm mới bộ nhớ đệm khi mở ứng dụng",
|
||||
"disable-hardware-acceleration": "Vô hiệu hóa tăng tốc phần cứng",
|
||||
"edit-config-json": "Chỉnh sửa config.json",
|
||||
"override-user-agent": "Ghi đè User-Agent",
|
||||
@ -106,7 +106,7 @@
|
||||
"prompt": {
|
||||
"label": "Nhập địa chỉ Proxy: (để trống nếu muốn tắt)",
|
||||
"placeholder": "Ví dụ: SOCKS5://127.0.0.1:9999",
|
||||
"title": "Cài proxy"
|
||||
"title": "Cài đặt proxy"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "Bật/tắt DevTools"
|
||||
@ -116,19 +116,19 @@
|
||||
"auto-update": "Tự động cập nhật",
|
||||
"hide-menu": {
|
||||
"dialog": {
|
||||
"message": "Menu sẽ bị ẩn khi ứng dụng được chạy vào lần tới, dùng phím [Alt] để hiện nó (hoặc phím [`] nếu sử dụng in-app-menu)",
|
||||
"message": "Menu sẽ bị ẩn trong lần khởi chạy tiếp theo, dùng phím [Alt] để hiện nó (hoặc phím [`] nếu sử dụng in-app-menu)",
|
||||
"title": "Ẩn Menu đã được bật"
|
||||
},
|
||||
"label": "Ẩn Menu"
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "Ngôn ngữ sẽ được thay đổi sau khi ứng dụng khởi động lại",
|
||||
"message": "Ngôn ngữ sẽ được thay đổi sau khi khởi động lại ứng dụng",
|
||||
"title": "Ngôn ngữ đã thay đổi"
|
||||
},
|
||||
"label": "Ngôn ngữ",
|
||||
"submenu": {
|
||||
"to-help-translate": "Bạn muốn giúp dịch? Bấm vào đây"
|
||||
"to-help-translate": "— Bạn muốn hỗ trợ dịch? Bấm vào đây —"
|
||||
}
|
||||
},
|
||||
"resume-on-start": "Tiếp tục bài hát cuối cùng khi ứng dụng khởi động",
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "Tinh chỉnh hình ảnh",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "Tiêu đề cửa sổ tùy chỉnh",
|
||||
"prompt": {
|
||||
"label": "Nhập tiêu đề cửa sổ tùy chỉnh: (để trống để vô hiệu hóa)",
|
||||
"placeholder": "Ví dụ: Youtube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "Mặc định",
|
||||
"force-show": "Tập trung hiển thị",
|
||||
@ -163,7 +170,7 @@
|
||||
"cancel": "Hủy",
|
||||
"remove": "Loại bỏ"
|
||||
},
|
||||
"remove-theme": "Bạn có chắc muốn loại bỏ chủ đề tùy chỉnh không?",
|
||||
"remove-theme": "Bạn có chắc muốn loại bỏ chủ đề tùy chỉnh này không?",
|
||||
"remove-theme-message": "Tùy chọn này sẽ loại bỏ chủ đề tùy chỉnh"
|
||||
},
|
||||
"label": "Chủ đề",
|
||||
@ -186,7 +193,7 @@
|
||||
"submenu": {
|
||||
"force-reload": "Buộc tải lại",
|
||||
"reload": "Tải lại",
|
||||
"reset-zoom": "Kích thước thực",
|
||||
"reset-zoom": "Đặt lại",
|
||||
"toggle-fullscreen": "Bật chế độ toàn màn hình",
|
||||
"zoom-in": "Phóng to",
|
||||
"zoom-out": "Thu nhỏ"
|
||||
@ -202,7 +209,7 @@
|
||||
"show": "Hiện cửa sổ",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
"with-song-info": "YouTube Music: {{title}} - {{artist}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -219,7 +226,7 @@
|
||||
"name": "Chặn quảng cáo"
|
||||
},
|
||||
"album-actions": {
|
||||
"description": "Thêm nút hủy không thích, không thích, thích và không thích để áp dụng cho tất cả danh sách phát hoặc album",
|
||||
"description": "Thêm nút Hủy không thích, Không thích, Thích và Hủy thích để áp dụng cho tất cả bài hát trong danh sách phát hoặc album",
|
||||
"name": "Tác vụ với album"
|
||||
},
|
||||
"album-color-theme": {
|
||||
@ -280,6 +287,7 @@
|
||||
"name": "Chế độ Môi trường xung quanh"
|
||||
},
|
||||
"amuse": {
|
||||
"description": "Thêm hỗ trợ YouTube Music cho tiện ích hiển thị bài hát đang phát Amuse của 6K Labs",
|
||||
"name": "Amuse",
|
||||
"response": {
|
||||
"query": "Máy chủ API của Amuse đang chạy. GET /query để lấy thông tin về bài hát."
|
||||
@ -316,7 +324,7 @@
|
||||
"label": "Cổng"
|
||||
}
|
||||
},
|
||||
"name": "Máy chủ API [Beta]",
|
||||
"name": "Máy chủ API [Thử nghiệm]",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Điền tên máy chủ (như 0.0.0.0) cho máy chủ API:",
|
||||
@ -332,9 +340,33 @@
|
||||
"description": "Áp dụng tính năng nén cho âm thanh (giảm âm lượng của phần to nhất của tín hiệu và tăng âm lượng của phần nhỏ nhất)",
|
||||
"name": "Bộ nén âm thanh"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "Ủng hộ cho mục đích duy trì dịch vụ xác minh proxy",
|
||||
"menu": {
|
||||
"disable": "Vô hiệu bộ chuyển đổi Proxy",
|
||||
"enable": "Kích hoạt bộ chuyển đổi Proxy",
|
||||
"hostname": {
|
||||
"label": "Tên máy chủ"
|
||||
},
|
||||
"port": {
|
||||
"label": "Cổng"
|
||||
}
|
||||
},
|
||||
"name": "Bộ chuyển đổi xác minh máy chủ Proxy",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "Nhập tên của máy chủ proxy lân cận (yêu cầu khởi động lại ứng dụng):",
|
||||
"title": "Tên máy chủ Proxy"
|
||||
},
|
||||
"port": {
|
||||
"label": "Nhập cổng của máy chủ proxy lận cận (bắt buộc khởi động lại ứng dụng):",
|
||||
"title": "Cổng máy chủ Proxy"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "Làm mờ và trong suốt thanh điều hướng",
|
||||
"name": "Thanh điều hướng mờ"
|
||||
"description": "Làm thanh điều hướng mờ và trong suốt",
|
||||
"name": "Làm mờ thanh điều hướng"
|
||||
},
|
||||
"bypass-age-restrictions": {
|
||||
"description": "Bỏ qua xác minh độ tuổi của YouTube",
|
||||
@ -344,7 +376,7 @@
|
||||
"description": "Bộ lựa chọn phụ đề cho các bài hát trên Youtube Music",
|
||||
"menu": {
|
||||
"autoload": "Tự động chọn phụ đề vừa sử dụng",
|
||||
"disable-captions": "Không có phụ đề đặt làm mặc định"
|
||||
"disable-captions": "Không có phụ đề làm mặc định"
|
||||
},
|
||||
"name": "Bộ lựa chọn phụ đề",
|
||||
"prompt": {
|
||||
@ -356,10 +388,15 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "Mở lựa chọn phụ đề"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "Phụ đề đã chuyển sang {{language}}",
|
||||
"caption-disabled": "Tắt phụ đề",
|
||||
"no-captions": "Không có phụ đề nào cho bài hát này"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
"description": "Luôn đặt thanh bên cạnh ở chế độ thu gọn",
|
||||
"description": "Luôn đặt thanh bên ở chế độ thu gọn",
|
||||
"name": "Thanh bên thu gọn"
|
||||
},
|
||||
"crossfade": {
|
||||
@ -367,12 +404,12 @@
|
||||
"menu": {
|
||||
"advanced": "Nâng cao"
|
||||
},
|
||||
"name": "Xen kẽ [thử nghiệm]",
|
||||
"name": "Xen kẽ [Thử nghiệm]",
|
||||
"prompt": {
|
||||
"options": {
|
||||
"multi-input": {
|
||||
"fade-in-duration": "Xuất hiện mờ dần trong khoảng thời gian (ms)",
|
||||
"fade-out-duration": "Khoảng thời gian hoát ra mờ dần (ms)",
|
||||
"fade-in-duration": "Thời lượng mờ dần vào (ms)",
|
||||
"fade-out-duration": "Thời lượng mờ dần ra (ms)",
|
||||
"fade-scaling": {
|
||||
"label": "Làm mờ theo tỉ lệ",
|
||||
"linear": "Trực tuyến",
|
||||
@ -384,10 +421,23 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Bắt đầu bài hát khi ở chế độ \"tạm dừng\"",
|
||||
"custom-output-device": {
|
||||
"description": "Cài đặt cho thiết bị đầu ra tùy chỉnh cho bài hát",
|
||||
"menu": {
|
||||
"apply-once": "Áp dụng khi khởi động"
|
||||
"device-selector": "Chọn thiết bị"
|
||||
},
|
||||
"name": "Thiết bị đầu ra tùy chỉnh",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "Chọn thiết bị phát làm đầu ra để dùng",
|
||||
"title": "Chọn thiết bị đầu ra"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "Làm nhạc bắt đầu ở chế độ \"tạm dừng\". Ngoài ra có thể dừng nhạc khi khởi động ứng dụng (nếu có bật tính năng \"Tiếp tục bài hát cuối cùng khi ứng dụng khởi động\")",
|
||||
"menu": {
|
||||
"apply-once": "Chỉ áp dụng khi khởi động"
|
||||
},
|
||||
"name": "Tắt tự động phát"
|
||||
},
|
||||
@ -407,9 +457,17 @@
|
||||
"hide-duration-left": "Ẩn thời lượng còn lại",
|
||||
"hide-github-button": "Ẩn nút liên kết GitHub",
|
||||
"play-on-youtube-music": "Phát trong Youtube Music",
|
||||
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động"
|
||||
"set-inactivity-timeout": "Đặt thời gian chờ không hoạt động",
|
||||
"set-status-display-type": {
|
||||
"label": "Văn bản trạng thái",
|
||||
"submenu": {
|
||||
"artist": "Đang nghe nhạc của {artist}",
|
||||
"title": "Đang nghe nhạc {song title}",
|
||||
"youtube-music": "Đang nghe Youtube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence",
|
||||
"name": "Tích hợp trạng thái Discord",
|
||||
"prompt": {
|
||||
"set-inactivity-timeout": {
|
||||
"label": "Nhập thời gian chờ không hoạt động tính bằng giây:",
|
||||
@ -452,8 +510,8 @@
|
||||
"playlist-has-only-one-song": "Danh sách phát chỉ có một mục, tải trực tiếp",
|
||||
"playlist-id-not-found": "Không tìm thấy ID danh sách phát",
|
||||
"playlist-is-empty": "Danh sách phát trống",
|
||||
"playlist-is-mix-or-private": "Lỗi lấy thông tin danh sách phát: đảm bảo danh sách phát không ở chế độ riêng tư hoặc là danh sách phát \"Dành cho bạn\"\n\n{{error}}",
|
||||
"preparing-file": "Đang chuẩn bị thư mục…",
|
||||
"playlist-is-mix-or-private": "Lỗi lấy thông tin danh sách phát: hãy đảm bảo danh sách phát không ở chế độ riêng tư hoặc danh sách phát \"Dành cho bạn\"\n\n{{error}}",
|
||||
"preparing-file": "Đang chuẩn bị tệp…",
|
||||
"saving": "Đang lưu…",
|
||||
"trying-to-get-playlist-id": "Đang lấy ID danh sách phát: {{playlistId}}",
|
||||
"video-id-not-found": "Không tìm thấy video",
|
||||
@ -479,8 +537,8 @@
|
||||
}
|
||||
},
|
||||
"download-playlist": "Tải danh sách phát",
|
||||
"presets": "Cài đặt sẵn",
|
||||
"skip-existing": "Bỏ qua các tập tin hiện có"
|
||||
"presets": "Tùy chọn định dạng",
|
||||
"skip-existing": "Bỏ qua các tập tin đã có"
|
||||
},
|
||||
"name": "Trình tải xuống",
|
||||
"renderer": {
|
||||
@ -491,7 +549,16 @@
|
||||
}
|
||||
},
|
||||
"equalizer": {
|
||||
"name": "Cân bằng âm thanh"
|
||||
"description": "Thêm bộ chỉnh âm để điều chỉnh âm thanh cho trình phát nhạc",
|
||||
"menu": {
|
||||
"presets": {
|
||||
"label": "Thiết lập có sẵn",
|
||||
"list": {
|
||||
"bass-booster": "Tăng âm trầm"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Bộ chỉnh âm"
|
||||
},
|
||||
"exponential-volume": {
|
||||
"description": "Làm cho thanh trượt âm lượng theo cấp số nhân để dễ dàng chọn âm lượng thấp hơn.",
|
||||
@ -511,7 +578,7 @@
|
||||
"lyrics-genius": {
|
||||
"description": "Thêm hỗ trợ lời bài hát cho hầu hết các bài hát",
|
||||
"menu": {
|
||||
"romanized-lyrics": "Lời bài hát La Mã"
|
||||
"romanized-lyrics": "Chuyển lời bài hát sang chữ Latin"
|
||||
},
|
||||
"name": "Lời bài hát từ Genius",
|
||||
"renderer": {
|
||||
@ -566,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "Mũi tên điều hướng Tiếp theo/Quay lại được tích hợp trực tiếp trong giao diện, giống như trong trình duyệt yêu thích của bạn",
|
||||
"name": "Điều hướng"
|
||||
"name": "Điều hướng",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "Đi đến trang trước"
|
||||
},
|
||||
"forward": {
|
||||
"title": "Đi đến trang tiếp theo"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "Xóa các nút và liên kết đăng nhập Google khỏi giao diện",
|
||||
@ -580,7 +655,7 @@
|
||||
"label": "Cài đặt tương tác",
|
||||
"submenu": {
|
||||
"hide-button-text": "Ẩn tên nút",
|
||||
"refresh-on-play-pause": "Làm mới khi phát/tạm dừng",
|
||||
"refresh-on-play-pause": "Làm mới khi Phát/Tạm dừng",
|
||||
"tray-controls": "Mở/Đóng khi nhấp vào khay"
|
||||
}
|
||||
},
|
||||
@ -590,18 +665,22 @@
|
||||
},
|
||||
"name": "Thông báo"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "Cải thiện hiệu suất thông qua kích hoạt scripts thử nghiệm",
|
||||
"name": "Cải thiện hiệu năng [Thử nghiệm]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "Cho phép chuyển ứng dụng sang chế độ ảnh trong ảnh",
|
||||
"menu": {
|
||||
"always-on-top": "Luôn ở trên cùng",
|
||||
"hotkey": {
|
||||
"label": "Phím nóng",
|
||||
"label": "Phím tắt",
|
||||
"prompt": {
|
||||
"keybind-options": {
|
||||
"hotkey": "Phím nóng"
|
||||
"hotkey": "Phím tắt"
|
||||
},
|
||||
"label": "Chọn phím nóng để chuyển đổi ảnh trong ảnh",
|
||||
"title": "Phím nóng ảnh trong ảnh"
|
||||
"label": "Chọn phím tắt để chuyển đổi ảnh trong ảnh",
|
||||
"title": "Phím tắt ảnh trong ảnh"
|
||||
}
|
||||
},
|
||||
"save-window-position": "Lưu vị trí cửa sổ",
|
||||
@ -649,19 +728,24 @@
|
||||
"quality-changer": {
|
||||
"detail": "Chất lượng hiện tại: {{quality}}",
|
||||
"message": "Chọn chất lượng video:",
|
||||
"title": "Chọn chất lượng video:"
|
||||
"title": "Chọn chất lượng video"
|
||||
}
|
||||
}
|
||||
},
|
||||
"description": "Cho phép thay đổi chất lượng video bằng một nút trên lớp phủ video",
|
||||
"name": "Thay đổi chất lượng video"
|
||||
"name": "Thay đổi chất lượng video",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "Mở trình thay đổi chất lượng"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "Thêm hỗ trợ scrobbling (v.v. Last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Không thể xác minh với \nẨn thông báo cho đến lần bật ứng dụng tiếp theo.",
|
||||
"message": "Không thể xác minh với Last.fm \nẨn thông báo cho đến lần bật ứng dụng tiếp theo.",
|
||||
"title": "Xác minh thất bại"
|
||||
}
|
||||
}
|
||||
@ -673,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "Nhập mã người dùng ListenBrainz"
|
||||
},
|
||||
"scrobble-alternative-artist": "Dùng nghệ sĩ thay thế",
|
||||
"scrobble-alternative-title": "Dùng tiêu đề thay thế",
|
||||
"scrobble-other-media": "Scrobber nội dung khác"
|
||||
},
|
||||
@ -710,45 +795,46 @@
|
||||
}
|
||||
},
|
||||
"skip-disliked-songs": {
|
||||
"description": "Bỏ qua những bài hát không thích",
|
||||
"name": "Bỏ qua những bài hát không thích"
|
||||
"description": "Tự động bỏ qua những bài hát bạn nhấn không thích",
|
||||
"name": "Bỏ qua bài hát không thích"
|
||||
},
|
||||
"skip-silences": {
|
||||
"description": "Tự động bỏ qua các đoạn im lặng trong bài hát",
|
||||
"name": "Bỏ qua đoạn im lặng"
|
||||
},
|
||||
"sponsorblock": {
|
||||
"description": "Tự động bỏ qua các phần không phải âm nhạc như phần giới thiệu/kết thúc hoặc các phần của video nhạc mà bài hát không được phát",
|
||||
"description": "Tự động bỏ qua các phần không phải âm nhạc như phần intro/outro hoặc các phần không được phát của video nhạc",
|
||||
"name": "SponsorBlock"
|
||||
},
|
||||
"synced-lyrics": {
|
||||
"description": "Cung cấp lời bài hát được đồng bộ hoá với các bài hát, sử dụng những nhà cung cấp như LRClib.",
|
||||
"description": "Cung cấp lời được đồng bộ với bài hát, sử dụng các nhà cung cấp như LRClib.",
|
||||
"errors": {
|
||||
"fetch": "⚠️\t\tĐã xảy ra lỗi khi tìm lời bài hát.\n\tVui lòng thử lại sau.",
|
||||
"not-found": "⚠️ Không tìm thấy lời cho bài hát này."
|
||||
},
|
||||
"menu": {
|
||||
"default-text-string": {
|
||||
"label": "Kí tự mặc định giữa các lời bài hát",
|
||||
"label": "Kí tự giữa các lời bài hát",
|
||||
"tooltip": "Chọn kí tự mặc định cho khoảng trống giữa các lời bài hát"
|
||||
},
|
||||
"line-effect": {
|
||||
"label": "Kiểu đường thẳng",
|
||||
"label": "Kiểu lời nhạc",
|
||||
"submenu": {
|
||||
"fancy": {
|
||||
"label": "Màu mè"
|
||||
"label": "Màu mè",
|
||||
"tooltip": "Làm đoạn lời nhạc đang nghe to hơn và nổi bật hơn"
|
||||
},
|
||||
"focus": {
|
||||
"label": "Tập trung",
|
||||
"tooltip": "Chỉ làm cho dòng hiện tại có màu trắng"
|
||||
},
|
||||
"offset": {
|
||||
"label": "Độ lệch",
|
||||
"tooltip": "Độ lệch bên phải của dòng hiện tại"
|
||||
"label": "Lệch",
|
||||
"tooltip": "Làm dòng hiện tại lệch sang bên phải"
|
||||
},
|
||||
"scale": {
|
||||
"label": "Tỉ lệ",
|
||||
"tooltip": "Áp dụng tỉ lệ cho dòng hiện tại"
|
||||
"label": "Phóng to",
|
||||
"tooltip": "Làm dòng hiện tại to hơn các dòng khác"
|
||||
}
|
||||
},
|
||||
"tooltip": "Chọn kiểu để áp dụng cho dòng hiện tại"
|
||||
@ -757,7 +843,16 @@
|
||||
"label": "Làm cho lời bài hát được đồng bộ hoàn hảo",
|
||||
"tooltip": "Tính toán chính xác đến mili giây thời gian hiển thị dòng tiếp theo (có thể có tác động nhỏ đến hiệu suất)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "Nhà cung cấp ưa thích",
|
||||
"none": {
|
||||
"label": "Không có",
|
||||
"tooltip": "Không có nhà cung cấp ưu thích"
|
||||
},
|
||||
"tooltip": "Chọn nhà cung cấp lời bài hát mặc định để sử dụng"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "Chuyển lời bài hát sang chữ Latin",
|
||||
"tooltip": "Nếu lời bài hát đang ở ngôn ngữ khác, thử hiển thị phiên bản bảng chữ cái La-tinh."
|
||||
},
|
||||
"show-lyrics-even-if-inexact": {
|
||||
@ -777,23 +872,48 @@
|
||||
"warnings": {
|
||||
"duration-mismatch": "⚠️ - Lời bài hát có thể không đồng bộ do thời lượng không khớp.",
|
||||
"inexact": "⚠️ - Lời bài hát này có thể không chính xác",
|
||||
"instrumental": "⚠️ - Đây là một bài hát trình diễn bằng nhạc khí"
|
||||
"instrumental": "⚠️ - Đây là một bài hát không lời"
|
||||
}
|
||||
},
|
||||
"taskbar-mediacontrol": {
|
||||
"description": "Kiểm soát phát lại từ thanh tác vụ Windows của bạn",
|
||||
"name": "Kiểm soát phương tiện trên thanh tác vụ"
|
||||
"description": "Điều khiển nhạc từ cửa sổ xem trước trên thanh tác vụ Windows của bạn",
|
||||
"name": "Điều khiển phương tiện trên thanh tác vụ"
|
||||
},
|
||||
"touchbar": {
|
||||
"description": "Thêm tiện ích TouchBar cho người dùng macOS",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "Làm cho cửa sổ ứng dụng có hiệu ứng trong suốt",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "Độ mờ",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "Kiểu nền",
|
||||
"submenu": {
|
||||
"acrylic": "Acrylic",
|
||||
"mica": "Mica",
|
||||
"none": "Không có",
|
||||
"tabbed": "Tabbed"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Trình phát trong suốt"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "Tích hợp với plugin Tuna của OBS",
|
||||
"name": "Tuna OBS"
|
||||
},
|
||||
"unobtrusive-player": {
|
||||
"description": "Ngăn trình phát nhạc xuất hiện đột ngột khi phát một bài hát",
|
||||
"name": "Không hiện trình phát nhạc khi phát"
|
||||
},
|
||||
"video-toggle": {
|
||||
"description": "Thêm nút để chuyển giữa chế độ Video/Bài hát. Cũng có thể tùy ý xóa toàn bộ tab video",
|
||||
"description": "Thêm nút để chuyển giữa chế độ Video/Bài hát. Cũng có thể ẩn toàn bộ video",
|
||||
"menu": {
|
||||
"align": {
|
||||
"label": "Căn chỉnh",
|
||||
@ -803,27 +923,28 @@
|
||||
"right": "Phải"
|
||||
}
|
||||
},
|
||||
"force-hide": "Buộc loại bỏ tab video",
|
||||
"force-hide": "Buộc ẩn video",
|
||||
"mode": {
|
||||
"label": "Chế độ",
|
||||
"submenu": {
|
||||
"custom": "Chuyển đổi tùy chỉnh",
|
||||
"custom": "Tùy chỉnh",
|
||||
"disabled": "Vô hiệu hoá",
|
||||
"native": "Chuyển đổi gốc"
|
||||
"native": "Gốc"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Chuyển đổi video",
|
||||
"templates": {
|
||||
"button": "Bài hát"
|
||||
"button-song": "Bài hát",
|
||||
"button-video": "Video"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
"description": "Thêm trình hiển thị cho trình phát",
|
||||
"description": "Hiển thị sóng nhạc thay thế cho video (hay \"Music visualizer\")",
|
||||
"menu": {
|
||||
"visualizer-type": "Loại trình hiển thị"
|
||||
"visualizer-type": "Loại Sóng nhạc"
|
||||
},
|
||||
"name": "Trình hiển thị"
|
||||
"name": "Sóng nhạc"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "视觉调整",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "自定义窗口标题",
|
||||
"prompt": {
|
||||
"label": "输入自定义窗口标题:(留空表示停用)",
|
||||
"placeholder": "示例:YouTube Music"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "默认",
|
||||
"force-show": "强制显示",
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "对音频应用压缩(压低响亮部分,提升柔和部分)",
|
||||
"name": "音频压缩器"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "支持使用需要身份验证的代理",
|
||||
"menu": {
|
||||
"disable": "禁用代理适配",
|
||||
"enable": "启用代理适配",
|
||||
"hostname": {
|
||||
"label": "主机名"
|
||||
},
|
||||
"port": {
|
||||
"label": "端口"
|
||||
}
|
||||
},
|
||||
"name": "认证代理适配",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "请输入本地代理服务器的主机名(需要重启):",
|
||||
"title": "代理主机名"
|
||||
},
|
||||
"port": {
|
||||
"label": "请输入本地代理服务器的端口号(需要重启):",
|
||||
"title": "代理端口"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "让导航栏透明及模糊",
|
||||
"name": "模糊导航栏"
|
||||
@ -357,6 +388,11 @@
|
||||
},
|
||||
"templates": {
|
||||
"title": "开启字幕选择器"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "字幕语言更改为 {{language}}",
|
||||
"caption-disabled": "停用了字幕",
|
||||
"no-captions": "这首歌没有字幕"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "配置歌曲的自定义输出媒体设备",
|
||||
"menu": {
|
||||
"device-selector": "选择设备"
|
||||
},
|
||||
"name": "自定义输出设备",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "选择要使用的输出媒体设备",
|
||||
"title": "选择输出设备"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "让曲目开始时处于 “暂停” 模式",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "隐藏剩余时长",
|
||||
"hide-github-button": "隐藏 GitHub 链接按钮",
|
||||
"play-on-youtube-music": "转至 YouTube Music 播放",
|
||||
"set-inactivity-timeout": "设置非活跃时长"
|
||||
"set-inactivity-timeout": "设置非活跃时长",
|
||||
"set-status-display-type": {
|
||||
"label": "状态文本",
|
||||
"submenu": {
|
||||
"artist": "在听 {artist}",
|
||||
"title": "在听 {song title}",
|
||||
"youtube-music": "在听 YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord Rich Presence 状态显示",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "如同浏览器般,在应用界面内直接显示前进/后退导航按钮",
|
||||
"name": "导航"
|
||||
"name": "导航",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "转到上一页"
|
||||
},
|
||||
"forward": {
|
||||
"title": "转到下一页"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "从界面内移除 Google 登录按钮和链接",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "通知"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "通过开启实验性脚本改进性能",
|
||||
"name": "性能改进 [公测]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "允许应用切换到画中画模式",
|
||||
"menu": {
|
||||
@ -664,7 +733,12 @@
|
||||
}
|
||||
},
|
||||
"description": "允许在视频上显示切换画质按钮",
|
||||
"name": "视频画质切换器"
|
||||
"name": "视频画质切换器",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "打开播放器音质更改程序"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "添加歌曲追踪支持(如 Last.fm 和 Listenbrainz)",
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "输入 ListenBrainz 用户令牌"
|
||||
},
|
||||
"scrobble-alternative-artist": "使用替代艺术家",
|
||||
"scrobble-alternative-title": "使用替代标题",
|
||||
"scrobble-other-media": "记录其他媒体文件"
|
||||
},
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "让滚动歌词完全同步",
|
||||
"tooltip": "以毫秒精度估算下句歌词的显示时间(可能对性能有小幅影响)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "首选歌词源",
|
||||
"none": {
|
||||
"label": "无",
|
||||
"tooltip": "没有首选的歌词源"
|
||||
},
|
||||
"tooltip": "选择默认要用的源"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "将歌词罗马化",
|
||||
"tooltip": "如果歌词以不同语言显示,试着展示拉丁字母版本。"
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "为 macOS 用户启用 TouchBar 支持",
|
||||
"name": "TouchBar"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "把应用窗口变透明",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "不透明",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "类型",
|
||||
"submenu": {
|
||||
"acrylic": "亚克力",
|
||||
"mica": "云母",
|
||||
"none": "无",
|
||||
"tabbed": "标签"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "透明播放器"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "与 OBS 的 Tuna 插件集成",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "视频切换开关",
|
||||
"templates": {
|
||||
"button": "歌曲"
|
||||
"button-song": "歌曲",
|
||||
"button-video": "视频"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
@ -53,17 +53,17 @@
|
||||
"later": "稍後",
|
||||
"restart-now": "立即重啟"
|
||||
},
|
||||
"detail": "\"{{pluginName}}\" 外掛需要重新啟動之後才會生效",
|
||||
"message": "\"{{pluginName}}\" 需要重新啟動",
|
||||
"title": "需要重新啟動"
|
||||
"detail": "外掛 \"{{pluginName}}\" 需要重啟應用才會生效",
|
||||
"message": "\"{{pluginName}}\" 需要重啟應用",
|
||||
"title": "需要重啟應用"
|
||||
},
|
||||
"unresponsive": {
|
||||
"buttons": {
|
||||
"quit": "結束",
|
||||
"relaunch": "重新啟動",
|
||||
"wait": "等一下"
|
||||
"quit": "離開",
|
||||
"relaunch": "重啟應用",
|
||||
"wait": "稍等"
|
||||
},
|
||||
"detail": "造成不便我們深表歉意!請選擇動作:",
|
||||
"detail": "造成不便我們深表歉意!請選擇動作:",
|
||||
"message": "應用程式沒有回應",
|
||||
"title": "視窗沒有回應"
|
||||
},
|
||||
@ -73,7 +73,7 @@
|
||||
"download": "前往下載",
|
||||
"ok": "略過"
|
||||
},
|
||||
"detail": "新版本已經推出,你可以至 {{downloadLink}} 下載",
|
||||
"detail": "新版本已經推出,前往下載 {{downloadLink}}",
|
||||
"message": "有新版本可用",
|
||||
"title": "有可用的更新"
|
||||
}
|
||||
@ -83,11 +83,11 @@
|
||||
"navigation": {
|
||||
"label": "導覽列",
|
||||
"submenu": {
|
||||
"copy-current-url": "複製目前頁面的網址",
|
||||
"go-back": "回到上一頁",
|
||||
"go-forward": "回到下一頁",
|
||||
"quit": "結束",
|
||||
"restart": "重新啟動"
|
||||
"copy-current-url": "複製當前頁面的網址",
|
||||
"go-back": "返回上一頁",
|
||||
"go-forward": "前往下一頁",
|
||||
"quit": "退出",
|
||||
"restart": "重啟應用"
|
||||
}
|
||||
},
|
||||
"options": {
|
||||
@ -96,20 +96,20 @@
|
||||
"advanced-options": {
|
||||
"label": "進階選項",
|
||||
"submenu": {
|
||||
"auto-reset-app-cache": "啟動時重設應用快取",
|
||||
"auto-reset-app-cache": "啟動時清除應用程式快取",
|
||||
"disable-hardware-acceleration": "關閉硬體加速",
|
||||
"edit-config-json": "編輯 config.json",
|
||||
"override-user-agent": "覆寫使用者代理",
|
||||
"restart-on-config-changes": "設定變更時自動重新啟動",
|
||||
"restart-on-config-changes": "設定變更時自動重啟應用",
|
||||
"set-proxy": {
|
||||
"label": "設定代理伺服器",
|
||||
"prompt": {
|
||||
"label": "輸入代理伺服器位置:(留空以停用本設定)",
|
||||
"placeholder": "範例:SOCKS5://127.0.0.1:9999",
|
||||
"placeholder": "例: SOCKS5://127.0.0.1:9999",
|
||||
"title": "設定代理伺服器"
|
||||
}
|
||||
},
|
||||
"toggle-dev-tools": "切換開發者人員工具"
|
||||
"toggle-dev-tools": "開發人員工具"
|
||||
}
|
||||
},
|
||||
"always-on-top": "最上層顯示",
|
||||
@ -123,7 +123,7 @@
|
||||
},
|
||||
"language": {
|
||||
"dialog": {
|
||||
"message": "語言會在重新啟動後變更",
|
||||
"message": "語言會在重啟應用後變更",
|
||||
"title": "語言已變更"
|
||||
},
|
||||
"label": "語言",
|
||||
@ -150,6 +150,13 @@
|
||||
"visual-tweaks": {
|
||||
"label": "介面設定",
|
||||
"submenu": {
|
||||
"custom-window-title": {
|
||||
"label": "客製化窗口標題",
|
||||
"prompt": {
|
||||
"label": "輸入客製化窗口標題: (留空讓其停用)",
|
||||
"placeholder": "例如: YouTube 音樂"
|
||||
}
|
||||
},
|
||||
"like-buttons": {
|
||||
"default": "預設",
|
||||
"force-show": "強制顯示",
|
||||
@ -201,8 +208,8 @@
|
||||
"restart": "重新啟動應用程式",
|
||||
"show": "顯示視窗",
|
||||
"tooltip": {
|
||||
"default": "YouTube Music",
|
||||
"with-song-info": "YouTube Music: {{artist}} - {{title}}"
|
||||
"default": "YouTube 音樂",
|
||||
"with-song-info": "YouTube 音樂: {{artist}} - {{title}}"
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -333,6 +340,30 @@
|
||||
"description": "使用音效壓縮 (大聲部份的音量降低,柔和部份的音量提高)",
|
||||
"name": "音效壓縮器"
|
||||
},
|
||||
"auth-proxy-adapter": {
|
||||
"description": "支援使用 Proxy 驗證服務",
|
||||
"menu": {
|
||||
"disable": "中斷 Proxy 連線",
|
||||
"enable": "啟用 Proxy 連線",
|
||||
"hostname": {
|
||||
"label": "主機名稱"
|
||||
},
|
||||
"port": {
|
||||
"label": "連接埠"
|
||||
}
|
||||
},
|
||||
"name": "Proxy 連線驗證",
|
||||
"prompt": {
|
||||
"hostname": {
|
||||
"label": "本地 Proxy 伺服器主機名稱(需要重啟應用):",
|
||||
"title": "Proxy 主機名稱"
|
||||
},
|
||||
"port": {
|
||||
"label": "本地 Proxy 伺服器連接埠(需要重啟應用):",
|
||||
"title": "Proxy 連接埠"
|
||||
}
|
||||
}
|
||||
},
|
||||
"blur-nav-bar": {
|
||||
"description": "使導覽列透明及模糊",
|
||||
"name": "模糊導覽列"
|
||||
@ -342,21 +373,26 @@
|
||||
"name": "繞過年齡驗證"
|
||||
},
|
||||
"captions-selector": {
|
||||
"description": "YouTube Music 音軌字幕選擇器",
|
||||
"description": "Youtube Music 音軌字幕選項",
|
||||
"menu": {
|
||||
"autoload": "自動選擇上次使用的字幕",
|
||||
"disable-captions": "預設無標題"
|
||||
"disable-captions": "預設無字幕"
|
||||
},
|
||||
"name": "標題選擇器",
|
||||
"name": "字幕選項",
|
||||
"prompt": {
|
||||
"selector": {
|
||||
"label": "目前字幕語言:{{language}}",
|
||||
"label": "當前語言: {{language}}",
|
||||
"none": "無",
|
||||
"title": "選擇字幕語言"
|
||||
}
|
||||
},
|
||||
"templates": {
|
||||
"title": "打開標題選擇器"
|
||||
"title": "開啟字幕選項"
|
||||
},
|
||||
"toast": {
|
||||
"caption-changed": "字幕語言已更改至 {{language}}",
|
||||
"caption-disabled": "字幕已停用",
|
||||
"no-captions": "該首歌曲無可用的字幕"
|
||||
}
|
||||
},
|
||||
"compact-sidebar": {
|
||||
@ -385,6 +421,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"custom-output-device": {
|
||||
"description": "為歌曲設定自訂輸出媒體裝置",
|
||||
"menu": {
|
||||
"device-selector": "選擇裝置"
|
||||
},
|
||||
"name": "自訂輸出裝置",
|
||||
"prompt": {
|
||||
"device-selector": {
|
||||
"label": "選擇要使用的輸出媒體裝置",
|
||||
"title": "選擇輸出裝置"
|
||||
}
|
||||
}
|
||||
},
|
||||
"disable-autoplay": {
|
||||
"description": "讓歌曲開始時為暫停模式",
|
||||
"menu": {
|
||||
@ -408,7 +457,15 @@
|
||||
"hide-duration-left": "隱藏音樂剩餘時間狀態",
|
||||
"hide-github-button": "隱藏 GitHub 頁面按鈕",
|
||||
"play-on-youtube-music": "顯示 Play on YouTube Music 按鈕",
|
||||
"set-inactivity-timeout": "設定閒置狀態時長"
|
||||
"set-inactivity-timeout": "設定閒置狀態時長",
|
||||
"set-status-display-type": {
|
||||
"label": "狀態文字",
|
||||
"submenu": {
|
||||
"artist": "正在聽 {artist}",
|
||||
"title": "正在聽 {song title}",
|
||||
"youtube-music": "正在聽 YouTube Music"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "Discord 狀態",
|
||||
"prompt": {
|
||||
@ -576,7 +633,15 @@
|
||||
},
|
||||
"navigation": {
|
||||
"description": "允許應用程式上方顯示上一頁/下一頁按鈕",
|
||||
"name": "導覽列"
|
||||
"name": "導覽列",
|
||||
"templates": {
|
||||
"back": {
|
||||
"title": "回到上一頁"
|
||||
},
|
||||
"forward": {
|
||||
"title": "前往下一頁"
|
||||
}
|
||||
}
|
||||
},
|
||||
"no-google-login": {
|
||||
"description": "移除 Google 登入按鈕及連結",
|
||||
@ -600,6 +665,10 @@
|
||||
},
|
||||
"name": "歌曲播放通知"
|
||||
},
|
||||
"performance-improvement": {
|
||||
"description": "使用實驗性的腳本以最佳化效能",
|
||||
"name": "效能最佳化 [Beta]"
|
||||
},
|
||||
"picture-in-picture": {
|
||||
"description": "允許應用程式切換至子母畫面模式",
|
||||
"menu": {
|
||||
@ -664,14 +733,19 @@
|
||||
}
|
||||
},
|
||||
"description": "允許在影片內進行畫質更改",
|
||||
"name": "允許變更影片畫質"
|
||||
"name": "允許變更影片畫質",
|
||||
"renderer": {
|
||||
"quality-settings-button": {
|
||||
"label": "開啟畫質調整器"
|
||||
}
|
||||
}
|
||||
},
|
||||
"scrobbler": {
|
||||
"description": "額外新增 scrobbling 支援 (例如:last.fm, Listenbrainz)",
|
||||
"dialog": {
|
||||
"lastfm": {
|
||||
"auth-failed": {
|
||||
"message": "Last.fm 認證失敗\n將隱藏彈窗直到重啟。",
|
||||
"message": "Last.fm 認證失敗\n將隱藏彈出視窗直到重啟。",
|
||||
"title": "認證失敗"
|
||||
}
|
||||
}
|
||||
@ -683,6 +757,7 @@
|
||||
"listenbrainz": {
|
||||
"token": "輸入 ListenBrainz 使用者憑證"
|
||||
},
|
||||
"scrobble-alternative-artist": "使用替代的藝人",
|
||||
"scrobble-alternative-title": "使用替代歌曲標題",
|
||||
"scrobble-other-media": "紀錄其他媒體檔案"
|
||||
},
|
||||
@ -690,7 +765,7 @@
|
||||
"prompt": {
|
||||
"lastfm": {
|
||||
"api-key": "Last.fm API 金鑰",
|
||||
"api-secret": "Last.fm API 密鑰"
|
||||
"api-secret": "Last.fm API 金鑰"
|
||||
},
|
||||
"listenbrainz": {
|
||||
"token": {
|
||||
@ -706,7 +781,7 @@
|
||||
"override-media-keys": "覆寫媒體快捷鍵",
|
||||
"set-keybinds": "設定全域歌曲控制"
|
||||
},
|
||||
"name": "Shortcuts (& MPRIS)",
|
||||
"name": "快捷鍵 (& MPRIS)",
|
||||
"prompt": {
|
||||
"keybind": {
|
||||
"keybind-options": {
|
||||
@ -768,6 +843,14 @@
|
||||
"label": "使歌詞完美同步",
|
||||
"tooltip": "更精確的計算下一行歌詞的顯示 (將會降低些許效能)"
|
||||
},
|
||||
"preferred-provider": {
|
||||
"label": "偏好提供者",
|
||||
"none": {
|
||||
"label": "無",
|
||||
"tooltip": "沒有偏好的提供者"
|
||||
},
|
||||
"tooltip": "選擇要使用的預設提供者"
|
||||
},
|
||||
"romanization": {
|
||||
"label": "羅馬拼音化歌詞",
|
||||
"tooltip": "如果歌詞使用不同語言,嘗試使用拉丁文顯示。"
|
||||
@ -800,6 +883,27 @@
|
||||
"description": "為 macOS 使用者新增觸控列支援",
|
||||
"name": "觸控列 (Touchbar) 支援"
|
||||
},
|
||||
"transparent-player": {
|
||||
"description": "讓應用程式視窗變為透明",
|
||||
"menu": {
|
||||
"opacity": {
|
||||
"label": "不透明度",
|
||||
"submenu": {
|
||||
"percent": "{{opacity}}%"
|
||||
}
|
||||
},
|
||||
"type": {
|
||||
"label": "類型",
|
||||
"submenu": {
|
||||
"acrylic": "壓克力",
|
||||
"mica": "雲母",
|
||||
"none": "無",
|
||||
"tabbed": "分頁式"
|
||||
}
|
||||
}
|
||||
},
|
||||
"name": "透明撥放器"
|
||||
},
|
||||
"tuna-obs": {
|
||||
"description": "與 OBS 的 Tuna 外掛連線",
|
||||
"name": "Tuna OBS"
|
||||
@ -831,7 +935,8 @@
|
||||
},
|
||||
"name": "歌曲/影片切換",
|
||||
"templates": {
|
||||
"button": "歌曲"
|
||||
"button-song": "歌曲",
|
||||
"button-video": "影片"
|
||||
}
|
||||
},
|
||||
"visualizer": {
|
||||
|
||||
96
src/index.ts
96
src/index.ts
@ -15,7 +15,7 @@ import {
|
||||
type BrowserWindowConstructorOptions,
|
||||
} from 'electron';
|
||||
import enhanceWebRequest, {
|
||||
BetterSession,
|
||||
type BetterSession,
|
||||
} from '@jellybrick/electron-better-web-request';
|
||||
import is from 'electron-is';
|
||||
import unhandled from 'electron-unhandled';
|
||||
@ -29,7 +29,7 @@ import { allPlugins, mainPlugins } from 'virtual:plugins';
|
||||
|
||||
import { languageResources } from 'virtual:i18n';
|
||||
|
||||
import config from '@/config';
|
||||
import * as config from '@/config';
|
||||
|
||||
import { refreshMenu, setApplicationMenu } from '@/menu';
|
||||
import { fileExists, injectCSS, injectCSSAsFile } from '@/plugins/utils/main';
|
||||
@ -57,14 +57,9 @@ import { loadI18n, setLanguage, t } from '@/i18n';
|
||||
|
||||
import ErrorHtmlAsset from '@assets/error.html?asset';
|
||||
|
||||
import type { PluginConfig } from '@/types/plugins';
|
||||
import { defaultAuthProxyConfig } from '@/plugins/auth-proxy-adapter/config';
|
||||
|
||||
if (!is.macOS()) {
|
||||
delete allPlugins['touchbar'];
|
||||
}
|
||||
if (!is.windows()) {
|
||||
delete allPlugins['taskbar-mediacontrol'];
|
||||
}
|
||||
import type { PluginConfig } from '@/types/plugins';
|
||||
|
||||
// Catch errors and log them
|
||||
unhandled({
|
||||
@ -72,9 +67,6 @@ unhandled({
|
||||
showDialog: false,
|
||||
});
|
||||
|
||||
// Disable Node options if the env var is set
|
||||
process.env.NODE_OPTIONS = '';
|
||||
|
||||
// Prevent window being garbage collected
|
||||
let mainWindow: Electron.BrowserWindow | null;
|
||||
autoUpdater.autoDownload = false;
|
||||
@ -112,6 +104,11 @@ protocol.registerSchemesAsPrivileged([
|
||||
{ scheme: 'mailto', privileges: { standard: true } },
|
||||
]);
|
||||
|
||||
// https://github.com/electron/electron/issues/46538#issuecomment-2808806722
|
||||
if (is.linux()) {
|
||||
app.commandLine.appendSwitch('gtk-version', '3');
|
||||
}
|
||||
|
||||
// Ozone platform hint: Required for Wayland support
|
||||
app.commandLine.appendSwitch('ozone-platform-hint', 'auto');
|
||||
// SharedArrayBuffer: Required for downloader (@ffmpeg/core-mt)
|
||||
@ -122,6 +119,8 @@ app.commandLine.appendSwitch(
|
||||
'enable-features',
|
||||
'OverlayScrollbar,SharedArrayBuffer,UseOzonePlatform,WaylandWindowDecorations',
|
||||
);
|
||||
// Disable Fluent Scrollbar (for OverlayScrollbar)
|
||||
app.commandLine.appendSwitch('disable-features', 'FluentScrollbar');
|
||||
if (config.get('options.disableHardwareAcceleration')) {
|
||||
if (is.dev()) {
|
||||
console.log('Disabling hardware acceleration');
|
||||
@ -135,13 +134,30 @@ if (is.linux()) {
|
||||
app.setName('com.github.th_ch.youtube_music');
|
||||
|
||||
// Stops chromium from launching its own MPRIS service
|
||||
if (config.plugins.isEnabled('shortcuts')) {
|
||||
if (await config.plugins.isEnabled('shortcuts')) {
|
||||
app.commandLine.appendSwitch('disable-features', 'MediaSessionService');
|
||||
}
|
||||
}
|
||||
|
||||
if (config.get('options.proxy')) {
|
||||
app.commandLine.appendSwitch('proxy-server', config.get('options.proxy'));
|
||||
const authProxyEnabled = await config.plugins.isEnabled('auth-proxy-adapter');
|
||||
|
||||
let proxyToUse = '';
|
||||
if (authProxyEnabled) {
|
||||
// Use proxy from Auth-Proxy-Adapter plugin
|
||||
const authProxyConfig = deepmerge(
|
||||
defaultAuthProxyConfig,
|
||||
config.get('plugins.auth-proxy-adapter') ?? {},
|
||||
) as typeof defaultAuthProxyConfig;
|
||||
|
||||
const { hostname, port } = authProxyConfig;
|
||||
proxyToUse = `socks5://${hostname}:${port}`;
|
||||
} else if (config.get('options.proxy')) {
|
||||
// Use global proxy settings
|
||||
proxyToUse = config.get('options.proxy');
|
||||
}
|
||||
console.log(LoggerPrefix, `Using proxy: ${proxyToUse}`);
|
||||
app.commandLine.appendSwitch('proxy-server', proxyToUse);
|
||||
}
|
||||
|
||||
// Adds debug features like hotkeys for triggering dev tools and reload
|
||||
@ -162,19 +178,23 @@ function onClosed() {
|
||||
mainWindow = null;
|
||||
}
|
||||
|
||||
ipcMain.handle('ytmd:get-main-plugin-names', () => Object.keys(mainPlugins));
|
||||
ipcMain.handle('ytmd:get-main-plugin-names', async () =>
|
||||
Object.keys(await mainPlugins()),
|
||||
);
|
||||
|
||||
const initHook = async (win: BrowserWindow) => {
|
||||
const allPluginStubs = await allPlugins();
|
||||
|
||||
const initHook = (win: BrowserWindow) => {
|
||||
ipcMain.handle(
|
||||
'ytmd:get-config',
|
||||
(_, id: string) =>
|
||||
deepmerge(
|
||||
allPlugins[id].config ?? { enabled: false },
|
||||
allPluginStubs[id].config ?? { enabled: false },
|
||||
config.get(`plugins.${id}`) ?? {},
|
||||
) as PluginConfig,
|
||||
);
|
||||
ipcMain.handle('ytmd:set-config', (_, name: string, obj: object) =>
|
||||
config.setPartial(`plugins.${name}`, obj, allPlugins[name].config),
|
||||
config.setPartial(`plugins.${name}`, obj, allPluginStubs[name].config),
|
||||
);
|
||||
|
||||
config.watch((newValue, oldValue) => {
|
||||
@ -193,7 +213,7 @@ const initHook = (win: BrowserWindow) => {
|
||||
if (!isEqual) {
|
||||
const oldConfig = oldPluginConfigList[id] as PluginConfig;
|
||||
const config = deepmerge(
|
||||
allPlugins[id].config ?? { enabled: false },
|
||||
allPluginStubs[id].config ?? { enabled: false },
|
||||
newPluginConfig ?? {},
|
||||
) as PluginConfig;
|
||||
|
||||
@ -208,7 +228,7 @@ const initHook = (win: BrowserWindow) => {
|
||||
forceUnloadMainPlugin(id, win);
|
||||
}
|
||||
|
||||
if (allPlugins[id]?.restartNeeded) {
|
||||
if (allPluginStubs[id]?.restartNeeded) {
|
||||
showNeedToRestartDialog(id);
|
||||
}
|
||||
}
|
||||
@ -229,8 +249,8 @@ const initHook = (win: BrowserWindow) => {
|
||||
});
|
||||
};
|
||||
|
||||
const showNeedToRestartDialog = (id: string) => {
|
||||
const plugin = allPlugins[id];
|
||||
const showNeedToRestartDialog = async (id: string) => {
|
||||
const plugin = (await allPlugins())[id];
|
||||
|
||||
const dialogOptions: Electron.MessageBoxOptions = {
|
||||
type: 'info',
|
||||
@ -304,7 +324,7 @@ async function createMainWindow() {
|
||||
const windowSize = config.get('window-size');
|
||||
const windowMaximized = config.get('window-maximized');
|
||||
const windowPosition: Electron.Point = config.get('window-position');
|
||||
const useInlineMenu = config.plugins.isEnabled('in-app-menu');
|
||||
const useInlineMenu = await config.plugins.isEnabled('in-app-menu');
|
||||
|
||||
const defaultTitleBarOverlayOptions: Electron.TitleBarOverlay = {
|
||||
color: '#00000000',
|
||||
@ -329,15 +349,17 @@ async function createMainWindow() {
|
||||
delete decorations.titleBarStyle;
|
||||
}
|
||||
|
||||
const win = new BrowserWindow({
|
||||
const electronWindowSettings: Electron.BrowserWindowConstructorOptions = {
|
||||
icon,
|
||||
width: windowSize.width,
|
||||
height: windowSize.height,
|
||||
minWidth: 325,
|
||||
minHeight: 425,
|
||||
backgroundColor: '#000',
|
||||
show: false,
|
||||
webPreferences: {
|
||||
contextIsolation: true,
|
||||
preload: path.join(__dirname, '..', 'preload', 'preload.js'),
|
||||
preload: path.join(__dirname, '..', 'preload', 'preload.cjs'),
|
||||
...(isTesting()
|
||||
? undefined
|
||||
: {
|
||||
@ -347,8 +369,11 @@ async function createMainWindow() {
|
||||
}),
|
||||
},
|
||||
...decorations,
|
||||
});
|
||||
initHook(win);
|
||||
};
|
||||
|
||||
const win = new BrowserWindow(electronWindowSettings);
|
||||
|
||||
await initHook(win);
|
||||
initTheme(win);
|
||||
|
||||
await loadAllMainPlugins(win);
|
||||
@ -572,6 +597,15 @@ app.once('browser-window-created', (_event, win) => {
|
||||
win.webContents.on('will-prevent-unload', (event) => {
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
const customWindowTitle = config.get('options.customWindowTitle');
|
||||
|
||||
if (customWindowTitle) {
|
||||
win.on('page-title-updated', (event) => {
|
||||
event.preventDefault();
|
||||
win.setTitle(customWindowTitle);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
app.on('window-all-closed', () => {
|
||||
@ -593,12 +627,12 @@ app.on('activate', async () => {
|
||||
}
|
||||
});
|
||||
|
||||
const getDefaultLocale = (locale: string) =>
|
||||
Object.keys(languageResources).includes(locale) ? locale : null;
|
||||
const getDefaultLocale = async (locale: string) =>
|
||||
Object.keys(await languageResources()).includes(locale) ? locale : null;
|
||||
|
||||
app.whenReady().then(async () => {
|
||||
if (!config.get('options.language')) {
|
||||
const locale = getDefaultLocale(app.getLocale());
|
||||
const locale = await getDefaultLocale(app.getLocale());
|
||||
if (locale) {
|
||||
config.set('options.language', locale);
|
||||
}
|
||||
@ -739,7 +773,7 @@ app.whenReady().then(async () => {
|
||||
|
||||
const splited = decodeURIComponent(command).split(' ');
|
||||
|
||||
handleProtocol(splited.shift()!, splited);
|
||||
handleProtocol(splited.shift()!, ...splited);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
import { BrowserWindow, ipcMain } from 'electron';
|
||||
import { type BrowserWindow, ipcMain } from 'electron';
|
||||
|
||||
import { deepmerge } from 'deepmerge-ts';
|
||||
import { allPlugins, mainPlugins } from 'virtual:plugins';
|
||||
|
||||
import config from '@/config';
|
||||
import * as config from '@/config';
|
||||
import { LoggerPrefix, startPlugin, stopPlugin } from '@/utils';
|
||||
|
||||
import { t } from '@/i18n';
|
||||
@ -20,13 +20,17 @@ const createContext = (
|
||||
id: string,
|
||||
win: BrowserWindow,
|
||||
): BackendContext<PluginConfig> => ({
|
||||
getConfig: () =>
|
||||
getConfig: async () =>
|
||||
deepmerge(
|
||||
allPlugins[id].config ?? { enabled: false },
|
||||
(await allPlugins())[id].config ?? { enabled: false },
|
||||
config.get(`plugins.${id}`) ?? {},
|
||||
) as PluginConfig,
|
||||
setConfig: (newConfig) => {
|
||||
config.setPartial(`plugins.${id}`, newConfig, allPlugins[id].config);
|
||||
setConfig: async (newConfig) => {
|
||||
config.setPartial(
|
||||
`plugins.${id}`,
|
||||
newConfig,
|
||||
(await allPlugins())[id].config,
|
||||
);
|
||||
},
|
||||
|
||||
ipc: {
|
||||
@ -96,7 +100,7 @@ export const forceLoadMainPlugin = async (
|
||||
id: string,
|
||||
win: BrowserWindow,
|
||||
): Promise<void> => {
|
||||
const plugin = mainPlugins[id];
|
||||
const plugin = (await mainPlugins())[id];
|
||||
if (!plugin) return;
|
||||
|
||||
try {
|
||||
@ -133,7 +137,7 @@ export const loadAllMainPlugins = async (win: BrowserWindow) => {
|
||||
const pluginConfigs = config.plugins.getPlugins();
|
||||
const queue: Promise<void>[] = [];
|
||||
|
||||
for (const [plugin, pluginDef] of Object.entries(mainPlugins)) {
|
||||
for (const [plugin, pluginDef] of Object.entries(await mainPlugins())) {
|
||||
const config = deepmerge(pluginDef.config, pluginConfigs[plugin] ?? {});
|
||||
if (config.enabled) {
|
||||
queue.push(forceLoadMainPlugin(plugin, win));
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import { deepmerge } from 'deepmerge-ts';
|
||||
import { allPlugins } from 'virtual:plugins';
|
||||
|
||||
import config from '@/config';
|
||||
import * as config from '@/config';
|
||||
import { setApplicationMenu } from '@/menu';
|
||||
|
||||
import { LoggerPrefix } from '@/utils';
|
||||
@ -17,19 +17,23 @@ const createContext = (
|
||||
id: string,
|
||||
win: BrowserWindow,
|
||||
): MenuContext<PluginConfig> => ({
|
||||
getConfig: () =>
|
||||
getConfig: async () =>
|
||||
deepmerge(
|
||||
allPlugins[id].config ?? { enabled: false },
|
||||
(await allPlugins())[id].config ?? { enabled: false },
|
||||
config.get(`plugins.${id}`) ?? {},
|
||||
) as PluginConfig,
|
||||
setConfig: (newConfig) => {
|
||||
config.setPartial(`plugins.${id}`, newConfig, allPlugins[id].config);
|
||||
setConfig: async (newConfig) => {
|
||||
config.setPartial(
|
||||
`plugins.${id}`,
|
||||
newConfig,
|
||||
(await allPlugins())[id].config,
|
||||
);
|
||||
},
|
||||
window: win,
|
||||
refresh: async () => {
|
||||
await setApplicationMenu(win);
|
||||
|
||||
if (config.plugins.isEnabled('in-app-menu')) {
|
||||
if (await config.plugins.isEnabled('in-app-menu')) {
|
||||
win.webContents.send('refresh-in-app-menu');
|
||||
}
|
||||
},
|
||||
@ -37,7 +41,7 @@ const createContext = (
|
||||
|
||||
export const forceLoadMenuPlugin = async (id: string, win: BrowserWindow) => {
|
||||
try {
|
||||
const plugin = allPlugins[id];
|
||||
const plugin = (await allPlugins())[id];
|
||||
if (!plugin) return;
|
||||
|
||||
const menu = plugin.menu?.(createContext(id, win));
|
||||
@ -68,7 +72,7 @@ export const forceLoadMenuPlugin = async (id: string, win: BrowserWindow) => {
|
||||
export const loadAllMenuPlugins = async (win: BrowserWindow) => {
|
||||
const pluginConfigs = config.plugins.getPlugins();
|
||||
|
||||
for (const [pluginId, pluginDef] of Object.entries(allPlugins)) {
|
||||
for (const [pluginId, pluginDef] of Object.entries(await allPlugins())) {
|
||||
const config = deepmerge(
|
||||
pluginDef.config ?? { enabled: false },
|
||||
pluginConfigs[pluginId] ?? {},
|
||||
|
||||
@ -3,7 +3,7 @@ import { allPlugins, preloadPlugins } from 'virtual:plugins';
|
||||
|
||||
import { LoggerPrefix, startPlugin, stopPlugin } from '@/utils';
|
||||
|
||||
import config from '@/config';
|
||||
import * as config from '@/config';
|
||||
|
||||
import { t } from '@/i18n';
|
||||
|
||||
@ -15,13 +15,17 @@ const loadedPluginMap: Record<
|
||||
PluginDef<unknown, unknown, unknown>
|
||||
> = {};
|
||||
const createContext = (id: string): PreloadContext<PluginConfig> => ({
|
||||
getConfig: () =>
|
||||
getConfig: async () =>
|
||||
deepmerge(
|
||||
allPlugins[id].config ?? { enabled: false },
|
||||
(await allPlugins())[id].config ?? { enabled: false },
|
||||
config.get(`plugins.${id}`) ?? {},
|
||||
) as PluginConfig,
|
||||
setConfig: (newConfig) => {
|
||||
config.setPartial(`plugins.${id}`, newConfig, allPlugins[id].config);
|
||||
setConfig: async (newConfig) => {
|
||||
config.setPartial(
|
||||
`plugins.${id}`,
|
||||
newConfig,
|
||||
(await allPlugins())[id].config,
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
@ -48,7 +52,7 @@ export const forceUnloadPreloadPlugin = async (id: string) => {
|
||||
|
||||
export const forceLoadPreloadPlugin = async (id: string) => {
|
||||
try {
|
||||
const plugin = preloadPlugins[id];
|
||||
const plugin = (await preloadPlugins())[id];
|
||||
if (!plugin) return;
|
||||
|
||||
const hasStarted = await startPlugin(id, plugin, {
|
||||
@ -78,10 +82,10 @@ export const forceLoadPreloadPlugin = async (id: string) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const loadAllPreloadPlugins = () => {
|
||||
export const loadAllPreloadPlugins = async () => {
|
||||
const pluginConfigs = config.plugins.getPlugins();
|
||||
|
||||
for (const [pluginId, pluginDef] of Object.entries(preloadPlugins)) {
|
||||
for (const [pluginId, pluginDef] of Object.entries(await preloadPlugins())) {
|
||||
const config = deepmerge(
|
||||
pluginDef.config ?? { enable: false },
|
||||
pluginConfigs[pluginId] ?? {},
|
||||
|
||||
@ -18,7 +18,7 @@ const loadedPluginMap: Record<
|
||||
export const createContext = <Config extends PluginConfig>(
|
||||
id: string,
|
||||
): RendererContext<Config> => ({
|
||||
getConfig: async () =>
|
||||
getConfig: () =>
|
||||
window.ipcRenderer.invoke('ytmd:get-config', id) as Promise<Config>,
|
||||
setConfig: async (newConfig) => {
|
||||
await window.ipcRenderer.invoke('ytmd:set-config', id, newConfig);
|
||||
@ -47,7 +47,7 @@ export const forceUnloadRendererPlugin = async (id: string) => {
|
||||
delete unregisterStyleMap[id];
|
||||
delete loadedPluginMap[id];
|
||||
|
||||
const plugin = rendererPlugins[id];
|
||||
const plugin = (await rendererPlugins())[id];
|
||||
if (!plugin) return;
|
||||
|
||||
const hasStopped = await stopPlugin(id, plugin, {
|
||||
@ -71,7 +71,7 @@ export const forceUnloadRendererPlugin = async (id: string) => {
|
||||
};
|
||||
|
||||
export const forceLoadRendererPlugin = async (id: string) => {
|
||||
const plugin = rendererPlugins[id];
|
||||
const plugin = (await rendererPlugins())[id];
|
||||
if (!plugin) return;
|
||||
|
||||
const hasEvaled = await startPlugin(id, plugin, {
|
||||
@ -117,7 +117,7 @@ export const forceLoadRendererPlugin = async (id: string) => {
|
||||
export const loadAllRendererPlugins = async () => {
|
||||
const pluginConfigs = window.mainConfig.plugins.getPlugins();
|
||||
|
||||
for (const [pluginId, pluginDef] of Object.entries(rendererPlugins)) {
|
||||
for (const [pluginId, pluginDef] of Object.entries(await rendererPlugins())) {
|
||||
const config = deepmerge(pluginDef.config, pluginConfigs[pluginId] ?? {});
|
||||
|
||||
if (config.enabled) {
|
||||
|
||||
118
src/menu.ts
118
src/menu.ts
@ -1,11 +1,11 @@
|
||||
import is from 'electron-is';
|
||||
import {
|
||||
app,
|
||||
BrowserWindow,
|
||||
type BrowserWindow,
|
||||
clipboard,
|
||||
dialog,
|
||||
Menu,
|
||||
MenuItem,
|
||||
type MenuItem,
|
||||
shell,
|
||||
} from 'electron';
|
||||
import prompt from 'custom-electron-prompt';
|
||||
@ -15,7 +15,7 @@ import { allPlugins } from 'virtual:plugins';
|
||||
|
||||
import { languageResources } from 'virtual:i18n';
|
||||
|
||||
import config from './config';
|
||||
import * as config from './config';
|
||||
|
||||
import { restart } from './providers/app-controls';
|
||||
import { startingPages } from './providers/extracted-data';
|
||||
@ -29,21 +29,21 @@ import packageJson from '../package.json';
|
||||
export type MenuTemplate = Electron.MenuItemConstructorOptions[];
|
||||
|
||||
// True only if in-app-menu was loaded on launch
|
||||
const inAppMenuActive = config.plugins.isEnabled('in-app-menu');
|
||||
const inAppMenuActive = await config.plugins.isEnabled('in-app-menu');
|
||||
|
||||
const pluginEnabledMenu = (
|
||||
const pluginEnabledMenu = async (
|
||||
plugin: string,
|
||||
label = '',
|
||||
description: string | undefined = undefined,
|
||||
isNew = false,
|
||||
hasSubmenu = false,
|
||||
refreshMenu: (() => void) | undefined = undefined,
|
||||
): Electron.MenuItemConstructorOptions => ({
|
||||
): Promise<Electron.MenuItemConstructorOptions> => ({
|
||||
label: label || plugin,
|
||||
sublabel: isNew ? t('main.menu.plugins.new') : undefined,
|
||||
toolTip: description,
|
||||
type: 'checkbox',
|
||||
checked: config.plugins.isEnabled(plugin),
|
||||
checked: await config.plugins.isEnabled(plugin),
|
||||
click(item: Electron.MenuItem) {
|
||||
if (item.checked) {
|
||||
config.plugins.enable(plugin);
|
||||
@ -71,19 +71,21 @@ export const mainMenuTemplate = async (
|
||||
const { navigationHistory } = win.webContents;
|
||||
await loadAllMenuPlugins(win);
|
||||
|
||||
const menuResult = Object.entries(getAllMenuTemplate()).map(
|
||||
([id, template]) => {
|
||||
const plugin = allPlugins[id];
|
||||
const allPluginsStubs = await allPlugins();
|
||||
|
||||
const menuResult = await Promise.all(
|
||||
Object.entries(getAllMenuTemplate()).map(async ([id, template]) => {
|
||||
const plugin = allPluginsStubs[id];
|
||||
const pluginLabel = plugin?.name?.() ?? id;
|
||||
const pluginDescription = plugin?.description?.() ?? undefined;
|
||||
const isNew = plugin?.addedVersion
|
||||
? satisfies(packageJson.version, plugin.addedVersion)
|
||||
: false;
|
||||
|
||||
if (!config.plugins.isEnabled(id)) {
|
||||
if (!(await config.plugins.isEnabled(id))) {
|
||||
return [
|
||||
id,
|
||||
pluginEnabledMenu(
|
||||
await pluginEnabledMenu(
|
||||
id,
|
||||
pluginLabel,
|
||||
pluginDescription,
|
||||
@ -101,7 +103,7 @@ export const mainMenuTemplate = async (
|
||||
sublabel: isNew ? t('main.menu.plugins.new') : undefined,
|
||||
toolTip: pluginDescription,
|
||||
submenu: [
|
||||
pluginEnabledMenu(
|
||||
await pluginEnabledMenu(
|
||||
id,
|
||||
t('main.menu.plugins.enabled'),
|
||||
undefined,
|
||||
@ -114,39 +116,42 @@ export const mainMenuTemplate = async (
|
||||
],
|
||||
} satisfies Electron.MenuItemConstructorOptions,
|
||||
] as const;
|
||||
},
|
||||
}),
|
||||
);
|
||||
|
||||
const availablePlugins = Object.keys(allPlugins);
|
||||
const pluginMenus = availablePlugins
|
||||
.sort((a, b) => {
|
||||
const aPluginLabel = allPlugins[a]?.name?.() ?? a;
|
||||
const bPluginLabel = allPlugins[b]?.name?.() ?? b;
|
||||
const availablePlugins = Object.keys(await allPlugins());
|
||||
const pluginMenus = await Promise.all(
|
||||
availablePlugins
|
||||
.sort((a, b) => {
|
||||
const aPluginLabel = allPluginsStubs[a]?.name?.() ?? a;
|
||||
const bPluginLabel = allPluginsStubs[b]?.name?.() ?? b;
|
||||
|
||||
return aPluginLabel.localeCompare(bPluginLabel);
|
||||
})
|
||||
.map((id) => {
|
||||
const predefinedTemplate = menuResult.find((it) => it[0] === id);
|
||||
if (predefinedTemplate) return predefinedTemplate[1];
|
||||
return aPluginLabel.localeCompare(bPluginLabel);
|
||||
})
|
||||
.map((id) => {
|
||||
const predefinedTemplate = menuResult.find((it) => it[0] === id);
|
||||
if (predefinedTemplate) return predefinedTemplate[1];
|
||||
|
||||
const plugin = allPlugins[id];
|
||||
const pluginLabel = plugin?.name?.() ?? id;
|
||||
const pluginDescription = plugin?.description?.() ?? undefined;
|
||||
const isNew = plugin?.addedVersion
|
||||
? satisfies(packageJson.version, plugin.addedVersion)
|
||||
: false;
|
||||
const plugin = allPluginsStubs[id];
|
||||
const pluginLabel = plugin?.name?.() ?? id;
|
||||
const pluginDescription = plugin?.description?.() ?? undefined;
|
||||
const isNew = plugin?.addedVersion
|
||||
? satisfies(packageJson.version, plugin.addedVersion)
|
||||
: false;
|
||||
|
||||
return pluginEnabledMenu(
|
||||
id,
|
||||
pluginLabel,
|
||||
pluginDescription,
|
||||
isNew,
|
||||
true,
|
||||
innerRefreshMenu,
|
||||
);
|
||||
});
|
||||
return pluginEnabledMenu(
|
||||
id,
|
||||
pluginLabel,
|
||||
pluginDescription,
|
||||
isNew,
|
||||
true,
|
||||
innerRefreshMenu,
|
||||
);
|
||||
}),
|
||||
);
|
||||
|
||||
const availableLanguages = Object.keys(languageResources);
|
||||
const langResources = await languageResources();
|
||||
const availableLanguages = Object.keys(langResources);
|
||||
|
||||
return [
|
||||
{
|
||||
@ -211,6 +216,37 @@ export const mainMenuTemplate = async (
|
||||
);
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t(
|
||||
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.label',
|
||||
),
|
||||
async click() {
|
||||
const output = await prompt(
|
||||
{
|
||||
title: t(
|
||||
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.label',
|
||||
),
|
||||
label: t(
|
||||
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.prompt.label',
|
||||
),
|
||||
value: config.get('options.customWindowTitle') || '',
|
||||
type: 'input',
|
||||
inputAttrs: {
|
||||
type: 'text',
|
||||
placeholder: t(
|
||||
'main.menu.options.submenu.visual-tweaks.submenu.custom-window-title.prompt.placeholder',
|
||||
),
|
||||
},
|
||||
width: 500,
|
||||
...promptOptions(),
|
||||
},
|
||||
win,
|
||||
);
|
||||
if (typeof output === 'string') {
|
||||
config.setMenuOption('options.customWindowTitle', output);
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
label: t(
|
||||
'main.menu.options.submenu.visual-tweaks.submenu.like-buttons.label',
|
||||
@ -445,7 +481,7 @@ export const mainMenuTemplate = async (
|
||||
availableLanguages
|
||||
.map(
|
||||
(lang): Electron.MenuItemConstructorOptions => ({
|
||||
label: `${languageResources[lang].translation.language?.name ?? 'Unknown'} (${languageResources[lang].translation.language?.['local-name'] ?? 'Unknown'})`,
|
||||
label: `${langResources[lang].translation.language?.name ?? 'Unknown'} (${langResources[lang].translation.language?.['local-name'] ?? 'Unknown'})`,
|
||||
type: 'checkbox',
|
||||
checked: (config.get('options.language') ?? 'en') === lang,
|
||||
click() {
|
||||
|
||||
@ -76,7 +76,7 @@ export default createPlugin({
|
||||
async onPlayerApiReady(_, { getConfig }) {
|
||||
const config = await getConfig();
|
||||
if (config.blocker === blockers.AdSpeedup) {
|
||||
await loadAdSpeedup();
|
||||
loadAdSpeedup();
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@ -1,12 +1,17 @@
|
||||
import { render } from 'solid-js/web';
|
||||
|
||||
import { createSignal, Show } from 'solid-js';
|
||||
|
||||
import { t } from '@/i18n';
|
||||
import { createPlugin } from '@/utils';
|
||||
import { ElementFromHtml } from '@/plugins/utils/renderer';
|
||||
import { waitForElement } from '@/utils/wait-for-element';
|
||||
|
||||
import undislikeHTML from './templates/undislike.html?raw';
|
||||
import dislikeHTML from './templates/dislike.html?raw';
|
||||
import likeHTML from './templates/like.html?raw';
|
||||
import unlikeHTML from './templates/unlike.html?raw';
|
||||
import {
|
||||
DislikeButton,
|
||||
LikeButton,
|
||||
UnDislikeButton,
|
||||
UnLikeButton,
|
||||
} from './templates';
|
||||
|
||||
export default createPlugin<
|
||||
unknown,
|
||||
@ -52,19 +57,69 @@ export default createPlugin<
|
||||
}
|
||||
const continuations = await waitForElement<HTMLElement>('#continuations');
|
||||
this.waiting = false;
|
||||
//Gets the for buttons
|
||||
const buttons: Array<HTMLElement> = [
|
||||
ElementFromHtml(undislikeHTML),
|
||||
ElementFromHtml(dislikeHTML),
|
||||
ElementFromHtml(likeHTML),
|
||||
ElementFromHtml(unlikeHTML),
|
||||
];
|
||||
|
||||
const [showUnDislike, setShowUnDislike] = createSignal(true);
|
||||
const [showDislike, setShowDislike] = createSignal(true);
|
||||
const [showLike, setShowLike] = createSignal(true);
|
||||
const [showUnLike, setShowUnLike] = createSignal(true);
|
||||
|
||||
const DEFAULT_MASK_SIZE = '100% 50%';
|
||||
const [unDislikeMaskSize, setUnDislikeMaskSize] =
|
||||
createSignal(DEFAULT_MASK_SIZE);
|
||||
const [dislikeMaskSize, setDislikeMaskSize] =
|
||||
createSignal(DEFAULT_MASK_SIZE);
|
||||
const [likeMaskSize, setLikeMaskSize] = createSignal(DEFAULT_MASK_SIZE);
|
||||
const [unLikeMaskSize, setUnLikeMaskSize] =
|
||||
createSignal(DEFAULT_MASK_SIZE);
|
||||
|
||||
const buttonContainer = document.createElement('div');
|
||||
buttonContainer.style.display = 'flex';
|
||||
buttonContainer.style.flexDirection = 'row';
|
||||
|
||||
render(
|
||||
() => (
|
||||
<>
|
||||
<Show when={showUnDislike()}>
|
||||
<UnDislikeButton
|
||||
maskSize={unDislikeMaskSize()}
|
||||
onClick={this.loadFullList}
|
||||
/>
|
||||
</Show>
|
||||
<Show when={showDislike()}>
|
||||
<DislikeButton
|
||||
maskSize={dislikeMaskSize()}
|
||||
onClick={this.loadFullList}
|
||||
/>
|
||||
</Show>
|
||||
<Show when={showLike()}>
|
||||
<LikeButton
|
||||
maskSize={likeMaskSize()}
|
||||
onClick={this.loadFullList}
|
||||
/>
|
||||
</Show>
|
||||
<Show when={showUnLike()}>
|
||||
<UnLikeButton
|
||||
maskSize={unLikeMaskSize()}
|
||||
onClick={this.loadFullList}
|
||||
/>
|
||||
</Show>
|
||||
</>
|
||||
),
|
||||
buttonContainer,
|
||||
);
|
||||
|
||||
//Finds the playlist
|
||||
const playlist =
|
||||
document.querySelector('ytmusic-shelf-renderer') ??
|
||||
document.querySelector('ytmusic-playlist-shelf-renderer')!;
|
||||
document.querySelector('ytmusic-playlist-shelf-renderer') ??
|
||||
document.querySelector(':nth-last-child(1 of ytmusic-shelf-renderer)');
|
||||
|
||||
if (!playlist) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Adds an observer for every button, so it gets updated when one is clicked
|
||||
this.changeObserver?.disconnect();
|
||||
|
||||
this.changeObserver = new MutationObserver(() => {
|
||||
this.stop();
|
||||
this.start();
|
||||
@ -84,34 +139,57 @@ export default createPlugin<
|
||||
'#button-shape-dislike > button',
|
||||
).length;
|
||||
if (continuations.children.length == 0 && listsLength > 0) {
|
||||
const counts = [
|
||||
playlist?.querySelectorAll(
|
||||
'#button-shape-dislike[aria-pressed=true] > button',
|
||||
const counts = {
|
||||
dislike: playlist?.querySelectorAll(
|
||||
'#button-shape-dislike > button[aria-pressed=true]',
|
||||
).length,
|
||||
playlist?.querySelectorAll(
|
||||
'#button-shape-dislike[aria-pressed=false] > button',
|
||||
undislike: playlist?.querySelectorAll(
|
||||
'#button-shape-dislike > button[aria-pressed=false]',
|
||||
).length,
|
||||
playlist?.querySelectorAll(
|
||||
'#button-shape-like[aria-pressed=false] > button',
|
||||
unlike: playlist?.querySelectorAll(
|
||||
'#button-shape-like > button[aria-pressed=false]',
|
||||
).length,
|
||||
playlist?.querySelectorAll(
|
||||
'#button-shape-like[aria-pressed=true] > button',
|
||||
like: playlist?.querySelectorAll(
|
||||
'#button-shape-like > button[aria-pressed=true]',
|
||||
).length,
|
||||
];
|
||||
let i = 0;
|
||||
for (const count of counts) {
|
||||
if (count == 0) {
|
||||
buttons.splice(i, 1);
|
||||
i--;
|
||||
} else {
|
||||
(
|
||||
buttons[i].children[0].children[0] as HTMLElement
|
||||
).style.setProperty(
|
||||
'-webkit-mask-size',
|
||||
`100% ${100 - (count / listsLength) * 100}%`,
|
||||
);
|
||||
};
|
||||
for (const [name, size] of Object.entries(counts)) {
|
||||
switch (name) {
|
||||
case 'dislike':
|
||||
if (size > 0) {
|
||||
setShowDislike(true);
|
||||
setDislikeMaskSize(`100% ${100 - (size / listsLength) * 100}%`);
|
||||
} else {
|
||||
setShowDislike(false);
|
||||
}
|
||||
break;
|
||||
case 'undislike':
|
||||
if (size > 0) {
|
||||
setShowUnDislike(true);
|
||||
setUnDislikeMaskSize(
|
||||
`100% ${100 - (size / listsLength) * 100}%`,
|
||||
);
|
||||
} else {
|
||||
setShowUnDislike(false);
|
||||
}
|
||||
break;
|
||||
case 'like':
|
||||
if (size > 0) {
|
||||
setShowLike(true);
|
||||
setLikeMaskSize(`100% ${100 - (size / listsLength) * 100}%`);
|
||||
} else {
|
||||
setShowLike(false);
|
||||
}
|
||||
break;
|
||||
case 'unlike':
|
||||
if (size > 0) {
|
||||
setShowUnLike(true);
|
||||
setUnLikeMaskSize(`100% ${100 - (size / listsLength) * 100}%`);
|
||||
} else {
|
||||
setShowUnLike(false);
|
||||
}
|
||||
break;
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
const menuParent =
|
||||
@ -126,10 +204,7 @@ export default createPlugin<
|
||||
menu,
|
||||
menuParent.children[menuParent.children.length - 1],
|
||||
);
|
||||
for (const button of buttons) {
|
||||
menu.appendChild(button);
|
||||
button.addEventListener('click', this.loadFullList);
|
||||
}
|
||||
menu.appendChild(buttonContainer);
|
||||
}
|
||||
},
|
||||
loadFullList(event: MouseEvent) {
|
||||
@ -157,28 +232,28 @@ export default createPlugin<
|
||||
if (loader.children.length != 0) return;
|
||||
this.loadObserver?.disconnect();
|
||||
let playlistButtons: NodeListOf<HTMLElement> | undefined;
|
||||
const playlist = document.querySelector('ytmusic-shelf-renderer')
|
||||
? document.querySelector('ytmusic-shelf-renderer')
|
||||
: document.querySelector('ytmusic-playlist-shelf-renderer');
|
||||
const playlist =
|
||||
document.querySelector('ytmusic-playlist-shelf-renderer') ??
|
||||
document.querySelector(':nth-last-child(1 of ytmusic-shelf-renderer)');
|
||||
switch (id) {
|
||||
case 'allundislike':
|
||||
playlistButtons = playlist?.querySelectorAll(
|
||||
'#button-shape-dislike[aria-pressed=true] > button',
|
||||
'#button-shape-dislike > button[aria-pressed=true]',
|
||||
);
|
||||
break;
|
||||
case 'alldislike':
|
||||
playlistButtons = playlist?.querySelectorAll(
|
||||
'#button-shape-dislike[aria-pressed=false] > button',
|
||||
'#button-shape-dislike > button[aria-pressed=false]',
|
||||
);
|
||||
break;
|
||||
case 'alllike':
|
||||
playlistButtons = playlist?.querySelectorAll(
|
||||
'#button-shape-like[aria-pressed=false] > button',
|
||||
'#button-shape-like > button[aria-pressed=false]',
|
||||
);
|
||||
break;
|
||||
case 'allunlike':
|
||||
playlistButtons = playlist?.querySelectorAll(
|
||||
'#button-shape-like[aria-pressed=true] > button',
|
||||
'#button-shape-like > button[aria-pressed=true]',
|
||||
);
|
||||
break;
|
||||
default:
|
||||
99
src/plugins/album-actions/templates/dislike-button.tsx
Normal file
99
src/plugins/album-actions/templates/dislike-button.tsx
Normal file
@ -0,0 +1,99 @@
|
||||
export interface DislikeButtonProps {
|
||||
onClick?: (e: MouseEvent) => void;
|
||||
maskSize: string;
|
||||
}
|
||||
|
||||
export const DislikeButton = (props: DislikeButtonProps) => (
|
||||
<div class="style-scope">
|
||||
<button
|
||||
aria-label="Dislike all"
|
||||
aria-pressed="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
data-filled="false"
|
||||
data-type="dislike"
|
||||
id="alldislike"
|
||||
onClick={(e) => props.onClick?.(e)}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'var(--ytmusic-setting-item-toggle-active)',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'white',
|
||||
'mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask-size': props.maskSize,
|
||||
'-webkit-mask-repeat': 'no-repeat',
|
||||
'z-index': 1,
|
||||
'position': 'absolute',
|
||||
}}
|
||||
>
|
||||
<div style={{ 'width': '24px', 'height': '24px' }}>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M18,4h3v10h-3V4z M5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21c0.58,0,1.14-0.24,1.52-0.65L17,14V4H6.57 C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
width: '24px',
|
||||
height: '24px',
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M18,4h3v10h-3V4z M5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21c0.58,0,1.14-0.24,1.52-0.65L17,14V4H6.57 C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape
|
||||
style={{
|
||||
'border-radius': 'inherit',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke" />
|
||||
<div class="yt-spec-touch-feedback-shape__fill" />
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
@ -1,76 +0,0 @@
|
||||
<div class="style-scope">
|
||||
<button
|
||||
id="alldislike"
|
||||
data-type="dislike"
|
||||
data-filled="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
aria-pressed="false"
|
||||
aria-label="Dislike all"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="color: var(--ytmusic-setting-item-toggle-active)"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="
|
||||
color: white;
|
||||
-webkit-mask: linear-gradient(grey, grey);
|
||||
-webkit-mask-size: 100% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M18,4h3v10h-3V4z M5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21c0.58,0,1.14-0.24,1.52-0.65L17,14V4H6.57 C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="pointer-events: none; display: block; width: 100%; height: 100%"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M18,4h3v10h-3V4z M5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21c0.58,0,1.14-0.24,1.52-0.65L17,14V4H6.57 C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape style="border-radius: inherit">
|
||||
<div
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke"></div>
|
||||
<div class="yt-spec-touch-feedback-shape__fill"></div>
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
4
src/plugins/album-actions/templates/index.ts
Normal file
4
src/plugins/album-actions/templates/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
export * from './like-button';
|
||||
export * from './dislike-button';
|
||||
export * from './undislike-button';
|
||||
export * from './unlike-button';
|
||||
90
src/plugins/album-actions/templates/like-button.tsx
Normal file
90
src/plugins/album-actions/templates/like-button.tsx
Normal file
@ -0,0 +1,90 @@
|
||||
export interface LikeButtonProps {
|
||||
onClick?: (e: MouseEvent) => void;
|
||||
maskSize: string;
|
||||
}
|
||||
|
||||
export const LikeButton = (props: LikeButtonProps) => (
|
||||
<div class="style-scope">
|
||||
<button
|
||||
aria-label="Like all"
|
||||
aria-pressed="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
data-filled="false"
|
||||
data-type="like"
|
||||
id="alllike"
|
||||
onClick={(e) => props.onClick?.(e)}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'var(--ytmusic-setting-item-toggle-active)',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'white',
|
||||
'mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask-size': props.maskSize,
|
||||
'-webkit-mask-repeat': 'no-repeat',
|
||||
'z-index': 1,
|
||||
'position': 'absolute',
|
||||
}}
|
||||
>
|
||||
<div style={{ 'width': '24px', 'height': '24px' }}>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style={{ 'width': '24px', 'height': '24px' }}>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape style={{ 'border-radius': 'inherit' }}>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke" />
|
||||
<div class="yt-spec-touch-feedback-shape__fill" />
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
@ -1,76 +0,0 @@
|
||||
<div class="style-scope">
|
||||
<button
|
||||
id="alllike"
|
||||
data-type="like"
|
||||
data-filled="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
aria-pressed="false"
|
||||
aria-label="Like all"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="color: var(--ytmusic-setting-item-toggle-active)"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="
|
||||
color: white;
|
||||
-webkit-mask: linear-gradient(grey, grey);
|
||||
-webkit-mask-size: 100% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="pointer-events: none; display: block; width: 100%; height: 100%"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M3,11h3v10H3V11z M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11v10h10.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape style="border-radius: inherit">
|
||||
<div
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke"></div>
|
||||
<div class="yt-spec-touch-feedback-shape__fill"></div>
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
104
src/plugins/album-actions/templates/undislike-button.tsx
Normal file
104
src/plugins/album-actions/templates/undislike-button.tsx
Normal file
@ -0,0 +1,104 @@
|
||||
export interface UnDislikeButtonProps {
|
||||
onClick?: (e: MouseEvent) => void;
|
||||
maskSize: string;
|
||||
}
|
||||
|
||||
export const UnDislikeButton = (props: UnDislikeButtonProps) => (
|
||||
<div class="style-scope">
|
||||
<button
|
||||
aria-label="Undislike all"
|
||||
aria-pressed="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
data-filled="true"
|
||||
data-type="dislike"
|
||||
id="allundislike"
|
||||
onClick={(e) => props.onClick?.(e)}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
color: 'var(--ytmusic-setting-item-toggle-active)',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'white',
|
||||
'mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask-size': props.maskSize,
|
||||
'-webkit-mask-repeat': 'no-repeat',
|
||||
'z-index': 1,
|
||||
'position': 'absolute',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
width: '24px',
|
||||
height: '24px',
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21 c0.58,0,1.14-0.24,1.52-0.65L17,14h4V4H17z M10.4,19.67C10.21,19.88,9.92,20,9.62,20c-0.26,0-0.5-0.11-0.63-0.3 c-0.07-0.1-0.15-0.26-0.09-0.47l1.52-4.94l0.4-1.29H9.46H5.23c-0.41,0-0.8-0.17-1.03-0.46c-0.12-0.15-0.25-0.4-0.18-0.72l1.34-6 C5.46,5.35,5.97,5,6.57,5H16v8.61L10.4,19.67z M20,13h-3V5h3V13z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
width: '24px',
|
||||
height: '24px',
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21 c0.58,0,1.14-0.24,1.52-0.65L17,14h4V4H17z M10.4,19.67C10.21,19.88,9.92,20,9.62,20c-0.26,0-0.5-0.11-0.63-0.3 c-0.07-0.1-0.15-0.26-0.09-0.47l1.52-4.94l0.4-1.29H9.46H5.23c-0.41,0-0.8-0.17-1.03-0.46c-0.12-0.15-0.25-0.4-0.18-0.72l1.34-6 C5.46,5.35,5.97,5,6.57,5H16v8.61L10.4,19.67z M20,13h-3V5h3V13z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape
|
||||
style={{
|
||||
'border-radius': 'inherit',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke" />
|
||||
<div class="yt-spec-touch-feedback-shape__fill" />
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
@ -1,76 +0,0 @@
|
||||
<div class="style-scope">
|
||||
<button
|
||||
id="allundislike"
|
||||
data-type="dislike"
|
||||
data-filled="true"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
aria-pressed="false"
|
||||
aria-label="Undislike all"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="color: var(--ytmusic-setting-item-toggle-active)"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="
|
||||
color: white;
|
||||
-webkit-mask: linear-gradient(grey, grey);
|
||||
-webkit-mask-size: 100% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21 c0.58,0,1.14-0.24,1.52-0.65L17,14h4V4H17z M10.4,19.67C10.21,19.88,9.92,20,9.62,20c-0.26,0-0.5-0.11-0.63-0.3 c-0.07-0.1-0.15-0.26-0.09-0.47l1.52-4.94l0.4-1.29H9.46H5.23c-0.41,0-0.8-0.17-1.03-0.46c-0.12-0.15-0.25-0.4-0.18-0.72l1.34-6 C5.46,5.35,5.97,5,6.57,5H16v8.61L10.4,19.67z M20,13h-3V5h3V13z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="pointer-events: none; display: block; width: 100%; height: 100%"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M17,4h-1H6.57C5.5,4,4.59,4.67,4.38,5.61l-1.34,6C2.77,12.85,3.82,14,5.23,14h4.23l-1.52,4.94C7.62,19.97,8.46,21,9.62,21 c0.58,0,1.14-0.24,1.52-0.65L17,14h4V4H17z M10.4,19.67C10.21,19.88,9.92,20,9.62,20c-0.26,0-0.5-0.11-0.63-0.3 c-0.07-0.1-0.15-0.26-0.09-0.47l1.52-4.94l0.4-1.29H9.46H5.23c-0.41,0-0.8-0.17-1.03-0.46c-0.12-0.15-0.25-0.4-0.18-0.72l1.34-6 C5.46,5.35,5.97,5,6.57,5H16v8.61L10.4,19.67z M20,13h-3V5h3V13z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape style="border-radius: inherit">
|
||||
<div
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke"></div>
|
||||
<div class="yt-spec-touch-feedback-shape__fill"></div>
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
104
src/plugins/album-actions/templates/unlike-button.tsx
Normal file
104
src/plugins/album-actions/templates/unlike-button.tsx
Normal file
@ -0,0 +1,104 @@
|
||||
export interface UnLikeButtonProps {
|
||||
onClick?: (e: MouseEvent) => void;
|
||||
maskSize: string;
|
||||
}
|
||||
|
||||
export const UnLikeButton = (props: UnLikeButtonProps) => (
|
||||
<div class="style-scope">
|
||||
<button
|
||||
aria-label="Unlike all"
|
||||
aria-pressed="false"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
data-filled="true"
|
||||
data-type="like"
|
||||
id="allunlike"
|
||||
onClick={(e) => props.onClick?.(e)}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'var(--ytmusic-setting-item-toggle-active)',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style={{
|
||||
'color': 'white',
|
||||
'mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask': 'linear-gradient(grey, grey)',
|
||||
'-webkit-mask-size': props.maskSize,
|
||||
'-webkit-mask-repeat': 'no-repeat',
|
||||
'z-index': 1,
|
||||
'position': 'absolute',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
style={{
|
||||
width: '24px',
|
||||
height: '24px',
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11H3v10h4h1h9.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z M7,20H4v-8h3V20z M19.98,13.17l-1.34,6 C18.54,19.65,18.03,20,17.43,20H8v-8.61l5.6-6.06C13.79,5.12,14.08,5,14.38,5c0.26,0,0.5,0.11,0.63,0.3 c0.07,0.1,0.15,0.26,0.09,0.47l-1.52,4.94L13.18,12h1.35h4.23c0.41,0,0.8,0.17,1.03,0.46C19.92,12.61,20.05,12.86,19.98,13.17z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
style={{
|
||||
width: '24px',
|
||||
height: '24px',
|
||||
}}
|
||||
>
|
||||
<svg
|
||||
class="style-scope yt-icon"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
style={{
|
||||
'pointer-events': 'none',
|
||||
'display': 'block',
|
||||
'width': '100%',
|
||||
'height': '100%',
|
||||
}}
|
||||
viewBox="0 0 24 24"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
class="style-scope yt-icon"
|
||||
d="M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11H3v10h4h1h9.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z M7,20H4v-8h3V20z M19.98,13.17l-1.34,6 C18.54,19.65,18.03,20,17.43,20H8v-8.61l5.6-6.06C13.79,5.12,14.08,5,14.38,5c0.26,0,0.5,0.11,0.63,0.3 c0.07,0.1,0.15,0.26,0.09,0.47l-1.52,4.94L13.18,12h1.35h4.23c0.41,0,0.8,0.17,1.03,0.46C19.92,12.61,20.05,12.86,19.98,13.17z"
|
||||
/>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape
|
||||
style={{
|
||||
'border-radius': 'inherit',
|
||||
}}
|
||||
>
|
||||
<div
|
||||
aria-hidden="true"
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke" />
|
||||
<div class="yt-spec-touch-feedback-shape__fill" />
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
);
|
||||
@ -1,76 +0,0 @@
|
||||
<div class="style-scope">
|
||||
<button
|
||||
id="allunlike"
|
||||
data-type="like"
|
||||
data-filled="true"
|
||||
class="like-menu yt-spec-button-shape-next yt-spec-button-shape-next--text yt-spec-button-shape-next--mono yt-spec-button-shape-next--size-m yt-spec-button-shape-next--icon-button"
|
||||
aria-pressed="false"
|
||||
aria-label="Unlike all"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="color: var(--ytmusic-setting-item-toggle-active)"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div
|
||||
class="yt-spec-button-shape-next__icon"
|
||||
style="
|
||||
color: white;
|
||||
-webkit-mask: linear-gradient(grey, grey);
|
||||
-webkit-mask-size: 100% 50%;
|
||||
-webkit-mask-repeat: no-repeat;
|
||||
z-index: 1;
|
||||
position: absolute;
|
||||
"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="
|
||||
pointer-events: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11H3v10h4h1h9.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z M7,20H4v-8h3V20z M19.98,13.17l-1.34,6 C18.54,19.65,18.03,20,17.43,20H8v-8.61l5.6-6.06C13.79,5.12,14.08,5,14.38,5c0.26,0,0.5,0.11,0.63,0.3 c0.07,0.1,0.15,0.26,0.09,0.47l-1.52,4.94L13.18,12h1.35h4.23c0.41,0,0.8,0.17,1.03,0.46C19.92,12.61,20.05,12.86,19.98,13.17z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 24px; height: 24px">
|
||||
<svg
|
||||
viewBox="0 0 24 24"
|
||||
preserveAspectRatio="xMidYMid meet"
|
||||
focusable="false"
|
||||
class="style-scope yt-icon"
|
||||
style="pointer-events: none; display: block; width: 100%; height: 100%"
|
||||
>
|
||||
<g class="style-scope yt-icon">
|
||||
<path
|
||||
d="M18.77,11h-4.23l1.52-4.94C16.38,5.03,15.54,4,14.38,4c-0.58,0-1.14,0.24-1.52,0.65L7,11H3v10h4h1h9.43 c1.06,0,1.98-0.67,2.19-1.61l1.34-6C21.23,12.15,20.18,11,18.77,11z M7,20H4v-8h3V20z M19.98,13.17l-1.34,6 C18.54,19.65,18.03,20,17.43,20H8v-8.61l5.6-6.06C13.79,5.12,14.08,5,14.38,5c0.26,0,0.5,0.11,0.63,0.3 c0.07,0.1,0.15,0.26,0.09,0.47l-1.52,4.94L13.18,12h1.35h4.23c0.41,0,0.8,0.17,1.03,0.46C19.92,12.61,20.05,12.86,19.98,13.17z"
|
||||
class="style-scope yt-icon"
|
||||
></path>
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<yt-touch-feedback-shape style="border-radius: inherit">
|
||||
<div
|
||||
class="yt-spec-touch-feedback-shape yt-spec-touch-feedback-shape--touch-response"
|
||||
aria-hidden="true"
|
||||
>
|
||||
<div class="yt-spec-touch-feedback-shape__stroke"></div>
|
||||
<div class="yt-spec-touch-feedback-shape__fill"></div>
|
||||
</div>
|
||||
</yt-touch-feedback-shape>
|
||||
</button>
|
||||
</div>
|
||||
@ -1,5 +1,5 @@
|
||||
import { FastAverageColor } from 'fast-average-color';
|
||||
import Color, { ColorInstance } from 'color';
|
||||
import Color, { type ColorInstance } from 'color';
|
||||
|
||||
import style from './style.css?inline';
|
||||
|
||||
@ -31,7 +31,7 @@ export default createPlugin<
|
||||
alpha?: number,
|
||||
ratioMultiply?: number,
|
||||
): string;
|
||||
updateColor(): void;
|
||||
updateColor(alpha: number): void;
|
||||
},
|
||||
{
|
||||
enabled: boolean;
|
||||
@ -143,7 +143,16 @@ export default createPlugin<
|
||||
document.documentElement.style.setProperty(DARK_COLOR_KEY, '0, 0, 0');
|
||||
}
|
||||
|
||||
this.updateColor();
|
||||
let alpha: number | null = null;
|
||||
if (await window.mainConfig.plugins.isEnabled('transparent-player')) {
|
||||
const value: unknown = window.mainConfig.get(
|
||||
'plugins.transparent-player.opacity',
|
||||
);
|
||||
if (typeof value === 'number' && value >= 0 && value <= 1) {
|
||||
alpha = value;
|
||||
}
|
||||
}
|
||||
this.updateColor(alpha ?? 1);
|
||||
});
|
||||
},
|
||||
onConfigChange(config) {
|
||||
@ -163,7 +172,7 @@ export default createPlugin<
|
||||
}
|
||||
return `color-mix(in srgb, ${color} ${originalRatio}, ${keyColor} ${colorRatio})`;
|
||||
},
|
||||
updateColor() {
|
||||
updateColor(alpha: number) {
|
||||
const variableMap = {
|
||||
'--ytmusic-color-black1': '#212121',
|
||||
'--ytmusic-color-black2': '#181818',
|
||||
@ -202,19 +211,20 @@ export default createPlugin<
|
||||
Object.entries(variableMap).map(([variable, color]) => {
|
||||
document.documentElement.style.setProperty(
|
||||
variable,
|
||||
this.getMixedColor(color, COLOR_KEY),
|
||||
this.getMixedColor(color, COLOR_KEY, alpha),
|
||||
'important',
|
||||
);
|
||||
});
|
||||
|
||||
document.body.style.setProperty(
|
||||
'background',
|
||||
this.getMixedColor('#030303', COLOR_KEY),
|
||||
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
|
||||
'important',
|
||||
);
|
||||
document.documentElement.style.setProperty(
|
||||
'--ytmusic-background',
|
||||
this.getMixedColor('#030303', DARK_COLOR_KEY),
|
||||
// #030303
|
||||
this.getMixedColor('rgba(3, 3, 3)', DARK_COLOR_KEY, alpha),
|
||||
'important',
|
||||
);
|
||||
},
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user