Compare commits
260 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
3c4d84db5c | ||
|
dad968ee0f | ||
|
8eeb200558 | ||
|
0b3eb67a52 | ||
|
0c543b6516 | ||
|
612c98c246 | ||
|
8da9db2c83 | ||
|
2a827bd0a4 | ||
|
ff95d1f713 | ||
|
ad83797451 | ||
|
926018310e | ||
|
44694c6c5a | ||
|
527b473835 | ||
|
85337018b1 | ||
|
90c4365422 | ||
|
995c855ac2 | ||
|
0e3f82df30 | ||
|
76d906c95a | ||
|
391554538a | ||
|
1ec51699d1 | ||
|
ed451763ed | ||
|
e46ca23516 | ||
|
8a9def00de | ||
|
cf8018c9e9 | ||
|
374fd57dbc | ||
|
5275c56725 | ||
|
9044b4407f | ||
|
92afd66166 | ||
|
c8fa561c7f | ||
|
e78d7a36f5 | ||
|
b6c894a87a | ||
|
4bdb366139 | ||
|
2f92bc4ee6 | ||
|
2722a7db96 | ||
|
9d4be2cb55 | ||
|
fed9a0c2dd | ||
|
892292088d | ||
|
bd9db1dc80 | ||
|
c0edae8a36 | ||
|
cab9609132 | ||
|
d014bcee55 | ||
|
53de238bd3 | ||
|
ae4adddee6 | ||
|
38d32b294e | ||
|
0077a5ace7 | ||
|
377f6740b5 | ||
|
b8fec30d29 | ||
|
01687da4df | ||
|
f046728434 | ||
|
17d7f292b5 | ||
|
855e594c09 | ||
|
af2e6b793d | ||
|
f0df8c3efb | ||
|
83af8891f7 | ||
|
eab7b09292 | ||
|
84bddd2e4d | ||
|
34168a7037 | ||
|
a392f943f8 | ||
|
05a714d50f | ||
|
7a2f417cdd | ||
|
20cec61eac | ||
|
5355791486 | ||
|
caf5faeb49 | ||
|
232fb7e895 | ||
|
f20fe984d3 | ||
|
35c6d25268 | ||
|
0ae96309c7 | ||
|
1e0b86badf | ||
|
6a905bf517 | ||
|
a5694fa430 | ||
|
d006ed9a49 | ||
|
b06eedb041 | ||
|
2b2a4a2698 | ||
|
4ee32a9dd9 | ||
|
737a0b034d | ||
|
5150e6c7ff | ||
|
469e118681 | ||
|
70eb8f381c | ||
|
43c912dd33 | ||
|
0cf04f803d | ||
|
8a17c3d38e | ||
|
483cfe4e7f | ||
|
080a80245a | ||
|
33b77c475b | ||
|
e063ad5e02 | ||
|
9dc5d484be | ||
|
e203c1418a | ||
|
b816142ac5 | ||
|
367750898a | ||
|
4f880b2a79 | ||
|
f3104d2927 | ||
|
559279e733 | ||
|
7a84b0377f | ||
|
ea86c0c347 | ||
|
d2d6b46627 | ||
|
f259b8aac3 | ||
|
6d884f5d34 | ||
|
fe46806ce5 | ||
|
f4c9321926 | ||
|
2761f1ebfd | ||
|
72e6c1cf2c | ||
|
bf26e171d6 | ||
|
b73a24d357 | ||
|
4afd7dea13 | ||
|
dbcf060d4c | ||
|
6681a4471b | ||
|
274f9dc888 | ||
|
1d97dca90c | ||
|
7ed49b2e8f | ||
|
3bf85c27bd | ||
|
12fd425ca6 | ||
|
a8263ec27e | ||
|
759f9d5437 | ||
|
83cf6855d5 | ||
|
de907cb313 | ||
|
c00bff5c7c | ||
|
9aebffd9c9 | ||
|
e55afd52f3 | ||
|
20202d2216 | ||
|
5b7e0129d9 | ||
|
bfee71f446 | ||
|
6efce6bdf6 | ||
|
d82de1f7c8 | ||
|
9888798c28 | ||
|
4386772404 | ||
|
225c50f1b6 | ||
|
e859ceed44 | ||
|
e431626bfa | ||
|
c4f68615cd | ||
|
27e73a8ad4 | ||
|
0581d01cbf | ||
|
cc81eb3072 | ||
|
42d107dd9d | ||
|
a0b0753d45 | ||
4e93865aed | |||
e54077045d | |||
|
94c4e71756 | ||
|
8d0549d2e7 | ||
|
f4dd6f95a4 | ||
|
e19ac55847 | ||
|
dbb1c19796 | ||
|
ef6b0ad1dc | ||
|
c2e587bf90 | ||
|
abf10c645d | ||
|
6ba53ec29a | ||
|
21fd5304a1 | ||
|
b74d05afce | ||
|
39bcf8c270 | ||
|
557aa79860 | ||
b2ec99c4d1 | |||
a172322a54 | |||
a26097ffd4 | |||
c9d2d7134b | |||
|
2bee8c200e | ||
|
7cd8ce31b9 | ||
|
c08dea89d1 | ||
57d3f69efa | |||
|
2a0e46a97d | ||
|
227defd713 | ||
|
f1a8ff4bf8 | ||
|
162da3b22b | ||
|
35113ed522 | ||
|
94a003bce6 | ||
|
e0fec7ffa3 | ||
|
6f3c700dcb | ||
|
c3fec6c522 | ||
|
2ac0f2304f | ||
|
524e3f7358 | ||
|
135feab14c | ||
|
41949b0ab3 | ||
|
9f025bd12b | ||
|
810a12a097 | ||
|
bde2231a90 | ||
|
c1f9382f50 | ||
|
8ccca76573 | ||
|
fc76a84bc8 | ||
|
fe9c2591e1 | ||
|
28cb9243bc | ||
|
7d0563b236 | ||
|
85ddf7680f | ||
|
808191c42e | ||
|
ae90d3d873 | ||
|
cff06d7591 | ||
|
83853a3814 | ||
|
da2472ac5d | ||
|
0aac489417 | ||
|
c928a8093d | ||
|
11df7450b0 | ||
|
8fd409fa1f | ||
|
5d25977ba8 | ||
|
0e2e7abf53 | ||
|
c470c34ea8 | ||
|
d33faf370f | ||
|
64c0a6b7a8 | ||
|
7c5c5daf5c | ||
|
35c9c85b86 | ||
|
59958487d2 | ||
|
1fd3e37fa4 | ||
|
d5ac1d5db2 | ||
|
cfaf2130e4 | ||
|
57a747099e | ||
|
3cab6ab3c3 | ||
|
dd0b9f60c9 | ||
|
5754215725 | ||
|
7ffb904f9e | ||
|
90e1d3c369 | ||
|
27297227e6 | ||
|
9cb6147017 | ||
|
3d333dcb03 | ||
|
67af11fd85 | ||
|
ca180ab9ea | ||
|
e09c04b57b | ||
|
9409922efd | ||
|
425c7beeea | ||
|
fcee7001ee | ||
4a5d537679 | |||
a652be9a86 | |||
7159b76344 | |||
b74a4cd4c6 | |||
|
256f9f9df9 | ||
|
18e9bdbfc5 | ||
|
89bc201b73 | ||
|
de2e3e6aed | ||
|
27aff99969 | ||
|
f33bc583ea | ||
|
bada1d12cf | ||
|
cf3d9fdc21 | ||
|
8a973b1d89 | ||
|
078777f952 | ||
|
dc4ce9b91f | ||
|
56413183b6 | ||
|
f89759e9b9 | ||
|
9c03cef941 | ||
|
49fe07b208 | ||
|
5e0b434ea7 | ||
|
e24697f723 | ||
|
00700408fb | ||
|
2a3ae861cc | ||
|
2804b2addd | ||
|
dcfbf6b266 | ||
|
7f859e0bfd | ||
|
05741ed632 | ||
|
dc04390172 | ||
|
228ac6fd6c | ||
|
22cb2a259d | ||
|
fa8548d3c2 | ||
|
404d3b885f | ||
|
b560445659 | ||
|
e555354e17 | ||
|
95a75f81b1 | ||
|
818e159586 | ||
|
b129181b6c | ||
|
761e952ce2 | ||
|
a2a3066bc7 | ||
|
224d823eb6 | ||
|
c6f359d4ea | ||
|
b952d0a4d0 | ||
|
fb68efa522 | ||
|
949cc216c7 | ||
|
00066ba788 |
12
.github/logo-dark.svg
vendored
@@ -1,11 +1 @@
|
|||||||
<svg width="2147" height="1121" viewBox="0 0 2147 1121" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg" width="2147" height="1121" fill="none" viewBox="0 0 2147 1121"><path fill="#fff" d="M1663.06 591.678H1719.49C1745.2 591.678 1763.85 595.357 1775.42 602.716C1787.08 609.992 1792.91 621.609 1792.91 637.566C1792.91 648.398 1790.35 657.286 1785.22 664.231C1780.18 671.177 1773.44 675.352 1765.01 676.758V677.998C1776.5 680.561 1784.77 685.357 1789.81 692.385C1794.94 699.413 1797.5 708.756 1797.5 720.414C1797.5 736.951 1791.51 749.849 1779.52 759.109C1767.61 768.37 1751.4 773 1730.9 773H1663.06V591.678ZM1701.51 663.487H1723.83C1734.25 663.487 1741.77 661.875 1746.4 658.65C1751.12 655.426 1753.47 650.093 1753.47 642.651C1753.47 635.706 1750.91 630.745 1745.78 627.769C1740.74 624.709 1732.72 623.18 1721.72 623.18H1701.51V663.487ZM1701.51 693.997V741.25H1726.56C1737.14 741.25 1744.96 739.224 1750 735.173C1755.04 731.121 1757.56 724.92 1757.56 716.569C1757.56 701.521 1746.82 693.997 1725.32 693.997H1701.51Z"/><path fill="#fff" d="M1625.11 773H1520.68V591.678H1625.11V623.18H1559.13V662.991H1620.52V694.493H1559.13V741.25H1625.11V773Z"/><path fill="#fff" d="M1451.72 773H1407.94L1383.39 677.75C1382.48 674.36 1380.91 667.373 1378.67 656.79C1376.52 646.124 1375.28 638.972 1374.95 635.334C1374.46 639.799 1373.22 646.992 1371.23 656.914C1369.25 666.753 1367.72 673.781 1366.64 677.998L1342.21 773H1298.55L1252.29 591.678H1290.12L1313.31 690.648C1317.36 708.921 1320.3 724.755 1322.12 738.149C1322.61 733.437 1323.73 726.16 1325.47 716.321C1327.29 706.399 1328.98 698.71 1330.55 693.253L1356.97 591.678H1393.31L1419.72 693.253C1420.88 697.8 1422.33 704.746 1424.07 714.089C1425.8 723.432 1427.12 731.452 1428.03 738.149C1428.86 731.7 1430.18 723.68 1432 714.089C1433.82 704.415 1435.48 696.602 1436.96 690.648L1460.03 591.678H1497.86L1451.72 773Z"/><path fill="#fff" d="M1178 720.414V689.408H1244.6V720.414H1178Z"/><path fill="#fff" d="M1155.31 773H1050.88V591.678H1155.31V623.18H1089.33V662.991H1150.72V694.493H1089.33V741.25H1155.31V773Z"/><path fill="#fff" d="M966.791 773V591.678H1005.24V773H966.791Z"/><path fill="#fff" d="M905.027 591.678H943.847L882.207 773H840.287L778.771 591.678H817.591L851.697 699.578C853.599 705.945 855.542 713.386 857.526 721.902C859.593 730.336 860.875 736.206 861.371 739.514C862.281 731.907 865.381 718.595 870.673 699.578L905.027 591.678Z"/><path fill="#fff" d="M764.012 682.091C764.012 712.104 756.57 735.173 741.688 751.296C726.805 767.419 705.473 775.48 677.691 775.48C649.91 775.48 628.578 767.419 613.695 751.296C598.812 735.173 591.371 712.022 591.371 681.843C591.371 651.664 598.812 628.637 613.695 612.762C628.661 596.804 650.076 588.825 677.939 588.825C705.803 588.825 727.094 596.845 741.812 612.886C756.612 628.926 764.012 651.994 764.012 682.091ZM631.679 682.091C631.679 702.348 635.523 717.603 643.213 727.855C650.902 738.108 662.395 743.234 677.691 743.234C708.367 743.234 723.704 722.853 723.704 682.091C723.704 641.246 708.449 620.823 677.939 620.823C662.643 620.823 651.109 625.991 643.337 636.326C635.565 646.579 631.679 661.834 631.679 682.091Z"/><path fill="#fff" d="M436.591 773L392.935 630.745H391.818C393.389 659.684 394.175 678.99 394.175 688.664V773H359.82V591.678H412.158L455.07 730.336H455.814L501.331 591.678H553.669V773H517.826V687.176C517.826 683.124 517.868 678.453 517.95 673.161C518.116 667.869 518.694 653.813 519.687 630.993H518.57L471.813 773H436.591Z"/></svg>
|
||||||
<path d="M1663.06 591.678H1719.49C1745.2 591.678 1763.85 595.357 1775.42 602.716C1787.08 609.992 1792.91 621.609 1792.91 637.566C1792.91 648.398 1790.35 657.286 1785.22 664.231C1780.18 671.177 1773.44 675.352 1765.01 676.758V677.998C1776.5 680.561 1784.77 685.357 1789.81 692.385C1794.94 699.413 1797.5 708.756 1797.5 720.414C1797.5 736.951 1791.51 749.849 1779.52 759.109C1767.61 768.37 1751.4 773 1730.9 773H1663.06V591.678ZM1701.51 663.487H1723.83C1734.25 663.487 1741.77 661.875 1746.4 658.65C1751.12 655.426 1753.47 650.093 1753.47 642.651C1753.47 635.706 1750.91 630.745 1745.78 627.769C1740.74 624.709 1732.72 623.18 1721.72 623.18H1701.51V663.487ZM1701.51 693.997V741.25H1726.56C1737.14 741.25 1744.96 739.224 1750 735.173C1755.04 731.121 1757.56 724.92 1757.56 716.569C1757.56 701.521 1746.82 693.997 1725.32 693.997H1701.51Z" fill="white"/>
|
|
||||||
<path d="M1625.11 773H1520.68V591.678H1625.11V623.18H1559.13V662.991H1620.52V694.493H1559.13V741.25H1625.11V773Z" fill="white"/>
|
|
||||||
<path d="M1451.72 773H1407.94L1383.39 677.75C1382.48 674.36 1380.91 667.373 1378.67 656.79C1376.52 646.124 1375.28 638.972 1374.95 635.334C1374.46 639.799 1373.22 646.992 1371.23 656.914C1369.25 666.753 1367.72 673.781 1366.64 677.998L1342.21 773H1298.55L1252.29 591.678H1290.12L1313.31 690.648C1317.36 708.921 1320.3 724.755 1322.12 738.149C1322.61 733.437 1323.73 726.16 1325.47 716.321C1327.29 706.399 1328.98 698.71 1330.55 693.253L1356.97 591.678H1393.31L1419.72 693.253C1420.88 697.8 1422.33 704.746 1424.07 714.089C1425.8 723.432 1427.12 731.452 1428.03 738.149C1428.86 731.7 1430.18 723.68 1432 714.089C1433.82 704.415 1435.48 696.602 1436.96 690.648L1460.03 591.678H1497.86L1451.72 773Z" fill="white"/>
|
|
||||||
<path d="M1178 720.414V689.408H1244.6V720.414H1178Z" fill="white"/>
|
|
||||||
<path d="M1155.31 773H1050.88V591.678H1155.31V623.18H1089.33V662.991H1150.72V694.493H1089.33V741.25H1155.31V773Z" fill="white"/>
|
|
||||||
<path d="M966.791 773V591.678H1005.24V773H966.791Z" fill="white"/>
|
|
||||||
<path d="M905.027 591.678H943.847L882.207 773H840.287L778.771 591.678H817.591L851.697 699.578C853.599 705.945 855.542 713.386 857.526 721.902C859.593 730.336 860.875 736.206 861.371 739.514C862.281 731.907 865.381 718.595 870.673 699.578L905.027 591.678Z" fill="white"/>
|
|
||||||
<path d="M764.012 682.091C764.012 712.104 756.57 735.173 741.688 751.296C726.805 767.419 705.473 775.48 677.691 775.48C649.91 775.48 628.578 767.419 613.695 751.296C598.812 735.173 591.371 712.022 591.371 681.843C591.371 651.664 598.812 628.637 613.695 612.762C628.661 596.804 650.076 588.825 677.939 588.825C705.803 588.825 727.094 596.845 741.812 612.886C756.612 628.926 764.012 651.994 764.012 682.091ZM631.679 682.091C631.679 702.348 635.523 717.603 643.213 727.855C650.902 738.108 662.395 743.234 677.691 743.234C708.367 743.234 723.704 722.853 723.704 682.091C723.704 641.246 708.449 620.823 677.939 620.823C662.643 620.823 651.109 625.991 643.337 636.326C635.565 646.579 631.679 661.834 631.679 682.091Z" fill="white"/>
|
|
||||||
<path d="M436.591 773L392.935 630.745H391.818C393.389 659.684 394.175 678.99 394.175 688.664V773H359.82V591.678H412.158L455.07 730.336H455.814L501.331 591.678H553.669V773H517.826V687.176C517.826 683.124 517.868 678.453 517.95 673.161C518.116 667.869 518.694 653.813 519.687 630.993H518.57L471.813 773H436.591Z" fill="white"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
12
.github/logo-light.svg
vendored
@@ -1,11 +1 @@
|
|||||||
<svg width="2147" height="1121" viewBox="0 0 2147 1121" fill="none" xmlns="http://www.w3.org/2000/svg">
|
<svg xmlns="http://www.w3.org/2000/svg" width="2147" height="1121" fill="none" viewBox="0 0 2147 1121"><path fill="#000" d="M1663.06 599.678H1719.49C1745.2 599.678 1763.85 603.357 1775.42 610.716C1787.08 617.992 1792.91 629.609 1792.91 645.566C1792.91 656.398 1790.35 665.286 1785.22 672.231C1780.18 679.177 1773.44 683.352 1765.01 684.758V685.998C1776.5 688.561 1784.77 693.357 1789.81 700.385C1794.94 707.413 1797.5 716.756 1797.5 728.414C1797.5 744.951 1791.51 757.849 1779.52 767.109C1767.61 776.37 1751.4 781 1730.9 781H1663.06V599.678ZM1701.51 671.487H1723.83C1734.25 671.487 1741.77 669.875 1746.4 666.65C1751.12 663.426 1753.47 658.093 1753.47 650.651C1753.47 643.706 1750.91 638.745 1745.78 635.769C1740.74 632.709 1732.72 631.18 1721.72 631.18H1701.51V671.487ZM1701.51 701.997V749.25H1726.56C1737.14 749.25 1744.96 747.224 1750 743.173C1755.04 739.121 1757.56 732.92 1757.56 724.569C1757.56 709.521 1746.82 701.997 1725.32 701.997H1701.51Z"/><path fill="#000" d="M1625.11 781H1520.68V599.678H1625.11V631.18H1559.13V670.991H1620.52V702.493H1559.13V749.25H1625.11V781Z"/><path fill="#000" d="M1451.72 781H1407.94L1383.39 685.75C1382.48 682.36 1380.91 675.373 1378.67 664.79C1376.52 654.124 1375.28 646.972 1374.95 643.334C1374.46 647.799 1373.22 654.992 1371.23 664.914C1369.25 674.753 1367.72 681.781 1366.64 685.998L1342.21 781H1298.55L1252.29 599.678H1290.12L1313.31 698.648C1317.36 716.921 1320.3 732.755 1322.12 746.149C1322.61 741.437 1323.73 734.16 1325.47 724.321C1327.29 714.399 1328.98 706.71 1330.55 701.253L1356.97 599.678H1393.31L1419.72 701.253C1420.88 705.8 1422.33 712.746 1424.07 722.089C1425.8 731.432 1427.12 739.452 1428.03 746.149C1428.86 739.7 1430.18 731.68 1432 722.089C1433.82 712.415 1435.48 704.602 1436.96 698.648L1460.03 599.678H1497.86L1451.72 781Z"/><path fill="#000" d="M1178 728.414V697.408H1244.6V728.414H1178Z"/><path fill="#000" d="M1155.31 781H1050.88V599.678H1155.31V631.18H1089.33V670.991H1150.72V702.493H1089.33V749.25H1155.31V781Z"/><path fill="#000" d="M966.791 781V599.678H1005.24V781H966.791Z"/><path fill="#000" d="M905.027 599.678H943.847L882.207 781H840.287L778.771 599.678H817.591L851.697 707.578C853.599 713.945 855.542 721.386 857.526 729.902C859.593 738.336 860.875 744.206 861.371 747.514C862.281 739.907 865.381 726.595 870.673 707.578L905.027 599.678Z"/><path fill="#000" d="M764.012 690.091C764.012 720.104 756.57 743.173 741.688 759.296C726.805 775.419 705.473 783.48 677.691 783.48C649.91 783.48 628.578 775.419 613.695 759.296C598.812 743.173 591.371 720.022 591.371 689.843C591.371 659.664 598.812 636.637 613.695 620.762C628.661 604.804 650.076 596.825 677.939 596.825C705.803 596.825 727.094 604.845 741.812 620.886C756.612 636.926 764.012 659.994 764.012 690.091ZM631.679 690.091C631.679 710.348 635.523 725.603 643.213 735.855C650.902 746.108 662.395 751.234 677.691 751.234C708.367 751.234 723.704 730.853 723.704 690.091C723.704 649.246 708.449 628.823 677.939 628.823C662.643 628.823 651.109 633.991 643.337 644.326C635.565 654.579 631.679 669.834 631.679 690.091Z"/><path fill="#000" d="M436.591 781L392.935 638.745H391.818C393.389 667.684 394.175 686.99 394.175 696.664V781H359.82V599.678H412.158L455.07 738.336H455.814L501.331 599.678H553.669V781H517.826V695.176C517.826 691.124 517.868 686.453 517.95 681.161C518.116 675.869 518.694 661.813 519.687 638.993H518.57L471.813 781H436.591Z"/></svg>
|
||||||
<path d="M1663.06 599.678H1719.49C1745.2 599.678 1763.85 603.357 1775.42 610.716C1787.08 617.992 1792.91 629.609 1792.91 645.566C1792.91 656.398 1790.35 665.286 1785.22 672.231C1780.18 679.177 1773.44 683.352 1765.01 684.758V685.998C1776.5 688.561 1784.77 693.357 1789.81 700.385C1794.94 707.413 1797.5 716.756 1797.5 728.414C1797.5 744.951 1791.51 757.849 1779.52 767.109C1767.61 776.37 1751.4 781 1730.9 781H1663.06V599.678ZM1701.51 671.487H1723.83C1734.25 671.487 1741.77 669.875 1746.4 666.65C1751.12 663.426 1753.47 658.093 1753.47 650.651C1753.47 643.706 1750.91 638.745 1745.78 635.769C1740.74 632.709 1732.72 631.18 1721.72 631.18H1701.51V671.487ZM1701.51 701.997V749.25H1726.56C1737.14 749.25 1744.96 747.224 1750 743.173C1755.04 739.121 1757.56 732.92 1757.56 724.569C1757.56 709.521 1746.82 701.997 1725.32 701.997H1701.51Z" fill="black"/>
|
|
||||||
<path d="M1625.11 781H1520.68V599.678H1625.11V631.18H1559.13V670.991H1620.52V702.493H1559.13V749.25H1625.11V781Z" fill="black"/>
|
|
||||||
<path d="M1451.72 781H1407.94L1383.39 685.75C1382.48 682.36 1380.91 675.373 1378.67 664.79C1376.52 654.124 1375.28 646.972 1374.95 643.334C1374.46 647.799 1373.22 654.992 1371.23 664.914C1369.25 674.753 1367.72 681.781 1366.64 685.998L1342.21 781H1298.55L1252.29 599.678H1290.12L1313.31 698.648C1317.36 716.921 1320.3 732.755 1322.12 746.149C1322.61 741.437 1323.73 734.16 1325.47 724.321C1327.29 714.399 1328.98 706.71 1330.55 701.253L1356.97 599.678H1393.31L1419.72 701.253C1420.88 705.8 1422.33 712.746 1424.07 722.089C1425.8 731.432 1427.12 739.452 1428.03 746.149C1428.86 739.7 1430.18 731.68 1432 722.089C1433.82 712.415 1435.48 704.602 1436.96 698.648L1460.03 599.678H1497.86L1451.72 781Z" fill="black"/>
|
|
||||||
<path d="M1178 728.414V697.408H1244.6V728.414H1178Z" fill="black"/>
|
|
||||||
<path d="M1155.31 781H1050.88V599.678H1155.31V631.18H1089.33V670.991H1150.72V702.493H1089.33V749.25H1155.31V781Z" fill="black"/>
|
|
||||||
<path d="M966.791 781V599.678H1005.24V781H966.791Z" fill="black"/>
|
|
||||||
<path d="M905.027 599.678H943.847L882.207 781H840.287L778.771 599.678H817.591L851.697 707.578C853.599 713.945 855.542 721.386 857.526 729.902C859.593 738.336 860.875 744.206 861.371 747.514C862.281 739.907 865.381 726.595 870.673 707.578L905.027 599.678Z" fill="black"/>
|
|
||||||
<path d="M764.012 690.091C764.012 720.104 756.57 743.173 741.688 759.296C726.805 775.419 705.473 783.48 677.691 783.48C649.91 783.48 628.578 775.419 613.695 759.296C598.812 743.173 591.371 720.022 591.371 689.843C591.371 659.664 598.812 636.637 613.695 620.762C628.661 604.804 650.076 596.825 677.939 596.825C705.803 596.825 727.094 604.845 741.812 620.886C756.612 636.926 764.012 659.994 764.012 690.091ZM631.679 690.091C631.679 710.348 635.523 725.603 643.213 735.855C650.902 746.108 662.395 751.234 677.691 751.234C708.367 751.234 723.704 730.853 723.704 690.091C723.704 649.246 708.449 628.823 677.939 628.823C662.643 628.823 651.109 633.991 643.337 644.326C635.565 654.579 631.679 669.834 631.679 690.091Z" fill="black"/>
|
|
||||||
<path d="M436.591 781L392.935 638.745H391.818C393.389 667.684 394.175 686.99 394.175 696.664V781H359.82V599.678H412.158L455.07 738.336H455.814L501.331 599.678H553.669V781H517.826V695.176C517.826 691.124 517.868 686.453 517.95 681.161C518.116 675.869 518.694 661.813 519.687 638.993H518.57L471.813 781H436.591Z" fill="black"/>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
26
.github/workflows/sync.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
name: Sync fork
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
- cron: "0 0 * * *"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
sync:
|
||||||
|
name: Sync fork
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
if: ${{ github.event.repository.fork }}
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Sync fork
|
||||||
|
run: gh repo sync ${{ github.repository }}
|
||||||
|
env:
|
||||||
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
|
||||||
|
- uses: gautamkrishnar/keepalive-workflow@v1
|
@@ -23,6 +23,7 @@ ARG ONBOARDING_PROXY_INSTALL_LINK
|
|||||||
ARG DISALLOWED_IDS
|
ARG DISALLOWED_IDS
|
||||||
ARG CDN_REPLACEMENTS
|
ARG CDN_REPLACEMENTS
|
||||||
ARG TURNSTILE_KEY
|
ARG TURNSTILE_KEY
|
||||||
|
ARG ALLOW_AUTOPLAY="false"
|
||||||
|
|
||||||
ENV VITE_PWA_ENABLED=${PWA_ENABLED}
|
ENV VITE_PWA_ENABLED=${PWA_ENABLED}
|
||||||
ENV VITE_GA_ID=${GA_ID}
|
ENV VITE_GA_ID=${GA_ID}
|
||||||
@@ -39,6 +40,7 @@ ENV VITE_ONBOARDING_PROXY_INSTALL_LINK=${ONBOARDING_PROXY_INSTALL_LINK}
|
|||||||
ENV VITE_DISALLOWED_IDS=${DISALLOWED_IDS}
|
ENV VITE_DISALLOWED_IDS=${DISALLOWED_IDS}
|
||||||
ENV VITE_CDN_REPLACEMENTS=${CDN_REPLACEMENTS}
|
ENV VITE_CDN_REPLACEMENTS=${CDN_REPLACEMENTS}
|
||||||
ENV VITE_TURNSTILE_KEY=${TURNSTILE_KEY}
|
ENV VITE_TURNSTILE_KEY=${TURNSTILE_KEY}
|
||||||
|
ENV VITE_ALLOW_AUTOPLAY=${ALLOW_AUTOPLAY}
|
||||||
|
|
||||||
COPY . ./
|
COPY . ./
|
||||||
RUN pnpm run build
|
RUN pnpm run build
|
||||||
|
10
package.json
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "movie-web",
|
"name": "movie-web",
|
||||||
"version": "4.5.1",
|
"version": "4.7.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"homepage": "https://github.com/movie-web/movie-web",
|
"homepage": "https://github.com/movie-web/movie-web",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"@formkit/auto-animate": "^0.8.1",
|
"@formkit/auto-animate": "^0.8.1",
|
||||||
"@headlessui/react": "^1.7.17",
|
"@headlessui/react": "^1.7.17",
|
||||||
"@ladjs/country-language": "^1.0.3",
|
"@ladjs/country-language": "^1.0.3",
|
||||||
"@movie-web/providers": "^2.2.2",
|
"@movie-web/providers": "^2.3.0",
|
||||||
"@noble/hashes": "^1.3.3",
|
"@noble/hashes": "^1.3.3",
|
||||||
"@plasmohq/messaging": "^0.6.1",
|
"@plasmohq/messaging": "^0.6.1",
|
||||||
"@react-spring/web": "^9.7.3",
|
"@react-spring/web": "^9.7.3",
|
||||||
@@ -44,11 +44,12 @@
|
|||||||
"focus-trap-react": "^10.2.3",
|
"focus-trap-react": "^10.2.3",
|
||||||
"fscreen": "^1.2.0",
|
"fscreen": "^1.2.0",
|
||||||
"fuse.js": "^7.0.0",
|
"fuse.js": "^7.0.0",
|
||||||
"hls.js": "^1.4.14",
|
"hls.js": "^1.5.7",
|
||||||
"i18next": "^23.7.11",
|
"i18next": "^23.7.11",
|
||||||
"immer": "^10.0.3",
|
"immer": "^10.0.3",
|
||||||
"jwt-decode": "^4.0.0",
|
"jwt-decode": "^4.0.0",
|
||||||
"lodash.isequal": "^4.5.0",
|
"lodash.isequal": "^4.5.0",
|
||||||
|
"lodash.merge": "^4.6.2",
|
||||||
"million": "^2.6.4",
|
"million": "^2.6.4",
|
||||||
"nanoid": "^5.0.4",
|
"nanoid": "^5.0.4",
|
||||||
"node-forge": "^1.3.1",
|
"node-forge": "^1.3.1",
|
||||||
@@ -79,6 +80,7 @@
|
|||||||
"@types/dompurify": "^3.0.5",
|
"@types/dompurify": "^3.0.5",
|
||||||
"@types/fscreen": "^1.0.4",
|
"@types/fscreen": "^1.0.4",
|
||||||
"@types/lodash.isequal": "^4.5.8",
|
"@types/lodash.isequal": "^4.5.8",
|
||||||
|
"@types/lodash.merge": "^4.6.9",
|
||||||
"@types/lodash.throttle": "^4.1.9",
|
"@types/lodash.throttle": "^4.1.9",
|
||||||
"@types/node": "^20.10.5",
|
"@types/node": "^20.10.5",
|
||||||
"@types/pako": "^2.0.3",
|
"@types/pako": "^2.0.3",
|
||||||
@@ -118,7 +120,7 @@
|
|||||||
"tailwindcss-themer": "^4.0.0",
|
"tailwindcss-themer": "^4.0.0",
|
||||||
"type-fest": "^4.8.3",
|
"type-fest": "^4.8.3",
|
||||||
"typescript": "^5.3.3",
|
"typescript": "^5.3.3",
|
||||||
"vite": "^5.0.12",
|
"vite": "^5.0.13",
|
||||||
"vite-plugin-checker": "^0.6.2",
|
"vite-plugin-checker": "^0.6.2",
|
||||||
"vite-plugin-package-version": "^1.1.0",
|
"vite-plugin-package-version": "^1.1.0",
|
||||||
"vite-plugin-pwa": "^0.17.4",
|
"vite-plugin-pwa": "^0.17.4",
|
||||||
|
1877
pnpm-lock.yaml
generated
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -4,7 +4,7 @@ window.__CONFIG__ = {
|
|||||||
VITE_CORS_PROXY_URL: "",
|
VITE_CORS_PROXY_URL: "",
|
||||||
|
|
||||||
// The READ API key to access TMDB
|
// The READ API key to access TMDB
|
||||||
VITE_TMDB_READ_API_KEY: "CHANGEME",
|
VITE_TMDB_READ_API_KEY: "",
|
||||||
|
|
||||||
// The DMCA email displayed in the footer, null to hide the DMCA link
|
// The DMCA email displayed in the footer, null to hide the DMCA link
|
||||||
VITE_DMCA_EMAIL: null,
|
VITE_DMCA_EMAIL: null,
|
||||||
@@ -16,5 +16,5 @@ window.__CONFIG__ = {
|
|||||||
VITE_BACKEND_URL: null,
|
VITE_BACKEND_URL: null,
|
||||||
|
|
||||||
// A comma separated list of disallowed IDs in the case of a DMCA claim - in the format "series-<id>" and "movie-<id>"
|
// A comma separated list of disallowed IDs in the case of a DMCA claim - in the format "series-<id>" and "movie-<id>"
|
||||||
VITE_DISALLOWED_IDS: ""
|
VITE_DISALLOWED_IDS: "",
|
||||||
};
|
};
|
||||||
|
@@ -1 +1 @@
|
|||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M27.865 16.751c0-6.242-4.411-9.988-9.927-9.988s-9.835 3.746-9.835 9.988c0 3.48-.103 6.485 3.897 7.89v2.722c0 1.034.966 1.872 2 1.872 1.035 0 2-.838 2-1.872v-1.97 1.97c0 1.034.965 1.872 2 1.872 1.036 0 2-.838 2-1.872v-1.97 1.97c0 1.034.966 1.872 2 1.872s2-.838 2-1.872v-2.722c4-1.405 3.865-4.41 3.865-7.89z"/><circle fill="#292F33" cx="13.629" cy="15.503" r="3.121"/><path fill="#292F33" d="M25.488 15.503c0 1.724 0 3.121-3.121 3.121-3.12 0-3.12-1.397-3.12-3.121s1.396-3.121 3.12-3.121c1.725 0 3.121 1.397 3.121 3.121zm-6.301 5.656c-.157-.382-.626-.662-1.189-.662-.561 0-1.031.28-1.188.662-.394.11-.685.469-.685.898 0 .517.419.936.937.936.409 0 .753-.263.88-.628.019 0 .037.004.056.004.019 0 .037-.004.057-.004.128.365.472.628.88.628.517 0 .936-.419.936-.936 0-.429-.291-.786-.684-.898z"/><path d="M11 27c0-.367.075-.713.195-1.038-.984-.447-1.831-1.082-2.503-1.97-1.107.969-2.163 1.876-3.127 2.695C4.985 26.26 4.275 26 3.5 26 1.567 26 0 27.566 0 29.5c0 1.778 1.33 3.229 3.046 3.454C3.271 34.671 4.722 36 6.5 36c1.933 0 3.5-1.566 3.5-3.5 0-.775-.26-1.485-.686-2.065.6-.706 1.246-1.46 1.931-2.25C11.088 27.821 11 27.421 11 27zm16.872-15.482c.884-.769 1.729-1.495 2.515-2.163.569.403 1.262.645 2.013.645 1.934 0 3.5-1.567 3.5-3.5 0-1.743-1.277-3.177-2.945-3.444C32.735 1.335 31.281 0 29.5 0 27.566 0 26 1.567 26 3.5c0 .775.26 1.485.687 2.065-.594.7-1.233 1.445-1.911 2.227 1.3.871 2.361 2.095 3.096 3.726zM3.5 10c.775 0 1.485-.26 2.065-.687.799.679 1.661 1.419 2.564 2.204.735-1.631 1.795-2.855 3.096-3.726-.679-.781-1.317-1.527-1.912-2.226.427-.58.687-1.29.687-2.065C10 1.567 8.433 0 6.5 0 4.722 0 3.271 1.33 3.046 3.046 1.33 3.271 0 4.722 0 6.5 0 8.433 1.567 10 3.5 10zm28.9 16c-.752 0-1.444.242-2.014.645-.952-.809-1.99-1.701-3.079-2.653-.672.889-1.519 1.523-2.503 1.971.121.324.196.67.196 1.037 0 .421-.088.821-.245 1.185.685.79 1.331 1.544 1.931 2.25-.426.58-.686 1.29-.686 2.065 0 1.934 1.566 3.5 3.5 3.5 1.781 0 3.235-1.334 3.455-3.056 1.668-.267 2.945-1.701 2.945-3.444 0-1.934-1.566-3.5-3.5-3.5z" fill="#AAB8C2"/></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M27.865 16.751c0-6.242-4.411-9.988-9.927-9.988s-9.835 3.746-9.835 9.988c0 3.48-.103 6.485 3.897 7.89v2.722c0 1.034.966 1.872 2 1.872 1.035 0 2-.838 2-1.872v-1.97 1.97c0 1.034.965 1.872 2 1.872 1.036 0 2-.838 2-1.872v-1.97 1.97c0 1.034.966 1.872 2 1.872s2-.838 2-1.872v-2.722c4-1.405 3.865-4.41 3.865-7.89z"/><circle cx="13.629" cy="15.503" r="3.121" fill="#292F33"/><path fill="#292F33" d="M25.488 15.503c0 1.724 0 3.121-3.121 3.121-3.12 0-3.12-1.397-3.12-3.121s1.396-3.121 3.12-3.121c1.725 0 3.121 1.397 3.121 3.121zm-6.301 5.656c-.157-.382-.626-.662-1.189-.662-.561 0-1.031.28-1.188.662-.394.11-.685.469-.685.898 0 .517.419.936.937.936.409 0 .753-.263.88-.628.019 0 .037.004.056.004.019 0 .037-.004.057-.004.128.365.472.628.88.628.517 0 .936-.419.936-.936 0-.429-.291-.786-.684-.898z"/><path fill="#AAB8C2" d="M11 27c0-.367.075-.713.195-1.038-.984-.447-1.831-1.082-2.503-1.97-1.107.969-2.163 1.876-3.127 2.695C4.985 26.26 4.275 26 3.5 26 1.567 26 0 27.566 0 29.5c0 1.778 1.33 3.229 3.046 3.454C3.271 34.671 4.722 36 6.5 36c1.933 0 3.5-1.566 3.5-3.5 0-.775-.26-1.485-.686-2.065.6-.706 1.246-1.46 1.931-2.25C11.088 27.821 11 27.421 11 27zm16.872-15.482c.884-.769 1.729-1.495 2.515-2.163.569.403 1.262.645 2.013.645 1.934 0 3.5-1.567 3.5-3.5 0-1.743-1.277-3.177-2.945-3.444C32.735 1.335 31.281 0 29.5 0 27.566 0 26 1.567 26 3.5c0 .775.26 1.485.687 2.065-.594.7-1.233 1.445-1.911 2.227 1.3.871 2.361 2.095 3.096 3.726zM3.5 10c.775 0 1.485-.26 2.065-.687.799.679 1.661 1.419 2.564 2.204.735-1.631 1.795-2.855 3.096-3.726-.679-.781-1.317-1.527-1.912-2.226.427-.58.687-1.29.687-2.065C10 1.567 8.433 0 6.5 0 4.722 0 3.271 1.33 3.046 3.046 1.33 3.271 0 4.722 0 6.5 0 8.433 1.567 10 3.5 10zm28.9 16c-.752 0-1.444.242-2.014.645-.952-.809-1.99-1.701-3.079-2.653-.672.889-1.519 1.523-2.503 1.971.121.324.196.67.196 1.037 0 .421-.088.821-.245 1.185.685.79 1.331 1.544 1.931 2.25-.426.58-.686 1.29-.686 2.065 0 1.934 1.566 3.5 3.5 3.5 1.781 0 3.235-1.334 3.455-3.056 1.668-.267 2.945-1.701 2.945-3.444 0-1.934-1.566-3.5-3.5-3.5z"/></svg>
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
@@ -1,76 +1 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg" id="svg838" width="600" height="400" version="1.1"><rect style="fill:#c8e1ed;fill-opacity:1;stroke-width:5.66929;stroke-linecap:round;stroke-linejoin:bevel;stop-color:#000" id="rect4684" width="600" height="400" x="0" y="0"/><g id="g1364" fill="#009" stroke="none" transform="matrix(0.33755415,0,0,-0.33755415,188.33065,342.42618)"><g id="g1755" transform="matrix(1.0249506,0,0,1.0249506,-8.2541353,-9.3390257)"><path id="path1352" fill="#009" stroke="none" d="m 302,838 c -14,-14 -16,-126 -3,-147 5,-8 16,-11 25,-8 12,5 16,21 16,71 0,89 -10,112 -38,84 z" style="fill:#11119a;fill-opacity:1"/><path id="path1354" fill="#009" stroke="none" d="m 521,775 c -27,-57 -32,-108 -10,-113 18,-3 84,122 75,144 -11,30 -44,15 -65,-31 z" style="fill:#11119a;fill-opacity:1"/><path id="path1356" fill="#009" stroke="none" d="M 34,797 C 26,775 93,639 110,643 148,650 99,810 59,810 48,810 37,804 34,797 Z" style="fill:#11119a;fill-opacity:1"/><path id="path1358" fill="#009" stroke="none" d="M 254,590 C 204,583 126,538 79,490 -19,390 14,144 136,67 199,27 243,17 336,23 c 125,7 212,62 275,172 53,92 32,220 -51,317 -62,71 -170,99 -306,78 z" style="fill:#11119a;fill-opacity:1"/><path id="path1360" fill="#ffff63" stroke="none" d="M 443,539 C 490,526 555,469 581,419 605,371 607,272 584,229 562,186 502,121 467,104 330,33 190,49 116,145 77,197 65,237 65,320 c 1,77 19,113 82,161 80,63 198,86 296,58 z" style="fill:#ff7;fill-opacity:1"/><path id="path1362" fill="#009" stroke="none" d="m 462,367 c -5,-7 -15,-28 -21,-48 -21,-67 -100,-120 -144,-98 -30,15 -65,56 -88,102 -21,40 -51,48 -57,14 -5,-26 53,-111 96,-141 89,-62 204,-7 252,119 15,40 -15,81 -38,52 z" style="fill:#11119a;fill-opacity:1"/></g></g></svg>
|
||||||
<svg
|
|
||||||
width="600"
|
|
||||||
height="400"
|
|
||||||
version="1.1"
|
|
||||||
id="svg838"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs842" />
|
|
||||||
<rect
|
|
||||||
style="fill:#c8e1ed;fill-opacity:1.0;stroke-width:5.66929;stroke-linecap:round;stroke-linejoin:bevel;stop-color:#000000"
|
|
||||||
id="rect4684"
|
|
||||||
width="600"
|
|
||||||
height="400"
|
|
||||||
x="0"
|
|
||||||
y="0" />
|
|
||||||
<g
|
|
||||||
transform="matrix(0.33755415,0,0,-0.33755415,188.33065,342.42618)"
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
id="g1364">
|
|
||||||
<g
|
|
||||||
id="g1755"
|
|
||||||
transform="matrix(1.0249506,0,0,1.0249506,-8.2541353,-9.3390257)">
|
|
||||||
<path
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
d="m 302,838 c -14,-14 -16,-126 -3,-147 5,-8 16,-11 25,-8 12,5 16,21 16,71 0,89 -10,112 -38,84 z"
|
|
||||||
id="path1352"
|
|
||||||
style="fill:#11119a;fill-opacity:1" />
|
|
||||||
<path
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
d="m 521,775 c -27,-57 -32,-108 -10,-113 18,-3 84,122 75,144 -11,30 -44,15 -65,-31 z"
|
|
||||||
id="path1354"
|
|
||||||
style="fill:#11119a;fill-opacity:1" />
|
|
||||||
<path
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
d="M 34,797 C 26,775 93,639 110,643 148,650 99,810 59,810 48,810 37,804 34,797 Z"
|
|
||||||
id="path1356"
|
|
||||||
style="fill:#11119a;fill-opacity:1" />
|
|
||||||
<path
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
d="M 254,590 C 204,583 126,538 79,490 -19,390 14,144 136,67 199,27 243,17 336,23 c 125,7 212,62 275,172 53,92 32,220 -51,317 -62,71 -170,99 -306,78 z"
|
|
||||||
id="path1358"
|
|
||||||
style="fill:#11119a;fill-opacity:1" />
|
|
||||||
<path
|
|
||||||
fill="#ffff63"
|
|
||||||
stroke="none"
|
|
||||||
d="M 443,539 C 490,526 555,469 581,419 605,371 607,272 584,229 562,186 502,121 467,104 330,33 190,49 116,145 77,197 65,237 65,320 c 1,77 19,113 82,161 80,63 198,86 296,58 z"
|
|
||||||
id="path1360"
|
|
||||||
style="fill:#ffff77;fill-opacity:1" />
|
|
||||||
<path
|
|
||||||
fill="#000099"
|
|
||||||
stroke="none"
|
|
||||||
d="m 462,367 c -5,-7 -15,-28 -21,-48 -21,-67 -100,-120 -144,-98 -30,15 -65,56 -88,102 -21,40 -51,48 -57,14 -5,-26 53,-111 96,-141 89,-62 204,-7 252,119 15,40 -15,81 -38,52 z"
|
|
||||||
id="path1362"
|
|
||||||
style="fill:#11119a;fill-opacity:1" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
<!--
|
|
||||||
len pi toki pona
|
|
||||||
|
|
||||||
COPYRIGHT:
|
|
||||||
Spencer van der Meulen (jan Pensa) ©2021
|
|
||||||
Licence: Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
|
|
||||||
Based on:
|
|
||||||
- original logo design by Sonja Lang.
|
|
||||||
- Toki Pona logo vector image from https://commons.wikimedia.org/wiki/File:Toki_pona.svg by Eequor.
|
|
||||||
- colors from image on https://www.teepublic.com/user/toki-pona by Sonja Lang.
|
|
||||||
-->
|
|
||||||
|
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.7 KiB |
@@ -1,45 +1 @@
|
|||||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="Capa_1" width="800" height="800" fill="#fff" version="1.1" viewBox="0 0 298 298" xml:space="preserve"><g><path d="M289.5,140.5h-24.606l11.031-11.03c2.93-2.929,2.93-7.678,0.001-10.606c-2.929-2.929-7.678-2.93-10.606-0.001 L243.681,140.5h-36.369l16.182-17.392c2.821-3.032,2.65-7.777-0.383-10.6c-1.243-1.156-2.775-1.802-4.345-1.961 c-0.952-0.047-21.495-0.003-21.495-0.003L221.315,86.5H251.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-15.186l17.69-17.69 c2.929-2.93,2.929-7.678,0-10.608c-2.93-2.928-7.844-2.928-10.774,0L225.167,61.1V45.5c0-4.143-3.357-7.5-7.5-7.5 c-4.143,0-7.5,3.357-7.5,7.5v30.601l-24.837,25.004l-0.415-22.645c-0.001-0.036,0.035-0.07,0.034-0.106 c-0.035-1.824-0.704-3.641-2.07-5.059c-2.873-2.982-7.778-3.07-10.761-0.194l-15.951,15.226V53.107l21.47-21.304 c2.929-2.93,3.012-7.678,0.083-10.607c-2.93-2.928-7.803-2.928-10.732,0l-10.821,10.696V7.5c0-4.143-3.357-7.5-7.5-7.5 c-4.143,0-7.5,3.357-7.5,7.5v24.393l-10.53-10.696c-2.93-2.928-7.594-2.928-10.524,0c-2.929,2.93-3.054,7.678-0.125,10.607 l21.179,21.304v35.421l-16.176-15.475c-3.009-2.847-7.67-2.718-10.52,0.289c-1.075,1.136-1.683,2.52-1.914,3.955 c-0.142,0.583-0.203,1.188-0.201,1.811l-0.088,21.229l-25.1-24.944V45.5c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v14.894 L55.142,43.202c-2.93-2.928-7.594-2.928-10.524,0c-2.929,2.93-2.887,7.678,0.042,10.608L62.392,71.5H46.5 c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h30.892l24.744,24.744l-23.057,0.831c-4.021,0.146-7.524,3.435-7.563,7.418 c-0.004,0.112-0.349,0.225-0.349,0.337c0,0.003,0,0.007,0,0.011c0,0.008,0.345,0.017,0.345,0.024 c0.045,1.875,0.955,3.736,2.395,5.158L89.748,140.5H55.025l-21.638-21.638c-2.93-2.928-7.678-2.928-10.607,0 c-2.929,2.93-2.929,7.678,0,10.607l11.03,11.03H8.5c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h25.02L22.78,166.239 c-2.929,2.93-2.929,7.678,0,10.607c1.465,1.464,3.385,2.196,5.304,2.196c1.919,0,3.839-0.732,5.304-2.196L54.734,155.5h35.027 l-15.253,16.394c-2.821,3.032-2.65,7.777,0.383,10.6c1.444,1.344,3.277,2.009,5.106,2.009c0.034,0,0.068-0.005,0.103-0.005 c0.022,0,0.044,0.003,0.065,0.003c0.018,0,0.037,0,0.055,0l22.005-0.125L77.101,209.5H46.5c-4.143,0-7.5,3.357-7.5,7.5 s3.357,7.5,7.5,7.5h15.601l-17.399,17.399c-2.929,2.93-2.929,7.678,0,10.607c1.465,1.464,3.385,2.196,5.304,2.196 c1.919,0,3.672-0.732,5.137-2.196l17.025-17.191V250.5c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-30.185l25.445-25.278 l0.977,24.39c0.148,4.046,3.517,7.306,7.532,7.225c1.364-0.027,2.844-0.465,4.312-1.543c1.063-0.781,15.734-15.812,15.734-15.812 v35.385l-20.971,21.137c-2.93,2.929-2.846,7.678,0.082,10.607c1.465,1.465,3.425,2.197,5.345,2.197 c1.919,0,3.693-0.732,5.157-2.196l10.387-10.532V290.5c0,4.143,3.357,7.5,7.5,7.5c4.143,0,7.5-3.357,7.5-7.5v-25.31l11.404,11.237 c1.465,1.464,3.468,2.196,5.387,2.196c1.919,0,3.881-0.732,5.345-2.196c2.929-2.93,2.783-7.678-0.146-10.607l-21.99-21.845v-35.7 c0,0,13.729,12.896,15.896,14.976c2.167,2.08,3.942,3.25,6.525,3.25c0.015,0,0.03,0,0.046,0c4.142,0,7.48-3.604,7.455-7.746 l-0.306-23.696l24.384,24.551V250.5c0,4.143,3.357,7.5,7.5,7.5c4.143,0,7.5-3.357,7.5-7.5v-15.891l18.064,17.897 c1.465,1.464,3.467,2.196,5.387,2.196c1.919,0,3.88-0.732,5.345-2.196c2.929-2.93,2.95-7.678,0.021-10.607L236.605,224.5H251.5 c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-29.894l-25.742-25.742l23.059-0.831c0.082-0.003,0.162-0.016,0.243-0.021 c0.03-0.002,0.06-0.005,0.09-0.008c3.977-0.319,7.037-3.709,6.892-7.736c-0.087-2.424-1.32-4.531-3.155-5.837L209.138,155.5h34.835 l21.345,21.346c1.465,1.465,3.384,2.197,5.304,2.197c1.919,0,3.839-0.732,5.303-2.196c2.93-2.929,2.93-7.678,0.001-10.606 l-10.74-10.74H289.5c4.143,0,7.5-3.357,7.5-7.5S293.643,140.5,289.5,140.5z M200.795,125.483L186.823,140.5h-19.507l15.002-15.002 L200.795,125.483z M170.21,95.784l0.356,20.002l-14.399,14.315V109.16L170.21,95.784z M127.263,95.865l13.904,13.323v20.205 l-13.925-14.008L127.263,95.865z M96.862,126.444l19.762-0.712l14.768,14.768h-20.299L96.862,126.444z M97.246,169.477 L110.25,155.5h20.851l-13.841,13.841L97.246,169.477z M127.863,201.599l-0.854-21.042l14.158-14.241v21.604L127.863,201.599z M170.819,201.264l-14.652-13.478v-22.179l14.442,14.359L170.819,201.264z M200.991,168.564l-19.614,0.706l-13.77-13.77h20.292 L200.991,168.564z"/></g></svg>
|
||||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
||||||
<svg fill="#fff" height="800px" width="800px" version="1.1" id="Capa_1"
|
|
||||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
viewBox="0 0 298 298" xml:space="preserve">
|
|
||||||
<g>
|
|
||||||
<path d="M289.5,140.5h-24.606l11.031-11.03c2.93-2.929,2.93-7.678,0.001-10.606c-2.929-2.929-7.678-2.93-10.606-0.001
|
|
||||||
L243.681,140.5h-36.369l16.182-17.392c2.821-3.032,2.65-7.777-0.383-10.6c-1.243-1.156-2.775-1.802-4.345-1.961
|
|
||||||
c-0.952-0.047-21.495-0.003-21.495-0.003L221.315,86.5H251.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-15.186l17.69-17.69
|
|
||||||
c2.929-2.93,2.929-7.678,0-10.608c-2.93-2.928-7.844-2.928-10.774,0L225.167,61.1V45.5c0-4.143-3.357-7.5-7.5-7.5
|
|
||||||
c-4.143,0-7.5,3.357-7.5,7.5v30.601l-24.837,25.004l-0.415-22.645c-0.001-0.036,0.035-0.07,0.034-0.106
|
|
||||||
c-0.035-1.824-0.704-3.641-2.07-5.059c-2.873-2.982-7.778-3.07-10.761-0.194l-15.951,15.226V53.107l21.47-21.304
|
|
||||||
c2.929-2.93,3.012-7.678,0.083-10.607c-2.93-2.928-7.803-2.928-10.732,0l-10.821,10.696V7.5c0-4.143-3.357-7.5-7.5-7.5
|
|
||||||
c-4.143,0-7.5,3.357-7.5,7.5v24.393l-10.53-10.696c-2.93-2.928-7.594-2.928-10.524,0c-2.929,2.93-3.054,7.678-0.125,10.607
|
|
||||||
l21.179,21.304v35.421l-16.176-15.475c-3.009-2.847-7.67-2.718-10.52,0.289c-1.075,1.136-1.683,2.52-1.914,3.955
|
|
||||||
c-0.142,0.583-0.203,1.188-0.201,1.811l-0.088,21.229l-25.1-24.944V45.5c0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v14.894
|
|
||||||
L55.142,43.202c-2.93-2.928-7.594-2.928-10.524,0c-2.929,2.93-2.887,7.678,0.042,10.608L62.392,71.5H46.5
|
|
||||||
c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h30.892l24.744,24.744l-23.057,0.831c-4.021,0.146-7.524,3.435-7.563,7.418
|
|
||||||
c-0.004,0.112-0.349,0.225-0.349,0.337c0,0.003,0,0.007,0,0.011c0,0.008,0.345,0.017,0.345,0.024
|
|
||||||
c0.045,1.875,0.955,3.736,2.395,5.158L89.748,140.5H55.025l-21.638-21.638c-2.93-2.928-7.678-2.928-10.607,0
|
|
||||||
c-2.929,2.93-2.929,7.678,0,10.607l11.03,11.03H8.5c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h25.02L22.78,166.239
|
|
||||||
c-2.929,2.93-2.929,7.678,0,10.607c1.465,1.464,3.385,2.196,5.304,2.196c1.919,0,3.839-0.732,5.304-2.196L54.734,155.5h35.027
|
|
||||||
l-15.253,16.394c-2.821,3.032-2.65,7.777,0.383,10.6c1.444,1.344,3.277,2.009,5.106,2.009c0.034,0,0.068-0.005,0.103-0.005
|
|
||||||
c0.022,0,0.044,0.003,0.065,0.003c0.018,0,0.037,0,0.055,0l22.005-0.125L77.101,209.5H46.5c-4.143,0-7.5,3.357-7.5,7.5
|
|
||||||
s3.357,7.5,7.5,7.5h15.601l-17.399,17.399c-2.929,2.93-2.929,7.678,0,10.607c1.465,1.464,3.385,2.196,5.304,2.196
|
|
||||||
c1.919,0,3.672-0.732,5.137-2.196l17.025-17.191V250.5c0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-30.185l25.445-25.278
|
|
||||||
l0.977,24.39c0.148,4.046,3.517,7.306,7.532,7.225c1.364-0.027,2.844-0.465,4.312-1.543c1.063-0.781,15.734-15.812,15.734-15.812
|
|
||||||
v35.385l-20.971,21.137c-2.93,2.929-2.846,7.678,0.082,10.607c1.465,1.465,3.425,2.197,5.345,2.197
|
|
||||||
c1.919,0,3.693-0.732,5.157-2.196l10.387-10.532V290.5c0,4.143,3.357,7.5,7.5,7.5c4.143,0,7.5-3.357,7.5-7.5v-25.31l11.404,11.237
|
|
||||||
c1.465,1.464,3.468,2.196,5.387,2.196c1.919,0,3.881-0.732,5.345-2.196c2.929-2.93,2.783-7.678-0.146-10.607l-21.99-21.845v-35.7
|
|
||||||
c0,0,13.729,12.896,15.896,14.976c2.167,2.08,3.942,3.25,6.525,3.25c0.015,0,0.03,0,0.046,0c4.142,0,7.48-3.604,7.455-7.746
|
|
||||||
l-0.306-23.696l24.384,24.551V250.5c0,4.143,3.357,7.5,7.5,7.5c4.143,0,7.5-3.357,7.5-7.5v-15.891l18.064,17.897
|
|
||||||
c1.465,1.464,3.467,2.196,5.387,2.196c1.919,0,3.88-0.732,5.345-2.196c2.929-2.93,2.95-7.678,0.021-10.607L236.605,224.5H251.5
|
|
||||||
c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5h-29.894l-25.742-25.742l23.059-0.831c0.082-0.003,0.162-0.016,0.243-0.021
|
|
||||||
c0.03-0.002,0.06-0.005,0.09-0.008c3.977-0.319,7.037-3.709,6.892-7.736c-0.087-2.424-1.32-4.531-3.155-5.837L209.138,155.5h34.835
|
|
||||||
l21.345,21.346c1.465,1.465,3.384,2.197,5.304,2.197c1.919,0,3.839-0.732,5.303-2.196c2.93-2.929,2.93-7.678,0.001-10.606
|
|
||||||
l-10.74-10.74H289.5c4.143,0,7.5-3.357,7.5-7.5S293.643,140.5,289.5,140.5z M200.795,125.483L186.823,140.5h-19.507l15.002-15.002
|
|
||||||
L200.795,125.483z M170.21,95.784l0.356,20.002l-14.399,14.315V109.16L170.21,95.784z M127.263,95.865l13.904,13.323v20.205
|
|
||||||
l-13.925-14.008L127.263,95.865z M96.862,126.444l19.762-0.712l14.768,14.768h-20.299L96.862,126.444z M97.246,169.477
|
|
||||||
L110.25,155.5h20.851l-13.841,13.841L97.246,169.477z M127.863,201.599l-0.854-21.042l14.158-14.241v21.604L127.863,201.599z
|
|
||||||
M170.819,201.264l-14.652-13.478v-22.179l14.442,14.359L170.819,201.264z M200.991,168.564l-19.614,0.706l-13.77-13.77h20.292
|
|
||||||
L200.991,168.564z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.0 KiB |
@@ -1,18 +1 @@
|
|||||||
<?xml version="1.0" standalone="no"?>
|
<svg xmlns="http://www.w3.org/2000/svg" width="704" height="704" preserveAspectRatio="xMidYMid meet" version="1.0" viewBox="0 0 528 528"><metadata>Created by potrace 1.14, written by Peter Selinger 2001-2017</metadata><g fill="#000" stroke="none"><path d="M430 5266 c-152 -33 -307 -156 -373 -297 -20 -42 -41 -105 -47 -140 -8 -45 -10 -697 -8 -2229 3 -2105 4 -2166 22 -2215 77 -200 206 -319 400 -369 53 -14 305 -16 2210 -16 2367 0 2211 -4 2346 62 136 66 261 231 289 383 8 42 11 686 11 2200 0 2355 4 2200 -62 2335 -65 135 -231 261 -378 289 -85 16 -4338 13 -4410 -3z" transform="translate(0.000000,528.000000) scale(0.100000,-0.100000)"/></g></svg>
|
||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
|
|
||||||
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
|
|
||||||
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="528.000000pt" height="528.000000pt" viewBox="0 0 528.000000 528.000000"
|
|
||||||
preserveAspectRatio="xMidYMid meet">
|
|
||||||
<metadata>
|
|
||||||
Created by potrace 1.14, written by Peter Selinger 2001-2017
|
|
||||||
</metadata>
|
|
||||||
<g transform="translate(0.000000,528.000000) scale(0.100000,-0.100000)"
|
|
||||||
fill="#000000" stroke="none">
|
|
||||||
<path d="M430 5266 c-152 -33 -307 -156 -373 -297 -20 -42 -41 -105 -47 -140
|
|
||||||
-8 -45 -10 -697 -8 -2229 3 -2105 4 -2166 22 -2215 77 -200 206 -319 400 -369
|
|
||||||
53 -14 305 -16 2210 -16 2367 0 2211 -4 2346 62 136 66 261 231 289 383 8 42
|
|
||||||
11 686 11 2200 0 2355 4 2200 -62 2335 -65 135 -231 261 -378 289 -85 16
|
|
||||||
-4338 13 -4410 -3z"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 840 B After Width: | Height: | Size: 644 B |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 97 KiB After Width: | Height: | Size: 30 KiB |
Before Width: | Height: | Size: 99 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 132 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 134 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 7.6 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 92 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 81 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 85 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 96 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 98 KiB After Width: | Height: | Size: 34 KiB |
Before Width: | Height: | Size: 82 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 29 KiB |
Before Width: | Height: | Size: 72 KiB After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 9.8 KiB |
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 18 KiB |
@@ -2,6 +2,7 @@ import ar from "@/assets/locales/ar.json";
|
|||||||
import bg from "@/assets/locales/bg.json";
|
import bg from "@/assets/locales/bg.json";
|
||||||
import bn from "@/assets/locales/bn.json";
|
import bn from "@/assets/locales/bn.json";
|
||||||
import ca from "@/assets/locales/ca.json";
|
import ca from "@/assets/locales/ca.json";
|
||||||
|
import caVl from "@/assets/locales/ca@valencia.json";
|
||||||
import cs from "@/assets/locales/cs.json";
|
import cs from "@/assets/locales/cs.json";
|
||||||
import de from "@/assets/locales/de.json";
|
import de from "@/assets/locales/de.json";
|
||||||
import el from "@/assets/locales/el.json";
|
import el from "@/assets/locales/el.json";
|
||||||
@@ -46,6 +47,7 @@ import zh from "@/assets/locales/zh.json";
|
|||||||
export const locales = {
|
export const locales = {
|
||||||
en,
|
en,
|
||||||
ca,
|
ca,
|
||||||
|
"ca-ES": caVl,
|
||||||
cs,
|
cs,
|
||||||
de,
|
de,
|
||||||
fr,
|
fr,
|
||||||
@@ -80,7 +82,7 @@ export const locales = {
|
|||||||
ko,
|
ko,
|
||||||
sl,
|
sl,
|
||||||
ta,
|
ta,
|
||||||
"zh-HANT": zhhant,
|
"zh-Hant": zhhant,
|
||||||
is,
|
is,
|
||||||
ru,
|
ru,
|
||||||
gl,
|
gl,
|
||||||
|
@@ -3,7 +3,7 @@
|
|||||||
"description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.",
|
"description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.",
|
||||||
"faqTitle": "Preguntes freqüents",
|
"faqTitle": "Preguntes freqüents",
|
||||||
"q1": {
|
"q1": {
|
||||||
"body": "movie-web no allotja cap contingut. Quan feu clic a alguna cosa per a mirar-la, es busca a Internet el contingut seleccionat (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). movie-web mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.",
|
"body": "movie-web no allotja cap contingut. Quan feu clic a un contingut per a mirar-lo, es busca a Internet (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu veure quina font utilitzeu). movie-web mai hi puja contingut, tot és a través d'aquest mecanisme de cerca.",
|
||||||
"title": "D'on prové el contingut?"
|
"title": "D'on prové el contingut?"
|
||||||
},
|
},
|
||||||
"q2": {
|
"q2": {
|
||||||
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Us esteu connectant a <0>{{hostname}}</0>. Confirmeu que hi confieu abans de crear un compte",
|
"host": "Us esteu connectant a <0>{{hostname}}</0>. Confirmeu que hi confieu abans de crear un compte",
|
||||||
"no": "Torna",
|
"no": "Torna",
|
||||||
|
"noHost": "El servidor no s'ha configurat, per tant, no es pot crear un compte",
|
||||||
|
"noHostTitle": "El servidor no està configurat!",
|
||||||
"title": "Confieu en aquest servidor?",
|
"title": "Confieu en aquest servidor?",
|
||||||
"yes": "Confie en aquest servidor"
|
"yes": "Confie en aquest servidor"
|
||||||
},
|
},
|
||||||
@@ -95,6 +97,7 @@
|
|||||||
"about": "Quant a",
|
"about": "Quant a",
|
||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"login": "Inicia sessió",
|
"login": "Inicia sessió",
|
||||||
|
"onboarding": "Configura",
|
||||||
"pagetitle": "{{title}} - movie-web",
|
"pagetitle": "{{title}} - movie-web",
|
||||||
"register": "Registra",
|
"register": "Registra",
|
||||||
"settings": "Configuració"
|
"settings": "Configuració"
|
||||||
@@ -117,7 +120,12 @@
|
|||||||
"noResults": "No hem pogut trobar res!",
|
"noResults": "No hem pogut trobar res!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Què voleu mirar?",
|
"default": "Què voleu mirar?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Què voleu explorar?",
|
||||||
|
"Què hi ha a la vostra llista de seguiment?",
|
||||||
|
"Quina és la vostra pel·lícula preferida?",
|
||||||
|
"Quina és la vostra sèrie preferida?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Resultats de la cerca"
|
"sectionTitle": "Resultats de la cerca"
|
||||||
},
|
},
|
||||||
@@ -130,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Què us agradaria mirar aquest matí?",
|
"default": "Què us agradaria mirar aquest matí?",
|
||||||
"extra": ["He sentit que «Abans de l'alba» és bona"]
|
"extra": [
|
||||||
|
"He sentit que «Abans de l'alba» és bona"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Què us agradaria mirar aquesta nit?",
|
"default": "Què us agradaria mirar aquesta nit?",
|
||||||
"extra": ["Esteu cansat? He sentit que «L'exorcista» és bona."]
|
"extra": [
|
||||||
|
"Esteu cansat? He sentit que «L'exorcista» és bona."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -167,22 +179,37 @@
|
|||||||
"onboarding": {
|
"onboarding": {
|
||||||
"defaultConfirm": {
|
"defaultConfirm": {
|
||||||
"cancel": "Cancel·la",
|
"cancel": "Cancel·la",
|
||||||
|
"confirm": "Usa la configuració per defecte",
|
||||||
|
"description": "La configuració per defecte no té els millors fluxos i pot ser insuportablement lenta.",
|
||||||
"title": "Segur?"
|
"title": "Segur?"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"back": "Torna",
|
"back": "Torna",
|
||||||
|
"explainer": "Mitjançant l'extensió del navegador, podeu obtenir els millors fluxos que oferim. Amb només una simple instal·lació.",
|
||||||
|
"explainerIos": "Lamentablement, l'extensió del navegador no és compatible amb iOS, premeu <bold>Torna</bold> per a triar una altra opció.",
|
||||||
|
"extensionHelp": "Si heu instal·lat l'extensió, però no es detecta, <bold>obriu l'extensió al menú d'extensions del navegador</bold> i seguiu els passos en pantalla.",
|
||||||
"linkChrome": "Instal·la l'extensió de Chrome",
|
"linkChrome": "Instal·la l'extensió de Chrome",
|
||||||
"linkFirefox": "Instal·la l'extensió de Firefox",
|
"linkFirefox": "Instal·la l'extensió de Firefox",
|
||||||
|
"notDetecting": "S'ha instal·lat a Chrome, però el lloc no el detecta? Proveu de recarregar la pàgina.",
|
||||||
"notDetectingAction": "Recarrega la pàgina",
|
"notDetectingAction": "Recarrega la pàgina",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowedAction": "Activa l'extensió"
|
"disallowed": "L'extensió no està activada per a aquesta pàgina",
|
||||||
|
"disallowedAction": "Activa l'extensió",
|
||||||
|
"failed": "No s'ha pogut sol·licitar l'estat",
|
||||||
|
"loading": "Esperant que instal·leu l'extensió",
|
||||||
|
"outdated": "La versió de l'extensió és massa antiga",
|
||||||
|
"success": "L'extensió funciona com s'esperava!"
|
||||||
},
|
},
|
||||||
"submit": "Continua"
|
"submit": "Continua",
|
||||||
|
"title": "Comencem amb una extensió"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"back": "Torna",
|
"back": "Torna",
|
||||||
|
"explainer": "Amb el mètode del servidor intermediari, podeu obtenir fluxos d'alta qualitat fent un servidor intermediari propi.",
|
||||||
"input": {
|
"input": {
|
||||||
|
"errorConnection": "No s'ha pogut connectar al servidor intermediari",
|
||||||
"errorInvalidUrl": "URL no vàlid",
|
"errorInvalidUrl": "URL no vàlid",
|
||||||
|
"errorNotProxy": "S'esperava un servidor intermediari, però és un lloc web",
|
||||||
"label": "URL del servidor intermediari",
|
"label": "URL del servidor intermediari",
|
||||||
"placeholder": "https://"
|
"placeholder": "https://"
|
||||||
},
|
},
|
||||||
@@ -191,15 +218,25 @@
|
|||||||
"title": "Fem un nou servidor intermediari"
|
"title": "Fem un nou servidor intermediari"
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
|
"explainer": "Per a obtenir els millors fluxos possibles, haureu de triar quin mètode de transmissió voleu utilitzar.",
|
||||||
"options": {
|
"options": {
|
||||||
|
"default": {
|
||||||
|
"text": "No vull fluxos de bona qualitat,<0 /> <1>utilitza la configuració per defecte</1>"
|
||||||
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"action": "Instal·la l'extensió",
|
"action": "Instal·la l'extensió",
|
||||||
"quality": "Millor qualitat"
|
"description": "Instal·leu l'extensió del navegador i accediu a les millors fonts.",
|
||||||
|
"quality": "Millor qualitat",
|
||||||
|
"title": "Extensió del navegador"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"action": "Configura el servidor intermediari"
|
"action": "Configura el servidor intermediari",
|
||||||
|
"description": "Configureu un servidor intermediari en només 5 minuts i accediu a bones fonts.",
|
||||||
|
"quality": "Bona qualitat",
|
||||||
|
"title": "Servidor intermediari personalitzat"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"title": "Configurem el movie-web"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"overlays": {
|
"overlays": {
|
||||||
@@ -215,10 +252,11 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Copia l'enllaç de la llista HLS",
|
||||||
"disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.",
|
"disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.",
|
||||||
"downloadSubtitle": "Baixa els subtítols actuals",
|
"downloadSubtitle": "Baixa els subtítols actuals",
|
||||||
"downloadVideo": "Baixa el vídeo",
|
"downloadVideo": "Baixa el vídeo",
|
||||||
"hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades. Tingueu en compte que esteu baixant una llista de reproducció HLS, destinada als usuaris familiaritzats amb la transmissió multimèdia avançada.",
|
"hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades. <br /><br />Tingueu en compte que esteu baixant una llista de reproducció HLS, <bold>no es recomana baixar-la si no esteu familiaritzat amb formats de transmissió avançats</bold>. Proveu diferents fonts per a diferents formats.",
|
||||||
"onAndroid": {
|
"onAndroid": {
|
||||||
"1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, <bold>manteniu premut</bold> el vídeo i, a continuació, seleccioneu <bold>Desa</bold>.",
|
"1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, <bold>manteniu premut</bold> el vídeo i, a continuació, seleccioneu <bold>Desa</bold>.",
|
||||||
"shortTitle": "Baixa / Android",
|
"shortTitle": "Baixa / Android",
|
||||||
@@ -301,8 +339,15 @@
|
|||||||
},
|
},
|
||||||
"dmca": {
|
"dmca": {
|
||||||
"badge": "Eliminat",
|
"badge": "Eliminat",
|
||||||
|
"text": "Aquest contingut ja no està disponible a causa d'un avís de retirada o d'una reclamació de drets d'autor.",
|
||||||
"title": "El contingut s'ha eliminat"
|
"title": "El contingut s'ha eliminat"
|
||||||
},
|
},
|
||||||
|
"extensionPermission": {
|
||||||
|
"badge": "Falta el permís",
|
||||||
|
"button": "Utilitza l'extensió",
|
||||||
|
"text": "Teniu l'extensió del navegador, però necessitem el vostre permís per a començar a utilitzar l'extensió.",
|
||||||
|
"title": "Configureu l'extensió"
|
||||||
|
},
|
||||||
"failed": {
|
"failed": {
|
||||||
"badge": "Ha fallat",
|
"badge": "Ha fallat",
|
||||||
"homeButton": "Vés a l'inici",
|
"homeButton": "Vés a l'inici",
|
||||||
@@ -436,15 +481,29 @@
|
|||||||
},
|
},
|
||||||
"setup": {
|
"setup": {
|
||||||
"doSetup": "Configura",
|
"doSetup": "Configura",
|
||||||
|
"errorStatus": {
|
||||||
|
"description": "Sembla que heu de revisar un o més elements de la configuració.",
|
||||||
|
"title": "S'ha de revisar algun element"
|
||||||
|
},
|
||||||
|
"itemError": "Hi ha alguna cosa malament en la configuració. Torneu a fer la configuració per a solucionar-ho.",
|
||||||
"items": {
|
"items": {
|
||||||
"default": "Configuració per defecte",
|
"default": "Configuració per defecte",
|
||||||
"extension": "Extensió"
|
"extension": "Extensió",
|
||||||
|
"proxy": "Servidor personalitzat"
|
||||||
},
|
},
|
||||||
"redoSetup": "Reconfigura"
|
"redoSetup": "Reconfigura",
|
||||||
|
"successStatus": {
|
||||||
|
"description": "Tot està preparat perquè comenceu a mirar el vostre contingut preferit.",
|
||||||
|
"title": "Tot està configurat!"
|
||||||
|
},
|
||||||
|
"unsetStatus": {
|
||||||
|
"description": "Feu clic al botó de la dreta per a iniciar el procés de configuració.",
|
||||||
|
"title": "No heu fet la configuració"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"title": "Connexions",
|
"title": "Connexions",
|
||||||
"workers": {
|
"workers": {
|
||||||
"addButton": "Afig un «worker»",
|
"addButton": "Afegeix un «worker»",
|
||||||
"description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers». <0>Instruccions.</0>",
|
"description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers». <0>Instruccions.</0>",
|
||||||
"emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació",
|
"emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació",
|
||||||
"label": "Utilitza «workers» intermediaris personalitzats",
|
"label": "Utilitza «workers» intermediaris personalitzats",
|
||||||
@@ -456,6 +515,7 @@
|
|||||||
"language": "Llengua de l'aplicació",
|
"language": "Llengua de l'aplicació",
|
||||||
"languageDescription": "La llengua s'aplica a tota l'aplicació.",
|
"languageDescription": "La llengua s'aplica a tota l'aplicació.",
|
||||||
"thumbnail": "Genera miniatures",
|
"thumbnail": "Genera miniatures",
|
||||||
|
"thumbnailDescription": "Majoritàriament, els vídeos no tenen miniatures. Podeu activar aquesta opció per a generar-les sobre la marxa, però poden alentir el vídeo.",
|
||||||
"thumbnailLabel": "Genera miniatures",
|
"thumbnailLabel": "Genera miniatures",
|
||||||
"title": "Configuració"
|
"title": "Configuració"
|
||||||
},
|
},
|
||||||
@@ -476,6 +536,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Difuminat del fons",
|
||||||
"backgroundLabel": "Opacitat del fons",
|
"backgroundLabel": "Opacitat del fons",
|
||||||
"colorLabel": "Color",
|
"colorLabel": "Color",
|
||||||
"previewQuote": "No he de tenir por. La por és l'assassina de la ment.",
|
"previewQuote": "No he de tenir por. La por és l'assassina de la ment.",
|
||||||
|
548
src/assets/locales/ca@valencia.json
Normal file
@@ -0,0 +1,548 @@
|
|||||||
|
{
|
||||||
|
"about": {
|
||||||
|
"description": "movie-web és una aplicació web que cerca fluxos a internet. L'equip té com a objectiu un enfocament majoritàriament minimalista del consum de contingut.",
|
||||||
|
"faqTitle": "Preguntes freqüents",
|
||||||
|
"q1": {
|
||||||
|
"body": "movie-web no allotja cap contingut. Quan feu clic en un contingut per a mirar-lo, es busca a Internet (a la pantalla de càrrega i a la pestanya «Fonts de vídeo» podeu mirar quina font utilitzeu). movie-web mai puja contingut, tot és a través del mecanisme de cerca.",
|
||||||
|
"title": "D'on prové el contingut?"
|
||||||
|
},
|
||||||
|
"q2": {
|
||||||
|
"body": "No és possible sol·licitar un programa o una pel·lícula, movie-web no gestiona cap contingut. Tot el contingut es visualitza a través de fonts a internet.",
|
||||||
|
"title": "On puc sol·licitar un programa o una pel·lícula?"
|
||||||
|
},
|
||||||
|
"q3": {
|
||||||
|
"body": "Els resultats de cerca funcionen amb The Movie Database (TMDB) i es mostren independentment de si les nostres fonts realment tenen el contingut.",
|
||||||
|
"title": "Els resultats de la cerca mostren el programa o la pel·lícula, per què no puc reproduir-lo?"
|
||||||
|
},
|
||||||
|
"title": "Sobre movie-web"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"copied": "S'ha copiat",
|
||||||
|
"copy": "Copia"
|
||||||
|
},
|
||||||
|
"auth": {
|
||||||
|
"createAccount": "Encara no teniu un compte? <0>Creeu un compte.</0>",
|
||||||
|
"deviceNameLabel": "Nom del dispositiu",
|
||||||
|
"deviceNamePlaceholder": "Telèfon personal",
|
||||||
|
"generate": {
|
||||||
|
"description": "La frase de contrasenya actua com a nom d'usuari i contrasenya. Assegureu-vos de mantindre-la segura, ja que haureu d'introduir-la per a iniciar la sessió al vostre compte",
|
||||||
|
"next": "He desat la frase de contrasenya",
|
||||||
|
"passphraseFrameLabel": "Frase de contrasenya",
|
||||||
|
"title": "La vostra frase de contrasenya"
|
||||||
|
},
|
||||||
|
"hasAccount": "Ja teniu un compte? <0>Inicieu sessió ací.</0>",
|
||||||
|
"login": {
|
||||||
|
"description": "Introduïu la vostra frase de contrasenya per a iniciar sessió al vostre compte",
|
||||||
|
"deviceLengthError": "Introduïu un nom per al dispositiu",
|
||||||
|
"passphraseLabel": "Frase de contrasenya de 12 paraules",
|
||||||
|
"passphrasePlaceholder": "Frase de contrasenya",
|
||||||
|
"submit": "Inicia sessió",
|
||||||
|
"title": "Inicieu sessió al vostre compte",
|
||||||
|
"validationError": "Frase de contrasenya incorrecta o incompleta"
|
||||||
|
},
|
||||||
|
"register": {
|
||||||
|
"information": {
|
||||||
|
"color1": "Color de perfil 1",
|
||||||
|
"color2": "Color de perfil 2",
|
||||||
|
"header": "Introduïu un nom per al dispositiu i trieu els colors i la icona d'usuari que vulgueu",
|
||||||
|
"icon": "Icona d'usuari",
|
||||||
|
"next": "Següent",
|
||||||
|
"title": "Informació del compte"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"trust": {
|
||||||
|
"failed": {
|
||||||
|
"text": "L'heu configurada correctament?",
|
||||||
|
"title": "No s'ha pogut accedir al servidor"
|
||||||
|
},
|
||||||
|
"host": "Esteu connectant-vos a <0>{{hostname}}</0>. Confirmeu que hi confieu abans de crear un compte",
|
||||||
|
"no": "Torna",
|
||||||
|
"noHost": "El servidor no s'ha configurat, per tant, no es pot crear un compte",
|
||||||
|
"noHostTitle": "El servidor no està configurat!",
|
||||||
|
"title": "Confieu en este servidor?",
|
||||||
|
"yes": "Confie en este servidor"
|
||||||
|
},
|
||||||
|
"verify": {
|
||||||
|
"description": "Introduïu la vostra frase de contrasenya anterior per a confirmar que l'heu desat, i crear el compte",
|
||||||
|
"invalidData": "La data no és vàlida",
|
||||||
|
"noMatch": "La frase de contrasenya no coincideix",
|
||||||
|
"passphraseLabel": "Frase de contrasenya de 12 paraules",
|
||||||
|
"recaptchaFailed": "Ha fallat la validació de ReCaptcha",
|
||||||
|
"register": "Crea el compte",
|
||||||
|
"title": "Confirmeu la frase de contrasenya"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"errors": {
|
||||||
|
"badge": "S'ha trencat",
|
||||||
|
"details": "Detalls de l'error",
|
||||||
|
"reloadPage": "Recarrega la pàgina",
|
||||||
|
"showError": "Mostra els detalls de l'error",
|
||||||
|
"title": "Hem trobat un error!"
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"legal": {
|
||||||
|
"disclaimer": "Avís d'exempció de responsabilitat",
|
||||||
|
"disclaimerText": "movie-web no allotja cap fitxer, només enllaça a serveis de tercers. Els problemes legals s'han d'abordar amb qui allotja i els proveïdors de fitxers. movie-web no es fa responsable del contingut mostrat pels proveïdors de vídeo."
|
||||||
|
},
|
||||||
|
"links": {
|
||||||
|
"discord": "Discord",
|
||||||
|
"dmca": "DMCA",
|
||||||
|
"github": "GitHub"
|
||||||
|
},
|
||||||
|
"tagline": "Mireu els vostres programes i pel·lícules preferits amb esta aplicació de codi obert de reproducció en temps real."
|
||||||
|
},
|
||||||
|
"global": {
|
||||||
|
"name": "movie-web",
|
||||||
|
"pages": {
|
||||||
|
"about": "Quant a",
|
||||||
|
"dmca": "DMCA",
|
||||||
|
"login": "Inicia sessió",
|
||||||
|
"onboarding": "Configura",
|
||||||
|
"pagetitle": "{{title}} - movie-web",
|
||||||
|
"register": "Registra",
|
||||||
|
"settings": "Configuració"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home": {
|
||||||
|
"bookmarks": {
|
||||||
|
"sectionTitle": "Marcadors"
|
||||||
|
},
|
||||||
|
"continueWatching": {
|
||||||
|
"sectionTitle": "Continueu mirant"
|
||||||
|
},
|
||||||
|
"mediaList": {
|
||||||
|
"stopEditing": "Deixa d'editar"
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"allResults": "Això és tot el que tenim!",
|
||||||
|
"failed": "No s'ha pogut trobar cap contingut, torneu-ho a provar!",
|
||||||
|
"loading": "S'està carregant…",
|
||||||
|
"noResults": "No hem pogut trobar res!",
|
||||||
|
"placeholder": {
|
||||||
|
"default": "Què voleu mirar?",
|
||||||
|
"extra": [
|
||||||
|
"Què voleu explorar?",
|
||||||
|
"Què hi ha a la vostra llista de seguiment?",
|
||||||
|
"Quina és la vostra pel·lícula preferida?",
|
||||||
|
"Quina és la vostra sèrie preferida?"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"sectionTitle": "Resultats de la cerca"
|
||||||
|
},
|
||||||
|
"titles": {
|
||||||
|
"day": {
|
||||||
|
"default": "Què vos agradaria mirar esta vesprada?",
|
||||||
|
"extra": [
|
||||||
|
"Voleu aventura? Jurassic Park podria ser l'elecció perfecta."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"morning": {
|
||||||
|
"default": "Què vos agradaria mirar este matí?",
|
||||||
|
"extra": [
|
||||||
|
"He sentit que «Abans de l'alba» és bona"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"night": {
|
||||||
|
"default": "Què vos agradaria mirar esta nit?",
|
||||||
|
"extra": [
|
||||||
|
"Esteu cansat? He sentit que «L'exorcista» és bona."
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"media": {
|
||||||
|
"episodeDisplay": "T{{season}} E{{episode}}",
|
||||||
|
"types": {
|
||||||
|
"movie": "Pel·lícula",
|
||||||
|
"show": "Sèrie/Programa"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"navigation": {
|
||||||
|
"banner": {
|
||||||
|
"offline": "Comproveu la connexió a internet"
|
||||||
|
},
|
||||||
|
"menu": {
|
||||||
|
"about": "Quant a nosaltres",
|
||||||
|
"donation": "Feu una donació",
|
||||||
|
"logout": "Tanca la sessió",
|
||||||
|
"register": "Sincronitza al núvol",
|
||||||
|
"settings": "Configuració",
|
||||||
|
"support": "Ajuda"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notFound": {
|
||||||
|
"badge": "No s'ha trobat",
|
||||||
|
"goHome": "Torna a l'inici",
|
||||||
|
"message": "Hem mirat per tot arreu: davall de les papereres, a l'armari, darrere del servidor intermediari, però al remat no hem pogut trobar la pàgina que busqueu.",
|
||||||
|
"title": "No s'ha pogut trobar la pàgina"
|
||||||
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"defaultConfirm": {
|
||||||
|
"cancel": "Cancel·la",
|
||||||
|
"confirm": "Usa la configuració per defecte",
|
||||||
|
"description": "La configuració per defecte no té els millors fluxos i pot ser insuportablement lenta.",
|
||||||
|
"title": "Segur?"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"back": "Torna",
|
||||||
|
"explainer": "Mitjançant l'extensió del navegador, podeu obtindre els millors fluxos que oferim. Amb només una simple instal·lació.",
|
||||||
|
"explainerIos": "Lamentablement, l'extensió del navegador no és compatible amb iOS, premeu <bold>Torna</bold> per a triar una altra opció.",
|
||||||
|
"extensionHelp": "Si heu instal·lat l'extensió, però no es detecta, <bold>obriu l'extensió al menú d'extensions del navegador</bold> i seguiu els passos en pantalla.",
|
||||||
|
"linkChrome": "Instal·la l'extensió de Chrome",
|
||||||
|
"linkFirefox": "Instal·la l'extensió de Firefox",
|
||||||
|
"notDetecting": "S'ha instal·lat a Chrome, però el lloc no el detecta? Proveu de recarregar la pàgina.",
|
||||||
|
"notDetectingAction": "Recarrega la pàgina",
|
||||||
|
"status": {
|
||||||
|
"disallowed": "L'extensió no està activada per a esta pàgina",
|
||||||
|
"disallowedAction": "Activa l'extensió",
|
||||||
|
"failed": "No s'ha pogut sol·licitar l'estat",
|
||||||
|
"loading": "Esperant que instal·leu l'extensió",
|
||||||
|
"outdated": "La versió de l'extensió és massa antiga",
|
||||||
|
"success": "L'extensió funciona com s'esperava!"
|
||||||
|
},
|
||||||
|
"submit": "Continua",
|
||||||
|
"title": "Comencem amb una extensió"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"back": "Torna",
|
||||||
|
"explainer": "Amb el mètode del servidor intermediari, podeu obtindre fluxos d'alta qualitat fent un servidor intermediari propi.",
|
||||||
|
"input": {
|
||||||
|
"errorConnection": "No s'ha pogut connectar al servidor intermediari",
|
||||||
|
"errorInvalidUrl": "URL no vàlid",
|
||||||
|
"errorNotProxy": "S'esperava un servidor intermediari, però és un lloc web",
|
||||||
|
"label": "URL del servidor intermediari",
|
||||||
|
"placeholder": "https://"
|
||||||
|
},
|
||||||
|
"link": "Com fer un servidor intermediari",
|
||||||
|
"submit": "Envia el servidor intermediari",
|
||||||
|
"title": "Fem un nou servidor intermediari"
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"explainer": "Per a obtindre els millors fluxos possibles, haureu de triar quin mètode de transmissió voleu utilitzar.",
|
||||||
|
"options": {
|
||||||
|
"default": {
|
||||||
|
"text": "No vull fluxos de bona qualitat,<0 /> <1>utilitza la configuració per defecte</1>"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"action": "Instal·la l'extensió",
|
||||||
|
"description": "Instal·leu l'extensió del navegador i accediu a les millors fonts.",
|
||||||
|
"quality": "Millor qualitat",
|
||||||
|
"title": "Extensió del navegador"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"action": "Configura el servidor intermediari",
|
||||||
|
"description": "Configureu un servidor intermediari en només 5 minuts i accediu a bones fonts.",
|
||||||
|
"quality": "Bona qualitat",
|
||||||
|
"title": "Servidor intermediari personalitzat"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Configurem el movie-web"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"overlays": {
|
||||||
|
"close": "Tanca"
|
||||||
|
},
|
||||||
|
"player": {
|
||||||
|
"back": {
|
||||||
|
"default": "Torna a l'inici",
|
||||||
|
"short": "Torna"
|
||||||
|
},
|
||||||
|
"casting": {
|
||||||
|
"enabled": "S'està emetent al dispositiu…"
|
||||||
|
},
|
||||||
|
"menus": {
|
||||||
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Copia l'enllaç de la llista HLS",
|
||||||
|
"disclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades.",
|
||||||
|
"downloadSubtitle": "Baixa els subtítols actuals",
|
||||||
|
"downloadVideo": "Baixa el vídeo",
|
||||||
|
"hlsDisclaimer": "Les baixades s'obtenen directament del proveïdor. movie-web no té control sobre com es proporcionen les baixades. <br /><br />Tingueu en compte que esteu baixant una llista de reproducció HLS, <bold>no es recomana baixar-la si no esteu familiaritzat amb formats de transmissió avançats</bold>. Proveu diferents fonts per a diferents formats.",
|
||||||
|
"onAndroid": {
|
||||||
|
"1": "Per a baixar-lo a Android, feu clic al botó de baixada i, a la pàgina nova, <bold>manteniu premut</bold> el vídeo i, a continuació, seleccioneu <bold>Desa</bold>.",
|
||||||
|
"shortTitle": "Baixa / Android",
|
||||||
|
"title": "Baixada a Android"
|
||||||
|
},
|
||||||
|
"onIos": {
|
||||||
|
"1": "Per a baixar a iOS, feu clic al botó de baixada i, a la pàgina nova, feu clic a <bold><ios_share /></bold> /> i, a continuació, <bold>Desa als Arxius <ios_files /></bold>.",
|
||||||
|
"shortTitle": "Baixa / iOS",
|
||||||
|
"title": "Baixada a iOS"
|
||||||
|
},
|
||||||
|
"onPc": {
|
||||||
|
"1": "En un PC, feu clic al botó de baixada i, a la pàgina nova, feu clic amb el botó dret al vídeo i seleccioneu <bold>Anomena i desa el vídeo</bold>",
|
||||||
|
"shortTitle": "Baixa / PC",
|
||||||
|
"title": "Baixada a un PC"
|
||||||
|
},
|
||||||
|
"title": "Baixa"
|
||||||
|
},
|
||||||
|
"episodes": {
|
||||||
|
"button": "Episodi",
|
||||||
|
"emptyState": "No hi ha episodis en esta temporada, torneu-ho a comprovar més tard!",
|
||||||
|
"episodeBadge": "E{{episode}}",
|
||||||
|
"loadingError": "Error en carregar la temporada",
|
||||||
|
"loadingList": "S'està carregant…",
|
||||||
|
"loadingTitle": "S'està carregant…",
|
||||||
|
"unairedEpisodes": "Un o més episodis d'esta temporada s'han desactivat perquè encara no s'han emés."
|
||||||
|
},
|
||||||
|
"playback": {
|
||||||
|
"speedLabel": "Velocitat de la reproducció",
|
||||||
|
"title": "Configuració de la reproducció"
|
||||||
|
},
|
||||||
|
"quality": {
|
||||||
|
"automaticLabel": "Qualitat automàtica",
|
||||||
|
"hint": "Podeu provar a <0>canviar la font</0> per a obtindre diferents opcions de qualitat.",
|
||||||
|
"iosNoQuality": "A causa de les limitacions definides per Apple, la selecció de qualitat no està disponible a iOS per a esta font. Podeu provar a <0>canviar a una altra font</0> per a obtindre diferents opcions de qualitat.",
|
||||||
|
"title": "Qualitat"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"downloadItem": "Baixa",
|
||||||
|
"enableSubtitles": "Activa els subtítols",
|
||||||
|
"experienceSection": "Experiència de visualització",
|
||||||
|
"playbackItem": "Configuració de la reproducció",
|
||||||
|
"qualityItem": "Qualitat",
|
||||||
|
"sourceItem": "Fonts de vídeo",
|
||||||
|
"subtitleItem": "Configuració dels subtítols",
|
||||||
|
"videoSection": "Configuració de vídeo"
|
||||||
|
},
|
||||||
|
"sources": {
|
||||||
|
"failed": {
|
||||||
|
"text": "S'ha produït un error en intentar trobar vídeos, proveu una font diferent.",
|
||||||
|
"title": "No s'ha pogut obtindre"
|
||||||
|
},
|
||||||
|
"noEmbeds": {
|
||||||
|
"text": "No hem pogut trobar cap incrustat, proveu una font diferent.",
|
||||||
|
"title": "No s'ha trobat cap incrustació"
|
||||||
|
},
|
||||||
|
"noStream": {
|
||||||
|
"text": "esta font no té fluxos per a esta pel·lícula o programa.",
|
||||||
|
"title": "Cap flux"
|
||||||
|
},
|
||||||
|
"title": "Fonts",
|
||||||
|
"unknownOption": "Desconeguda"
|
||||||
|
},
|
||||||
|
"subtitles": {
|
||||||
|
"customChoice": "Selecciona un fitxer de subtítols",
|
||||||
|
"customizeLabel": "Personalitza",
|
||||||
|
"offChoice": "Desactivats",
|
||||||
|
"settings": {
|
||||||
|
"backlink": "Subtítols personalitzats",
|
||||||
|
"delay": "Retard dels subtítols",
|
||||||
|
"fixCapitals": "Corregeix les majúscules/minúscules"
|
||||||
|
},
|
||||||
|
"title": "Subtítols",
|
||||||
|
"unknownLanguage": "Desconeguda"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"metadata": {
|
||||||
|
"api": {
|
||||||
|
"text": "No s'han pogut carregar les metadades de l'API, comproveu la connexió a Internet.",
|
||||||
|
"title": "No s'han pogut carregar les metadades de l'API"
|
||||||
|
},
|
||||||
|
"dmca": {
|
||||||
|
"badge": "Eliminat",
|
||||||
|
"text": "este contingut ja no està disponible a causa d'un avís de retirada o d'una reclamació de drets d'autor.",
|
||||||
|
"title": "El contingut s'ha eliminat"
|
||||||
|
},
|
||||||
|
"extensionPermission": {
|
||||||
|
"badge": "Falta el permís",
|
||||||
|
"button": "Utilitza l'extensió",
|
||||||
|
"text": "Teniu l'extensió del navegador, però necessitem el vostre permís per a començar a utilitzar l'extensió.",
|
||||||
|
"title": "Configureu l'extensió"
|
||||||
|
},
|
||||||
|
"failed": {
|
||||||
|
"badge": "Ha fallat",
|
||||||
|
"homeButton": "Vés a l'inici",
|
||||||
|
"text": "No s'han pogut carregar les metadades del contingut des de TMDB. Comproveu si TMDB no funciona o està bloquejat a la vostra connexió a Internet.",
|
||||||
|
"title": "Ha fallat la càrrega de les metadades"
|
||||||
|
},
|
||||||
|
"notFound": {
|
||||||
|
"badge": "No s'ha trobat",
|
||||||
|
"homeButton": "Torna a l'inici",
|
||||||
|
"text": "No hem pogut trobar el contingut sol·licitat. O bé s'ha eliminat o bé heu alterat l'URL.",
|
||||||
|
"title": "No s'ha trobat el contingut."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nextEpisode": {
|
||||||
|
"cancel": "Cancel·la",
|
||||||
|
"next": "Episodi següent"
|
||||||
|
},
|
||||||
|
"playbackError": {
|
||||||
|
"badge": "Error en la reproducció",
|
||||||
|
"errors": {
|
||||||
|
"errorAborted": "S'ha interromput l'obtenció del contingut per petició de l'usuari.",
|
||||||
|
"errorDecode": "Tot i haver-se determinat prèviament que era utilitzable, s'ha produït un error en intentar descodificar el recurs multimèdia.",
|
||||||
|
"errorGenericMedia": "S'ha produït un error desconegut al contingut.",
|
||||||
|
"errorNetwork": "S'ha produït algun tipus d'error de xarxa que ha impedit que el contingut s'obtinga correctament, tot i haver estat disponibles prèviament.",
|
||||||
|
"errorNotSupported": "El contingut o el proveïdor del contingut no és compatible."
|
||||||
|
},
|
||||||
|
"homeButton": "Torna a l'inici",
|
||||||
|
"text": "S'ha produït un error en intentar reproduir el contingut. Torneu-ho a provar.",
|
||||||
|
"title": "No s'ha pogut reproduir el vídeo!"
|
||||||
|
},
|
||||||
|
"scraping": {
|
||||||
|
"items": {
|
||||||
|
"failure": "S'ha produït un error",
|
||||||
|
"notFound": "No té el vídeo",
|
||||||
|
"pending": "S'estan cercant vídeos…"
|
||||||
|
},
|
||||||
|
"notFound": {
|
||||||
|
"badge": "No s'ha trobat",
|
||||||
|
"detailsButton": "Mostra els detalls",
|
||||||
|
"homeButton": "Torna a l'inici",
|
||||||
|
"text": "Hem buscat a través dels nostres proveïdors i no trobem el contingut que busqueu! No allotgem contingut i no tenim control sobre què hi ha disponible. Feu clic a «Mostra els detalls» a continuació per a més informació.",
|
||||||
|
"title": "No s'ha pogut trobar"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"time": {
|
||||||
|
"regular": "{{timeWatched}} / {{duration}}",
|
||||||
|
"remaining": "{{timeLeft}} restants • Acaba a les {{timeFinished, datetime}}",
|
||||||
|
"shortRegular": "{{timeWatched}}",
|
||||||
|
"shortRemaining": "-{{timeLeft}}"
|
||||||
|
},
|
||||||
|
"turnstile": {
|
||||||
|
"description": "Verifiqueu que sou humà completant el Captcha de la dreta. Ho fem per a mantindre segura movie-web!",
|
||||||
|
"error": "No s'ha pogut verificar la humanitat. Torneu-ho a provar.",
|
||||||
|
"title": "Necessitem verificar que sou humà.",
|
||||||
|
"verifyingHumanity": "Verificant la vostra humanitat…"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"screens": {
|
||||||
|
"dmca": {
|
||||||
|
"text": "Vos donem la benvinguda a la pàgina de contacte DMCA de movie-web! Respectem els drets de propietat intel·lectual i volem resoldre qualsevol problema de drets d'autor ràpidament. Si creieu que la vostra obra protegida per drets d'autor s'ha utilitzat incorrectament a la nostra plataforma, envieu un avís detallat de la DMCA al correu electrònic següent. Incloeu una descripció del material protegit per drets d'autor, les vostres dades de contacte i una declaració de creença de bona fe. Ens comprometem a resoldre estes assumptes amb agilitat i agraïm la vostra col·laboració per a mantindre movie-web en un lloc que respecta la creativitat i els drets d'autor.",
|
||||||
|
"title": "DMCA"
|
||||||
|
},
|
||||||
|
"loadingApp": "S'està carregant l'aplicació",
|
||||||
|
"loadingUser": "S'està carregant el perfil",
|
||||||
|
"loadingUserError": {
|
||||||
|
"logout": "Tanca la sessió",
|
||||||
|
"reset": "Restableix el servidor personalitzat",
|
||||||
|
"text": "Ha fallat la càrrega del perfil",
|
||||||
|
"textWithReset": "Error en carregar el vostre perfil des del servidor personalitzat, voleu restablir el servidor per defecte?"
|
||||||
|
},
|
||||||
|
"migration": {
|
||||||
|
"failed": "La migració de les dades ha fallat.",
|
||||||
|
"inProgress": "Espereu, estem migrant les vostres dades. No hauria de tardar massa."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"account": {
|
||||||
|
"accountDetails": {
|
||||||
|
"deviceNameLabel": "Nom del dispositiu",
|
||||||
|
"deviceNamePlaceholder": "Telèfon personal",
|
||||||
|
"editProfile": "Edita",
|
||||||
|
"logoutButton": "Tanca la sessió"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"delete": {
|
||||||
|
"button": "Elimina el compte",
|
||||||
|
"confirmButton": "Elimina el compte",
|
||||||
|
"confirmDescription": "Segur que voleu eliminar el compte? Es perdran totes les dades!",
|
||||||
|
"confirmTitle": "Segur?",
|
||||||
|
"text": "Esta acció és irreversible. Totes les dades s'eliminaran i no es podrà recuperar res.",
|
||||||
|
"title": "Elimina el compte"
|
||||||
|
},
|
||||||
|
"title": "Accions"
|
||||||
|
},
|
||||||
|
"devices": {
|
||||||
|
"deviceNameLabel": "Nom del dispositiu",
|
||||||
|
"failed": "La càrrega de sessions ha fallat",
|
||||||
|
"removeDevice": "Elimina",
|
||||||
|
"title": "Dispositiu"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"finish": "Finalitza l'edició",
|
||||||
|
"firstColor": "Color de perfil 1",
|
||||||
|
"secondColor": "Color de perfil dos",
|
||||||
|
"title": "Edita la foto de perfil",
|
||||||
|
"userIcon": "Icona d'usuari"
|
||||||
|
},
|
||||||
|
"register": {
|
||||||
|
"cta": "Comença",
|
||||||
|
"text": "Compartiu el progrés de la visualització entre dispositius i manteniu-los sincronitzats.",
|
||||||
|
"title": "Sincronització amb el núvol"
|
||||||
|
},
|
||||||
|
"title": "Compte"
|
||||||
|
},
|
||||||
|
"appearance": {
|
||||||
|
"activeTheme": "Actiu",
|
||||||
|
"themes": {
|
||||||
|
"blue": "Blau",
|
||||||
|
"default": "Per defecte",
|
||||||
|
"gray": "Gris",
|
||||||
|
"red": "Vermell",
|
||||||
|
"teal": "Verd blavós"
|
||||||
|
},
|
||||||
|
"title": "Aparença"
|
||||||
|
},
|
||||||
|
"connections": {
|
||||||
|
"server": {
|
||||||
|
"description": "Si voleu connectar-vos a un rerefons personalitzat per a emmagatzemar les vostres dades, activeu-ho i proporcioneu l'URL. <0>Instruccions.</0>",
|
||||||
|
"label": "Servidor personalitzat",
|
||||||
|
"urlLabel": "URL del servidor personalitzat"
|
||||||
|
},
|
||||||
|
"setup": {
|
||||||
|
"doSetup": "Configura",
|
||||||
|
"errorStatus": {
|
||||||
|
"description": "Sembla que heu de revisar un o més elements de la configuració.",
|
||||||
|
"title": "S'ha de revisar algun element"
|
||||||
|
},
|
||||||
|
"itemError": "Hi ha alguna cosa malament en la configuració. Torneu a fer la configuració per a solucionar-ho.",
|
||||||
|
"items": {
|
||||||
|
"default": "Configuració per defecte",
|
||||||
|
"extension": "Extensió",
|
||||||
|
"proxy": "Servidor personalitzat"
|
||||||
|
},
|
||||||
|
"redoSetup": "Reconfigura",
|
||||||
|
"successStatus": {
|
||||||
|
"description": "Tot està preparat perquè comenceu a mirar el vostre contingut preferit.",
|
||||||
|
"title": "Tot està configurat!"
|
||||||
|
},
|
||||||
|
"unsetStatus": {
|
||||||
|
"description": "Feu clic al botó de la dreta per a iniciar el procés de configuració.",
|
||||||
|
"title": "No heu fet la configuració"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Connexions",
|
||||||
|
"workers": {
|
||||||
|
"addButton": "Afig un «worker»",
|
||||||
|
"description": "Per fer funcionar l'aplicació, tot el trànsit s'encamina a través de servidors intermediaris. Activeu-ho si voleu portar els vostres propis «workers». <0>Instruccions.</0>",
|
||||||
|
"emptyState": "Encara no hi ha «workers», afegiu-ne un a continuació",
|
||||||
|
"label": "Utilitza «workers» intermediaris personalitzats",
|
||||||
|
"urlLabel": "URL dels «workers»",
|
||||||
|
"urlPlaceholder": "https://"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"preferences": {
|
||||||
|
"language": "Llengua de l'aplicació",
|
||||||
|
"languageDescription": "La llengua s'aplica a tota l'aplicació.",
|
||||||
|
"thumbnail": "Genera miniatures",
|
||||||
|
"thumbnailDescription": "Majoritàriament, els vídeos no tenen miniatures. Podeu activar esta opció per a generar-les sobre la marxa, però poden alentir el vídeo.",
|
||||||
|
"thumbnailLabel": "Genera miniatures",
|
||||||
|
"title": "Configuració"
|
||||||
|
},
|
||||||
|
"reset": "Restableix",
|
||||||
|
"save": "Desa",
|
||||||
|
"sidebar": {
|
||||||
|
"info": {
|
||||||
|
"appVersion": "Versió de l'aplicació",
|
||||||
|
"backendUrl": "URL del rerefons",
|
||||||
|
"backendVersion": "Versió del rerefons",
|
||||||
|
"hostname": "Nom de l'amfitrió",
|
||||||
|
"insecure": "Insegur",
|
||||||
|
"notLoggedIn": "No heu iniciat sessió",
|
||||||
|
"secure": "Segur",
|
||||||
|
"title": "Informació de l'aplicació",
|
||||||
|
"unknownVersion": "Desconeguda",
|
||||||
|
"userId": "ID d'usuari"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Difuminat del fons",
|
||||||
|
"backgroundLabel": "Opacitat del fons",
|
||||||
|
"colorLabel": "Color",
|
||||||
|
"previewQuote": "No he de tindre por. La por és l'assassina de la ment.",
|
||||||
|
"textSizeLabel": "Grandària del text",
|
||||||
|
"title": "Subtítols"
|
||||||
|
},
|
||||||
|
"unsaved": "Hi ha canvis sense desar"
|
||||||
|
}
|
||||||
|
}
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Připojujete se k <0>{{hostname}}</0> - potvrďte, že mu věříte před vytvořením účtu",
|
"host": "Připojujete se k <0>{{hostname}}</0> - potvrďte, že mu věříte před vytvořením účtu",
|
||||||
"no": "Zpět",
|
"no": "Zpět",
|
||||||
|
"noHost": "Server nebyl nakonfigurován, tudíž si nemůžete vytvořit účet",
|
||||||
|
"noHostTitle": "Server není nakonfigurován!",
|
||||||
"title": "Věříte tomuto serveru?",
|
"title": "Věříte tomuto serveru?",
|
||||||
"yes": "Věřím tomuto serveru"
|
"yes": "Věřím tomuto serveru"
|
||||||
},
|
},
|
||||||
@@ -118,22 +120,33 @@
|
|||||||
"noResults": "Nemohli jsme nic najít!",
|
"noResults": "Nemohli jsme nic najít!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Co si přejete sledovat?",
|
"default": "Co si přejete sledovat?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Co chcete objevit?",
|
||||||
|
"Co je na vašem seznamu sledovaných filmů?",
|
||||||
|
"Jaký je váš oblíbený film?",
|
||||||
|
"Jaký je tvůj oblíbený seriál?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Výsledky vyhledávání"
|
"sectionTitle": "Výsledky vyhledávání"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"day": {
|
"day": {
|
||||||
"default": "Na co byste se chtěli dnes odpoledne dívat?",
|
"default": "Na co byste se chtěli dnes odpoledne dívat?",
|
||||||
"extra": ["Chceš zažít dobrodružství? Jurský Park je pro tebe."]
|
"extra": [
|
||||||
|
"Chceš zažít dobrodružství? Jurský Park je pro tebe."
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Na co byste se chtěli dnes ráno dívat?",
|
"default": "Na co byste se chtěli dnes ráno dívat?",
|
||||||
"extra": ["Slyšel jsem, že Před úsvitem je super."]
|
"extra": [
|
||||||
|
"Slyšel jsem, že Před úsvitem je super"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Na co byste se chtěli dnes večer dívat?",
|
"default": "Na co byste se chtěli dnes večer dívat?",
|
||||||
"extra": ["Unaven? Slyšel jsem, že Vymítač ďábla je super."]
|
"extra": [
|
||||||
|
"Unaven? Slyšel jsem, že Vymítač ďábla je super."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -173,9 +186,12 @@
|
|||||||
"extension": {
|
"extension": {
|
||||||
"back": "Zpět",
|
"back": "Zpět",
|
||||||
"explainer": "Pomocí rozšíření prohlížeče můžete získat nejlepší streamy, které nabízíme. S pouhou instalací.",
|
"explainer": "Pomocí rozšíření prohlížeče můžete získat nejlepší streamy, které nabízíme. S pouhou instalací.",
|
||||||
"extensionHelp": "Pokud jste rozšíření nainstalovali, ale nebylo zjištěno. <bold>Otevřete rozšíření pomocí nabídky rozšíření ve vašem prohlížeči</bold> a postupujte podle pokynů na obrazovce.",
|
"explainerIos": "Bohužel rozšíření není podporováno na iOS. Stiskněte <bold>Zpět</bold> pro výběr jiné možnosti.",
|
||||||
|
"extensionHelp": "Pokud jste rozšíření nainstalovali, ale nebylo zjištěno, <bold>otevřete rozšíření pomocí nabídky rozšíření ve vašem prohlížeči</bold> a postupujte podle pokynů na obrazovce.",
|
||||||
"linkChrome": "Instalovat rozšíření pro Chrome",
|
"linkChrome": "Instalovat rozšíření pro Chrome",
|
||||||
"linkFirefox": "Instalovat rozšíření pro Firefox",
|
"linkFirefox": "Instalovat rozšíření pro Firefox",
|
||||||
|
"notDetecting": "Nainstalováno na Chromu, ale stránka to nezaznamenala? Skuste přenačíst stránku!",
|
||||||
|
"notDetectingAction": "Obnovit stránku",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowed": "Rozšíření není pro tuto stránku povoleno",
|
"disallowed": "Rozšíření není pro tuto stránku povoleno",
|
||||||
"disallowedAction": "Povolit rozšíření",
|
"disallowedAction": "Povolit rozšíření",
|
||||||
@@ -236,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Zkopírovat link HLS playlistu",
|
||||||
"disclaimer": "Stahování probíhá přímo u poskytovatele. movie-web nemá kontrolu nad tím, jak jsou stahování poskytovány.",
|
"disclaimer": "Stahování probíhá přímo u poskytovatele. movie-web nemá kontrolu nad tím, jak jsou stahování poskytovány.",
|
||||||
"downloadSubtitle": "Stáhnout aktuální titulky",
|
"downloadSubtitle": "Stáhnout aktuální titulky",
|
||||||
"downloadVideo": "Stáhnout video",
|
"downloadVideo": "Stáhnout video",
|
||||||
@@ -519,6 +536,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Rozostření pozadí",
|
||||||
"backgroundLabel": "Neprůhlednost pozadí",
|
"backgroundLabel": "Neprůhlednost pozadí",
|
||||||
"colorLabel": "Barva",
|
"colorLabel": "Barva",
|
||||||
"previewQuote": "Nesmím se bát. Strach zabíjí myšlení.",
|
"previewQuote": "Nesmím se bát. Strach zabíjí myšlení.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Du verbindest dich mit <0>{{hostname}}</0> - stelle sicher das du dem Server vertraust, bevor du ein Konto erstellst",
|
"host": "Du verbindest dich mit <0>{{hostname}}</0> - stelle sicher das du dem Server vertraust, bevor du ein Konto erstellst",
|
||||||
"no": "Zurück",
|
"no": "Zurück",
|
||||||
|
"noHost": "Da der Server nicht eingerichtet wurde, kannst du keinen Account erstellen",
|
||||||
|
"noHostTitle": "Server nicht eingerichtet!",
|
||||||
"title": "Vertraust du diesem Server?",
|
"title": "Vertraust du diesem Server?",
|
||||||
"yes": "Ich vertraue diesem Server"
|
"yes": "Ich vertraue diesem Server"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Wir haben nichts gefunden!",
|
"noResults": "Wir haben nichts gefunden!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Was möchtest du schauen?",
|
"default": "Was möchtest du schauen?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Was möchtest du entdecken?",
|
||||||
|
"Was ist auf deiner Merkliste?",
|
||||||
|
"Was ist dein Lieblingsfilm?",
|
||||||
|
"Was ist deine Lieblingsserie?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Suchergebnisse"
|
"sectionTitle": "Suchergebnisse"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Was würdest du diesen Morgen gerne schauen?",
|
"default": "Was würdest du diesen Morgen gerne schauen?",
|
||||||
"extra": ["Before Sunrise soll gut sein"]
|
"extra": [
|
||||||
|
"Before Sunrise soll gut sein"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Was möchtest du diesen Abend gerne schauen?",
|
"default": "Was möchtest du diesen Abend gerne schauen?",
|
||||||
"extra": ["Müde? Ich hab gehört The Exorcist soll gut sein."]
|
"extra": [
|
||||||
|
"Müde? Ich hab gehört The Exorcist soll gut sein."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Serie"
|
"show": "Serie"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Unveröffentlicht"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -241,6 +253,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS-Playlist Link kopieren",
|
||||||
"disclaimer": "Videos werden direkt vom Provider heruntergeladen. movie-web hat keinen Einfluss darauf, wie Downloads bereitgestellt werden.",
|
"disclaimer": "Videos werden direkt vom Provider heruntergeladen. movie-web hat keinen Einfluss darauf, wie Downloads bereitgestellt werden.",
|
||||||
"downloadSubtitle": "Aktuelle Untertitel herunterladen",
|
"downloadSubtitle": "Aktuelle Untertitel herunterladen",
|
||||||
"downloadVideo": "Video herunterladen",
|
"downloadVideo": "Video herunterladen",
|
||||||
@@ -282,6 +295,7 @@
|
|||||||
"title": "Qualität"
|
"title": "Qualität"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Download",
|
"downloadItem": "Download",
|
||||||
"enableSubtitles": "Untettitel aktivieren",
|
"enableSubtitles": "Untettitel aktivieren",
|
||||||
"experienceSection": "Anzeigeerlebnis",
|
"experienceSection": "Anzeigeerlebnis",
|
||||||
@@ -308,8 +322,9 @@
|
|||||||
"unknownOption": "Unbekannt"
|
"unknownOption": "Unbekannt"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Untertitel aus Datei wählen",
|
"customChoice": "Untertiteldatei auswählen oder hier ablegen",
|
||||||
"customizeLabel": "Anpassen",
|
"customizeLabel": "Anpassen",
|
||||||
|
"dropSubtitleFile": "Untertiteldatei hier ablegen",
|
||||||
"offChoice": "Aus",
|
"offChoice": "Aus",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Eigene Untertitel",
|
"backlink": "Eigene Untertitel",
|
||||||
@@ -367,6 +382,13 @@
|
|||||||
"title": "Hoppla, etwas ist schiefgegangen!"
|
"title": "Hoppla, etwas ist schiefgegangen!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Erweiterung deaktiviert",
|
||||||
|
"enableExtension": "Erweiterung aktivieren",
|
||||||
|
"homeButton": "Zur Startseite",
|
||||||
|
"text": "Du hast die movie-webe Erweiterung installiert. Um die Erweiterung zu benutzen, musst du sie für diese Seite aktivieren.",
|
||||||
|
"title": "Bitte aktiviere die Erweiterung"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Ein Fehler ist aufgetreten",
|
"failure": "Ein Fehler ist aufgetreten",
|
||||||
"notFound": "Video nicht gefunden",
|
"notFound": "Video nicht gefunden",
|
||||||
@@ -524,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Hintergrundunschärfe",
|
||||||
"backgroundLabel": "Hintergrunddeckkraft",
|
"backgroundLabel": "Hintergrunddeckkraft",
|
||||||
"colorLabel": "Farbe",
|
"colorLabel": "Farbe",
|
||||||
"previewQuote": "Das Gras wächst nicht schneller, wenn man daran zieht.",
|
"previewQuote": "Das Gras wächst nicht schneller, wenn man daran zieht.",
|
||||||
|
@@ -148,6 +148,7 @@
|
|||||||
},
|
},
|
||||||
"media": {
|
"media": {
|
||||||
"episodeDisplay": "S{{season}} E{{episode}}",
|
"episodeDisplay": "S{{season}} E{{episode}}",
|
||||||
|
"unreleased": "Unreleased",
|
||||||
"types": {
|
"types": {
|
||||||
"movie": "Movie",
|
"movie": "Movie",
|
||||||
"show": "Show"
|
"show": "Show"
|
||||||
@@ -294,6 +295,7 @@
|
|||||||
"enableSubtitles": "Enable Subtitles",
|
"enableSubtitles": "Enable Subtitles",
|
||||||
"experienceSection": "Viewing experience",
|
"experienceSection": "Viewing experience",
|
||||||
"playbackItem": "Playback settings",
|
"playbackItem": "Playback settings",
|
||||||
|
"audioItem": "Audio",
|
||||||
"qualityItem": "Quality",
|
"qualityItem": "Quality",
|
||||||
"sourceItem": "Video sources",
|
"sourceItem": "Video sources",
|
||||||
"subtitleItem": "Subtitle settings",
|
"subtitleItem": "Subtitle settings",
|
||||||
@@ -316,7 +318,7 @@
|
|||||||
"unknownOption": "Unknown"
|
"unknownOption": "Unknown"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Select subtitle from file",
|
"customChoice": "Drop or upload file",
|
||||||
"customizeLabel": "Customize",
|
"customizeLabel": "Customize",
|
||||||
"offChoice": "Off",
|
"offChoice": "Off",
|
||||||
"settings": {
|
"settings": {
|
||||||
@@ -325,7 +327,8 @@
|
|||||||
"fixCapitals": "Fix capitalization"
|
"fixCapitals": "Fix capitalization"
|
||||||
},
|
},
|
||||||
"title": "Subtitles",
|
"title": "Subtitles",
|
||||||
"unknownLanguage": "Unknown"
|
"unknownLanguage": "Unknown",
|
||||||
|
"dropSubtitleFile": "Drop subtitle file here"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"metadata": {
|
"metadata": {
|
||||||
@@ -359,7 +362,8 @@
|
|||||||
},
|
},
|
||||||
"nextEpisode": {
|
"nextEpisode": {
|
||||||
"cancel": "Cancel",
|
"cancel": "Cancel",
|
||||||
"next": "Next episode"
|
"next": "Next episode",
|
||||||
|
"nextSeason": "Next season"
|
||||||
},
|
},
|
||||||
"playbackError": {
|
"playbackError": {
|
||||||
"badge": "Playback error",
|
"badge": "Playback error",
|
||||||
@@ -386,6 +390,13 @@
|
|||||||
"homeButton": "Go home",
|
"homeButton": "Go home",
|
||||||
"text": "We have searched through our providers and cannot find the media you are looking for! We do not host the media and have no control over what is available. Please click 'Show details' below for more details.",
|
"text": "We have searched through our providers and cannot find the media you are looking for! We do not host the media and have no control over what is available. Please click 'Show details' below for more details.",
|
||||||
"title": "We couldn't find that"
|
"title": "We couldn't find that"
|
||||||
|
},
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Extension disabled",
|
||||||
|
"homeButton": "Go home",
|
||||||
|
"enableExtension": "Enable extension",
|
||||||
|
"title": "Please enable the extension",
|
||||||
|
"text": "You've installed the movie-web extension. To start using it, you need to enable the extension for this site."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"time": {
|
"time": {
|
||||||
@@ -513,6 +524,9 @@
|
|||||||
"thumbnail": "Generate thumbnails",
|
"thumbnail": "Generate thumbnails",
|
||||||
"thumbnailDescription": "Most of the time, videos don't have thumbnails. You can enable this setting to generate them on the fly but they can make your video slower.",
|
"thumbnailDescription": "Most of the time, videos don't have thumbnails. You can enable this setting to generate them on the fly but they can make your video slower.",
|
||||||
"thumbnailLabel": "Generate thumbnails",
|
"thumbnailLabel": "Generate thumbnails",
|
||||||
|
"autoplay": "Autoplay",
|
||||||
|
"autoplayDescription": "Automatically play the next episode in a series after reaching the end. Can be enabled by users with the browser extension, a custom proxy, or with the default setup if allowed by the host.",
|
||||||
|
"autoplayLabel": "Autoplay",
|
||||||
"title": "Preferences"
|
"title": "Preferences"
|
||||||
},
|
},
|
||||||
"reset": "Reset",
|
"reset": "Reset",
|
||||||
@@ -533,6 +547,7 @@
|
|||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"backgroundLabel": "Background opacity",
|
"backgroundLabel": "Background opacity",
|
||||||
|
"backgroundBlurLabel": "Background blur",
|
||||||
"colorLabel": "Color",
|
"colorLabel": "Color",
|
||||||
"previewQuote": "I must not fear. Fear is the mind-killer.",
|
"previewQuote": "I must not fear. Fear is the mind-killer.",
|
||||||
"textSizeLabel": "Text size",
|
"textSizeLabel": "Text size",
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
"q3": {
|
"q3": {
|
||||||
"body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.",
|
"body": "Nuestros resultados de búsqueda están alimentados por The Movie Database (TMDB) y se muestran independientemente de si nuestras fuentes realmente tienen el contenido.",
|
||||||
"title": "Los resultados de búsqueda muestran la serie o película, ¿por qué no puedo reproducirla?"
|
"title": "Los resultados de búsqueda muestran la serie o película, ¿Por qué no puedo reproducirla?"
|
||||||
},
|
},
|
||||||
"title": "Acerca de movie-web"
|
"title": "Acerca de movie-web"
|
||||||
},
|
},
|
||||||
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Te estás conectando a <0>{{hostname}}</0> - por favor, confirma si confías en este antes de crear una cuenta",
|
"host": "Te estás conectando a <0>{{hostname}}</0> - por favor, confirma si confías en este antes de crear una cuenta",
|
||||||
"no": "Regresar",
|
"no": "Regresar",
|
||||||
|
"noHost": "El servidor no se ha configurado, por lo tanto, no puede crear una cuenta",
|
||||||
|
"noHostTitle": "¡El servidor no está configurado!",
|
||||||
"title": "¿Confías en este servidor?",
|
"title": "¿Confías en este servidor?",
|
||||||
"yes": "Confío en este servidor"
|
"yes": "Confío en este servidor"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "¡No pudimos encontrar nada!",
|
"noResults": "¡No pudimos encontrar nada!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "¿Qué te gustaría ver?",
|
"default": "¿Qué te gustaría ver?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"¿Qué quieres explorar?",
|
||||||
|
"¿Qué hay en tu lista de reproducción?",
|
||||||
|
"¿Cuál es tu película favorita?",
|
||||||
|
"¿Cuál es tu serie favorita?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Resultados de búsqueda"
|
"sectionTitle": "Resultados de búsqueda"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "¿Qué te gustaría ver esta mañana?",
|
"default": "¿Qué te gustaría ver esta mañana?",
|
||||||
"extra": ["Escuché que “Antes del amanecer” es buena"]
|
"extra": [
|
||||||
|
"Escuché que “Antes del amanecer” es buena"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "¿Qué te gustaría ver esta noche?",
|
"default": "¿Qué te gustaría ver esta noche?",
|
||||||
"extra": ["¿Cansado? Escuché que “El Exorcista” es buena."]
|
"extra": [
|
||||||
|
"¿Cansado? Escuché que “El Exorcista” es buena."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -170,7 +181,7 @@
|
|||||||
"cancel": "Cancelar",
|
"cancel": "Cancelar",
|
||||||
"confirm": "Usar configuración por defecto",
|
"confirm": "Usar configuración por defecto",
|
||||||
"description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.",
|
"description": "La configuración predeterminada no tiene las mejores transmisiones y puede ser insoportablemente lenta.",
|
||||||
"title": "Estás seguro?"
|
"title": "¿Estás seguro?"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"back": "Volver atrás",
|
"back": "Volver atrás",
|
||||||
@@ -283,6 +294,7 @@
|
|||||||
"title": "Calidad"
|
"title": "Calidad"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Descargar",
|
"downloadItem": "Descargar",
|
||||||
"enableSubtitles": "Habilitar subtítulos",
|
"enableSubtitles": "Habilitar subtítulos",
|
||||||
"experienceSection": "Experiencia de visualización",
|
"experienceSection": "Experiencia de visualización",
|
||||||
@@ -309,8 +321,9 @@
|
|||||||
"unknownOption": "Desconocida"
|
"unknownOption": "Desconocida"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Seleccionar subtítulo del archivo",
|
"customChoice": "Sube o arrastra un archivo",
|
||||||
"customizeLabel": "Personalizar",
|
"customizeLabel": "Personalizar",
|
||||||
|
"dropSubtitleFile": "Suelta el archivo de subtítulos aquí",
|
||||||
"offChoice": "Apagado",
|
"offChoice": "Apagado",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Subtítulos personalizados",
|
"backlink": "Subtítulos personalizados",
|
||||||
@@ -388,7 +401,7 @@
|
|||||||
"shortRemaining": "-{{timeLeft}}"
|
"shortRemaining": "-{{timeLeft}}"
|
||||||
},
|
},
|
||||||
"turnstile": {
|
"turnstile": {
|
||||||
"description": "Por favor, confirma que eres humano completando el Captcha. Esto es para mantener movie-web seguro!",
|
"description": "Por favor, confirma que eres humano completando el Captcha. ¡Esto es para mantener movie-web seguro!",
|
||||||
"error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.",
|
"error": "Ha habido un error al verificar tu humanidad. Por favor, prueba de nuevo.",
|
||||||
"title": "Necesitamos verificar que eres humano.",
|
"title": "Necesitamos verificar que eres humano.",
|
||||||
"verifyingHumanity": "Verificando tu hunanidad…"
|
"verifyingHumanity": "Verificando tu hunanidad…"
|
||||||
@@ -483,7 +496,7 @@
|
|||||||
"redoSetup": "Rehacer configuración",
|
"redoSetup": "Rehacer configuración",
|
||||||
"successStatus": {
|
"successStatus": {
|
||||||
"description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.",
|
"description": "Todo lo necesario está en su sitio para que empieces a ver tu contenido favorito.",
|
||||||
"title": "Todo está configurado!"
|
"title": "¡Todo está configurado!"
|
||||||
},
|
},
|
||||||
"unsetStatus": {
|
"unsetStatus": {
|
||||||
"description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.",
|
"description": "Haga clic en el botón a la derecha para iniciar el proceso de configuración.",
|
||||||
@@ -525,6 +538,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Desefoque de fondo",
|
||||||
"backgroundLabel": "Opacidad del fondo",
|
"backgroundLabel": "Opacidad del fondo",
|
||||||
"colorLabel": "Color",
|
"colorLabel": "Color",
|
||||||
"previewQuote": "No debo temer. El miedo es el asesino de la mente.",
|
"previewQuote": "No debo temer. El miedo es el asesino de la mente.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda",
|
"host": "Ühendate <0>{{hostname}}</0> - enne konto tegemist kinnitage, et usaldate seda",
|
||||||
"no": "Tagasi",
|
"no": "Tagasi",
|
||||||
|
"noHost": "Server ei ole konfigureeritud, seega ei saa kontot luua",
|
||||||
|
"noHostTitle": "Server ei ole konfigureeritud!",
|
||||||
"title": "Kas usaldate seda serverit?",
|
"title": "Kas usaldate seda serverit?",
|
||||||
"yes": "Usaldan seda serverit"
|
"yes": "Usaldan seda serverit"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Me ei leidnud midagi!",
|
"noResults": "Me ei leidnud midagi!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Mida tahate vaadata?",
|
"default": "Mida tahate vaadata?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Mida soovite uurida?",
|
||||||
|
"Mis on teie nimekirjas?",
|
||||||
|
"Milline on teie lemmikfilm?",
|
||||||
|
"Milline on teie lemmiksari?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Otsingutulemused"
|
"sectionTitle": "Otsingutulemused"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Mida te soovite täna hommikul vaadata?",
|
"default": "Mida te soovite täna hommikul vaadata?",
|
||||||
"extra": ["Ma kuulsin, et Before Sunrise on hea"]
|
"extra": [
|
||||||
|
"Ma kuulsin, et Before Sunrise on hea"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Mida te soovite täna õhtul vaadata?",
|
"default": "Mida te soovite täna õhtul vaadata?",
|
||||||
"extra": ["Väsinud? Olen kuulnud, et The Exorcist on hea."]
|
"extra": [
|
||||||
|
"Väsinud? Olen kuulnud, et The Exorcist on hea."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Saade"
|
"show": "Saade"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Avaldamata"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -241,6 +253,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Kopeeri HLS esitusloendi link",
|
||||||
"disclaimer": "Allalaadimine toimub otse teenusepakkujalt. movie-web ei saa kontrollida, kuidas allalaadimine toimub.",
|
"disclaimer": "Allalaadimine toimub otse teenusepakkujalt. movie-web ei saa kontrollida, kuidas allalaadimine toimub.",
|
||||||
"downloadSubtitle": "Laadige alla praegune subtiiter",
|
"downloadSubtitle": "Laadige alla praegune subtiiter",
|
||||||
"downloadVideo": "Lae alla video",
|
"downloadVideo": "Lae alla video",
|
||||||
@@ -282,6 +295,7 @@
|
|||||||
"title": "Kvaliteet"
|
"title": "Kvaliteet"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Lae alla",
|
"downloadItem": "Lae alla",
|
||||||
"enableSubtitles": "Luba Subtiitrid",
|
"enableSubtitles": "Luba Subtiitrid",
|
||||||
"experienceSection": "Vaatamise kogemus",
|
"experienceSection": "Vaatamise kogemus",
|
||||||
@@ -308,8 +322,9 @@
|
|||||||
"unknownOption": "Teadmata"
|
"unknownOption": "Teadmata"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Vali subtiitrid failist",
|
"customChoice": "Kukuta või vali subtiitri fail",
|
||||||
"customizeLabel": "Kohanda",
|
"customizeLabel": "Kohanda",
|
||||||
|
"dropSubtitleFile": "Kukuta subtiitri fail siia",
|
||||||
"offChoice": "Välja",
|
"offChoice": "Välja",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Kohandatud subtiitrid",
|
"backlink": "Kohandatud subtiitrid",
|
||||||
@@ -367,6 +382,13 @@
|
|||||||
"title": "Video mängimine ebaōnnestus!"
|
"title": "Video mängimine ebaōnnestus!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Brauserilaiendus väljalülitatud",
|
||||||
|
"enableExtension": "Lülita brauserilaiendus sisse",
|
||||||
|
"homeButton": "Tagasi",
|
||||||
|
"text": "Olete allalaadinud movie-web'i brauserilaiendue. Selle kasutamiseks peate vajutama brauserilaienduse peale ning andma ligipääsu praegusele saidile.",
|
||||||
|
"title": "Palun lülita brauserilaiendus sisse"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Tekkis viga",
|
"failure": "Tekkis viga",
|
||||||
"notFound": "Ei ole videot",
|
"notFound": "Ei ole videot",
|
||||||
@@ -524,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Tausta hägusus",
|
||||||
"backgroundLabel": "Tausta läbipaistmatus",
|
"backgroundLabel": "Tausta läbipaistmatus",
|
||||||
"colorLabel": "Värv",
|
"colorLabel": "Värv",
|
||||||
"previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.",
|
"previewQuote": "Ma ei tohi karta. Hirm on meelemõrvar.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "شما در حال اتصال به <0>{{hostname}}</0> هستید - لطفا قبل از ایجاد حساب کاربری خود از اعتماد به آن اطمینان حاصل کنید",
|
"host": "شما در حال اتصال به <0>{{hostname}}</0> هستید - لطفا قبل از ایجاد حساب کاربری خود از اعتماد به آن اطمینان حاصل کنید",
|
||||||
"no": "بازگشت",
|
"no": "بازگشت",
|
||||||
|
"noHost": "سرور پیکربندی نشده، بنابرین نمیتوانید حسابی ایجاد کنید",
|
||||||
|
"noHostTitle": "سرور پیکر بندی نشده!",
|
||||||
"title": "آیا به این سرور اعتماد دارید؟",
|
"title": "آیا به این سرور اعتماد دارید؟",
|
||||||
"yes": "بله اعتماد دارم"
|
"yes": "بله اعتماد دارم"
|
||||||
},
|
},
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"badge": "مشکلی پیش آمده",
|
"badge": "مشکلی رخ داد",
|
||||||
"details": "جزئیات خطا",
|
"details": "جزئیات خطا",
|
||||||
"reloadPage": "صفحه را دوباره بارگذاری کنید",
|
"reloadPage": "صفحه را دوباره بارگذاری کنید",
|
||||||
"showError": "نمایش جزئیات خطا",
|
"showError": "نمایش جزئیات خطا",
|
||||||
@@ -87,7 +89,7 @@
|
|||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"github": "گیت هاب"
|
"github": "گیت هاب"
|
||||||
},
|
},
|
||||||
"tagline": "فیلم و سریال مورد علاقهتان را با این برنامه استریم متن باز تماشا کنید."
|
"tagline": "فیلم و سریال مورد علاقهتان را با این برنامه استریم اوپن سورس تماشا کنید."
|
||||||
},
|
},
|
||||||
"global": {
|
"global": {
|
||||||
"name": "مووی-وب",
|
"name": "مووی-وب",
|
||||||
@@ -115,7 +117,7 @@
|
|||||||
"allResults": "همه چیزی بود که داشتیم!",
|
"allResults": "همه چیزی بود که داشتیم!",
|
||||||
"failed": "چیزی پیدا نشد، دوباره تلاش کنید!",
|
"failed": "چیزی پیدا نشد، دوباره تلاش کنید!",
|
||||||
"loading": "در حال بارگذاری...",
|
"loading": "در حال بارگذاری...",
|
||||||
"noResults": "چیزی پیدا نکردیم!",
|
"noResults": "نتونستیم چیزی پیدا کنیم!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "چه میخواهید تماشا کنید؟",
|
"default": "چه میخواهید تماشا کنید؟",
|
||||||
"extra": [
|
"extra": [
|
||||||
@@ -153,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "فیلم",
|
"movie": "فیلم",
|
||||||
"show": "سریال"
|
"show": "سریال"
|
||||||
}
|
},
|
||||||
|
"unreleased": "منتشر نشده"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -292,6 +295,7 @@
|
|||||||
"title": "کیفیت"
|
"title": "کیفیت"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "صدا",
|
||||||
"downloadItem": "دانلود",
|
"downloadItem": "دانلود",
|
||||||
"enableSubtitles": "فعال کردن زیرنویس",
|
"enableSubtitles": "فعال کردن زیرنویس",
|
||||||
"experienceSection": "تجربه مشاهده",
|
"experienceSection": "تجربه مشاهده",
|
||||||
@@ -308,7 +312,7 @@
|
|||||||
},
|
},
|
||||||
"noEmbeds": {
|
"noEmbeds": {
|
||||||
"text": "نتوانستیم اطلاعات را پیدا کنیم، لطفا منبع دیگری را امتحان کنید.",
|
"text": "نتوانستیم اطلاعات را پیدا کنیم، لطفا منبع دیگری را امتحان کنید.",
|
||||||
"title": "اطلاعات پیدا نشد"
|
"title": "هیج اطلاعاتی پیدا نشد"
|
||||||
},
|
},
|
||||||
"noStream": {
|
"noStream": {
|
||||||
"text": "فیلم یا سریال شما در این منبع وجود ندارد.",
|
"text": "فیلم یا سریال شما در این منبع وجود ندارد.",
|
||||||
@@ -318,8 +322,9 @@
|
|||||||
"unknownOption": "ناشناخته"
|
"unknownOption": "ناشناخته"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "انتخاب زیرنویس از فایل",
|
"customChoice": "فایل را رها یا آپلود کنید",
|
||||||
"customizeLabel": "شخصی سازی",
|
"customizeLabel": "شخصی سازی",
|
||||||
|
"dropSubtitleFile": "فایل زیرنویس را اینجا بکشید",
|
||||||
"offChoice": "خاموش",
|
"offChoice": "خاموش",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "زیرنویس سفارشی",
|
"backlink": "زیرنویس سفارشی",
|
||||||
@@ -367,16 +372,23 @@
|
|||||||
"badge": "مشکلی در پخش به وجود آمده",
|
"badge": "مشکلی در پخش به وجود آمده",
|
||||||
"errors": {
|
"errors": {
|
||||||
"errorAborted": "دریافت محتوا با درخواست کاربر لغو شد.",
|
"errorAborted": "دریافت محتوا با درخواست کاربر لغو شد.",
|
||||||
"errorDecode": "با وجود اینکه قبلا مشخص شده بود که قابل استفاده است، یک خطا در هنگام تلاش برای رمزگشایی رسانه رخ داد که باعث مشکل شد.",
|
"errorDecode": "با وجود اینکه قبلا مشخص شده بود که قابل استفاده است، یک خطا در هنگام تلاش برای رمزگشایی محتوا رخ داد که باعث مشکل شد.",
|
||||||
"errorGenericMedia": "خطای محتوای ناشناخته رخ داد.",
|
"errorGenericMedia": "خطای محتوای ناشناخته رخ داد.",
|
||||||
"errorNetwork": "با وجود اینکه قبلا در دسترس بود، نوعی خطای شبکه رخ داد که مانع از دریافت محتوا شد.",
|
"errorNetwork": "با وجود اینکه قبلا در دسترس بود، نوعی خطای شبکه رخ داد که مانع از دریافت محتوا شد.",
|
||||||
"errorNotSupported": "محتوا یا ارائه دهنده رسانه پشتیبانی نمیشود."
|
"errorNotSupported": "محتوا یا ارائه دهنده محتوا پشتیبانی نمیشود."
|
||||||
},
|
},
|
||||||
"homeButton": "بازگشت به خانه",
|
"homeButton": "بازگشت به خانه",
|
||||||
"text": "مشکلی در پخش محتوا وجود داشت. لطفا دوباره تلاش کنید.",
|
"text": "مشکلی در پخش محتوا وجود داشت. لطفا دوباره تلاش کنید.",
|
||||||
"title": "پخش ویدئو موفقیت آمیز نبود!"
|
"title": "پخش ویدئو موفقیت آمیز نبود!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "اکستنشن غیر فعال شد",
|
||||||
|
"enableExtension": "اکستنشن را فعال کنید",
|
||||||
|
"homeButton": "خانه",
|
||||||
|
"text": "شما اکستنشن مووی-وب را نصب کردید. برای شروع استفاده از ان، نیاز به فعال کردن آن دارید",
|
||||||
|
"title": "لطفا اکستنشن را فعال کنید"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "مشکلی پیش آمده",
|
"failure": "مشکلی پیش آمده",
|
||||||
"notFound": "این ویدیو وجود ندارد",
|
"notFound": "این ویدیو وجود ندارد",
|
||||||
@@ -386,7 +398,7 @@
|
|||||||
"badge": "پیدا نشد",
|
"badge": "پیدا نشد",
|
||||||
"detailsButton": "نمایش جزئیات",
|
"detailsButton": "نمایش جزئیات",
|
||||||
"homeButton": "بازگشت به خانه",
|
"homeButton": "بازگشت به خانه",
|
||||||
"text": "ما در ارائه دهندگان جستجو کرده ایم ولی نمی توانیم محتوایی را که به دنبال آن را هستید پیدا کنیم! ما رسانه ها را میزبانی نمی کنیم و هیچ کنترلی بر آنچه در دسترس است نداریم. لطفا برای جزئیات بیشتر روی \"نمایش جزئیات\" در زیر کلیک کنید.",
|
"text": "ما در ارائه دهندگان جستجو کرده ایم ولی نمی توانیم محتوایی را که به دنبال آن را هستید پیدا کنیم! ما محتواها را میزبانی نمی کنیم و هیچ کنترلی بر آنچه در دسترس است نداریم. لطفا برای جزئیات بیشتر روی \"نمایش جزئیات\" در زیر کلیک کنید.",
|
||||||
"title": "نتونستیم پیداش کنیم"
|
"title": "نتونستیم پیداش کنیم"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -455,7 +467,7 @@
|
|||||||
},
|
},
|
||||||
"register": {
|
"register": {
|
||||||
"cta": "شروع کنید",
|
"cta": "شروع کنید",
|
||||||
"text": "پیشرفت تماشای خود را بین دستگاهها به اشتراک بگذارید و آنها را با یکدیگر همگام سازی کنید.",
|
"text": "جریان تماشای خود را بین دستگاهها به اشتراک بگذارید و آنها را با یکدیگر همگام سازی کنید.",
|
||||||
"title": "همگام سازی"
|
"title": "همگام سازی"
|
||||||
},
|
},
|
||||||
"title": "حساب کاربری"
|
"title": "حساب کاربری"
|
||||||
@@ -475,7 +487,7 @@
|
|||||||
"server": {
|
"server": {
|
||||||
"description": "اگر میخواید به یک بک-اند سفارشی برای ذخیره داده متصل شوید، با فعال و ارائه استفاده این لینک ادامه دهید. <0>دستورالعمل ها.</0>",
|
"description": "اگر میخواید به یک بک-اند سفارشی برای ذخیره داده متصل شوید، با فعال و ارائه استفاده این لینک ادامه دهید. <0>دستورالعمل ها.</0>",
|
||||||
"label": "سرور سفارشی",
|
"label": "سرور سفارشی",
|
||||||
"urlLabel": "لینک سرور سفارشی"
|
"urlLabel": "لینک سرور کاستوم"
|
||||||
},
|
},
|
||||||
"setup": {
|
"setup": {
|
||||||
"doSetup": "راه اندازی کنید",
|
"doSetup": "راه اندازی کنید",
|
||||||
@@ -491,7 +503,7 @@
|
|||||||
},
|
},
|
||||||
"redoSetup": "تنظیم مجدد",
|
"redoSetup": "تنظیم مجدد",
|
||||||
"successStatus": {
|
"successStatus": {
|
||||||
"description": "همه چیز برای شروع تماشای محتوای مورد علاقهتان آماده است.",
|
"description": "همه چیز برای شروع تماشای فیلم مورد علاقهتان آماده است.",
|
||||||
"title": "همه چیز تنظیم شده است!"
|
"title": "همه چیز تنظیم شده است!"
|
||||||
},
|
},
|
||||||
"unsetStatus": {
|
"unsetStatus": {
|
||||||
@@ -504,7 +516,7 @@
|
|||||||
"addButton": "اضافه کردن worker جدید",
|
"addButton": "اضافه کردن worker جدید",
|
||||||
"description": "برای ایجاد عملکرد برنامه، تمام ترافیک از طریق پروکسی ها هدایت می شود. اگر میخواید این کار انجام دهید حتما از worker های خودتان استفاده کنید. <0>دستورالعمل ها.</0>",
|
"description": "برای ایجاد عملکرد برنامه، تمام ترافیک از طریق پروکسی ها هدایت می شود. اگر میخواید این کار انجام دهید حتما از worker های خودتان استفاده کنید. <0>دستورالعمل ها.</0>",
|
||||||
"emptyState": "هنوز هیچ worker ای وجود ندارد، یکی اضافه کنید",
|
"emptyState": "هنوز هیچ worker ای وجود ندارد، یکی اضافه کنید",
|
||||||
"label": "استفاده از worker های پروکسی سفارشی",
|
"label": "از پروکسی worker کاستوم استفاده کنید",
|
||||||
"urlLabel": "لینک worker ها",
|
"urlLabel": "لینک worker ها",
|
||||||
"urlPlaceholder": "https://"
|
"urlPlaceholder": "https://"
|
||||||
}
|
}
|
||||||
@@ -513,7 +525,7 @@
|
|||||||
"language": "زبان برنامه",
|
"language": "زبان برنامه",
|
||||||
"languageDescription": "زبان برای کل برنامه اعمال شد.",
|
"languageDescription": "زبان برای کل برنامه اعمال شد.",
|
||||||
"thumbnail": "ایجاد تامبنیل",
|
"thumbnail": "ایجاد تامبنیل",
|
||||||
"thumbnailDescription": "بیشتر اوقات، ویدیوها تامبنیل ندارند. شما می توانید این تنظیم را فعال کنید تا آنها را در لحظه تولید کنید، اما آنها می توانند ویدیوی شما را کندتر کنند.",
|
"thumbnailDescription": "بیشتر اوقات، ویدیوها تامبنیل ندارند. شما می توانید این تنظیم را فعال کنید تا آنها را در لحظه ببینید، اما آنها می توانند ویدیوی شما را کندتر کنند.",
|
||||||
"thumbnailLabel": "ایجاد تامبنیل",
|
"thumbnailLabel": "ایجاد تامبنیل",
|
||||||
"title": "اولویت ها"
|
"title": "اولویت ها"
|
||||||
},
|
},
|
||||||
@@ -524,8 +536,8 @@
|
|||||||
"appVersion": "نسخه برنامه",
|
"appVersion": "نسخه برنامه",
|
||||||
"backendUrl": "لینک بک-اند",
|
"backendUrl": "لینک بک-اند",
|
||||||
"backendVersion": "نسخه بک-اند",
|
"backendVersion": "نسخه بک-اند",
|
||||||
"hostname": "نام میزبان",
|
"hostname": "نام هاست",
|
||||||
"insecure": "نا امن",
|
"insecure": "ناامن",
|
||||||
"notLoggedIn": "شما وارد نشده اید",
|
"notLoggedIn": "شما وارد نشده اید",
|
||||||
"secure": "امن",
|
"secure": "امن",
|
||||||
"title": "اطلاعات برنامه",
|
"title": "اطلاعات برنامه",
|
||||||
@@ -534,11 +546,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "تاری پس زمینه",
|
||||||
"backgroundLabel": "شفافیت پسزمینه",
|
"backgroundLabel": "شفافیت پسزمینه",
|
||||||
"colorLabel": "رنگ",
|
"colorLabel": "رنگ",
|
||||||
"previewQuote": "نباید بترسم، ترس قاتل ذهن است.",
|
"previewQuote": "نباید بترسم، ترس قاتل ذهن است.",
|
||||||
"textSizeLabel": "اندازه متن",
|
"textSizeLabel": "اندازه متن",
|
||||||
"title": "زیرنویس"
|
"title": "زیرنویسها"
|
||||||
},
|
},
|
||||||
"unsaved": "شما تغییرات ذخیره نشده دارید"
|
"unsaved": "شما تغییرات ذخیره نشده دارید"
|
||||||
}
|
}
|
||||||
|
@@ -7,7 +7,7 @@
|
|||||||
"title": "D'où vient le contenu ?"
|
"title": "D'où vient le contenu ?"
|
||||||
},
|
},
|
||||||
"q2": {
|
"q2": {
|
||||||
"body": "Il est impossible de demander un film ou une série car movie-web ne gère aucun contenu. Le contenu est récupéré en explorant d'autres sites sur Internet.",
|
"body": "Il est impossible de demander un film ou une série, car movie-web ne gère aucun contenu. Le contenu est récupéré en explorant d'autres sites sur Internet.",
|
||||||
"title": "Où puis-je demander une série ou un film ?"
|
"title": "Où puis-je demander une série ou un film ?"
|
||||||
},
|
},
|
||||||
"q3": {
|
"q3": {
|
||||||
@@ -25,26 +25,26 @@
|
|||||||
"deviceNameLabel": "Nom de l'appareil",
|
"deviceNameLabel": "Nom de l'appareil",
|
||||||
"deviceNamePlaceholder": "Téléphone personnel",
|
"deviceNamePlaceholder": "Téléphone personnel",
|
||||||
"generate": {
|
"generate": {
|
||||||
"description": "Le nom d'utilisateur et le mot de passe sont obtenus à partir de votre passphrase. Vous devrez la saisir pour accéder à votre compte, alors gardez-la précieusement",
|
"description": "Le nom d'utilisateur et le mot de passe sont obtenus à partir de votre phrase d'accès. Vous devrez la saisir pour accéder à votre compte, alors gardez-la précieusement",
|
||||||
"next": "J'ai sauvegardé ma passphrase",
|
"next": "J'ai sauvegardé ma phrase d'accès",
|
||||||
"passphraseFrameLabel": "Passphrase",
|
"passphraseFrameLabel": "Phrase d'accès",
|
||||||
"title": "Votre passphrase"
|
"title": "Votre phrase d'accès"
|
||||||
},
|
},
|
||||||
"hasAccount": "Avez-vous déjà un compte ? <0>Connectez-vous ici.</0>",
|
"hasAccount": "Avez-vous déjà un compte ? <0>Connectez-vous ici.</0>",
|
||||||
"login": {
|
"login": {
|
||||||
"description": "Veuillez saisir votre passphrase pour accéder à votre compte",
|
"description": "Veuillez saisir votre phrase d'accès pour accéder à votre compte",
|
||||||
"deviceLengthError": "Veuillez saisir un nom d'appareil",
|
"deviceLengthError": "Veuillez saisir un nom d'appareil",
|
||||||
"passphraseLabel": "Passphrase de 12 mots",
|
"passphraseLabel": "Phrase d'accès de 12 mots",
|
||||||
"passphrasePlaceholder": "Passphrase",
|
"passphrasePlaceholder": "Phrase d'accès",
|
||||||
"submit": "Se connecter",
|
"submit": "Se connecter",
|
||||||
"title": "Connectez-vous à votre compte",
|
"title": "Connectez-vous à votre compte",
|
||||||
"validationError": "Passphrase incorrecte ou incomplète"
|
"validationError": "Phrase d'accès incorrecte ou incomplète"
|
||||||
},
|
},
|
||||||
"register": {
|
"register": {
|
||||||
"information": {
|
"information": {
|
||||||
"color1": "Première couleur de profil",
|
"color1": "Première couleur de profil",
|
||||||
"color2": "Seconde couleur de profil",
|
"color2": "Seconde couleur de profil",
|
||||||
"header": "Veuillez entrer un nom pour votre appareil, choisir une couleur et une icône utilisateur de votre choix",
|
"header": "Veuillez entrer un nom pour votre appareil, choisir vos couleurs et une icône utilisateur de votre choix",
|
||||||
"icon": "Icône d'utilisateur",
|
"icon": "Icône d'utilisateur",
|
||||||
"next": "Suivant",
|
"next": "Suivant",
|
||||||
"title": "Informations du compte"
|
"title": "Informations du compte"
|
||||||
@@ -57,17 +57,19 @@
|
|||||||
},
|
},
|
||||||
"host": "Vous êtes en train de vous connecter à <0>{{hostname}}</0> - veuillez confirmer que vous lui faites confiance avant de créer un compte",
|
"host": "Vous êtes en train de vous connecter à <0>{{hostname}}</0> - veuillez confirmer que vous lui faites confiance avant de créer un compte",
|
||||||
"no": "Retour",
|
"no": "Retour",
|
||||||
|
"noHost": "Le serveur n'a pas été configuré, vous ne pouvez donc pas créer de compte",
|
||||||
|
"noHostTitle": "Serveur non configuré !",
|
||||||
"title": "Avez-vous confiance en ce serveur ?",
|
"title": "Avez-vous confiance en ce serveur ?",
|
||||||
"yes": "Je fais confiance à ce serveur"
|
"yes": "Je fais confiance à ce serveur"
|
||||||
},
|
},
|
||||||
"verify": {
|
"verify": {
|
||||||
"description": "Veuillez saisir votre passphrase pour confirmer que vous l'avez enregistrée et pour créer votre compte",
|
"description": "Veuillez saisir votre phrase d'accès pour confirmer que vous l'avez enregistrée et pour créer votre compte",
|
||||||
"invalidData": "Les données ne sont pas valides",
|
"invalidData": "Les données ne sont pas valides",
|
||||||
"noMatch": "La passphrase ne correspond pas",
|
"noMatch": "La phrase d'accès ne correspond pas",
|
||||||
"passphraseLabel": "Votre passphrase de 12 mots",
|
"passphraseLabel": "Votre phrase d'accès de 12 mots",
|
||||||
"recaptchaFailed": "La validation ReCaptcha a échouée",
|
"recaptchaFailed": "La validation ReCaptcha a échoué",
|
||||||
"register": "Créer un compte",
|
"register": "Créer un compte",
|
||||||
"title": "Resaisissez votre passphrase"
|
"title": "Ressaisissez votre phrase d'accès"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
@@ -80,7 +82,7 @@
|
|||||||
"footer": {
|
"footer": {
|
||||||
"legal": {
|
"legal": {
|
||||||
"disclaimer": "Avertissement",
|
"disclaimer": "Avertissement",
|
||||||
"disclaimerText": "Le site movie-web ne stocke pas de fichiers, mais propose des liens vers des services externes. Les problèmes juridiques doivent être traités avec les fournisseurs et les hébergeurs de fichiers. Les fichiers multimédias diffusés par les fournisseurs de vidéos ne sont pas couverts par movie-web."
|
"disclaimerText": "movie-web ne stocke pas de fichiers, mais propose des liens vers des services externes. Les problèmes juridiques doivent être traités avec les fournisseurs et les hébergeurs de fichiers. Les fichiers multimédias diffusés par les fournisseurs de vidéos ne sont pas couverts par movie-web."
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"discord": "Discord",
|
"discord": "Discord",
|
||||||
@@ -113,12 +115,17 @@
|
|||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"allResults": "C'est tout ce que nous avons !",
|
"allResults": "C'est tout ce que nous avons !",
|
||||||
"failed": "Le média n'a pas été trouvé, veuillez réessayez !",
|
"failed": "Le média n'a pas été trouvé, veuillez réessayer !",
|
||||||
"loading": "Chargement...",
|
"loading": "Chargement...",
|
||||||
"noResults": "Nous n'avons rien trouvé !",
|
"noResults": "Nous n'avons rien trouvé !",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Que voulez-vous voir ?",
|
"default": "Que voulez-vous voir ?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Que voulez-vous explorer ?",
|
||||||
|
"Qu'y a-t-il dans votre liste de lecture ?",
|
||||||
|
"Quel est votre film préféré ?",
|
||||||
|
"Quelle est votre série préférée ?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Résultats de la recherche"
|
"sectionTitle": "Résultats de la recherche"
|
||||||
},
|
},
|
||||||
@@ -131,7 +138,9 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Que voulez-vous regarder ce matin ?",
|
"default": "Que voulez-vous regarder ce matin ?",
|
||||||
"extra": ["Les films, c'est comme les voyages : ça nous ouvre l'esprit"]
|
"extra": [
|
||||||
|
"Les films, c'est comme les voyages : ça nous ouvre l'esprit"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Que voulez-vous regarder ce soir ?",
|
"default": "Que voulez-vous regarder ce soir ?",
|
||||||
@@ -146,11 +155,12 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Série"
|
"show": "Série"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Non publié"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
"offline": "Vérifiez votre connexion internet"
|
"offline": "Veuillez vérifier votre connexion internet"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"about": "À propos de nous",
|
"about": "À propos de nous",
|
||||||
@@ -163,25 +173,25 @@
|
|||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
"badge": "Introuvable",
|
"badge": "Introuvable",
|
||||||
"goHome": "Retourer à l'accueil",
|
"goHome": "Retourner à l'accueil",
|
||||||
"message": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons finalement pas trouvé la page que vous cherchez.",
|
"message": "Nous avons cherché partout : sous les poubelles, dans le placard, derrière le proxy, mais nous n'avons pas pu trouver la page que vous cherchez.",
|
||||||
"title": "Impossible de trouver cette page"
|
"title": "Impossible de trouver cette page"
|
||||||
},
|
},
|
||||||
"onboarding": {
|
"onboarding": {
|
||||||
"defaultConfirm": {
|
"defaultConfirm": {
|
||||||
"cancel": "Annuler",
|
"cancel": "Annuler",
|
||||||
"confirm": "Utiliser la configuration par défaut",
|
"confirm": "Utiliser la configuration par défaut",
|
||||||
"description": "La configuration par défaut n'offre pas les meilleurs flux et peut être insupportablement lente.",
|
"description": "La configuration par défaut n'offre pas les meilleurs flux et peut-être insupportablement lente.",
|
||||||
"title": "Êtes-vous sûr ?"
|
"title": "Êtes-vous sûr ?"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"back": "Revenir en arrière",
|
"back": "Revenir en arrière",
|
||||||
"explainer": "En utilisant l'extension de navigateur, vous pouvez obtenir les meilleurs flux que nous avons à offrir. Avec juste une simple installation.",
|
"explainer": "En utilisant l'extension de navigateur, vous pouvez obtenir les meilleurs flux que nous avons à offrir. Avec juste une simple installation.",
|
||||||
"explainerIos": "Malheureusement, l'extension web n'est pas prise en charge sur iOS, appuyez sur <bold> Revenir en arrière </bold> pour choisir une autre option.",
|
"explainerIos": "Malheureusement, l'extension web n'est pas prise en charge sur iOS, appuyez sur <bold>Retour</bold> pour choisir une autre option.",
|
||||||
"extensionHelp": "Si vous avez installé l'extension mais qu'elle n'est pas détectée, <bold>ouvrez l'extension via le menu des extensions de votre navigateur</bold> et suivez les étapes à l'écran.",
|
"extensionHelp": "Si vous avez installé l'extension, mais qu'elle n'est pas détectée, <bold>ouvrez l'extension via le menu des extensions de votre navigateur</bold> et suivez les étapes à l'écran.",
|
||||||
"linkChrome": "Installer l'extension Chrome",
|
"linkChrome": "Installer l'extension Chrome",
|
||||||
"linkFirefox": "Installer l'extension Firefox",
|
"linkFirefox": "Installer l'extension Firefox",
|
||||||
"notDetecting": "L'extension est installée sur Chrome mais le site ne la détecte pas ? Essayez de rafraîchir la page !",
|
"notDetecting": "L'extension est installée sur Chrome, mais le site ne la détecte pas ? Essayez de rafraîchir la page !",
|
||||||
"notDetectingAction": "Rafraîchir la page",
|
"notDetectingAction": "Rafraîchir la page",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowed": "L'extension n'est pas activée pour cette page",
|
"disallowed": "L'extension n'est pas activée pour cette page",
|
||||||
@@ -195,12 +205,12 @@
|
|||||||
"title": "Commençons par une extension"
|
"title": "Commençons par une extension"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"back": "Revenir en arrière",
|
"back": "Retour",
|
||||||
"explainer": "Avec la méthode du proxy, vous pouvez obtenir des flux de bonne qualité en créant un proxy en libre-service.",
|
"explainer": "Avec la méthode du proxy, vous pouvez obtenir des flux de bonne qualité en créant un proxy en libre-service.",
|
||||||
"input": {
|
"input": {
|
||||||
"errorConnection": "Impossible de se connecter au proxy",
|
"errorConnection": "Impossible de se connecter au proxy",
|
||||||
"errorInvalidUrl": "URL non valide",
|
"errorInvalidUrl": "URL non valide",
|
||||||
"errorNotProxy": "Je m'attendais à un proxy mais j'ai obtenu un site Web",
|
"errorNotProxy": "Je m'attendais à un proxy, mais j'ai obtenu un site Web",
|
||||||
"label": "URL du proxy",
|
"label": "URL du proxy",
|
||||||
"placeholder": "https://"
|
"placeholder": "https://"
|
||||||
},
|
},
|
||||||
@@ -212,17 +222,17 @@
|
|||||||
"explainer": "Pour obtenir les meilleurs flux possibles, vous devrez choisir la méthode de streaming que vous souhaitez utiliser.",
|
"explainer": "Pour obtenir les meilleurs flux possibles, vous devrez choisir la méthode de streaming que vous souhaitez utiliser.",
|
||||||
"options": {
|
"options": {
|
||||||
"default": {
|
"default": {
|
||||||
"text": "Je ne veux pas de flux de bonne qualité,<0 /> <1>Utiliser le flux par défaut</1>"
|
"text": "Je ne veux pas de flux de bonne qualité,<0 /> <1>utiliser le flux par défaut</1>"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"action": "Installer l'extension",
|
"action": "Installer l'extension",
|
||||||
"description": "Installez l'extension pour navigateur et accédez aux meilleures sources.",
|
"description": "Installez l'extension pour navigateur et accédez aux meilleures sources.",
|
||||||
"quality": "Meilleur qualité",
|
"quality": "Meilleure qualité",
|
||||||
"title": "Extension du navigateur"
|
"title": "Extension du navigateur"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"action": "Configurez le proxy",
|
"action": "Configurez le proxy",
|
||||||
"description": "Configurez un proxy en seulement 5 minutes et accédez à d'excellentes sources.",
|
"description": "Configurez un proxy en seulement cinq minutes et accédez à d'excellentes sources.",
|
||||||
"quality": "Bonne qualité",
|
"quality": "Bonne qualité",
|
||||||
"title": "Proxy personnalisé"
|
"title": "Proxy personnalisé"
|
||||||
}
|
}
|
||||||
@@ -247,14 +257,14 @@
|
|||||||
"disclaimer": "Les téléchargements sont effectués directement par le fournisseur. movie-web n'a aucun contrôle sur la manière dont les téléchargements sont effectués.",
|
"disclaimer": "Les téléchargements sont effectués directement par le fournisseur. movie-web n'a aucun contrôle sur la manière dont les téléchargements sont effectués.",
|
||||||
"downloadSubtitle": "Télécharger les sous-titres",
|
"downloadSubtitle": "Télécharger les sous-titres",
|
||||||
"downloadVideo": "Télécharger la vidéo",
|
"downloadVideo": "Télécharger la vidéo",
|
||||||
"hlsDisclaimer": "Les téléchargements sont effectués directement auprès du fournisseur. movie-web n'a aucun contrôle sur la façon dont les téléchargements sont fournis.<br /><br />Veuillez noter que vous téléchargez une liste de lecture HLS, <bold>il n'est pas recommandé de la télécharger si vous n'êtes pas familier avec les formats de streaming avancés. </bold>. Essayez différentes sources pour différents formats.",
|
"hlsDisclaimer": "Les téléchargements sont effectués directement auprès du fournisseur. movie-web n'a aucun contrôle sur la façon dont les téléchargements sont fournis.<br /><br />Veuillez noter que vous téléchargez une liste de lecture HLS, <bold>il n'est pas recommandé de la télécharger si vous n'êtes pas familier avec les formats de streaming avancés</bold>. Essayez différentes sources pour différents formats.",
|
||||||
"onAndroid": {
|
"onAndroid": {
|
||||||
"1": "Pour télécharger sur Android, cliquez sur le bouton de téléchargement puis, sur la nouvelle page, <bold>tapez et maintenez </bold> sur la vidéo, puis sélectionnez <bold>enregistrer</bold>.",
|
"1": "Pour télécharger sur Android, cliquez sur le bouton de téléchargement, puis, sur la nouvelle page, <bold>tapez et maintenez</bold> sur la vidéo, et sélectionnez <bold>enregistrer</bold>.",
|
||||||
"shortTitle": "Télécharger / Android",
|
"shortTitle": "Télécharger / Android",
|
||||||
"title": "Téléchargement sur Android"
|
"title": "Téléchargement sur Android"
|
||||||
},
|
},
|
||||||
"onIos": {
|
"onIos": {
|
||||||
"1": "Pour télécharger sur iOS, cliquez sur le bouton de téléchargement puis, sur la nouvelle page, cliquez sur <bold><ios_share /></bold>, puis <bold>Enregistrer dans les fichiers <ios_files /></bold>.",
|
"1": "Pour télécharger sur iOS, cliquez sur le bouton de téléchargement, puis, sur la nouvelle page, cliquez sur <bold><ios_share /></bold>, et <bold>Enregistrer dans les fichiers <ios_files /></bold>.",
|
||||||
"shortTitle": "Télécharger / iOS",
|
"shortTitle": "Télécharger / iOS",
|
||||||
"title": "Télécharger sur iOS"
|
"title": "Télécharger sur iOS"
|
||||||
},
|
},
|
||||||
@@ -272,7 +282,7 @@
|
|||||||
"loadingError": "Erreur lors du chargement de la saison",
|
"loadingError": "Erreur lors du chargement de la saison",
|
||||||
"loadingList": "Chargement...",
|
"loadingList": "Chargement...",
|
||||||
"loadingTitle": "Chargement...",
|
"loadingTitle": "Chargement...",
|
||||||
"unairedEpisodes": "Un ou plusieurs épisodes de cette saison ont été désactivés car ils n'ont pas encore été diffusés."
|
"unairedEpisodes": "Un ou plusieurs épisodes de cette saison ont été désactivés, car ils n'ont pas encore été diffusés."
|
||||||
},
|
},
|
||||||
"playback": {
|
"playback": {
|
||||||
"speedLabel": "Vitesse de lecture",
|
"speedLabel": "Vitesse de lecture",
|
||||||
@@ -281,10 +291,11 @@
|
|||||||
"quality": {
|
"quality": {
|
||||||
"automaticLabel": "Qualité automatique",
|
"automaticLabel": "Qualité automatique",
|
||||||
"hint": "Vous pouvez essayer de <0>changer de source</0> pour obtenir différentes options de qualité.",
|
"hint": "Vous pouvez essayer de <0>changer de source</0> pour obtenir différentes options de qualité.",
|
||||||
"iosNoQuality": "En raison des limitations définies par Apple, la sélection de la qualité n'est pas disponible sur iOS pour cette source. Vous pouvez essayer <0>de passer à une autre source</0> pour obtenir des options de qualité différentes.",
|
"iosNoQuality": "En raison des limitations définies par Apple, la sélection de la qualité n'est pas disponible sur iOS pour cette source. Vous pouvez essayer <0>de changer de source</0> pour obtenir des options de qualité différentes.",
|
||||||
"title": "Qualité"
|
"title": "Qualité"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Télécharger",
|
"downloadItem": "Télécharger",
|
||||||
"enableSubtitles": "Activer les sous-titres",
|
"enableSubtitles": "Activer les sous-titres",
|
||||||
"experienceSection": "Expérience de visionnage",
|
"experienceSection": "Expérience de visionnage",
|
||||||
@@ -301,7 +312,7 @@
|
|||||||
},
|
},
|
||||||
"noEmbeds": {
|
"noEmbeds": {
|
||||||
"text": "Nous n'avons pas trouvé de liens, veuillez essayer une autre source.",
|
"text": "Nous n'avons pas trouvé de liens, veuillez essayer une autre source.",
|
||||||
"title": "Pas d'embeds trouvés"
|
"title": "Pas d'intégrations (embeds) trouvées"
|
||||||
},
|
},
|
||||||
"noStream": {
|
"noStream": {
|
||||||
"text": "Cette source n'a pas de flux pour ce film ou cette série.",
|
"text": "Cette source n'a pas de flux pour ce film ou cette série.",
|
||||||
@@ -311,8 +322,9 @@
|
|||||||
"unknownOption": "Inconnu"
|
"unknownOption": "Inconnu"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Importer des sous-titres depuis un fichier",
|
"customChoice": "Glisser ou charger un fichier",
|
||||||
"customizeLabel": "Personnaliser",
|
"customizeLabel": "Personnaliser",
|
||||||
|
"dropSubtitleFile": "Glisser le fichier des sous-titres ici",
|
||||||
"offChoice": "Désactivé",
|
"offChoice": "Désactivé",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Sous-titres personnalisés",
|
"backlink": "Sous-titres personnalisés",
|
||||||
@@ -363,13 +375,20 @@
|
|||||||
"errorDecode": "Bien qu'elle ait été jugée utilisable, une erreur s'est produite lors de la tentative de décodage de la ressource multimédia, ce qui a entraîné une erreur.",
|
"errorDecode": "Bien qu'elle ait été jugée utilisable, une erreur s'est produite lors de la tentative de décodage de la ressource multimédia, ce qui a entraîné une erreur.",
|
||||||
"errorGenericMedia": "Une erreur de média inconnue est survenue.",
|
"errorGenericMedia": "Une erreur de média inconnue est survenue.",
|
||||||
"errorNetwork": "Une erreur de réseau s'est produite qui a empêché la récupération du média, bien qu'il ait été disponible auparavant.",
|
"errorNetwork": "Une erreur de réseau s'est produite qui a empêché la récupération du média, bien qu'il ait été disponible auparavant.",
|
||||||
"errorNotSupported": "L'objet du media ou de la source du média n'est pas supporté."
|
"errorNotSupported": "L'objet du média ou de la source du média n'est pas supporté."
|
||||||
},
|
},
|
||||||
"homeButton": "Revenir à l'accueil",
|
"homeButton": "Revenir à l'accueil",
|
||||||
"text": "Une erreur s'est produite lors de la lecture du média. Veuillez réessayer.",
|
"text": "Une erreur s'est produite lors de la lecture du média. Veuillez réessayer.",
|
||||||
"title": "Oups, c'est coupé !"
|
"title": "Oups, c'est coupé !"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Extension désactivée",
|
||||||
|
"enableExtension": "Activer l'extension",
|
||||||
|
"homeButton": "Revenir à l'accueil",
|
||||||
|
"text": "Vous avez installé l'extension movie-web. Pour commencer à l'utiliser, vous devez activer l'extension pour ce site.",
|
||||||
|
"title": "Veuillez activer l'extension"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Une erreur est survenue",
|
"failure": "Une erreur est survenue",
|
||||||
"notFound": "N'a pas la vidéo",
|
"notFound": "N'a pas la vidéo",
|
||||||
@@ -398,7 +417,7 @@
|
|||||||
},
|
},
|
||||||
"screens": {
|
"screens": {
|
||||||
"dmca": {
|
"dmca": {
|
||||||
"text": "Bienvenue sur la page de contact DMCA de movie-web ! Nous respectons les droits de propriété intellectuelle et souhaitons répondre rapidement à toute question relative aux droits d'auteur. Si vous pensez que votre œuvre protégée par des droits d'auteur a été utilisée de manière inappropriée sur notre plateforme, veuillez envoyer une notification DMCA détaillée à l'adresse électronique ci-dessous. Veuillez inclure une description du matériel protégé par des droits d'auteur, vos coordonnées et une déclaration de bonne foi. Nous nous engageons à résoudre ces problèmes rapidement et vous remercions de votre coopération pour que movie-web reste un lieu respectueux de la créativité et des droits d'auteur.",
|
"text": "Bienvenue sur la page de contact DMCA de movie-web ! Nous respectons les droits de propriété intellectuelle et souhaitons répondre rapidement à toute question relative aux droits d'auteur. Si vous pensez que votre œuvre protégée par des droits d'auteur a été utilisée de manière inappropriée sur notre plateforme, veuillez envoyer une notification DMCA détaillée à l'adresse électronique ci-dessous. Veuillez inclure une description du matériel protégé par des droits d'auteur, vos coordonnées et une déclaration de bonne foi. Nous nous engageons à résoudre ces problèmes rapidement et vous remercions pour votre coopération pour que movie-web reste un lieu respectueux de la créativité et des droits d'auteur.",
|
||||||
"title": "DMCA"
|
"title": "DMCA"
|
||||||
},
|
},
|
||||||
"loadingApp": "Chargement de l'application",
|
"loadingApp": "Chargement de l'application",
|
||||||
@@ -410,7 +429,7 @@
|
|||||||
"textWithReset": "Echec du chargement de votre profil à partir de votre serveur personnalisé, souhaitez-vous revenir au serveur par défaut ?"
|
"textWithReset": "Echec du chargement de votre profil à partir de votre serveur personnalisé, souhaitez-vous revenir au serveur par défaut ?"
|
||||||
},
|
},
|
||||||
"migration": {
|
"migration": {
|
||||||
"failed": "La migration de vos données a échouée.",
|
"failed": "La migration de vos données a échoué.",
|
||||||
"inProgress": "Veuillez patienter, nous sommes en train de migrer vos données. Cela ne devrait pas prendre longtemps."
|
"inProgress": "Veuillez patienter, nous sommes en train de migrer vos données. Cela ne devrait pas prendre longtemps."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -447,7 +466,7 @@
|
|||||||
"userIcon": "Icône de l'utilisateur"
|
"userIcon": "Icône de l'utilisateur"
|
||||||
},
|
},
|
||||||
"register": {
|
"register": {
|
||||||
"cta": "Démarrer",
|
"cta": "Commencer",
|
||||||
"text": "Partagez la progression de vos films et séries entre vos appareils et gardez-les synchronisés.",
|
"text": "Partagez la progression de vos films et séries entre vos appareils et gardez-les synchronisés.",
|
||||||
"title": "Synchroniser au Cloud"
|
"title": "Synchroniser au Cloud"
|
||||||
},
|
},
|
||||||
@@ -460,7 +479,7 @@
|
|||||||
"default": "Défaut",
|
"default": "Défaut",
|
||||||
"gray": "Gris",
|
"gray": "Gris",
|
||||||
"red": "Rouge",
|
"red": "Rouge",
|
||||||
"teal": "Saphir"
|
"teal": "Bleu canard"
|
||||||
},
|
},
|
||||||
"title": "Apparence"
|
"title": "Apparence"
|
||||||
},
|
},
|
||||||
@@ -484,8 +503,8 @@
|
|||||||
},
|
},
|
||||||
"redoSetup": "Refaire la configuration",
|
"redoSetup": "Refaire la configuration",
|
||||||
"successStatus": {
|
"successStatus": {
|
||||||
"description": "Tout est réuni pour que vous puissiez commencer à regarder vos médias préférés.",
|
"description": "Tout prêt pour que vous puissiez commencer à regarder vos médias préférés.",
|
||||||
"title": "Tout est mis en place !"
|
"title": "Tout est en place !"
|
||||||
},
|
},
|
||||||
"unsetStatus": {
|
"unsetStatus": {
|
||||||
"description": "Pour commencer le processus de configuration, veuillez cliquer sur le bouton à droite.",
|
"description": "Pour commencer le processus de configuration, veuillez cliquer sur le bouton à droite.",
|
||||||
@@ -503,11 +522,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
"language": "Language de l'application",
|
"language": "Langage de l'application",
|
||||||
"languageDescription": "Langue appliquée à l’ensemble de l’application.",
|
"languageDescription": "Langue appliquée à l’ensemble de l’application.",
|
||||||
"thumbnail": "Générer des miniatures",
|
"thumbnail": "Générer les miniatures",
|
||||||
"thumbnailDescription": "La plupart du temps, les vidéos n'ont pas de miniatures. Vous pouvez activer ce paramètre pour les générer à la volée, mais ils peuvent ralentir votre vidéo.",
|
"thumbnailDescription": "La plupart du temps, les vidéos n'ont pas de miniatures. Vous pouvez activer ce paramètre pour les générer à la volée, mais ils peuvent ralentir votre vidéo.",
|
||||||
"thumbnailLabel": "Générer des miniatures",
|
"thumbnailLabel": "Générer les miniatures",
|
||||||
"title": "Préférences"
|
"title": "Préférences"
|
||||||
},
|
},
|
||||||
"reset": "Réinitialiser",
|
"reset": "Réinitialiser",
|
||||||
@@ -515,7 +534,7 @@
|
|||||||
"sidebar": {
|
"sidebar": {
|
||||||
"info": {
|
"info": {
|
||||||
"appVersion": "Version de l'application",
|
"appVersion": "Version de l'application",
|
||||||
"backendUrl": "URL de Backend",
|
"backendUrl": "URL du Backend",
|
||||||
"backendVersion": "Version du Backend",
|
"backendVersion": "Version du Backend",
|
||||||
"hostname": "Nom d'hôte",
|
"hostname": "Nom d'hôte",
|
||||||
"insecure": "Non sécurisé",
|
"insecure": "Non sécurisé",
|
||||||
@@ -527,7 +546,8 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"backgroundLabel": "Opacité du fond",
|
"backgroundBlurLabel": "Flou d'arrière-plan",
|
||||||
|
"backgroundLabel": "Opacité de l'arrière-plan",
|
||||||
"colorLabel": "Couleur",
|
"colorLabel": "Couleur",
|
||||||
"previewQuote": "Plus l'obscurité est profonde, plus la lumière brille.",
|
"previewQuote": "Plus l'obscurité est profonde, plus la lumière brille.",
|
||||||
"textSizeLabel": "Taille des textes",
|
"textSizeLabel": "Taille des textes",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Estaste a conectar a <0>{{hostname}}</0> - por favor, confirma se confías antes de crear a conta",
|
"host": "Estaste a conectar a <0>{{hostname}}</0> - por favor, confirma se confías antes de crear a conta",
|
||||||
"no": "Regresar",
|
"no": "Regresar",
|
||||||
|
"noHost": "O servidor non está configurado, polo que non podes crear unha conta",
|
||||||
|
"noHostTitle": "O servidor non está configurado!",
|
||||||
"title": "Confías neste servidor?",
|
"title": "Confías neste servidor?",
|
||||||
"yes": "Si, si que confío neste servidor"
|
"yes": "Si, si que confío neste servidor"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Non atopamos nada!",
|
"noResults": "Non atopamos nada!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Que che gustaría ver?",
|
"default": "Que che gustaría ver?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Qué queres explorar?",
|
||||||
|
"Que está na túa lista se seguimiento?",
|
||||||
|
"Cal é a túa película favorita?",
|
||||||
|
"Cal é a túa serie favorita?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Resultados da busca"
|
"sectionTitle": "Resultados da busca"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Que che gustaría ver esta mañá?",
|
"default": "Que che gustaría ver esta mañá?",
|
||||||
"extra": ["Escoitei que “Antes del amanecer” é boa"]
|
"extra": [
|
||||||
|
"Escoitei que “Antes del amanecer” é boa"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Que che gustaría ver esta noite?",
|
"default": "Que che gustaría ver esta noite?",
|
||||||
"extra": ["Canso? Escoitei que “El Exorcista” é boa."]
|
"extra": [
|
||||||
|
"Canso? Escoitei que “El Exorcista” é boa."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -241,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Copiar a ligazón da lista HLS",
|
||||||
"disclaimer": "As descargas proveñen do provedor. movie-web non ten control sobre as descargas e a súa procedencia.",
|
"disclaimer": "As descargas proveñen do provedor. movie-web non ten control sobre as descargas e a súa procedencia.",
|
||||||
"downloadSubtitle": "Descargar subtítulos actuais",
|
"downloadSubtitle": "Descargar subtítulos actuais",
|
||||||
"downloadVideo": "Descargar video",
|
"downloadVideo": "Descargar video",
|
||||||
@@ -282,6 +294,7 @@
|
|||||||
"title": "Calidade"
|
"title": "Calidade"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Descargar",
|
"downloadItem": "Descargar",
|
||||||
"enableSubtitles": "Activar subtítulos",
|
"enableSubtitles": "Activar subtítulos",
|
||||||
"experienceSection": "Configuración de experiencia",
|
"experienceSection": "Configuración de experiencia",
|
||||||
@@ -308,8 +321,9 @@
|
|||||||
"unknownOption": "Descoñecido"
|
"unknownOption": "Descoñecido"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Seleccionar subtítulos dende o arquivo",
|
"customChoice": "Sube ou arrastra o arquivo",
|
||||||
"customizeLabel": "Personalizar",
|
"customizeLabel": "Personalizar",
|
||||||
|
"dropSubtitleFile": "Solta o arquivo de subtítulos aquí",
|
||||||
"offChoice": "Apagar",
|
"offChoice": "Apagar",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Subtítulos personalizados",
|
"backlink": "Subtítulos personalizados",
|
||||||
@@ -524,6 +538,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Desenfoque do fondo",
|
||||||
"backgroundLabel": "Opacidade do fondo",
|
"backgroundLabel": "Opacidade do fondo",
|
||||||
"colorLabel": "Cór",
|
"colorLabel": "Cór",
|
||||||
"previewQuote": "Non debo temer. O medo é o asasino da mente.",
|
"previewQuote": "Non debo temer. O medo é o asasino da mente.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "आप <0>{{hostname}}</0> से कनेक्ट हो रहे हैं - खाता बनाने से पहले कृपया पुष्टि करें कि आप इस पर भरोसा करते हैं",
|
"host": "आप <0>{{hostname}}</0> से कनेक्ट हो रहे हैं - खाता बनाने से पहले कृपया पुष्टि करें कि आप इस पर भरोसा करते हैं",
|
||||||
"no": "पीछे जाये",
|
"no": "पीछे जाये",
|
||||||
|
"noHost": "सर्वर कॉन्फ़िगर नहीं किया गया है, इसलिए आप खाता नहीं बना सकते",
|
||||||
|
"noHostTitle": "सर्वर कॉन्फ़िगर नहीं है!",
|
||||||
"title": "क्या आपको इस सर्वर पर भरोसा है?",
|
"title": "क्या आपको इस सर्वर पर भरोसा है?",
|
||||||
"yes": "मुझे इस सर्वर पर भरोसा है"
|
"yes": "मुझे इस सर्वर पर भरोसा है"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "हमें कुछ नहीं मिला!",
|
"noResults": "हमें कुछ नहीं मिला!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "क्या देखना चाहते हो?",
|
"default": "क्या देखना चाहते हो?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"आप क्या अन्वेषण करना चाहते हैं?",
|
||||||
|
"आपकी वॉचलिस्ट में क्या है?",
|
||||||
|
"आपकी पसंदीदा फिल्म कौनसी है?",
|
||||||
|
"आपकी पसंदीदा सीरीज़ कौन सी है?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "खोज के परिणाम"
|
"sectionTitle": "खोज के परिणाम"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "आप आज सुबह को क्या देखना चाहेंगे?",
|
"default": "आप आज सुबह को क्या देखना चाहेंगे?",
|
||||||
"extra": ["मैंने सुना है सूर्योदय से पहले ठीक है"]
|
"extra": [
|
||||||
|
"मैंने सुना है सूर्योदय से पहले ठीक है"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "आप आज रात को क्या देखना चाहेंगे?",
|
"default": "आप आज रात को क्या देखना चाहेंगे?",
|
||||||
"extra": ["थके हुए हो? मैंने सुना एक्सोरसिस्ट अच्छी मूवी है।"]
|
"extra": [
|
||||||
|
"थके हुए हो? मैंने सुना एक्सोरसिस्ट अच्छी मूवी है।"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "मूवी",
|
"movie": "मूवी",
|
||||||
"show": "शृंखला"
|
"show": "शृंखला"
|
||||||
}
|
},
|
||||||
|
"unreleased": "रिलीज़ नहीं हुवा"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -161,7 +173,7 @@
|
|||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
"badge": "नहीं मिला",
|
"badge": "नहीं मिला",
|
||||||
"goHome": "घर वापिस जा रहा हूँ",
|
"goHome": "घर वापिस जाइये",
|
||||||
"message": "हमने हर जगह देखा: डिब्बे के नीचे, कोठरी में, प्रॉक्सी के पीछे लेकिन अंततः वह पेज नहीं मिला जिसे आप ढूंढ रहे थे।",
|
"message": "हमने हर जगह देखा: डिब्बे के नीचे, कोठरी में, प्रॉक्सी के पीछे लेकिन अंततः वह पेज नहीं मिला जिसे आप ढूंढ रहे थे।",
|
||||||
"title": "वह पृष्ठ नहीं मिल सका"
|
"title": "वह पृष्ठ नहीं मिल सका"
|
||||||
},
|
},
|
||||||
@@ -241,6 +253,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS प्लेलिस्ट लिंक कॉपी करें",
|
||||||
"disclaimer": "डाउनलोड सीधे प्रदाता से लिए जाते हैं। मूवी-वेब का इस पर नियंत्रण नहीं है कि डाउनलोड कैसे प्रदान किए जाते हैं।",
|
"disclaimer": "डाउनलोड सीधे प्रदाता से लिए जाते हैं। मूवी-वेब का इस पर नियंत्रण नहीं है कि डाउनलोड कैसे प्रदान किए जाते हैं।",
|
||||||
"downloadSubtitle": "वर्तमान उपशीर्षक डाउनलोड करें",
|
"downloadSubtitle": "वर्तमान उपशीर्षक डाउनलोड करें",
|
||||||
"downloadVideo": "वीडियो डाउनलोड करें",
|
"downloadVideo": "वीडियो डाउनलोड करें",
|
||||||
@@ -282,6 +295,7 @@
|
|||||||
"title": "गुणवत्ता"
|
"title": "गुणवत्ता"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "ऑडियो",
|
||||||
"downloadItem": "डाउनलोड",
|
"downloadItem": "डाउनलोड",
|
||||||
"enableSubtitles": "उपशीर्षक सक्षम करें",
|
"enableSubtitles": "उपशीर्षक सक्षम करें",
|
||||||
"experienceSection": "देखने का अनुभव",
|
"experienceSection": "देखने का अनुभव",
|
||||||
@@ -308,8 +322,9 @@
|
|||||||
"unknownOption": "अज्ञात"
|
"unknownOption": "अज्ञात"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "फ़ाइल से उपशीर्षक चुनें",
|
"customChoice": "फ़ाइल ड्रॉप या अपलोड करें",
|
||||||
"customizeLabel": "अनुकूलित करें",
|
"customizeLabel": "अनुकूलित करें",
|
||||||
|
"dropSubtitleFile": "उपशीर्षक फ़ाइल यहां छोड़ें",
|
||||||
"offChoice": "बंद",
|
"offChoice": "बंद",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "कस्टम उपशीर्षक",
|
"backlink": "कस्टम उपशीर्षक",
|
||||||
@@ -367,6 +382,13 @@
|
|||||||
"title": "वीडियो चलाने में विफल!"
|
"title": "वीडियो चलाने में विफल!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "एक्सटेंशन बन्द हें",
|
||||||
|
"enableExtension": "एक्सटेंशन सक्षम करें",
|
||||||
|
"homeButton": "घर जाओ",
|
||||||
|
"text": "आपने मूवी-वेब एक्सटेंशन इंस्टॉल कर लिया है. इसका उपयोग शुरू करने के लिए, आपको इस साइट के लिए एक्सटेंशन सक्षम करना होगा।",
|
||||||
|
"title": "कृपया एक्सटेंशनको सक्षम करें"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "त्रुटि हुई",
|
"failure": "त्रुटि हुई",
|
||||||
"notFound": "वीडियो नहीं है",
|
"notFound": "वीडियो नहीं है",
|
||||||
@@ -524,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "पृष्ठभूमि धुंधला",
|
||||||
"backgroundLabel": "पृष्ठभूमि अस्पष्टता",
|
"backgroundLabel": "पृष्ठभूमि अस्पष्टता",
|
||||||
"colorLabel": "रंग",
|
"colorLabel": "रंग",
|
||||||
"previewQuote": "मुझे डरना नहीं चाहिए. डर मन हत्यारा है।",
|
"previewQuote": "मुझे डरना नहीं चाहिए. डर मन हत्यारा है।",
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
"faqTitle": "Pertanyaan umum",
|
"faqTitle": "Pertanyaan umum",
|
||||||
"q1": {
|
"q1": {
|
||||||
"body": "movie-web tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). movie-web tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.",
|
"body": "movie-web tidak menyimpan berkas media apapun. Ketika anda mengklik sesuatu untuk ditonton, aplikasi akan mencari berkas media di internet (saat media dimuat dan pada tab 'sumber media' anda dapat melihat sumber mana yang digunakan). movie-web tidak pernah mengunggah media apapun, semua media didapat melalui mekanisme pencarian di internet.",
|
||||||
"title": "Dari mana konten media di sini berasal?"
|
"title": "Dari mana konten berasal?"
|
||||||
},
|
},
|
||||||
"q2": {
|
"q2": {
|
||||||
"body": "Kami tidak menerima permintaan penambahan serial televisi atau film, movie-web tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.",
|
"body": "Kami tidak menerima permintaan penambahan serial televisi atau film, movie-web tidak mengelola konten apapun. Semua konten ditonton melalui sumber-sumber dari internet.",
|
||||||
@@ -26,24 +26,24 @@
|
|||||||
"deviceNamePlaceholder": "Perangkat personal",
|
"deviceNamePlaceholder": "Perangkat personal",
|
||||||
"generate": {
|
"generate": {
|
||||||
"description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda",
|
"description": "Kombinasi kata ini berfungsi sebagai nama pengguna sekaligus kata sandi anda. Pastikan untuk menyimpannya dengan aman karena anda memerlukannya untuk masuk ke akun anda",
|
||||||
"next": "Saya sudah menyimpan kombinasi kata di atas",
|
"next": "Saya sudah menyimpan kombinasi kata",
|
||||||
"passphraseFrameLabel": "Kombinasi kata",
|
"passphraseFrameLabel": "Kombinasi kata",
|
||||||
"title": "Kombinasi kata anda"
|
"title": "Kombinasi kata Anda"
|
||||||
},
|
},
|
||||||
"hasAccount": "Sudah memiliki akun? <0>Masuk disini.</0>",
|
"hasAccount": "Sudah memiliki akun? <0>Masuk disini.</0>",
|
||||||
"login": {
|
"login": {
|
||||||
"description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun anda",
|
"description": "Mohon masukkan kombinasi kata anda untuk masuk ke akun Anda",
|
||||||
"deviceLengthError": "Mohon masukkan nama perangkat",
|
"deviceLengthError": "Mohon masukkan nama perangkat",
|
||||||
"passphraseLabel": "12 kombinasi kata unik",
|
"passphraseLabel": "12 kombinasi kata unik",
|
||||||
"passphrasePlaceholder": "Kombinasi kata",
|
"passphrasePlaceholder": "Kombinasi kata",
|
||||||
"submit": "Masuk",
|
"submit": "Masuk",
|
||||||
"title": "Masuk ke akun anda",
|
"title": "Masuk ke akun Anda",
|
||||||
"validationError": "Kombinasi kata unik salah"
|
"validationError": "Kombinasi kata salah atau tidak lengkap"
|
||||||
},
|
},
|
||||||
"register": {
|
"register": {
|
||||||
"information": {
|
"information": {
|
||||||
"color1": "Gradasi warna profil pertama",
|
"color1": "Warna profil pertama",
|
||||||
"color2": "Gradasi warna profil kedua",
|
"color2": "Warna profil kedua",
|
||||||
"header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan",
|
"header": "Masukkan nama perangkat anda lalu pilih warna latar belakang dan ikon pengguna yang ingin anda gunakan",
|
||||||
"icon": "Ikon pengguna",
|
"icon": "Ikon pengguna",
|
||||||
"next": "Berikutnya",
|
"next": "Berikutnya",
|
||||||
@@ -52,29 +52,31 @@
|
|||||||
},
|
},
|
||||||
"trust": {
|
"trust": {
|
||||||
"failed": {
|
"failed": {
|
||||||
"text": "Apakah anda mengkonfigurasi server dengan benar?",
|
"text": "Apakah Anda mengkonfigurasi server dengan benar?",
|
||||||
"title": "Gagal terhubung dengan server"
|
"title": "Gagal terhubung dengan server"
|
||||||
},
|
},
|
||||||
"host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi anda mempercayai server ini sebelum anda membuat akun",
|
"host": "Anda ingin terhubung ke <0>{{hostname}}</0> - mohon konfirmasi Anda mempercayai server ini sebelum Anda membuat akun",
|
||||||
"no": "Kembali",
|
"no": "Kembali",
|
||||||
"title": "Apakah anda mempercayai server ini?",
|
"noHost": "Server belum dikonfigurasi, maka dari itu Anda tidak dapat membuat akun",
|
||||||
"yes": "Saya percaya"
|
"noHostTitle": "Server belum dikonfigurasi!",
|
||||||
|
"title": "Apakah Anda mempercayai server ini?",
|
||||||
|
"yes": "Saya percaya server ini"
|
||||||
},
|
},
|
||||||
"verify": {
|
"verify": {
|
||||||
"description": "Mohon masukkan kombinasi kata pribadi anda sebelumnya untuk mengonfirmasi bahwa anda telah menyimpannya untuk melanjutkan proses pembuatan akun",
|
"description": "Mohon masukkan kombinasi kata pribadi Anda sebelumnya untuk mengonfirmasi bahwa Anda telah menyimpannya untuk melanjutkan proses pembuatan akun",
|
||||||
"invalidData": "Data tidak valid",
|
"invalidData": "Data tidak valid",
|
||||||
"noMatch": "Kombinasi kata tidak cocok",
|
"noMatch": "Kombinasi kata tidak cocok",
|
||||||
"passphraseLabel": "12 kombinasi kata pribadi anda",
|
"passphraseLabel": "12 kombinasi kata Anda",
|
||||||
"recaptchaFailed": "Validasi reCaptcha gagal",
|
"recaptchaFailed": "Validasi reCaptcha gagal",
|
||||||
"register": "Buat akun",
|
"register": "Buat akun",
|
||||||
"title": "Konfirmasi kombinasi kata pribadi anda"
|
"title": "Konfirmasi kombinasi kata Anda"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"badge": "Terjadi masalah",
|
"badge": "Terjadi masalah",
|
||||||
"details": "Detail eror",
|
"details": "Rincian kesalahan",
|
||||||
"reloadPage": "Muat ulang halaman",
|
"reloadPage": "Muat ulang halaman",
|
||||||
"showError": "Lihat detail eror",
|
"showError": "Lihat rincian kesalahan",
|
||||||
"title": "Kami mengalami galat!"
|
"title": "Kami mengalami galat!"
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
@@ -87,7 +89,7 @@
|
|||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"github": "GitHub"
|
"github": "GitHub"
|
||||||
},
|
},
|
||||||
"tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming open source ini."
|
"tagline": "Tonton serial televisi dan film favorit anda dengan aplikasi streaming sumber terbuka ini."
|
||||||
},
|
},
|
||||||
"global": {
|
"global": {
|
||||||
"name": "movie-web",
|
"name": "movie-web",
|
||||||
@@ -95,6 +97,7 @@
|
|||||||
"about": "Tentang",
|
"about": "Tentang",
|
||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"login": "Masuk",
|
"login": "Masuk",
|
||||||
|
"onboarding": "Penyiapan",
|
||||||
"pagetitle": "{{title}} - movie-web",
|
"pagetitle": "{{title}} - movie-web",
|
||||||
"register": "Daftar",
|
"register": "Daftar",
|
||||||
"settings": "Pengaturan"
|
"settings": "Pengaturan"
|
||||||
@@ -108,7 +111,7 @@
|
|||||||
"sectionTitle": "Lanjut menonton"
|
"sectionTitle": "Lanjut menonton"
|
||||||
},
|
},
|
||||||
"mediaList": {
|
"mediaList": {
|
||||||
"stopEditing": "Berhenti mengubah"
|
"stopEditing": "Berhenti menyunting"
|
||||||
},
|
},
|
||||||
"search": {
|
"search": {
|
||||||
"allResults": "Hanya itu yang kami punya!",
|
"allResults": "Hanya itu yang kami punya!",
|
||||||
@@ -117,7 +120,12 @@
|
|||||||
"noResults": "Kami tidak dapat menemukan apapun!",
|
"noResults": "Kami tidak dapat menemukan apapun!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Apa yang ingin anda tonton?",
|
"default": "Apa yang ingin anda tonton?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Apa yang ingin kamu jelajahi?",
|
||||||
|
"Ada apa di daftar tontonmu?",
|
||||||
|
"Apa film favoritmu?",
|
||||||
|
"Apa serial favoritmu?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Hasil pencarian"
|
"sectionTitle": "Hasil pencarian"
|
||||||
},
|
},
|
||||||
@@ -125,16 +133,20 @@
|
|||||||
"day": {
|
"day": {
|
||||||
"default": "Apa yang ingin anda tonton sore ini?",
|
"default": "Apa yang ingin anda tonton sore ini?",
|
||||||
"extra": [
|
"extra": [
|
||||||
"Lagi pengen nonton genre Adventure? Jurassic Park mungkin cocok buat anda."
|
"Merasa suka bertualang? Jurassic Park mungkin pilihan cocok untuk Anda."
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Apa yang ingin anda tonton pagi ini?",
|
"default": "Apa yang ingin Anda tonton pagi ini?",
|
||||||
"extra": ["Kayaknya film Before Sunrise bagus deh"]
|
"extra": [
|
||||||
|
"Saya dengar film Before Sunrise bagus"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Apa yang ingin anda tonton malam ini?",
|
"default": "Apa yang ingin Anda tonton malam ini?",
|
||||||
"extra": ["Capek? Katanya The Exocist rekomended."]
|
"extra": [
|
||||||
|
"Capek? Saya dengar The Exocist bagus."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -143,11 +155,12 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Serial TV"
|
"show": "Serial TV"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Belum dirilis"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
"offline": "Periksa koneksi internet anda"
|
"offline": "Periksa koneksi internet Anda"
|
||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"about": "Tentang kami",
|
"about": "Tentang kami",
|
||||||
@@ -161,9 +174,69 @@
|
|||||||
"notFound": {
|
"notFound": {
|
||||||
"badge": "Tidak ditemukan",
|
"badge": "Tidak ditemukan",
|
||||||
"goHome": "Kembali",
|
"goHome": "Kembali",
|
||||||
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tapi tetap gagal menemukan halaman yang anda cari.",
|
"message": "Kami sudah mencari dimana-mana: di bawah tempat sampah, di lemari, di belakang server proxy, tetapi tidak dapat menemukan halaman yang Anda cari.",
|
||||||
"title": "Gagal menemukan halaman"
|
"title": "Gagal menemukan halaman"
|
||||||
},
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"defaultConfirm": {
|
||||||
|
"cancel": "Batal",
|
||||||
|
"confirm": "Gunakan pengaturan bawaan",
|
||||||
|
"description": "Pengaturan bawaan tidak memiliki streaming terbaik dan bisa menjadi sangat lambat.",
|
||||||
|
"title": "Apa Anda yakin?"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"back": "Kembali",
|
||||||
|
"explainer": "Menggunakan ekstensi browser, Anda dapat mendapatkan streaming terbaik yang kami tawarkan. Dengan instalasi sederhana.",
|
||||||
|
"explainerIos": "Sayangnya, ekstensi browser tidak didukung di iOS, Tekan <bold>Kembali<bold> untuk memilih opsi lain.",
|
||||||
|
"extensionHelp": "Jika Anda telah menginstal ekstensi tetapi tidak terdeteksi, <bold>buka ekstensi melalui menu ekstensi browser Anda</bold> dan ikuti instruksi di layar.",
|
||||||
|
"linkChrome": "Instal ekstensi Chrome",
|
||||||
|
"linkFirefox": "Instal ekstensi Firefox",
|
||||||
|
"notDetecting": "Terinstal di Chrome tetapi situs tidak mendeteksinya? Coba muat ulang halaman!",
|
||||||
|
"notDetectingAction": "Muat ulang halaman",
|
||||||
|
"status": {
|
||||||
|
"disallowed": "Ekstensi tidak diaktifkan untuk halaman ini",
|
||||||
|
"disallowedAction": "Aktifkan ekstensi",
|
||||||
|
"failed": "Gagal meminta status",
|
||||||
|
"loading": "Menunggu Anda menginstal ekstensi",
|
||||||
|
"outdated": "Versi ekstensi terlalu tua",
|
||||||
|
"success": "Ekstensi berkerja sesuai harapan!"
|
||||||
|
},
|
||||||
|
"submit": "Lanjutkan",
|
||||||
|
"title": "Mari mulai dengan ekstensi"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"back": "Kembali",
|
||||||
|
"explainer": "Menggunakan metode proxy, Anda dapat mendapatkan streaming berkualitas baik dengan membuat layanan proxy mandiri.",
|
||||||
|
"input": {
|
||||||
|
"errorConnection": "Tidak dapat terhubung ke proxy",
|
||||||
|
"errorInvalidUrl": "URL tidak valid",
|
||||||
|
"errorNotProxy": "Mengharapkan proxy tapi menerima situs",
|
||||||
|
"label": "URL proxy",
|
||||||
|
"placeholder": "https://"
|
||||||
|
},
|
||||||
|
"link": "Belajar cara membuat proxy",
|
||||||
|
"title": "Mari buat proxy baru"
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"explainer": "Untuk mendapatkan streaming terbaik, Anda perlu memilih metode streaming yang Anda ingin gunakan.",
|
||||||
|
"options": {
|
||||||
|
"default": {
|
||||||
|
"text": "Saya tidak menginginkan streaming kualitas baik, <0 /> <1>gunakan pengaturan bawaan</1>"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"action": "Instal ekstensi",
|
||||||
|
"description": "Instal ekstensi browser dan dapatkan akses ke sumber terbaik.",
|
||||||
|
"quality": "Kualitas terbaik",
|
||||||
|
"title": "Ekstensi browser"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"action": "Atur proxy",
|
||||||
|
"description": "Atur proxy dalam hanya 5 menit dan dapatkan akses ke sumber terbaik.",
|
||||||
|
"quality": "Kualitas baik"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"overlays": {
|
"overlays": {
|
||||||
"close": "Tutup"
|
"close": "Tutup"
|
||||||
},
|
},
|
||||||
@@ -177,12 +250,13 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Salin tautan daftar putar HLS",
|
||||||
"disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.",
|
"disclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan.",
|
||||||
"downloadSubtitle": "Unduh subtitle",
|
"downloadSubtitle": "Unduh subtitle saat ini",
|
||||||
"downloadVideo": "Unduh media",
|
"downloadVideo": "Unduh media",
|
||||||
"hlsDisclaimer": "Tautan unduhan diambil langsung dari penyedia pihak ketiga. Aplikasi ini tidak memiliki kendali bagaimana unduhan disediakan. Harap diperhatikan, anda akan mengunduh HLS playlist, media ini hanya ditunjukan bagi pengguna tingkat lanjut.",
|
"hlsDisclaimer": "Unduhan didapatkan langsung dari penyedia. movie-web tidak memiliki kendali bagaimana unduan disediakan.<br /><br />Harap diperhatikan bahwa Anda mengunduh daftar putar HLS, <bold>ini tidak direkomendasikan untuk diunduh jika Anda tidak terbiasa dengan format streaming tingkat lanjut</bold>Coba sumber berbeda untuk format berbeda.",
|
||||||
"onAndroid": {
|
"onAndroid": {
|
||||||
"1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>save</bold>.",
|
"1": "Untuk mengunduh di Android, klik tombol unduh, lalu di halaman baru <bold>klik dan tahan</bold> pada video, lalu pilih <bold>simpan</bold>.",
|
||||||
"shortTitle": "Unduh / Android",
|
"shortTitle": "Unduh / Android",
|
||||||
"title": "Unduh di Android"
|
"title": "Unduh di Android"
|
||||||
},
|
},
|
||||||
@@ -200,11 +274,12 @@
|
|||||||
},
|
},
|
||||||
"episodes": {
|
"episodes": {
|
||||||
"button": "Episode",
|
"button": "Episode",
|
||||||
"emptyState": "Tidak ada episode di season ini, check lagi nanti!",
|
"emptyState": "Tidak ada episode di season ini, periksa kembali nanti!",
|
||||||
"episodeBadge": "E{{episode}}",
|
"episodeBadge": "E{{episode}}",
|
||||||
"loadingError": "Eror memuat season",
|
"loadingError": "Gagal memuat season",
|
||||||
"loadingList": "Memuat...",
|
"loadingList": "Memuat...",
|
||||||
"loadingTitle": "Memuat..."
|
"loadingTitle": "Memuat...",
|
||||||
|
"unairedEpisodes": "Satu atau lebih episode dalam season ini telah dinonaktifkan karena mereka belum ditayangkan."
|
||||||
},
|
},
|
||||||
"playback": {
|
"playback": {
|
||||||
"speedLabel": "Kecepatan pemutar",
|
"speedLabel": "Kecepatan pemutar",
|
||||||
@@ -212,13 +287,13 @@
|
|||||||
},
|
},
|
||||||
"quality": {
|
"quality": {
|
||||||
"automaticLabel": "Otomatis",
|
"automaticLabel": "Otomatis",
|
||||||
"hint": "Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.",
|
"hint": "Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
|
||||||
"iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber media</0> untuk mendapatkan opsi kualitas yang berbeda.",
|
"iosNoQuality": "Karena keterbatasan dari Apple, opsi kualitas pada sumber ini tidak tersedia untuk iOS. Anda dapat mencoba <0>mengganti sumber</0> untuk mendapatkan opsi kualitas yang berbeda.",
|
||||||
"title": "Kualitas"
|
"title": "Kualitas"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
"downloadItem": "Unduh",
|
"downloadItem": "Unduh",
|
||||||
"enableSubtitles": "Hidupkan subtitle",
|
"enableSubtitles": "Aktifkan subtitle",
|
||||||
"experienceSection": "Pengaturan tambahan",
|
"experienceSection": "Pengaturan tambahan",
|
||||||
"playbackItem": "Pengaturan pemutar",
|
"playbackItem": "Pengaturan pemutar",
|
||||||
"qualityItem": "Kualitas",
|
"qualityItem": "Kualitas",
|
||||||
@@ -228,22 +303,22 @@
|
|||||||
},
|
},
|
||||||
"sources": {
|
"sources": {
|
||||||
"failed": {
|
"failed": {
|
||||||
"text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber yang lain.",
|
"text": "Terjadi galat saat mencoba mencari media, mohon pilih sumber lain.",
|
||||||
"title": "Gagal memuat data"
|
"title": "Gagal memuat data"
|
||||||
},
|
},
|
||||||
"noEmbeds": {
|
"noEmbeds": {
|
||||||
"text": "Kami tidak dapat menemukan tautan, mohon pilih sumber yang lain.",
|
"text": "Kami tidak dapat menemukan tautan, mohon pilih sumber lain.",
|
||||||
"title": "Tautan tidak ditemukan"
|
"title": "Tautan tidak ditemukan"
|
||||||
},
|
},
|
||||||
"noStream": {
|
"noStream": {
|
||||||
"text": "Sumber ini tidak memiliki media untuk film atau seri yang anda cari.",
|
"text": "Sumber ini tidak memiliki media untuk film atau seri yang Anda cari.",
|
||||||
"title": "Tidak ada media"
|
"title": "Tidak ada media"
|
||||||
},
|
},
|
||||||
"title": "Sumber",
|
"title": "Sumber",
|
||||||
"unknownOption": "Tidak diketahui"
|
"unknownOption": "Tidak diketahui"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Pilih subtitle dari file",
|
"customChoice": "Jatuhkan atau unggah berkas",
|
||||||
"customizeLabel": "Sesuaikan",
|
"customizeLabel": "Sesuaikan",
|
||||||
"offChoice": "Matikan",
|
"offChoice": "Matikan",
|
||||||
"settings": {
|
"settings": {
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
{
|
{
|
||||||
"about": {
|
"about": {
|
||||||
"description": "movie-web er vefforrit sem leitar á netinu að straumum. Markmið liðsins er naumhyggju nálgun á að horfa á efni.",
|
"description": "movie-web er vefforrit sem leitar á netinu að streymum. Markmið liðsins er naumhyggju nálgun á að horfa á efni.",
|
||||||
"faqTitle": "Algengar spurningar",
|
"faqTitle": "Algengar spurningar",
|
||||||
"q1": {
|
"q1": {
|
||||||
"body": "movie-web hýsir ekki neitt efni. Þegar þú ýtir á eitthvað til að horfa á, leitað er á netinu fyrir það efni (Þú getur séð hvaða heimild við erum að nota á hleðslu skjánum og í 'myndbands heimildir' flipanum). Skrár eru aldrei settar in af movie-web, allt er í gegnum leitarvél.",
|
"body": "movie-web hýsir ekki neitt efni. Þegar þú ýtir á eitthvað til að horfa á, er leitað á netinu fyrir það efni (Þú getur séð hvaða heimild við erum að nota á hleðslu skjánum og í 'myndbands heimildir' flipanum). Skrár eru aldrei settar inn af movie-web, allt er í gegnum leitarvél.",
|
||||||
"title": "Hvaðan kemur efnið?"
|
"title": "Hvaðan kemur efnið?"
|
||||||
},
|
},
|
||||||
"q2": {
|
"q2": {
|
||||||
@@ -11,7 +11,7 @@
|
|||||||
"title": "Hvar get ég beðið um þætti eða myndir?"
|
"title": "Hvar get ég beðið um þætti eða myndir?"
|
||||||
},
|
},
|
||||||
"q3": {
|
"q3": {
|
||||||
"body": "Okkar leitar niðurstöður eru knúnar af The Movie Database (TMDB) og eru sýndar þótt að okkar heimildir hafa ekki efnið.",
|
"body": "Leitarniðurstöður okkar eru knúnar af The Movie Database (TMDB) og eru sýndar þótt að heimildir okkar hafa ekki efnið.",
|
||||||
"title": "Leitarniðurstöðurnar sýna þættina eða myndina, af hverju get ég ekki spilað það?"
|
"title": "Leitarniðurstöðurnar sýna þættina eða myndina, af hverju get ég ekki spilað það?"
|
||||||
},
|
},
|
||||||
"title": "Um movie-web"
|
"title": "Um movie-web"
|
||||||
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Þú ert að tengjast við <0>{{hostname}}</0> - vinsamlegast staðfestu að þú treystir því áður en þú býrð til reikning",
|
"host": "Þú ert að tengjast við <0>{{hostname}}</0> - vinsamlegast staðfestu að þú treystir því áður en þú býrð til reikning",
|
||||||
"no": "Fara til baka",
|
"no": "Fara til baka",
|
||||||
|
"noHost": "Netjónninn hefur ekki verið stilltur, þess vegna getur þú ekki búið til reikning",
|
||||||
|
"noHostTitle": "Netþjónn ekki stilltur!",
|
||||||
"title": "Treystir þú þessum netþjóni?",
|
"title": "Treystir þú þessum netþjóni?",
|
||||||
"yes": "Ég treysti þessum netþjóni"
|
"yes": "Ég treysti þessum netþjóni"
|
||||||
},
|
},
|
||||||
@@ -82,13 +84,21 @@
|
|||||||
"disclaimer": "Fyrirvari",
|
"disclaimer": "Fyrirvari",
|
||||||
"disclaimerText": "movie-web hýsir engar skrár, það tengist eingöngu þjónustu þriðja aðila. Lagleg atriði ættu að vera rædd við skráarhýsinga og veitanda. movie-web er ekki ábyrg fyrir neinum skrám sýndar af myndbands veitöndum."
|
"disclaimerText": "movie-web hýsir engar skrár, það tengist eingöngu þjónustu þriðja aðila. Lagleg atriði ættu að vera rædd við skráarhýsinga og veitanda. movie-web er ekki ábyrg fyrir neinum skrám sýndar af myndbands veitöndum."
|
||||||
},
|
},
|
||||||
|
"links": {
|
||||||
|
"discord": "Discord",
|
||||||
|
"dmca": "DMCA",
|
||||||
|
"github": "GitHub"
|
||||||
|
},
|
||||||
"tagline": "Horfðu á uppáhalds þætti og myndirnar þínar með þessu opna hugbúnaða forriti."
|
"tagline": "Horfðu á uppáhalds þætti og myndirnar þínar með þessu opna hugbúnaða forriti."
|
||||||
},
|
},
|
||||||
"global": {
|
"global": {
|
||||||
|
"name": "movie-web",
|
||||||
"pages": {
|
"pages": {
|
||||||
"about": "Um",
|
"about": "Um",
|
||||||
|
"dmca": "DMCA",
|
||||||
"login": "Skrá inn",
|
"login": "Skrá inn",
|
||||||
"onboarding": "Setja upp",
|
"onboarding": "Setja upp",
|
||||||
|
"pagetitle": "{{title}} - movie-web",
|
||||||
"register": "Skrá",
|
"register": "Skrá",
|
||||||
"settings": "Stillingar"
|
"settings": "Stillingar"
|
||||||
}
|
}
|
||||||
@@ -110,7 +120,12 @@
|
|||||||
"noResults": "Við gátum ekki fundið neitt!",
|
"noResults": "Við gátum ekki fundið neitt!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Hvað viltu horfa á?",
|
"default": "Hvað viltu horfa á?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Hvað viltu kanna?",
|
||||||
|
"Hvað er á áhorfslistanum þínum?",
|
||||||
|
"Hvað er uppáhalds bíómyndin þín?",
|
||||||
|
"Hvað er uppáhalds þáttaröðin þín?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Leitar niðurstöður"
|
"sectionTitle": "Leitar niðurstöður"
|
||||||
},
|
},
|
||||||
@@ -123,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Hvað myndirðu vilja horfa á þessum morgni?",
|
"default": "Hvað myndirðu vilja horfa á þessum morgni?",
|
||||||
"extra": ["Ég heyrði að Before Sunrise sé góð"]
|
"extra": [
|
||||||
|
"Ég heyrði að Before Sunrise sé góð"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Hvað myndirðu vilja horfa á í nótt?",
|
"default": "Hvað myndirðu vilja horfa á í nótt?",
|
||||||
"extra": ["Þreytt? Ég heyrði að The Exorcist sé góð."]
|
"extra": [
|
||||||
|
"Þreytt? Ég heyrði að The Exorcist sé góð."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -191,7 +210,8 @@
|
|||||||
"errorConnection": "Gat ekki tengst umboð",
|
"errorConnection": "Gat ekki tengst umboð",
|
||||||
"errorInvalidUrl": "Ekki gildur hlekkur",
|
"errorInvalidUrl": "Ekki gildur hlekkur",
|
||||||
"errorNotProxy": "Bjóst við umboði en fékk heimasíðu",
|
"errorNotProxy": "Bjóst við umboði en fékk heimasíðu",
|
||||||
"label": "Umboðs hlekkur"
|
"label": "Umboðs hlekkur",
|
||||||
|
"placeholder": "https://"
|
||||||
},
|
},
|
||||||
"link": "Lærðu hvernig þú býrð til umboð",
|
"link": "Lærðu hvernig þú býrð til umboð",
|
||||||
"submit": "Staðfesta umboð",
|
"submit": "Staðfesta umboð",
|
||||||
@@ -232,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Afrita HLS spilalista hlekk",
|
||||||
"disclaimer": "Niðurhalningar eru teknar beint frá heimildini. movie-web hefur engan kraft yfir hvernig niðurhalningarnar eru gefnar.",
|
"disclaimer": "Niðurhalningar eru teknar beint frá heimildini. movie-web hefur engan kraft yfir hvernig niðurhalningarnar eru gefnar.",
|
||||||
"downloadSubtitle": "Hlaða niður nú verandi texta",
|
"downloadSubtitle": "Hlaða niður nú verandi texta",
|
||||||
"downloadVideo": "Hlaða niður myndbandi",
|
"downloadVideo": "Hlaða niður myndbandi",
|
||||||
@@ -372,7 +393,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"time": {
|
"time": {
|
||||||
"remaining": "{{timeLeft}} er eftir • Þú klárar {{timeFinished, datetime}}"
|
"regular": "{{timeWatched}} / {{duration}}",
|
||||||
|
"remaining": "{{timeLeft}} er eftir • Þú klárar {{timeFinished, datetime}}",
|
||||||
|
"shortRegular": "{{timeWatched}}",
|
||||||
|
"shortRemaining": "-{{timeLeft}}"
|
||||||
},
|
},
|
||||||
"turnstile": {
|
"turnstile": {
|
||||||
"description": "Vinsamlegast sannreyndu að þú sért manneskja með því að klára Captcha-ið til hægri. Þetta er til þess að halda movie-web öruggu!",
|
"description": "Vinsamlegast sannreyndu að þú sért manneskja með því að klára Captcha-ið til hægri. Þetta er til þess að halda movie-web öruggu!",
|
||||||
@@ -383,7 +407,8 @@
|
|||||||
},
|
},
|
||||||
"screens": {
|
"screens": {
|
||||||
"dmca": {
|
"dmca": {
|
||||||
"text": "Velkomin á sambands síðu movie-web! Við virðum hugverkarétt og viljum ræða einhver höfundarréttar áhyggjur fljótt. Ef að þú trúir að höfundarréttur þíns verks hefur verið misnotaður á okkar síðu, vinsamlegast sentu ítarlega DMCA tilkynningu til netfangsing fyrir neðan þennan texta. Vinsamlegast láttu fylgja með lýsingu af höfundaréttavarna efninu, tengiliða upplýsingat þínar, og yfirlýsingu um góða trú. Við erum staðráðin í að leysa þessi mál tafarlaust og þökkum samstarf þitt við að halda movie-web stað sem virðir sköpunargáfu og höfundarrétt."
|
"text": "Velkomin á sambands síðu movie-web! Við virðum hugverkarétt og viljum ræða einhver höfundarréttar áhyggjur fljótt. Ef að þú trúir að höfundarréttur þíns verks hefur verið misnotaður á okkar síðu, vinsamlegast sentu ítarlega DMCA tilkynningu til netfangsing fyrir neðan þennan texta. Vinsamlegast láttu fylgja með lýsingu af höfundaréttavarna efninu, tengiliða upplýsingat þínar, og yfirlýsingu um góða trú. Við erum staðráðin í að leysa þessi mál tafarlaust og þökkum samstarf þitt við að halda movie-web stað sem virðir sköpunargáfu og höfundarrétt.",
|
||||||
|
"title": "DMCA"
|
||||||
},
|
},
|
||||||
"loadingApp": "Hlaðandi forriti",
|
"loadingApp": "Hlaðandi forriti",
|
||||||
"loadingUser": "Hlaðandi þínum reikningi",
|
"loadingUser": "Hlaðandi þínum reikningi",
|
||||||
@@ -482,7 +507,8 @@
|
|||||||
"description": "Til að láta forritið virka, allri umboð er beint í gegnum umboð. Virktu þetta ef þú villt koma með þína eigin starfsmenn. <0>Leiðbeiningar.</0>",
|
"description": "Til að láta forritið virka, allri umboð er beint í gegnum umboð. Virktu þetta ef þú villt koma með þína eigin starfsmenn. <0>Leiðbeiningar.</0>",
|
||||||
"emptyState": "Engir starfsmenn komnir, bættu við einum fyir neðan þennan texta",
|
"emptyState": "Engir starfsmenn komnir, bættu við einum fyir neðan þennan texta",
|
||||||
"label": "Notaðu sérsniðaða umboðs starfsmenn",
|
"label": "Notaðu sérsniðaða umboðs starfsmenn",
|
||||||
"urlLabel": "Starfsmanna hlekkir"
|
"urlLabel": "Starfsmanna hlekkir",
|
||||||
|
"urlPlaceholder": "https://"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"preferences": {
|
"preferences": {
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
"passphraseFrameLabel": "Frase password",
|
"passphraseFrameLabel": "Frase password",
|
||||||
"title": "La tua frase password"
|
"title": "La tua frase password"
|
||||||
},
|
},
|
||||||
"hasAccount": "Hai già un account? <0>Accedi </0>",
|
"hasAccount": "Hai già un account? <0>Accedi.</0>",
|
||||||
"login": {
|
"login": {
|
||||||
"description": "Inserisci la tua frase password per accedere al vostro account",
|
"description": "Inserisci la tua frase password per accedere al vostro account",
|
||||||
"deviceLengthError": "Inserisci un nome per il dispositivo",
|
"deviceLengthError": "Inserisci un nome per il dispositivo",
|
||||||
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Ti stai collegando a <0>{{hostname}}</0> - conferma la tua fiducia prima di creare un account",
|
"host": "Ti stai collegando a <0>{{hostname}}</0> - conferma la tua fiducia prima di creare un account",
|
||||||
"no": "Indietro",
|
"no": "Indietro",
|
||||||
|
"noHost": "Il server non è configurato, quindi non si può creare un account",
|
||||||
|
"noHostTitle": "Server non è configurato!",
|
||||||
"title": "Ti fidi di questo server?",
|
"title": "Ti fidi di questo server?",
|
||||||
"yes": "Mi fido di questo server"
|
"yes": "Mi fido di questo server"
|
||||||
},
|
},
|
||||||
@@ -153,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Serie"
|
"show": "Serie"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Inedito"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -292,6 +295,7 @@
|
|||||||
"title": "Qualità"
|
"title": "Qualità"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Scarica",
|
"downloadItem": "Scarica",
|
||||||
"enableSubtitles": "Abilita i sottotitoli",
|
"enableSubtitles": "Abilita i sottotitoli",
|
||||||
"experienceSection": "Esperienza di visione",
|
"experienceSection": "Esperienza di visione",
|
||||||
@@ -318,8 +322,9 @@
|
|||||||
"unknownOption": "Sconosciuto"
|
"unknownOption": "Sconosciuto"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Selezionare i sottotitoli dal file",
|
"customChoice": "Trascina o carica il file",
|
||||||
"customizeLabel": "Personalizzare",
|
"customizeLabel": "Personalizzare",
|
||||||
|
"dropSubtitleFile": "Trascina il file dei sottotitoli qui",
|
||||||
"offChoice": "Spento",
|
"offChoice": "Spento",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Sottotitoli personalizzati",
|
"backlink": "Sottotitoli personalizzati",
|
||||||
@@ -377,6 +382,13 @@
|
|||||||
"title": "Impossibile riprodurre il video!"
|
"title": "Impossibile riprodurre il video!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "L'estensione è disabilitata",
|
||||||
|
"enableExtension": "Abilita l'estensione",
|
||||||
|
"homeButton": "Torna alla pagina iniziale",
|
||||||
|
"text": "Avete installato l'estensione movie-web. Per iniziare a usarla, è necessario abilitare l'estensione per questo sito.",
|
||||||
|
"title": "Abilita l'estensione"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Si è verificato un errore",
|
"failure": "Si è verificato un errore",
|
||||||
"notFound": "Non ha il video",
|
"notFound": "Non ha il video",
|
||||||
@@ -534,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Sfocatura di sfondo",
|
||||||
"backgroundLabel": "Opacità di sfondo",
|
"backgroundLabel": "Opacità di sfondo",
|
||||||
"colorLabel": "Colore",
|
"colorLabel": "Colore",
|
||||||
"previewQuote": "Cantami o Diva del pelide Achille l'ira funesta.",
|
"previewQuote": "Cantami o Diva del pelide Achille l'ira funesta.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요",
|
"host": "<0>{{hostname}}</0>에 연결 중입니다 - 계정을 만들기 전에 신뢰하는지 확인해 주세요",
|
||||||
"no": "뒤로 가기",
|
"no": "뒤로 가기",
|
||||||
|
"noHost": "서버가 구성되어 있지 않기 때문에 계정을 만들 수 없습니다",
|
||||||
|
"noHostTitle": "서버가 구성되지 않았습니다!",
|
||||||
"title": "이 서버를 신뢰하십니까?",
|
"title": "이 서버를 신뢰하십니까?",
|
||||||
"yes": "네, 신뢰합니다"
|
"yes": "네, 신뢰합니다"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "검색결과가 없습니다!",
|
"noResults": "검색결과가 없습니다!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "무엇을 보고 싶으신가요?",
|
"default": "무엇을 보고 싶으신가요?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"무엇을 탐험하고 싶으신가요?",
|
||||||
|
"관심 목록에 무엇이 있나요?",
|
||||||
|
"당신이 가장 좋아하는 영화는?",
|
||||||
|
"당신이 가장 좋아하는 시리즈는?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "검색 결과"
|
"sectionTitle": "검색 결과"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "오늘 아침에 무엇을 보고 싶으신가요?",
|
"default": "오늘 아침에 무엇을 보고 싶으신가요?",
|
||||||
"extra": ["Before Sunrise가 좋다고 들었어요"]
|
"extra": [
|
||||||
|
"Before Sunrise가 좋다고 들었어요"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "오늘 밤에 무엇을 보고 싶으신가요?",
|
"default": "오늘 밤에 무엇을 보고 싶으신가요?",
|
||||||
"extra": ["피곤하신가요? The Exorcist가 좋다고 들었어요."]
|
"extra": [
|
||||||
|
"피곤하신가요? The Exorcist가 좋다고 들었어요."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -241,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS 플레이리스트 링크 복사하기",
|
||||||
"disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. movie-web은 다운로드 제공 방식을 통제할 수 없습니다.",
|
"disclaimer": "다운로드는 제공업체에서 직접 가져옵니다. movie-web은 다운로드 제공 방식을 통제할 수 없습니다.",
|
||||||
"downloadSubtitle": "현재 자막 다운로드",
|
"downloadSubtitle": "현재 자막 다운로드",
|
||||||
"downloadVideo": "영상 다운로드",
|
"downloadVideo": "영상 다운로드",
|
||||||
@@ -524,6 +536,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "배경 흐림",
|
||||||
"backgroundLabel": "배경 투명도",
|
"backgroundLabel": "배경 투명도",
|
||||||
"colorLabel": "색상",
|
"colorLabel": "색상",
|
||||||
"previewQuote": "두려워해서는 안 됩니다. 두려움은 마음을 죽이는 존재입니다.",
|
"previewQuote": "두려워해서는 안 됩니다. 두려움은 마음을 죽이는 존재입니다.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "तपाइँ <0>{{hostname}}</0> मा कनेक्ट हुनुहुन्छ - कृपया खाता बनाउनु अघि तपाइँ यसलाई विश्वास गर्नुहुन्छ भनेर पुष्टि गर्नुहोस्",
|
"host": "तपाइँ <0>{{hostname}}</0> मा कनेक्ट हुनुहुन्छ - कृपया खाता बनाउनु अघि तपाइँ यसलाई विश्वास गर्नुहुन्छ भनेर पुष्टि गर्नुहोस्",
|
||||||
"no": "पछाडी जाउ",
|
"no": "पछाडी जाउ",
|
||||||
|
"noHost": "सर्भर कन्फिगर गरिएको छैन, त्यसैले तपाईंले खाता सिर्जना गर्न सक्नुहुन्न",
|
||||||
|
"noHostTitle": "सर्भर कन्फिगर गरिएको छैन!",
|
||||||
"title": "के तपाइँ यो सर्भरमा भरोसा गर्नुहुन्छ?",
|
"title": "के तपाइँ यो सर्भरमा भरोसा गर्नुहुन्छ?",
|
||||||
"yes": "म यो सर्भरलाई भरोसा गर्छु"
|
"yes": "म यो सर्भरलाई भरोसा गर्छु"
|
||||||
},
|
},
|
||||||
@@ -153,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "चलचित्र",
|
"movie": "चलचित्र",
|
||||||
"show": "कार्यक्रम"
|
"show": "कार्यक्रम"
|
||||||
}
|
},
|
||||||
|
"unreleased": "रिलीज नभएको"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -292,6 +295,7 @@
|
|||||||
"title": "क्वालिटी"
|
"title": "क्वालिटी"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "आवाज",
|
||||||
"downloadItem": "डाउनलोड",
|
"downloadItem": "डाउनलोड",
|
||||||
"enableSubtitles": "उपशीर्षकहरू सक्षम गर्नुहोस्",
|
"enableSubtitles": "उपशीर्षकहरू सक्षम गर्नुहोस्",
|
||||||
"experienceSection": "हेर्ने अनुभव",
|
"experienceSection": "हेर्ने अनुभव",
|
||||||
@@ -318,8 +322,9 @@
|
|||||||
"unknownOption": "अज्ञात"
|
"unknownOption": "अज्ञात"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "फाइलबाट उपशीर्षक चयन गर्नुहोस्",
|
"customChoice": "ड्रप वा फाइल अपलोड गर्नुहोस्",
|
||||||
"customizeLabel": "अनुकूलन गर्नुहोस्",
|
"customizeLabel": "अनुकूलन गर्नुहोस्",
|
||||||
|
"dropSubtitleFile": "सबटाइटल फाइल यहाँ छोड्नुहोस्",
|
||||||
"offChoice": "बन्द",
|
"offChoice": "बन्द",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "अनुकूलन उपशीर्षकहरू",
|
"backlink": "अनुकूलन उपशीर्षकहरू",
|
||||||
@@ -377,6 +382,13 @@
|
|||||||
"title": "भिडियो प्ले गर्न असफल भयो!"
|
"title": "भिडियो प्ले गर्न असफल भयो!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "एक्स्टेन्सन बन्द छ",
|
||||||
|
"enableExtension": "एक्स्टेन्सन सक्षम गर्नुहोस्",
|
||||||
|
"homeButton": "होम् जाउँ",
|
||||||
|
"text": "तपाईंले चलचित्र-वेब एक्स्टेन्सन स्थापना गर्नुभएको छ। यसलाई प्रयोग गर्न सुरु गर्न, तपाईंले यो साइटको लागिएक्स्टेन्सन सक्षम गर्न आवश्यक छ।",
|
||||||
|
"title": "कृपया एक्स्टेन्सन सक्षम गर्नुहोस्"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "त्रुटि भयो",
|
"failure": "त्रुटि भयो",
|
||||||
"notFound": "भिडियो छैन",
|
"notFound": "भिडियो छैन",
|
||||||
@@ -534,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "पृष्ठभूमि धमिलो",
|
||||||
"backgroundLabel": "पृष्ठभूमि अस्पष्टता",
|
"backgroundLabel": "पृष्ठभूमि अस्पष्टता",
|
||||||
"colorLabel": "रङ",
|
"colorLabel": "रङ",
|
||||||
"previewQuote": "म डराउनु हुँदैन। डर दिमागको हत्यारा हो।",
|
"previewQuote": "म डराउनु हुँदैन। डर दिमागको हत्यारा हो।",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Je gaat zo verbinden met <0>{{hostname}}</0>, check even of je deze link vertrouwt",
|
"host": "Je gaat zo verbinden met <0>{{hostname}}</0>, check even of je deze link vertrouwt",
|
||||||
"no": "Vorige pagina",
|
"no": "Vorige pagina",
|
||||||
|
"noHost": "De server is nog niet geconfigureerd, daarom kunt u geen account aanmaken",
|
||||||
|
"noHostTitle": "Server niet geconfigureerd!",
|
||||||
"title": "Vertrouw je deze server?",
|
"title": "Vertrouw je deze server?",
|
||||||
"yes": "Ik vertrouw deze server"
|
"yes": "Ik vertrouw deze server"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "We konden helaas niets vinden!",
|
"noResults": "We konden helaas niets vinden!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Wat wil je graag kijken?",
|
"default": "Wat wil je graag kijken?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Wat wil je verkennen?",
|
||||||
|
"Wat staat er op jouw kijklijst?",
|
||||||
|
"Wat is jouw favoriete film?",
|
||||||
|
"Wat is jouw favoriete serie?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Zoekresultaten"
|
"sectionTitle": "Zoekresultaten"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Waar wil je deze ochtend naar kijken?",
|
"default": "Waar wil je deze ochtend naar kijken?",
|
||||||
"extra": ["Ik hoor dat Before Sunrise goed is"]
|
"extra": [
|
||||||
|
"Ik hoor dat Before Sunrise goed is"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Wat wil je vanavond bekijken?",
|
"default": "Wat wil je vanavond bekijken?",
|
||||||
"extra": ["Moe? Ik hoor dat The Exorcist goed is."]
|
"extra": [
|
||||||
|
"Moe? Ik hoor dat The Exorcist goed is."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Serie"
|
"show": "Serie"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Niet uitgebracht"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -176,10 +188,10 @@
|
|||||||
"back": "Terug",
|
"back": "Terug",
|
||||||
"explainer": "Door gebruik te maken van de browserextensie kun je de beste streams krijgen. Met slechts een eenvoudige installatie.",
|
"explainer": "Door gebruik te maken van de browserextensie kun je de beste streams krijgen. Met slechts een eenvoudige installatie.",
|
||||||
"explainerIos": "Helaas, de browserextensie is niet ondersteund op iOS. Druk op <bold>Terug</bold> om een andere optie te kiezen.",
|
"explainerIos": "Helaas, de browserextensie is niet ondersteund op iOS. Druk op <bold>Terug</bold> om een andere optie te kiezen.",
|
||||||
"extensionHelp": "Als je de extensie hebt geïnstalleerd maar niet wordt gedetecteerd, <bold>Open dan de extensie via het extensies menu in je browser</bold> en volg de stappen op het scherm.",
|
"extensionHelp": "Als je de extensie hebt geïnstalleerd maar niet wordt gedetecteerd, <bold>open dan de extensie via het extensies menu in je browser</bold> en volg de stappen op het scherm.",
|
||||||
"linkChrome": "Installeer de Chrome-extensie",
|
"linkChrome": "Installeer de Chrome-extensie",
|
||||||
"linkFirefox": "Installeer de Firefox-extensie",
|
"linkFirefox": "Installeer de Firefox-extensie",
|
||||||
"notDetecting": "Geïnstalleerd op Chrome maar wordt niet weergegeven? Probeer de pagina opnieuw te laden!",
|
"notDetecting": "Geïnstalleerd op Chrome, maar de site detecteert het niet? Probeer de pagina opnieuw te laden!",
|
||||||
"notDetectingAction": "Pagina opnieuw laden",
|
"notDetectingAction": "Pagina opnieuw laden",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowed": "Extensie is niet ingeschakeld voor deze pagina",
|
"disallowed": "Extensie is niet ingeschakeld voor deze pagina",
|
||||||
@@ -207,7 +219,7 @@
|
|||||||
"title": "Laten we een nieuwe proxy instellen"
|
"title": "Laten we een nieuwe proxy instellen"
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"explainer": "Om de beste mogelijke streams te krijgen, moet je kiezen welke streamingmethode je wilt gebruiken.",
|
"explainer": "Om de beste streams mogelijk te krijgen, moet je kiezen welke streammethode je wilt gebruiken.",
|
||||||
"options": {
|
"options": {
|
||||||
"default": {
|
"default": {
|
||||||
"text": "Ik wil geen streams van goede kwaliteit, <0 /> <1>Gebruik de standaardinstellingen.</1>"
|
"text": "Ik wil geen streams van goede kwaliteit, <0 /> <1>Gebruik de standaardinstellingen.</1>"
|
||||||
@@ -241,6 +253,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS-afspeellijstlink kopiëren",
|
||||||
"disclaimer": "Downloads worden direct bij de bron opgehaald. movie-web heeft geen controle over het bestand dat je ontvangt.",
|
"disclaimer": "Downloads worden direct bij de bron opgehaald. movie-web heeft geen controle over het bestand dat je ontvangt.",
|
||||||
"downloadSubtitle": "Download huidige ondertiteling",
|
"downloadSubtitle": "Download huidige ondertiteling",
|
||||||
"downloadVideo": "Download filmpje",
|
"downloadVideo": "Download filmpje",
|
||||||
@@ -282,6 +295,7 @@
|
|||||||
"title": "Kwaliteit"
|
"title": "Kwaliteit"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Audio",
|
||||||
"downloadItem": "Download",
|
"downloadItem": "Download",
|
||||||
"enableSubtitles": "Ondertitels inschakelen",
|
"enableSubtitles": "Ondertitels inschakelen",
|
||||||
"experienceSection": "Kijk-ervaring",
|
"experienceSection": "Kijk-ervaring",
|
||||||
@@ -308,8 +322,9 @@
|
|||||||
"unknownOption": "Onbekend"
|
"unknownOption": "Onbekend"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Selecteer ondertiteling uit bestand",
|
"customChoice": "Sleep of upload bestand",
|
||||||
"customizeLabel": "Aanpassen",
|
"customizeLabel": "Aanpassen",
|
||||||
|
"dropSubtitleFile": "Sleep ondertitelbestand naar hier",
|
||||||
"offChoice": "Uit",
|
"offChoice": "Uit",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Aangepaste ondertiteling",
|
"backlink": "Aangepaste ondertiteling",
|
||||||
@@ -367,6 +382,13 @@
|
|||||||
"title": "Oeps, hier ging iets mis!"
|
"title": "Oeps, hier ging iets mis!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Extensie uitgeschakeld",
|
||||||
|
"enableExtension": "Extensie inschakelen",
|
||||||
|
"homeButton": "Naar hoofdpagina",
|
||||||
|
"text": "Je hebt de movie-web extensie geïnstalleerd. Om deze te gebruiken, moet je de extensie inschakelen voor deze site.",
|
||||||
|
"title": "Activeer alstublieft de extensie"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Daar ging iets mis",
|
"failure": "Daar ging iets mis",
|
||||||
"notFound": "Er is geen video gevonden",
|
"notFound": "Er is geen video gevonden",
|
||||||
@@ -524,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Achtergrondvervaging",
|
||||||
"backgroundLabel": "Achtergrond dekking",
|
"backgroundLabel": "Achtergrond dekking",
|
||||||
"colorLabel": "Kleur",
|
"colorLabel": "Kleur",
|
||||||
"previewQuote": "Ik mag niet bang zijn. Angst doodt de geest.",
|
"previewQuote": "Ik mag niet bang zijn. Angst doodt de geest.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "ਤੁਸੀਂ <0>{{hostname}}</0> ਨਾਲ ਜੁੜ ਰਹੇ ਹੋ - ਕਿਰਪਾ ਕਰਕੇ ਖਾਤਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇਸ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ",
|
"host": "ਤੁਸੀਂ <0>{{hostname}}</0> ਨਾਲ ਜੁੜ ਰਹੇ ਹੋ - ਕਿਰਪਾ ਕਰਕੇ ਖਾਤਾ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਸੀਂ ਇਸ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ",
|
||||||
"no": "ਵਾਪਸ ਜਾਓ",
|
"no": "ਵਾਪਸ ਜਾਓ",
|
||||||
|
"noHost": "ਸਰਵਰ ਕੌਂਫਿਗਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸਲਈ ਤੁਸੀਂ ਖਾਤਾ ਨਹੀਂ ਬਣਾ ਸਕਦੇ ਹੋ",
|
||||||
|
"noHostTitle": "ਸਰਵਰ ਕੌਂਫਿਗਰ ਨਹੀਂ ਕੀਤਾ ਗਿਆ!",
|
||||||
"title": "ਕੀ ਤੁਸੀਂ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ?",
|
"title": "ਕੀ ਤੁਸੀਂ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਕਰਦੇ ਹੋ?",
|
||||||
"yes": "ਮੈਨੂੰ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਹੈ"
|
"yes": "ਮੈਨੂੰ ਇਸ ਸਰਵਰ 'ਤੇ ਭਰੋਸਾ ਹੈ"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "ਅਸੀਂ ਕੁਝ ਵੀ ਨਹੀਂ ਲੱਭ ਸਕੇ!",
|
"noResults": "ਅਸੀਂ ਕੁਝ ਵੀ ਨਹੀਂ ਲੱਭ ਸਕੇ!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "ਤੁਸੀਂ ਕੀ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
"default": "ਤੁਸੀਂ ਕੀ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"ਤੁਸੀਂ ਕੀ ਪੜਚੋਲ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ?",
|
||||||
|
"ਤੁਹਾਡੀ ਨਿਗਰਾਨੀ ਸੂਚੀ ਵਿੱਚ ਕੀ ਹੈ?",
|
||||||
|
"ਤੁਹਾਡੀ ਮਨਪਸੰਦ ਫਿਲਮ ਕਿਹੜੀ ਹੈ?",
|
||||||
|
"ਤੁਹਾਡੀ ਮਨਪਸੰਦ ਲੜੀ ਕਿਹੜੀ ਹੈ?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "ਖੋਜ ਨਤੀਜੇ"
|
"sectionTitle": "ਖੋਜ ਨਤੀਜੇ"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "ਤੁਸੀਂ ਅੱਜ ਸਵੇਰੇ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?",
|
"default": "ਤੁਸੀਂ ਅੱਜ ਸਵੇਰੇ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?",
|
||||||
"extra": ["ਮੈਂ ਸੁਣਦਾ ਹਾਂ ਕਿ ਸੂਰਜ ਚੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਚੰਗਾ ਹੁੰਦਾ ਹੈ"]
|
"extra": [
|
||||||
|
"ਮੈਂ ਸੁਣਦਾ ਹਾਂ ਕਿ ਸੂਰਜ ਚੜ੍ਹਨ ਤੋਂ ਪਹਿਲਾਂ ਚੰਗਾ ਹੁੰਦਾ ਹੈ"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "ਤੁਸੀਂ ਅੱਜ ਰਾਤ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?",
|
"default": "ਤੁਸੀਂ ਅੱਜ ਰਾਤ ਕੀ ਦੇਖਣਾ ਚਾਹੋਗੇ?",
|
||||||
"extra": ["ਥੱਕ ਗਏ? ਮੈਂ ਸੁਣਿਆ ਹੈ ਕਿ Exorcist ਚੰਗਾ ਹੈ."]
|
"extra": [
|
||||||
|
"ਥੱਕ ਗਏ? ਮੈਂ ਸੁਣਿਆ ਹੈ ਕਿ Exorcist ਚੰਗਾ ਹੈ."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -241,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS ਪਲੇਲਿਸਟ ਲਿੰਕ ਕਾਪੀ ਕਰੋ",
|
||||||
"disclaimer": "ਡਾਊਨਲੋਡ ਸਿੱਧੇ ਪ੍ਰਦਾਤਾ ਤੋਂ ਲਏ ਜਾਂਦੇ ਹਨ. ਮੂਵੀ-ਵੈੱਬ ਦਾ ਇਸ 'ਤੇ ਕੰਟਰੋਲ ਨਹੀਂ ਹੈ ਕਿ ਡਾਊਨਲੋਡ ਕਿਵੇਂ ਪ੍ਰਦਾਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ.",
|
"disclaimer": "ਡਾਊਨਲੋਡ ਸਿੱਧੇ ਪ੍ਰਦਾਤਾ ਤੋਂ ਲਏ ਜਾਂਦੇ ਹਨ. ਮੂਵੀ-ਵੈੱਬ ਦਾ ਇਸ 'ਤੇ ਕੰਟਰੋਲ ਨਹੀਂ ਹੈ ਕਿ ਡਾਊਨਲੋਡ ਕਿਵੇਂ ਪ੍ਰਦਾਨ ਕੀਤੇ ਜਾਂਦੇ ਹਨ.",
|
||||||
"downloadSubtitle": "ਮੌਜੂਦਾ ਉਪਸਿਰਲੇਖ ਡਾਊਨਲੋਡ ਕਰੋ",
|
"downloadSubtitle": "ਮੌਜੂਦਾ ਉਪਸਿਰਲੇਖ ਡਾਊਨਲੋਡ ਕਰੋ",
|
||||||
"downloadVideo": "ਵੀਡੀਓ ਡਾਊਨਲੋਡ ਕਰੋ",
|
"downloadVideo": "ਵੀਡੀਓ ਡਾਊਨਲੋਡ ਕਰੋ",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Łączysz się z <0>{{hostname}}</0> - przed utworzeniem konta potwierdź że ufasz temu serwerowi",
|
"host": "Łączysz się z <0>{{hostname}}</0> - przed utworzeniem konta potwierdź że ufasz temu serwerowi",
|
||||||
"no": "Wstecz",
|
"no": "Wstecz",
|
||||||
|
"noHost": "Serwer nie został skonfigurowany, więc nie można utworzyć konta",
|
||||||
|
"noHostTitle": "Serwer nie skonfigurowany!",
|
||||||
"title": "Ufasz temu serwerowi?",
|
"title": "Ufasz temu serwerowi?",
|
||||||
"yes": "Ufam temu serwerowi"
|
"yes": "Ufam temu serwerowi"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Nie mogliśmy niczego znaleźć!",
|
"noResults": "Nie mogliśmy niczego znaleźć!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Co chciałbyś obejrzeć?",
|
"default": "Co chciałbyś obejrzeć?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Co chcesz odkryć?",
|
||||||
|
"Co znajduje się na Twojej liście do obejrzenia?",
|
||||||
|
"Jaki jest twój ulubiony film?",
|
||||||
|
"Jaki jest twój ulubiony serial?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Wyniki wyszukiwania"
|
"sectionTitle": "Wyniki wyszukiwania"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Co chciałbyś obejrzeć dziś rano?",
|
"default": "Co chciałbyś obejrzeć dziś rano?",
|
||||||
"extra": ["Słyszałem że „Przed wschodem słońca” jest dobre"]
|
"extra": [
|
||||||
|
"Słyszałem że „Przed wschodem słońca” jest dobre"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Co chciałbyś obejrzeć dziś wieczorem?",
|
"default": "Co chciałbyś obejrzeć dziś wieczorem?",
|
||||||
"extra": ["Zmęczony? Słyszałem że „Egzorcysta” jest dobry."]
|
"extra": [
|
||||||
|
"Zmęczony? Słyszałem że „Egzorcysta” jest dobry."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -176,10 +187,10 @@
|
|||||||
"back": "Wstecz",
|
"back": "Wstecz",
|
||||||
"explainer": "Korzystając z rozszerzenia przeglądarki, możesz uzyskać najlepsze strumienie. Wystarczy prosta instalacja.",
|
"explainer": "Korzystając z rozszerzenia przeglądarki, możesz uzyskać najlepsze strumienie. Wystarczy prosta instalacja.",
|
||||||
"explainerIos": "Niestety, rozszerzenie przeglądarki nie jest obsługiwane w systemie iOS, naciśnij <bold>Wstecz</bold>, aby wybrać inną opcję.",
|
"explainerIos": "Niestety, rozszerzenie przeglądarki nie jest obsługiwane w systemie iOS, naciśnij <bold>Wstecz</bold>, aby wybrać inną opcję.",
|
||||||
"extensionHelp": "Jeżeli zainstalowałeś rozszerzenie, ale nie zostało ono wykryte. <bold>Otwórz rozszerzenie za pomocą menu rozszerzeń przeglądarki</bold> i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.",
|
"extensionHelp": "Jeżeli zainstalowałeś rozszerzenie, ale nie zostało ono wykryte, <bold>otwórz rozszerzenie za pomocą menu rozszerzeń przeglądarki</bold> i postępuj zgodnie z instrukcjami wyświetlanymi na ekranie.",
|
||||||
"linkChrome": "Zainstaluj rozszerzenie na Chrome",
|
"linkChrome": "Zainstaluj rozszerzenie na Chrome",
|
||||||
"linkFirefox": "Zainstaluj rozszerzenie na Firefox",
|
"linkFirefox": "Zainstaluj rozszerzenie na Firefox",
|
||||||
"notDetecting": "Zainstalowano na Chrome, ale się nie wyświetla? Spróbuj odświeżyć stronę!",
|
"notDetecting": "Zainstalowano w Chrome, ale strona go nie wykrywa? Spróbuj odświeżyć stronę!",
|
||||||
"notDetectingAction": "Odśwież stronę",
|
"notDetectingAction": "Odśwież stronę",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowed": "Rozszerzenie nie jest włączone dla tej strony",
|
"disallowed": "Rozszerzenie nie jest włączone dla tej strony",
|
||||||
@@ -207,7 +218,7 @@
|
|||||||
"title": "Stwórzmy nowe proxy"
|
"title": "Stwórzmy nowe proxy"
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"explainer": "Aby uzyskać najlepsze transmisje strumieniowe. Będziesz musiał wybrać metodę strumieniowania, której chcesz użyć.",
|
"explainer": "Aby uzyskać najlepsze transmisje strumieniowe, będziesz musiał wybrać metodę strumieniowania której chcesz użyć.",
|
||||||
"options": {
|
"options": {
|
||||||
"default": {
|
"default": {
|
||||||
"text": "Nie chcę dobrej jakości strumieni, <0 /> <1>użyj domyślnej konfiguracji</1>"
|
"text": "Nie chcę dobrej jakości strumieni, <0 /> <1>użyj domyślnej konfiguracji</1>"
|
||||||
@@ -241,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Kopiuj link do listy odtwarzania HLS",
|
||||||
"disclaimer": "Pliki do pobrania są pobierane bezpośrednio od dostawcy. movie-web nie ma kontroli nad sposobem dostarczania plików do pobrania.",
|
"disclaimer": "Pliki do pobrania są pobierane bezpośrednio od dostawcy. movie-web nie ma kontroli nad sposobem dostarczania plików do pobrania.",
|
||||||
"downloadSubtitle": "Pobierz aktualne napisy",
|
"downloadSubtitle": "Pobierz aktualne napisy",
|
||||||
"downloadVideo": "Pobierz wideo",
|
"downloadVideo": "Pobierz wideo",
|
||||||
@@ -282,6 +294,7 @@
|
|||||||
"title": "Jakość"
|
"title": "Jakość"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Dźwięk",
|
||||||
"downloadItem": "Pobierz",
|
"downloadItem": "Pobierz",
|
||||||
"enableSubtitles": "Włącz napisy",
|
"enableSubtitles": "Włącz napisy",
|
||||||
"experienceSection": "Odtwarzanie",
|
"experienceSection": "Odtwarzanie",
|
||||||
@@ -308,8 +321,9 @@
|
|||||||
"unknownOption": "Nieznany"
|
"unknownOption": "Nieznany"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Wybierz napisy z pliku",
|
"customChoice": "Wrzuć lub prześlij plik",
|
||||||
"customizeLabel": "Dostosuj",
|
"customizeLabel": "Dostosuj",
|
||||||
|
"dropSubtitleFile": "Przeciągnij i upuść plik z napisami tutaj",
|
||||||
"offChoice": "Wyłączone",
|
"offChoice": "Wyłączone",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Własne napisy",
|
"backlink": "Własne napisy",
|
||||||
@@ -524,6 +538,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Rozmycie tła",
|
||||||
"backgroundLabel": "Krycie tła",
|
"backgroundLabel": "Krycie tła",
|
||||||
"colorLabel": "Kolor",
|
"colorLabel": "Kolor",
|
||||||
"previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.",
|
"previewQuote": "Nie wolno mi się bać. Strach zabija myślenie.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Você está se conectando a <0>{{hostname}}</0> - por favor, confirme se confia nele antes de criar uma conta",
|
"host": "Você está se conectando a <0>{{hostname}}</0> - por favor, confirme se confia nele antes de criar uma conta",
|
||||||
"no": "Voltar",
|
"no": "Voltar",
|
||||||
|
"noHost": "O servidor não foi configurado, portanto você não pode criar uma conta",
|
||||||
|
"noHostTitle": "Servidor não configurado!",
|
||||||
"title": "Você confia neste servidor?",
|
"title": "Você confia neste servidor?",
|
||||||
"yes": "Eu confio neste servidor"
|
"yes": "Eu confio neste servidor"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Não conseguimos encontrar nada!",
|
"noResults": "Não conseguimos encontrar nada!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "O que você quer assistir?",
|
"default": "O que você quer assistir?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"O que você gostaria de explorar?",
|
||||||
|
"O que está na sua lista para assistir?",
|
||||||
|
"Qual o seu filme favorito?",
|
||||||
|
"Qual a sua série favorita?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Resultados da pesquisa"
|
"sectionTitle": "Resultados da pesquisa"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "O que você gostaria de assistir esta manhã?",
|
"default": "O que você gostaria de assistir esta manhã?",
|
||||||
"extra": ["Ouvi dizer que Antes do Amanhecer é bom"]
|
"extra": [
|
||||||
|
"Ouvi dizer que Antes do Amanhecer é bom"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "O que você gostaria de assistir esta noite?",
|
"default": "O que você gostaria de assistir esta noite?",
|
||||||
"extra": ["Cansado? Ouvi dizer que O Exorcista é bom."]
|
"extra": [
|
||||||
|
"Cansado? Ouvi dizer que O Exorcista é bom."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Filme",
|
"movie": "Filme",
|
||||||
"show": "Série"
|
"show": "Série"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Não lançado"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -283,6 +295,7 @@
|
|||||||
"title": "Qualidade"
|
"title": "Qualidade"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Áudio",
|
||||||
"downloadItem": "Baixar",
|
"downloadItem": "Baixar",
|
||||||
"enableSubtitles": "Ativar Legendas",
|
"enableSubtitles": "Ativar Legendas",
|
||||||
"experienceSection": "Experiência de visualização",
|
"experienceSection": "Experiência de visualização",
|
||||||
@@ -309,8 +322,9 @@
|
|||||||
"unknownOption": "Desconhecido"
|
"unknownOption": "Desconhecido"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Selecione arquivo de legenda",
|
"customChoice": "Solte ou faça upload do arquivo",
|
||||||
"customizeLabel": "Personalizar",
|
"customizeLabel": "Personalizar",
|
||||||
|
"dropSubtitleFile": "Solte o arquivo da legenda aqui",
|
||||||
"offChoice": "Desativadas",
|
"offChoice": "Desativadas",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Legendas personalizadas",
|
"backlink": "Legendas personalizadas",
|
||||||
@@ -368,6 +382,13 @@
|
|||||||
"title": "Falha ao reproduzir o vídeo!"
|
"title": "Falha ao reproduzir o vídeo!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Extensão desativada",
|
||||||
|
"enableExtension": "Ativar extensão",
|
||||||
|
"homeButton": "Ir para o início",
|
||||||
|
"text": "Você instalou a extensão movie-web. Para começar a usá-la, você precisa ativar a extensão neste site.",
|
||||||
|
"title": "Por favor, ative a extensão"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Ocorreu um erro",
|
"failure": "Ocorreu um erro",
|
||||||
"notFound": "Não tem o vídeo",
|
"notFound": "Não tem o vídeo",
|
||||||
@@ -525,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Desfoque de fundo",
|
||||||
"backgroundLabel": "Opacidade do fundo",
|
"backgroundLabel": "Opacidade do fundo",
|
||||||
"colorLabel": "Cor",
|
"colorLabel": "Cor",
|
||||||
"previewQuote": "Eu não devo ter medo. Medo é o assassino da mente.",
|
"previewQuote": "Eu não devo ter medo. Medo é o assassino da mente.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Vă conectați la <0>{{hostname}}</0> - vă rugăm să confirmați că aveți încredere înainte de a vă crea un cont",
|
"host": "Vă conectați la <0>{{hostname}}</0> - vă rugăm să confirmați că aveți încredere înainte de a vă crea un cont",
|
||||||
"no": "Întoarce-te",
|
"no": "Întoarce-te",
|
||||||
|
"noHost": "Serverul nu a fost configurat, deci nu vă puteți crea un cont",
|
||||||
|
"noHostTitle": "Serverul nu este configurat!",
|
||||||
"title": "Ai încredere în acest server?",
|
"title": "Ai încredere în acest server?",
|
||||||
"yes": "Am încredere în acest server"
|
"yes": "Am încredere în acest server"
|
||||||
},
|
},
|
||||||
@@ -79,6 +81,7 @@
|
|||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"legal": {
|
"legal": {
|
||||||
|
"disclaimer": "Declinare a răspunderii",
|
||||||
"disclaimerText": "movie-web nu găzduiește niciun fișier, ci doar trimite la servicii terțe. Problemele juridice ar trebui abordate cu gazdele și furnizorii de fișiere. movie-web nu este responsabil pentru niciun fișier media afișat de furnizorii de video."
|
"disclaimerText": "movie-web nu găzduiește niciun fișier, ci doar trimite la servicii terțe. Problemele juridice ar trebui abordate cu gazdele și furnizorii de fișiere. movie-web nu este responsabil pentru niciun fișier media afișat de furnizorii de video."
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
@@ -94,6 +97,7 @@
|
|||||||
"about": "Despre",
|
"about": "Despre",
|
||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"login": "Log in",
|
"login": "Log in",
|
||||||
|
"onboarding": "Configurație",
|
||||||
"pagetitle": "{{title}} - movie-web",
|
"pagetitle": "{{title}} - movie-web",
|
||||||
"register": "Inregistreaza-te",
|
"register": "Inregistreaza-te",
|
||||||
"settings": "Setări"
|
"settings": "Setări"
|
||||||
@@ -116,7 +120,12 @@
|
|||||||
"noResults": "Nu am putut găsi nimic!",
|
"noResults": "Nu am putut găsi nimic!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "La ce dorești să te uiți?",
|
"default": "La ce dorești să te uiți?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Ce vrei să explorezi?",
|
||||||
|
"Ce e pe lista dvs. de urmărire?",
|
||||||
|
"Care e filmul tău preferat?",
|
||||||
|
"Care e serialul tău preferat?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Rezultate de căutare"
|
"sectionTitle": "Rezultate de căutare"
|
||||||
},
|
},
|
||||||
@@ -129,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "La ce dorești să te in uiți dimineață aceasta?",
|
"default": "La ce dorești să te in uiți dimineață aceasta?",
|
||||||
"extra": ["Aud că Before Sunrise este bun"]
|
"extra": [
|
||||||
|
"Aud că Before Sunrise este bun"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "La ce dorești să te uiți în astă seară?",
|
"default": "La ce dorești să te uiți în astă seară?",
|
||||||
"extra": ["Obosit? Aud că The Exorcist is good."]
|
"extra": [
|
||||||
|
"Obosit? Aud că The Exorcist is good."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -163,6 +176,69 @@
|
|||||||
"message": "Ne-am uitat peste tot: sub pubele, în dulap, În spatele proxy-ului dar din păcate nu am găsit pagina pe care dumneavoastră o căutați.",
|
"message": "Ne-am uitat peste tot: sub pubele, în dulap, În spatele proxy-ului dar din păcate nu am găsit pagina pe care dumneavoastră o căutați.",
|
||||||
"title": "N-am putut găsi pagina"
|
"title": "N-am putut găsi pagina"
|
||||||
},
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"defaultConfirm": {
|
||||||
|
"cancel": "Anulare",
|
||||||
|
"confirm": "Folosește configurația implicită",
|
||||||
|
"description": "Configurația implicită nu are cele mai bune fluxuri și poate fi insuportabil de înceată.",
|
||||||
|
"title": "Sunteți sigur(ă)?"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"back": "Înapoi",
|
||||||
|
"explainer": "Folosind această extensie de browser, puteți obține cele mai bune fluxuri pe care le avem de oferit. Cu doar o simplă instalare.",
|
||||||
|
"explainerIos": "Din păcate, extensia de browser nu e suportată pe iOS, Apăsați <bold>Înapoi</bold> pentru a alege altă opțiune.",
|
||||||
|
"extensionHelp": "Dacă ați instalat extensia dar nu e detectată, <bold>deschideți extensia din meniul extensiilor al browserului dvs.</bold> și urmăriți pașii de pe ecran.",
|
||||||
|
"linkChrome": "Instalare extensie pentru Chrome",
|
||||||
|
"linkFirefox": "Instalare extensie pentru Firefox",
|
||||||
|
"notDetecting": "Instalată pe Chrome dar site-ul nu o detectează? Încerați să reîmprospătați pagina!",
|
||||||
|
"notDetectingAction": "Reîncarcă pagina",
|
||||||
|
"status": {
|
||||||
|
"disallowed": "Extensia nu e activată pentru această pagină",
|
||||||
|
"disallowedAction": "Activare extensie",
|
||||||
|
"failed": "Nu s-a putut obține statusul",
|
||||||
|
"loading": "Așteptăm să vă instalați extensia",
|
||||||
|
"outdated": "Versiunea extensiei este prea veche",
|
||||||
|
"success": "Extensia funcționează conform așteptărilor!"
|
||||||
|
},
|
||||||
|
"submit": "Continuare",
|
||||||
|
"title": "Să începem cu o extensie"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"back": "Înapoi",
|
||||||
|
"explainer": "Cu metoda proxy, puteți obține fluxuri de calitate prin a face un proxy cu autoservire.",
|
||||||
|
"input": {
|
||||||
|
"errorConnection": "Nu s-a putut conecta la proxy",
|
||||||
|
"errorInvalidUrl": "URL invalid",
|
||||||
|
"errorNotProxy": "Am așteptat un proxy dar am primit un site web",
|
||||||
|
"label": "URL-ul proxy-ului",
|
||||||
|
"placeholder": "https://"
|
||||||
|
},
|
||||||
|
"link": "Învață cum se face un proxy",
|
||||||
|
"submit": "Validare proxy",
|
||||||
|
"title": "Să facem un proxy nou"
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"explainer": "Pentru a obține cele mai bune fluxuri posibile, va trebui să alegeți ce metodă de streaming vreți să folosiți.",
|
||||||
|
"options": {
|
||||||
|
"default": {
|
||||||
|
"text": "Nu vreau fluxuri de calitate,<0 /> <1>folosește configurația implicită</1>"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"action": "Instalare extensie",
|
||||||
|
"description": "Instalați extensia browser și obțineți acces la cele mai bune surse.",
|
||||||
|
"quality": "Cea mai bună calitate",
|
||||||
|
"title": "Extensie browser"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"action": "Configurare proxy",
|
||||||
|
"description": "Configurați un proxy în doar 5 minute și obținți acces la resurse grozave.",
|
||||||
|
"quality": "Calitate bună",
|
||||||
|
"title": "Proxy personalizat"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "Hai să configurăm movie-web"
|
||||||
|
}
|
||||||
|
},
|
||||||
"overlays": {
|
"overlays": {
|
||||||
"close": "Închide"
|
"close": "Închide"
|
||||||
},
|
},
|
||||||
@@ -176,10 +252,11 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Copiere link către lista de redare HLS",
|
||||||
"disclaimer": "Descărcările sunt luate direct de la furnizor. Movie-web nu are control cum descărcările sunt furnizate.",
|
"disclaimer": "Descărcările sunt luate direct de la furnizor. Movie-web nu are control cum descărcările sunt furnizate.",
|
||||||
"downloadSubtitle": "Descărcați subtitlul curente",
|
"downloadSubtitle": "Descărcați subtitlul curente",
|
||||||
"downloadVideo": "Descarcă video",
|
"downloadVideo": "Descarcă video",
|
||||||
"hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. movie-web nu are control asupra modului în care sunt furnizate descărcările. Vă rugăm să rețineți că descărcați o listă de redare HLS, aceasta este destinată utilizatorilor familiar cu streamingul avansat.",
|
"hlsDisclaimer": "Descărcările sunt preluate direct de la furnizor. movie-web nu are control asupra modului în care sunt furnizate descărcările.<br /><br />Vă rugăm să rețineți că descărcați o listă de redare HLS, <bold>nu este recomandat să o descărcați dacă nu sunteți familiari cu formate avasate de streaming</bold>. Încercați surse diferite pentru formate diferte.",
|
||||||
"onAndroid": {
|
"onAndroid": {
|
||||||
"1": "Pentru a descărca pe android, apăsați butonul de descărcare apoi în pagina nouă,<bold>apăsați și țineți</bold> pe video, apoi selectați <bold>salvează</bold>.",
|
"1": "Pentru a descărca pe android, apăsați butonul de descărcare apoi în pagina nouă,<bold>apăsați și țineți</bold> pe video, apoi selectați <bold>salvează</bold>.",
|
||||||
"shortTitle": "Descărcare / Android",
|
"shortTitle": "Descărcare / Android",
|
||||||
@@ -236,8 +313,8 @@
|
|||||||
"title": "Nu a fost găsită nicio încorporare"
|
"title": "Nu a fost găsită nicio încorporare"
|
||||||
},
|
},
|
||||||
"noStream": {
|
"noStream": {
|
||||||
"text": "Sursa asta nu are nicio sursă de streaming pentru filmul său spectacolul.",
|
"text": "Sursa aceasta nu are niciun flux pentru acest film sau serial.",
|
||||||
"title": "Niciun stream"
|
"title": "Niciun flux"
|
||||||
},
|
},
|
||||||
"title": "Surse",
|
"title": "Surse",
|
||||||
"unknownOption": "Necunoscut"
|
"unknownOption": "Necunoscut"
|
||||||
@@ -398,25 +475,50 @@
|
|||||||
},
|
},
|
||||||
"connections": {
|
"connections": {
|
||||||
"server": {
|
"server": {
|
||||||
"description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL.",
|
"description": "Dacă doriți să vă conectați la un backend personalizat pentru a vă stoca datele, activați acest lucru și furnizați adresa URL. <0>Instrucțiuni.</0>",
|
||||||
"label": "Server personalizat",
|
"label": "Server personalizat",
|
||||||
"urlLabel": "Adresa URL personalizată a serverului"
|
"urlLabel": "Adresa URL personalizată a serverului"
|
||||||
},
|
},
|
||||||
"setup": {
|
"setup": {
|
||||||
|
"doSetup": "Configurează",
|
||||||
"errorStatus": {
|
"errorStatus": {
|
||||||
|
"description": "Se pare că unul sau mai multe obiecte din această configurație au nevoie de atenția ta.",
|
||||||
"title": "Ceva are nevoie de atenția ta"
|
"title": "Ceva are nevoie de atenția ta"
|
||||||
|
},
|
||||||
|
"itemError": "Ceva nu e bine cu această setare. Parcurge configurația din nou pentru a o corecta.",
|
||||||
|
"items": {
|
||||||
|
"default": "Configurație implicită",
|
||||||
|
"extension": "Extensie",
|
||||||
|
"proxy": "Proxy personalizat"
|
||||||
|
},
|
||||||
|
"redoSetup": "Refă configurația",
|
||||||
|
"successStatus": {
|
||||||
|
"description": "Toate sunt la locul lor ca să începeți să urmariți conținutul preferat.",
|
||||||
|
"title": "Totul este pregătit!"
|
||||||
|
},
|
||||||
|
"unsetStatus": {
|
||||||
|
"description": "Apăsați butonul din dreapta pentru a începe procesul de configurare.",
|
||||||
|
"title": "Nu ați parcurs configurația"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"title": "Conexiuni",
|
"title": "Conexiuni",
|
||||||
"workers": {
|
"workers": {
|
||||||
"addButton": "Adaugă un nou muncitor",
|
"addButton": "Adaugă un nou muncitor",
|
||||||
"description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători.",
|
"description": "Pentru ca aplicația să funcționeze, tot traficul este direcționat prin proxy. Activați acest lucru dacă doriți să vă aduceți proprii lucrători. <0>Instrucțiuni.</0>",
|
||||||
"emptyState": "Niciun muncitor incă, adaugă unu",
|
"emptyState": "Niciun muncitor incă, adaugă unu",
|
||||||
"label": "Utilizați lucrători proxy personalizați",
|
"label": "Utilizați lucrători proxy personalizați",
|
||||||
"urlLabel": "Adresele URL ale lucrătorilor",
|
"urlLabel": "Adresele URL ale lucrătorilor",
|
||||||
"urlPlaceholder": "https://"
|
"urlPlaceholder": "https://"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"preferences": {
|
||||||
|
"language": "Limba aplicației",
|
||||||
|
"languageDescription": "Limba aplicată întregii aplicații.",
|
||||||
|
"thumbnail": "Generați pictograme",
|
||||||
|
"thumbnailDescription": "De cele mai multe ori videoclipurile nu au pictograme. Puteți activa această setare pentru a le genera din mers, dar vă pot încetini videoclipul.",
|
||||||
|
"thumbnailLabel": "Generați pictograme",
|
||||||
|
"title": "Preferințe"
|
||||||
|
},
|
||||||
"reset": "Resetare",
|
"reset": "Resetare",
|
||||||
"save": "Salvează",
|
"save": "Salvează",
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
@@ -434,6 +536,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Blurarea fundalului",
|
||||||
"backgroundLabel": "Opacitatea fundalului",
|
"backgroundLabel": "Opacitatea fundalului",
|
||||||
"colorLabel": "Culoare",
|
"colorLabel": "Culoare",
|
||||||
"previewQuote": "nu trebuie să mă tem. Frica este ucigașul minții.",
|
"previewQuote": "nu trebuie să mă tem. Frica este ucigașul minții.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
|
"host": "Вы подключаетесь к <0>{{hostname}}</0> - пожалуйста, подтвердите, что вы доверяете ему, прежде чем создавать учётную запись",
|
||||||
"no": "Вернуться назад",
|
"no": "Вернуться назад",
|
||||||
|
"noHost": "Сервер не был настроен, поэтому вы не можете создать учётную запись",
|
||||||
|
"noHostTitle": "Сервер не настроен!",
|
||||||
"title": "Вы доверяете этому серверу?",
|
"title": "Вы доверяете этому серверу?",
|
||||||
"yes": "Я доверяю этому серверу"
|
"yes": "Я доверяю этому серверу"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Мы ничего не нашли!",
|
"noResults": "Мы ничего не нашли!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Что вы хотите посмотреть?",
|
"default": "Что вы хотите посмотреть?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Что вы хотите исследовать?",
|
||||||
|
"Что в вашем списке?",
|
||||||
|
"Какой ваш любимый фильм?",
|
||||||
|
"Какой ваш любимый сериал?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Результаты поиска"
|
"sectionTitle": "Результаты поиска"
|
||||||
},
|
},
|
||||||
@@ -131,7 +138,9 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Что бы вы хотели посмотреть этим утром?",
|
"default": "Что бы вы хотели посмотреть этим утром?",
|
||||||
"extra": ["Слышали, что «Перед рассветом» – отличный фильм"]
|
"extra": [
|
||||||
|
"Слышали, что «Перед рассветом» – отличный фильм"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Что бы вы хотели посмотреть этим вечером?",
|
"default": "Что бы вы хотели посмотреть этим вечером?",
|
||||||
@@ -146,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Фильм",
|
"movie": "Фильм",
|
||||||
"show": "Сериал"
|
"show": "Сериал"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Ожидается"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -285,6 +295,7 @@
|
|||||||
"title": "Качество"
|
"title": "Качество"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Аудио",
|
||||||
"downloadItem": "Скачать",
|
"downloadItem": "Скачать",
|
||||||
"enableSubtitles": "Включить субтитры",
|
"enableSubtitles": "Включить субтитры",
|
||||||
"experienceSection": "Впечатления от просмотра",
|
"experienceSection": "Впечатления от просмотра",
|
||||||
@@ -311,8 +322,9 @@
|
|||||||
"unknownOption": "Неизвестный"
|
"unknownOption": "Неизвестный"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Выбрать субтитры из файла",
|
"customChoice": "Перетащите файл или нажмите для загрузки",
|
||||||
"customizeLabel": "Настроить",
|
"customizeLabel": "Настроить",
|
||||||
|
"dropSubtitleFile": "Перетащите файл субтитров",
|
||||||
"offChoice": "Выключить",
|
"offChoice": "Выключить",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Пользовательские субтитры",
|
"backlink": "Пользовательские субтитры",
|
||||||
@@ -370,6 +382,13 @@
|
|||||||
"title": "Не удалось воспроизвести видео!"
|
"title": "Не удалось воспроизвести видео!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Расширение отключено",
|
||||||
|
"enableExtension": "Включить расширение",
|
||||||
|
"homeButton": "Вернуться на главную",
|
||||||
|
"text": "Вы установили расширение movie-web. Чтобы начать его использовать, необходимо включить расширение для этого сайта.",
|
||||||
|
"title": "Пожалуйста, включите расширение"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Возникла ошибка",
|
"failure": "Возникла ошибка",
|
||||||
"notFound": "Такого видео нет",
|
"notFound": "Такого видео нет",
|
||||||
@@ -527,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Размытие фона",
|
||||||
"backgroundLabel": "Прозрачность фона",
|
"backgroundLabel": "Прозрачность фона",
|
||||||
"colorLabel": "Цвет",
|
"colorLabel": "Цвет",
|
||||||
"previewQuote": "Я не должен бояться. Страх убивает разум.",
|
"previewQuote": "Я не должен бояться. Страх убивает разум.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Povezujete se z <0>{{hostname}}</0> - pred ustvarjanjem računa potrdite, da mu zaupate",
|
"host": "Povezujete se z <0>{{hostname}}</0> - pred ustvarjanjem računa potrdite, da mu zaupate",
|
||||||
"no": "Nazaj",
|
"no": "Nazaj",
|
||||||
|
"noHost": "Strežnik ni nastavljen, zato ustvarjanje profila ni mogoče",
|
||||||
|
"noHostTitle": "Strežnik ni nastavljen!",
|
||||||
"title": "Ali zaupate temu strežniku?",
|
"title": "Ali zaupate temu strežniku?",
|
||||||
"yes": "Zaupam strežniku"
|
"yes": "Zaupam strežniku"
|
||||||
},
|
},
|
||||||
@@ -153,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Serija"
|
"show": "Serija"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Neizdano"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -292,6 +295,7 @@
|
|||||||
"title": "Kvaliteta"
|
"title": "Kvaliteta"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Zvok",
|
||||||
"downloadItem": "Prenesi",
|
"downloadItem": "Prenesi",
|
||||||
"enableSubtitles": "Vklopi podnapise",
|
"enableSubtitles": "Vklopi podnapise",
|
||||||
"experienceSection": "Izkušnje ogleda",
|
"experienceSection": "Izkušnje ogleda",
|
||||||
@@ -318,8 +322,9 @@
|
|||||||
"unknownOption": "Neznano"
|
"unknownOption": "Neznano"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Izberi podnapise iz datoteke",
|
"customChoice": "Povleci in naloži datoteko",
|
||||||
"customizeLabel": "Prilagodi",
|
"customizeLabel": "Prilagodi",
|
||||||
|
"dropSubtitleFile": "Povleci datoteko s podnapisi tukaj",
|
||||||
"offChoice": "Off",
|
"offChoice": "Off",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Podnapisi po meri",
|
"backlink": "Podnapisi po meri",
|
||||||
@@ -377,6 +382,13 @@
|
|||||||
"title": "Ni uspelo predvajati videoposnetka!"
|
"title": "Ni uspelo predvajati videoposnetka!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Razširitev brskalnika je onemogočena",
|
||||||
|
"enableExtension": "Vklopi razširitev brskalnika",
|
||||||
|
"homeButton": "Pojdi domov",
|
||||||
|
"text": "Namestili ste razširitev movie-web. Če jo želite začeti uporabljati, morate razširitev omogočiti za to spletno mesto.",
|
||||||
|
"title": "Prosim vklopite razširitev brskalnika"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Zgodila se je napaka",
|
"failure": "Zgodila se je napaka",
|
||||||
"notFound": "Nima videoposnetka",
|
"notFound": "Nima videoposnetka",
|
||||||
@@ -534,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Zameglitev ozadja",
|
||||||
"backgroundLabel": "Motnost ozadja",
|
"backgroundLabel": "Motnost ozadja",
|
||||||
"colorLabel": "Barva",
|
"colorLabel": "Barva",
|
||||||
"previewQuote": "Ne smem se bati. Strah je ubijalec misli.",
|
"previewQuote": "Ne smem se bati. Strah je ubijalec misli.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "lawa ilo sina li <0>{{hostname}}</0> - ona li pona tawa sina la sina ken pali e lipu open",
|
"host": "lawa ilo sina li <0>{{hostname}}</0> - ona li pona tawa sina la sina ken pali e lipu open",
|
||||||
"no": "o weka",
|
"no": "o weka",
|
||||||
|
"noHost": "lawa ilo ni li open ala li nasin ala la, sina ken ala pali e lipu open",
|
||||||
|
"noHostTitle": "lawa ilo li open ala a!",
|
||||||
"title": "lawa ilo ni li pona tawa sina anu seme?",
|
"title": "lawa ilo ni li pona tawa sina anu seme?",
|
||||||
"yes": "lawa ilo ni li pona"
|
"yes": "lawa ilo ni li pona"
|
||||||
},
|
},
|
||||||
@@ -79,7 +81,8 @@
|
|||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"legal": {
|
"legal": {
|
||||||
"disclaimer": "o sona e ni:"
|
"disclaimer": "o sona e ni:",
|
||||||
|
"disclaimerText": "ilo Muwi-We li mama ala e ijo sitelen. ona li toki taso tawa ilo ante. utala nasin li lon la o toki tawa ona pi ilo ante. sitelen ale li tan ala ilo Muwi-We"
|
||||||
},
|
},
|
||||||
"links": {
|
"links": {
|
||||||
"discord": "kulupu Siko",
|
"discord": "kulupu Siko",
|
||||||
@@ -117,22 +120,33 @@
|
|||||||
"noResults": "ijo li lon ala a!",
|
"noResults": "ijo li lon ala a!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "sina wile lukin e seme?",
|
"default": "sina wile lukin e seme?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"sina wile alasa e seme?",
|
||||||
|
"sina wile lukin e seme?",
|
||||||
|
"sitelen nanpa wan sina li seme?",
|
||||||
|
"sitelen nanpa wan sina li seme?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "mi lukin e ni:"
|
"sectionTitle": "mi lukin e ni:"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"day": {
|
"day": {
|
||||||
"default": "tenpo suno ni la sina wile lukin e seme?",
|
"default": "tenpo suno ni la sina wile lukin e seme?",
|
||||||
"extra": ["sina pilin alasa la o lukin e sitelen Jurassic Park"]
|
"extra": [
|
||||||
|
"sina pilin alasa la o lukin e sitelen Jurassic Park"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "tenpo sin ni la sina wile lukin e seme?",
|
"default": "tenpo sin ni la sina wile lukin e seme?",
|
||||||
"extra": ["ken la sitelen Before Sunrise li pona"]
|
"extra": [
|
||||||
|
"ken la sitelen Before Sunrise li pona"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "tenpo pimeja ni la sina wile lukin e seme?",
|
"default": "tenpo pimeja ni la sina wile lukin e seme?",
|
||||||
"extra": ["sina pilin lape anu seme? o alasa lukin e sitelen Exorcist"]
|
"extra": [
|
||||||
|
"sina pilin lape anu seme? o alasa lukin e sitelen Exorcist"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -163,6 +177,9 @@
|
|||||||
"title": "mi ken ala lukin e lipu ona"
|
"title": "mi ken ala lukin e lipu ona"
|
||||||
},
|
},
|
||||||
"onboarding": {
|
"onboarding": {
|
||||||
|
"defaultConfirm": {
|
||||||
|
"cancel": "ala"
|
||||||
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"title": "o open e ilo Muwi-We"
|
"title": "o open e ilo Muwi-We"
|
||||||
}
|
}
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "<0>{{hostname}}</0> adlı sunucuya bağlanıyorsunuz - lütfen hesap oluşturmadan önce sunucuya güvendiğinizi onaylayın",
|
"host": "<0>{{hostname}}</0> adlı sunucuya bağlanıyorsunuz - lütfen hesap oluşturmadan önce sunucuya güvendiğinizi onaylayın",
|
||||||
"no": "Geri dön",
|
"no": "Geri dön",
|
||||||
|
"noHost": "Sunucu henüz yapılandırılmadığı için hesap oluşturamazsınız",
|
||||||
|
"noHostTitle": "Sunucu kullanılamıyor!",
|
||||||
"title": "Bu sunucuya güveniyor musunuz?",
|
"title": "Bu sunucuya güveniyor musunuz?",
|
||||||
"yes": "Bu sunucuya güveniyorum"
|
"yes": "Bu sunucuya güveniyorum"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Hiçbir şey bulamadık!",
|
"noResults": "Hiçbir şey bulamadık!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Ne izlemek istersiniz?",
|
"default": "Ne izlemek istersiniz?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Ne keşfetmek istiyorsunuz?",
|
||||||
|
"İzleme listenizde neler var?",
|
||||||
|
"Favori filmin ne?",
|
||||||
|
"En sevdiğiniz dizi ne?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Arama sonuçları"
|
"sectionTitle": "Arama sonuçları"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Bu sabah ne izlemek istersiniz?",
|
"default": "Bu sabah ne izlemek istersiniz?",
|
||||||
"extra": ["Before Sunrise'a iyi diyorlar"]
|
"extra": [
|
||||||
|
"Before Sunrise'a iyi diyorlar"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Bu akşam ne izlemek istersiniz?",
|
"default": "Bu akşam ne izlemek istersiniz?",
|
||||||
"extra": ["Yoruldun mu? The Exorcist'e iyi diyorlar."]
|
"extra": [
|
||||||
|
"Yoruldun mu? The Exorcist'e iyi diyorlar."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -144,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "Film",
|
"movie": "Film",
|
||||||
"show": "Dizi"
|
"show": "Dizi"
|
||||||
}
|
},
|
||||||
|
"unreleased": "Yayınlanmamış"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -165,6 +177,69 @@
|
|||||||
"message": "Her yere baktık: bazanın altına, dolabın içine hatta ara sunucuya ama maalesef aradığınız sayfayı bulamadık.",
|
"message": "Her yere baktık: bazanın altına, dolabın içine hatta ara sunucuya ama maalesef aradığınız sayfayı bulamadık.",
|
||||||
"title": "Sayfa bulunamadı"
|
"title": "Sayfa bulunamadı"
|
||||||
},
|
},
|
||||||
|
"onboarding": {
|
||||||
|
"defaultConfirm": {
|
||||||
|
"cancel": "İptal Et",
|
||||||
|
"confirm": "Ön Tanımlı Ayarları Kullan",
|
||||||
|
"description": "Varsayılan ayarlar en iyi akış hizmetlerini sunmayabilir ve oldukça yavaş olabilir.",
|
||||||
|
"title": "Emin misiniz?"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"back": "Geri Dön",
|
||||||
|
"explainer": "Tarayıcı uzantısını kullanarak, size sunduğumuz en iyi akışlara erişebilirsiniz. Kurulumu ise oldukça basit.",
|
||||||
|
"explainerIos": "Ne yazık ki, tarayıcı uzantısı iOS cihazlarında desteklenmemektedir. <bold>Geri Dön</bold> düğmesine basarak başka bir seçenek seçebilirsiniz.",
|
||||||
|
"extensionHelp": "Eklenti yüklediyseniz ancak algılamıyorsa, <bold>tarayıcınızın uzantı menüsünden eklentiyi açın</bold> ve ekran adımları takip edin.",
|
||||||
|
"linkChrome": "Chrome uzantısını yükleyin",
|
||||||
|
"linkFirefox": "Firefox uzantısını yükleyin",
|
||||||
|
"notDetecting": "Chrome'a yüklendi, ancak site algılamıyor mu? Sayfayı yenileyin!",
|
||||||
|
"notDetectingAction": "Sayfayı yenile",
|
||||||
|
"status": {
|
||||||
|
"disallowed": "Bu sayfa için uzantı etkinleştirilmemiş",
|
||||||
|
"disallowedAction": "Uzantıyı etkinleştir",
|
||||||
|
"failed": "Durum bilgisi alınamadı",
|
||||||
|
"loading": "Uzantıyı yüklemenizi bekliyoruz",
|
||||||
|
"outdated": "Uzantınız çok eski",
|
||||||
|
"success": "Uzantı sorunsuz çalışıyor!"
|
||||||
|
},
|
||||||
|
"submit": "Devam Et",
|
||||||
|
"title": "Hadi bir uzantıyla başlayalım"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"back": "Geri Dön",
|
||||||
|
"explainer": "Ara sunucu yöntemiyle, yüksek kalitede yayınlara kolayca erişin.",
|
||||||
|
"input": {
|
||||||
|
"errorConnection": "Proxy'ye bağlanılamadı",
|
||||||
|
"errorInvalidUrl": "Geçerli bir URL değil",
|
||||||
|
"errorNotProxy": "Proxy bekleniyordu, web sitesine yönlendirildi",
|
||||||
|
"label": "Proxy URL",
|
||||||
|
"placeholder": "https://"
|
||||||
|
},
|
||||||
|
"link": "Proxy oluşturmayı öğrenin",
|
||||||
|
"submit": "Proxy'yi Gönder",
|
||||||
|
"title": "Hadi yeni bir proxy oluşturalım"
|
||||||
|
},
|
||||||
|
"start": {
|
||||||
|
"explainer": "En iyi akış deneyimi için kullanmak istediğiniz akış yöntemini seçmeniz gerekiyor.",
|
||||||
|
"options": {
|
||||||
|
"default": {
|
||||||
|
"text": "Yüksek kaliteli akış istemiyorum,<0 /> <1>varsayılan ayarı kullanın</1>"
|
||||||
|
},
|
||||||
|
"extension": {
|
||||||
|
"action": "Uzantıyı Yükle",
|
||||||
|
"description": "En iyi kaynaklara erişmek için tarayıcı uzantısını yükleyin.",
|
||||||
|
"quality": "En yüksek kalite",
|
||||||
|
"title": "Tarayıcı uzantısı"
|
||||||
|
},
|
||||||
|
"proxy": {
|
||||||
|
"action": "Proxy'yi Kur",
|
||||||
|
"description": "Sadece 5 dakikada proxy kurun ve harika kaynaklara erişin.",
|
||||||
|
"quality": "İyi kalite",
|
||||||
|
"title": "Özel Proxy"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"title": "movie-web ile sizi hazır hale getirelim"
|
||||||
|
}
|
||||||
|
},
|
||||||
"overlays": {
|
"overlays": {
|
||||||
"close": "Kapat"
|
"close": "Kapat"
|
||||||
},
|
},
|
||||||
@@ -178,10 +253,11 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "HLS oynatma listesi bağlantısını kopyala",
|
||||||
"disclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. movie-web'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur.",
|
"disclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. movie-web'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur.",
|
||||||
"downloadSubtitle": "Geçerli altyazıyı indir",
|
"downloadSubtitle": "Geçerli altyazıyı indir",
|
||||||
"downloadVideo": "Videoyu indir",
|
"downloadVideo": "Videoyu indir",
|
||||||
"hlsDisclaimer": "İndirme bağlantıları doğrudan sağlayıcının kendisinden alınır. movie-web'in sağlanan indirme bağlantıları üzerinde hiçbir konrolü yoktur. Lütfen bir HLS oynatma listesi indirdiğinizi unutmayın; bu, gelişmiş multimedya akışına aşina olan kullanıcılara yöneliktir.",
|
"hlsDisclaimer": "İndirmeler doğrudan sağlayıcıdan alınır. movie-web, indirmelerin nasıl sağlanacağı üzerinde kontrole sahip değildir.<br /><br />Lütfen bir HLS oynatma listesi indirdiğinizi unutmayın; <bold>ileri seviye bilginiz yoksa indirmeniz önerilmez. akış biçimleri</bold>. Farklı formatlar için farklı kaynakları deneyin.",
|
||||||
"onAndroid": {
|
"onAndroid": {
|
||||||
"1": "Android'e indirmek için önce indir butonuna basın, sonra açılan yeni sayfada video üzerine <bold>basılı tutun</bold>, ardından <bold>Videoyu indir</bold> seçeneğini seçin.",
|
"1": "Android'e indirmek için önce indir butonuna basın, sonra açılan yeni sayfada video üzerine <bold>basılı tutun</bold>, ardından <bold>Videoyu indir</bold> seçeneğini seçin.",
|
||||||
"shortTitle": "İndir / Android",
|
"shortTitle": "İndir / Android",
|
||||||
@@ -219,6 +295,7 @@
|
|||||||
"title": "Kalite"
|
"title": "Kalite"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "Ses",
|
||||||
"downloadItem": "İndir",
|
"downloadItem": "İndir",
|
||||||
"enableSubtitles": "Altyazıları Etkinleştir",
|
"enableSubtitles": "Altyazıları Etkinleştir",
|
||||||
"experienceSection": "İzleme deneyimi",
|
"experienceSection": "İzleme deneyimi",
|
||||||
@@ -245,8 +322,9 @@
|
|||||||
"unknownOption": "Bilinmeyen"
|
"unknownOption": "Bilinmeyen"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "Altyazı dosyası yükle",
|
"customChoice": "Dosya sürükleyin veya yükleyin",
|
||||||
"customizeLabel": "Seçenekler",
|
"customizeLabel": "Seçenekler",
|
||||||
|
"dropSubtitleFile": "Altyazı dosyasını buraya sürükleyin",
|
||||||
"offChoice": "Kapat",
|
"offChoice": "Kapat",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "Kişisel altyazılar",
|
"backlink": "Kişisel altyazılar",
|
||||||
@@ -262,6 +340,17 @@
|
|||||||
"text": "API üstverisi yüklenemedi, lütfen internet bağlantınızı kontrol edin.",
|
"text": "API üstverisi yüklenemedi, lütfen internet bağlantınızı kontrol edin.",
|
||||||
"title": "API üstverisi yüklenemedi"
|
"title": "API üstverisi yüklenemedi"
|
||||||
},
|
},
|
||||||
|
"dmca": {
|
||||||
|
"badge": "Kaldırıldı",
|
||||||
|
"text": "Üzgünüz, bu içerik telif hakkı ihlali veya yayından kaldırma bildirimi nedeniyle kullanılamıyor.",
|
||||||
|
"title": "İçerik kaldırıldı"
|
||||||
|
},
|
||||||
|
"extensionPermission": {
|
||||||
|
"badge": "İzin Gerekli",
|
||||||
|
"button": "Uzantıyı kullanın",
|
||||||
|
"text": "Tarayıcı uzantısını yüklemişsiniz, ancak uzantıyı kullanmaya başlamak için izninize ihtiyacımız var.",
|
||||||
|
"title": "Uzantıyı Kişiselleştir"
|
||||||
|
},
|
||||||
"failed": {
|
"failed": {
|
||||||
"badge": "Başarısız oldu",
|
"badge": "Başarısız oldu",
|
||||||
"homeButton": "Ana sayfaya dön",
|
"homeButton": "Ana sayfaya dön",
|
||||||
@@ -293,6 +382,13 @@
|
|||||||
"title": "Video oynatılamadı!"
|
"title": "Video oynatılamadı!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "Eklenti devre dışı",
|
||||||
|
"enableExtension": "Eklentiyi etkinleştir",
|
||||||
|
"homeButton": "Eve git",
|
||||||
|
"text": "movie-web uzantısını kurdunuz. Kullanmaya başlamak için, uzantıyı bu site için etkinleştirmeniz gerekiyor.",
|
||||||
|
"title": "Lütfen eklentiyi etkinleştirin"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "Hata oluştu",
|
"failure": "Hata oluştu",
|
||||||
"notFound": "Video mevcut değil",
|
"notFound": "Video mevcut değil",
|
||||||
@@ -393,6 +489,28 @@
|
|||||||
"label": "Özel sunucu",
|
"label": "Özel sunucu",
|
||||||
"urlLabel": "Özel sunucu URL'si"
|
"urlLabel": "Özel sunucu URL'si"
|
||||||
},
|
},
|
||||||
|
"setup": {
|
||||||
|
"doSetup": "Başlayın",
|
||||||
|
"errorStatus": {
|
||||||
|
"description": "Kurulumda dikkat etmeniz gereken bir veya daha fazla öğe var gibi görünüyor.",
|
||||||
|
"title": "Dikkatinizi gerektiren bir şey var"
|
||||||
|
},
|
||||||
|
"itemError": "Kurulum sırasında bir hata oluşmuş olabilir. Sorunu çözmek için kurulum adımlarını tekrar izleyin.",
|
||||||
|
"items": {
|
||||||
|
"default": "Varsayılan ayarlar",
|
||||||
|
"extension": "Tarayıcı uzantısı",
|
||||||
|
"proxy": "Özel Proxy"
|
||||||
|
},
|
||||||
|
"redoSetup": "Kurulumu tekrar yapın",
|
||||||
|
"successStatus": {
|
||||||
|
"description": "Sevdiğiniz şeyleri izlemek için her şey hazır. Başlayın ve keyfini çıkarın.",
|
||||||
|
"title": "Tamam!"
|
||||||
|
},
|
||||||
|
"unsetStatus": {
|
||||||
|
"description": "Kurulum sürecini başlatmak için lütfen sağdaki düğmeye tıklayın.",
|
||||||
|
"title": "Kurulumu tamamlamadınız"
|
||||||
|
}
|
||||||
|
},
|
||||||
"title": "Bağlantılar",
|
"title": "Bağlantılar",
|
||||||
"workers": {
|
"workers": {
|
||||||
"addButton": "Yeni işleyici ekle",
|
"addButton": "Yeni işleyici ekle",
|
||||||
@@ -403,6 +521,14 @@
|
|||||||
"urlPlaceholder": "https://"
|
"urlPlaceholder": "https://"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"preferences": {
|
||||||
|
"language": "Uygulama dili",
|
||||||
|
"languageDescription": "Uygulamanın tamamı için seçili dil",
|
||||||
|
"thumbnail": "Küçük resimler oluştur",
|
||||||
|
"thumbnailDescription": "Çoğu video için ön izleme görseli bulunmaz. Bu ayarı etkinleştirerek anında oluşturulmasını sağlayabilirsiniz, ancak bu videonuzu yavaşlatabilir.",
|
||||||
|
"thumbnailLabel": "Küçük resim oluştur",
|
||||||
|
"title": "Ayarlar"
|
||||||
|
},
|
||||||
"reset": "Sıfırla",
|
"reset": "Sıfırla",
|
||||||
"save": "Kaydet",
|
"save": "Kaydet",
|
||||||
"sidebar": {
|
"sidebar": {
|
||||||
@@ -420,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Arka plan bulanıklığı",
|
||||||
"backgroundLabel": "Arka plan opaklığı",
|
"backgroundLabel": "Arka plan opaklığı",
|
||||||
"colorLabel": "Renk",
|
"colorLabel": "Renk",
|
||||||
"previewQuote": "Korkmamalıyım. Korku aklın katilidir.",
|
"previewQuote": "Korkmamalıyım. Korku aklın katilidir.",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "Ви під’єднуєтеся до <0>{{hostname}}</0> – підтвердьте, що довіряєте йому, перш ніж створювати обліковий запис",
|
"host": "Ви під’єднуєтеся до <0>{{hostname}}</0> – підтвердьте, що довіряєте йому, перш ніж створювати обліковий запис",
|
||||||
"no": "Повернутися назад",
|
"no": "Повернутися назад",
|
||||||
|
"noHost": "Сервер не був налаштований, тому ви не можете створити обліковий запис",
|
||||||
|
"noHostTitle": "Сервер не налаштований!",
|
||||||
"title": "Чи довіряєте ви цьому серверу?",
|
"title": "Чи довіряєте ви цьому серверу?",
|
||||||
"yes": "Я довіряю цьому серверу"
|
"yes": "Я довіряю цьому серверу"
|
||||||
},
|
},
|
||||||
@@ -118,7 +120,12 @@
|
|||||||
"noResults": "Ми не змогли знайти нічого!",
|
"noResults": "Ми не змогли знайти нічого!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "Що ви хочете подивитися?",
|
"default": "Що ви хочете подивитися?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"Що ви бажаєте дослідити?",
|
||||||
|
"Що у вашому списку спостереження?",
|
||||||
|
"Який ваш улюблений фільм?",
|
||||||
|
"Який ваш улюблений серіал?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "Результати пошуку"
|
"sectionTitle": "Результати пошуку"
|
||||||
},
|
},
|
||||||
@@ -131,11 +138,15 @@
|
|||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "Що б ви хотіли подивитися сьогодні вранці?",
|
"default": "Що б ви хотіли подивитися сьогодні вранці?",
|
||||||
"extra": ["Я чув, що \"Перед сходом сонця\" гарний"]
|
"extra": [
|
||||||
|
"Я чув, що \"Перед сходом сонця\" гарний"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "Що б ви хотіли подивитися сьогодні ввечері?",
|
"default": "Що б ви хотіли подивитися сьогодні ввечері?",
|
||||||
"extra": ["Втомився? Я чув, що \"Екзорцист\" хороший."]
|
"extra": [
|
||||||
|
"Втомився? Я чув, що \"Екзорцист\" хороший."
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -241,6 +252,7 @@
|
|||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
|
"copyHlsPlaylist": "Копіювати посилання на плейлист HLS",
|
||||||
"disclaimer": "Завантаження беруться безпосередньо від провайдера. У movie-web немає контролю над тим, як надаються завантаження.",
|
"disclaimer": "Завантаження беруться безпосередньо від провайдера. У movie-web немає контролю над тим, як надаються завантаження.",
|
||||||
"downloadSubtitle": "Завантажити поточні субтитри",
|
"downloadSubtitle": "Завантажити поточні субтитри",
|
||||||
"downloadVideo": "Завантажити відео",
|
"downloadVideo": "Завантажити відео",
|
||||||
@@ -524,6 +536,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "Розмиття фону",
|
||||||
"backgroundLabel": "Прозорість фону",
|
"backgroundLabel": "Прозорість фону",
|
||||||
"colorLabel": "Колір",
|
"colorLabel": "Колір",
|
||||||
"previewQuote": "Я не повинен боятися. Страх вбиває розум.",
|
"previewQuote": "Я не повинен боятися. Страх вбиває розум.",
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"about": {
|
"about": {
|
||||||
"description": "movie-web 是一款在互聯網上搜尋流媒體的網路應用程式。團隊致力於讓使用者以最簡約的方式消費內容。",
|
"description": "movie-web 是一款在互聯網上搜尋串流媒體的網路應用程式。團隊致力於讓使用者以最簡約的方式觀看內容。",
|
||||||
"faqTitle": "常見問題",
|
"faqTitle": "常見問題",
|
||||||
"q1": {
|
"q1": {
|
||||||
"body": "movie-web 不託管任何內容。您點選觀看內容時,系統均從互聯網搜尋(在加載提示頁和“視頻源”選項卡中,您可以看到正在使用的源)。媒體從未在 movie-web 中上傳,所有內容均通過搜索機制而得。",
|
"body": "movie-web 不託管任何內容。您點選觀看內容時,系統均從互聯網搜尋(在加載提示頁和“視頻源”選項卡中,您可以看到正在使用的源)。媒體從未在 movie-web 中上傳,所有內容均通過搜索機制而得。",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
},
|
},
|
||||||
"q3": {
|
"q3": {
|
||||||
"body": "我們的搜尋結果由電影資料庫(TMDB)驅動,無論視訊來源是否有對應內容,都會顯示結果。",
|
"body": "我們的搜尋結果由電影資料庫(TMDB)驅動,無論視訊來源是否有對應內容,都會顯示結果。",
|
||||||
"title": "搜尋結果中已顯示了影視劇或其他節目,為何我無法播放?"
|
"title": "搜尋結果中已顯示了電視劇或其他節目,為何我無法播放?"
|
||||||
},
|
},
|
||||||
"title": "關於 movie-web"
|
"title": "關於 movie-web"
|
||||||
},
|
},
|
||||||
@@ -22,18 +22,18 @@
|
|||||||
},
|
},
|
||||||
"auth": {
|
"auth": {
|
||||||
"createAccount": "還沒有帳戶? <0>建立一個</0>",
|
"createAccount": "還沒有帳戶? <0>建立一個</0>",
|
||||||
"deviceNameLabel": "設備名稱",
|
"deviceNameLabel": "裝置名稱",
|
||||||
"deviceNamePlaceholder": "我的手機",
|
"deviceNamePlaceholder": "我的手機",
|
||||||
"generate": {
|
"generate": {
|
||||||
"description": "您的密碼短語相當於使用者名稱與密碼。由於您需要輸入它來登入帳戶,請確保將其存放到安全位置",
|
"description": "您的密碼短語相當於使用者名稱與密碼。由於您需要輸入它來登入帳戶,請確保將其存放到安全位置",
|
||||||
"next": "我已儲存密碼短語",
|
"next": "我已經儲存密碼短語",
|
||||||
"passphraseFrameLabel": "密碼短語",
|
"passphraseFrameLabel": "密碼短語",
|
||||||
"title": "您的密碼短語"
|
"title": "您的密碼短語"
|
||||||
},
|
},
|
||||||
"hasAccount": "已經擁有帳戶? <0>點此登入。 </0>",
|
"hasAccount": "已經擁有帳戶? <0>點此登入。 </0>",
|
||||||
"login": {
|
"login": {
|
||||||
"description": "請輸入密碼短語以登入您的帳戶",
|
"description": "請輸入密碼短語以登入您的帳戶",
|
||||||
"deviceLengthError": "請輸入設備名稱",
|
"deviceLengthError": "請輸入裝置名稱",
|
||||||
"passphraseLabel": "12 字密碼短語",
|
"passphraseLabel": "12 字密碼短語",
|
||||||
"passphrasePlaceholder": "密碼短語",
|
"passphrasePlaceholder": "密碼短語",
|
||||||
"submit": "登入",
|
"submit": "登入",
|
||||||
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "您正在連線到 <0>{{hostname}}</0> - 在建立帳戶之前,請確保您信任它",
|
"host": "您正在連線到 <0>{{hostname}}</0> - 在建立帳戶之前,請確保您信任它",
|
||||||
"no": "返回",
|
"no": "返回",
|
||||||
|
"noHost": "因為沒有配置伺服器,所以你不能夠創建帳戶",
|
||||||
|
"noHostTitle": "没有配置伺服器!",
|
||||||
"title": "您是否信任這個伺服器?",
|
"title": "您是否信任這個伺服器?",
|
||||||
"yes": "我信任這個伺服器"
|
"yes": "我信任這個伺服器"
|
||||||
},
|
},
|
||||||
@@ -71,7 +73,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"badge": "它已損壞",
|
"badge": "它壞了",
|
||||||
"details": "錯誤詳情",
|
"details": "錯誤詳情",
|
||||||
"reloadPage": "重新加載頁面",
|
"reloadPage": "重新加載頁面",
|
||||||
"showError": "顯示錯誤詳情",
|
"showError": "顯示錯誤詳情",
|
||||||
@@ -87,7 +89,7 @@
|
|||||||
"dmca": "DMCA",
|
"dmca": "DMCA",
|
||||||
"github": "GitHub"
|
"github": "GitHub"
|
||||||
},
|
},
|
||||||
"tagline": "使用這個開源流媒體應用程序觀看您最喜歡的節目和電影。"
|
"tagline": "使用這個開源串流媒體應用程式觀看您最喜歡的節目和電影。"
|
||||||
},
|
},
|
||||||
"global": {
|
"global": {
|
||||||
"name": "movie-web",
|
"name": "movie-web",
|
||||||
@@ -118,22 +120,33 @@
|
|||||||
"noResults": "我们找不到任何结果!",
|
"noResults": "我们找不到任何结果!",
|
||||||
"placeholder": {
|
"placeholder": {
|
||||||
"default": "您想看什麼?",
|
"default": "您想看什麼?",
|
||||||
"extra": []
|
"extra": [
|
||||||
|
"你想探索什麼?",
|
||||||
|
"你的觀看清單有甚麼電影/電視劇?",
|
||||||
|
"你最喜愛的電影是甚麽?",
|
||||||
|
"你最喜愛的電視劇是甚麽?"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"sectionTitle": "搜索結果"
|
"sectionTitle": "搜索結果"
|
||||||
},
|
},
|
||||||
"titles": {
|
"titles": {
|
||||||
"day": {
|
"day": {
|
||||||
"default": "您今天下午想看什麼?",
|
"default": "您今天下午想看什麼?",
|
||||||
"extra": ["想要來場冒險嗎?《侏羅紀公園》可能是完美選擇。"]
|
"extra": [
|
||||||
|
"想要來場冒險嗎?《侏羅紀公園》可能是完美選擇。"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"morning": {
|
"morning": {
|
||||||
"default": "您今天早上想看什麼?",
|
"default": "您今天早上想看什麼?",
|
||||||
"extra": ["我聽說《情留半天》不錯"]
|
"extra": [
|
||||||
|
"我聽說《情留半天》不錯"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"night": {
|
"night": {
|
||||||
"default": "您今晚想看什麼?",
|
"default": "您今晚想看什麼?",
|
||||||
"extra": ["疲倦了嗎?我聽說《驅魔人》不錯。"]
|
"extra": [
|
||||||
|
"你疲倦嗎?我聽說《驅魔人》不錯。"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -142,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "電影",
|
"movie": "電影",
|
||||||
"show": "節目"
|
"show": "節目"
|
||||||
}
|
},
|
||||||
|
"unreleased": "尚未上映"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -150,7 +164,7 @@
|
|||||||
},
|
},
|
||||||
"menu": {
|
"menu": {
|
||||||
"about": "關於我們",
|
"about": "關於我們",
|
||||||
"donation": "捐",
|
"donation": "捐錢",
|
||||||
"logout": "登出",
|
"logout": "登出",
|
||||||
"register": "同步到雲端",
|
"register": "同步到雲端",
|
||||||
"settings": "設定",
|
"settings": "設定",
|
||||||
@@ -167,32 +181,32 @@
|
|||||||
"defaultConfirm": {
|
"defaultConfirm": {
|
||||||
"cancel": "取消",
|
"cancel": "取消",
|
||||||
"confirm": "使用預設設置",
|
"confirm": "使用預設設置",
|
||||||
"description": "默認設置沒有最好的直播,並且可能慢得令人難以忍受。",
|
"description": "默認設置沒有最好的串流,並且可能慢得令人難以忍受。",
|
||||||
"title": "您確定嗎?"
|
"title": "您確定嗎?"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"back": "返回",
|
"back": "返回",
|
||||||
"explainer": "使用瀏覽器擴展程式,您可以獲得我們提供的最佳直播。只需簡單的安裝。",
|
"explainer": "使用瀏覽器擴充功能,您可以獲得我們提供的最佳直播。只需簡單的安裝。",
|
||||||
"explainerIos": "不幸的是,iOS 不支援瀏覽器擴展程式,按 <bold>返回 </bold>選擇其他選項。",
|
"explainerIos": "不幸的是,iOS 不支援瀏覽器擴充功能,按 <bold>返回 </bold>選擇其他選項。",
|
||||||
"extensionHelp": "如果您已安裝該擴展程式,但未檢測到該擴展程式, <bold>請通過瀏覽器的擴展程式功能表打開該擴展 程式 </bold>,然後按照螢幕上的步驟操作。",
|
"extensionHelp": "如果您已安裝該擴充功能,但未檢測到該擴充功能, <bold>請通過瀏覽器的擴充功能功能表打開該擴展 程式 </bold>,然後按照螢幕上的步驟操作。",
|
||||||
"linkChrome": "安裝 Chrome 擴展程式",
|
"linkChrome": "安裝 Chrome 擴充功能",
|
||||||
"linkFirefox": "安裝 Firefox 擴展程式",
|
"linkFirefox": "安裝 Firefox 擴充功能",
|
||||||
"notDetecting": "安裝在 Chrome 上,但網站沒有檢測到它?嘗試重新載入頁面!",
|
"notDetecting": "安裝在 Chrome 上,但網站沒有檢測到它?嘗試重新載入頁面!",
|
||||||
"notDetectingAction": "重新加載頁面",
|
"notDetectingAction": "重新加載頁面",
|
||||||
"status": {
|
"status": {
|
||||||
"disallowed": "未為此頁面啟用擴展程式",
|
"disallowed": "未為此頁面啟用瀏覽器擴充功能",
|
||||||
"disallowedAction": "啟用擴展程式",
|
"disallowedAction": "啟用瀏覽器擴充功能",
|
||||||
"failed": "無法請求狀態",
|
"failed": "無法請求狀態",
|
||||||
"loading": "等待您安裝擴展程式",
|
"loading": "等待您安裝瀏覽器擴充功能",
|
||||||
"outdated": "擴展程式版本太舊",
|
"outdated": "瀏覽器擴充功能版本太舊",
|
||||||
"success": "擴展程式正在按預期工作!"
|
"success": "瀏覽器擴充功能正在正常運作!"
|
||||||
},
|
},
|
||||||
"submit": "繼續",
|
"submit": "繼續",
|
||||||
"title": "讓我們從擴展程式開始"
|
"title": "讓我們從瀏覽器擴充功能開始"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"back": "返回",
|
"back": "返回",
|
||||||
"explainer": "使用代理伺服器,您可以通過製作自定代理伺服器來獲得高品質的直播。",
|
"explainer": "使用代理伺服器,您可以通過製作自定代理伺服器來獲得高品質的串流。",
|
||||||
"input": {
|
"input": {
|
||||||
"errorConnection": "無法連接到代理伺服器",
|
"errorConnection": "無法連接到代理伺服器",
|
||||||
"errorInvalidUrl": "URL 無效",
|
"errorInvalidUrl": "URL 無效",
|
||||||
@@ -205,20 +219,20 @@
|
|||||||
"title": "讓我們創建一個新的代理伺服器"
|
"title": "讓我們創建一個新的代理伺服器"
|
||||||
},
|
},
|
||||||
"start": {
|
"start": {
|
||||||
"explainer": "為了獲得最好的流媒體,您需要選擇您想使用的流媒體方法。",
|
"explainer": "為了獲得最好的串流媒體,您需要選擇您想使用的串流方法。",
|
||||||
"options": {
|
"options": {
|
||||||
"default": {
|
"default": {
|
||||||
"text": "我不想要高品質的流,<0 /> <1> 使用預設設置</1>"
|
"text": "我不想要高品質的串流,<0 /> <1> 使用預設設置</1>"
|
||||||
},
|
},
|
||||||
"extension": {
|
"extension": {
|
||||||
"action": "安裝擴展程式",
|
"action": "安裝瀏覽器擴充功能",
|
||||||
"description": "安裝瀏覽器擴展程式並訪問最佳資源。",
|
"description": "安裝瀏覽器擴充功能來使用最佳資源。",
|
||||||
"quality": "最好的品質",
|
"quality": "最好的品質",
|
||||||
"title": "瀏覽器擴展程式"
|
"title": "瀏覽器擴充功能"
|
||||||
},
|
},
|
||||||
"proxy": {
|
"proxy": {
|
||||||
"action": "設置代理伺服器",
|
"action": "設置代理伺服器",
|
||||||
"description": "只需 5 分鐘即可設置代理伺服器並訪問優質資源。",
|
"description": "只需 5 分鐘即可設置代理伺服器並訪問優質來源。",
|
||||||
"quality": "好品質",
|
"quality": "好品質",
|
||||||
"title": "自訂代理伺服器"
|
"title": "自訂代理伺服器"
|
||||||
}
|
}
|
||||||
@@ -235,11 +249,12 @@
|
|||||||
"short": "後退"
|
"short": "後退"
|
||||||
},
|
},
|
||||||
"casting": {
|
"casting": {
|
||||||
"enabled": "正在投放到設備…"
|
"enabled": "正在投放到裝置…"
|
||||||
},
|
},
|
||||||
"menus": {
|
"menus": {
|
||||||
"downloads": {
|
"downloads": {
|
||||||
"disclaimer": "下載直接從供應商處獲取。movie-web 無法控制下載的提供方式。",
|
"copyHlsPlaylist": "複製 HLS 播放清單鏈接",
|
||||||
|
"disclaimer": "視頻直接從供應商處獲取。movie-web 無法控制下載的提供方式。",
|
||||||
"downloadSubtitle": "下載當前字幕",
|
"downloadSubtitle": "下載當前字幕",
|
||||||
"downloadVideo": "下載視頻",
|
"downloadVideo": "下載視頻",
|
||||||
"hlsDisclaimer": "下載直接從供應商處獲取。movie-web 無法控制下載的提供方式。<br /><br /> 請注意,您正在下載 HLS 播放清單, <bold>如果您不熟悉高級流媒體格式,則不建議下載 </bold> 。嘗試使用不同格式的不同來源。",
|
"hlsDisclaimer": "下載直接從供應商處獲取。movie-web 無法控制下載的提供方式。<br /><br /> 請注意,您正在下載 HLS 播放清單, <bold>如果您不熟悉高級流媒體格式,則不建議下載 </bold> 。嘗試使用不同格式的不同來源。",
|
||||||
@@ -261,10 +276,10 @@
|
|||||||
"title": "下載"
|
"title": "下載"
|
||||||
},
|
},
|
||||||
"episodes": {
|
"episodes": {
|
||||||
"button": "分集",
|
"button": "集數",
|
||||||
"emptyState": "該季暫無分集,請稍後再來!",
|
"emptyState": "該季暫無集數,請稍後再來!",
|
||||||
"episodeBadge": "E{{episode}}",
|
"episodeBadge": "E{{episode}}",
|
||||||
"loadingError": "加載分集時出錯",
|
"loadingError": "加載集數時出錯",
|
||||||
"loadingList": "載入中...",
|
"loadingList": "載入中...",
|
||||||
"loadingTitle": "載入中...",
|
"loadingTitle": "載入中...",
|
||||||
"unairedEpisodes": "本季中的一集或多集已因尚未播出而被禁用。"
|
"unairedEpisodes": "本季中的一集或多集已因尚未播出而被禁用。"
|
||||||
@@ -276,10 +291,11 @@
|
|||||||
"quality": {
|
"quality": {
|
||||||
"automaticLabel": "自動品質",
|
"automaticLabel": "自動品質",
|
||||||
"hint": "您可以嘗試<0>切換源</0>以獲得不同的質量選項。",
|
"hint": "您可以嘗試<0>切換源</0>以獲得不同的質量選項。",
|
||||||
"iosNoQuality": "由於 Apple 定義的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<0>切換到另一個來源</0>以獲得不同的質量選項。",
|
"iosNoQuality": "由於 Apple 的限制,此來源的品質選擇在 iOS 上不可用。您可以嘗試<0>切換到另一個來源</0>以獲得不同的質量選項。",
|
||||||
"title": "品質"
|
"title": "品質"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "音頻",
|
||||||
"downloadItem": "下載",
|
"downloadItem": "下載",
|
||||||
"enableSubtitles": "啟用字幕",
|
"enableSubtitles": "啟用字幕",
|
||||||
"experienceSection": "觀看體驗",
|
"experienceSection": "觀看體驗",
|
||||||
@@ -306,8 +322,9 @@
|
|||||||
"unknownOption": "未知"
|
"unknownOption": "未知"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "從檔案中選擇字幕",
|
"customChoice": "把字幕檔案拖入或上傳",
|
||||||
"customizeLabel": "自訂",
|
"customizeLabel": "自訂",
|
||||||
|
"dropSubtitleFile": "將字幕檔案拖曳到這裡",
|
||||||
"offChoice": "關閉",
|
"offChoice": "關閉",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "自訂字幕",
|
"backlink": "自訂字幕",
|
||||||
@@ -330,9 +347,9 @@
|
|||||||
},
|
},
|
||||||
"extensionPermission": {
|
"extensionPermission": {
|
||||||
"badge": "缺少權限",
|
"badge": "缺少權限",
|
||||||
"button": "使用擴展程式",
|
"button": "使用瀏覽器擴充功能",
|
||||||
"text": "您已安裝瀏覽器擴展,但我們需要您的許可才能啟用它。",
|
"text": "您已安裝瀏覽器擴展功能,但我們需要您的許可才能啟用它。",
|
||||||
"title": "配置擴展程式"
|
"title": "配置瀏覽器擴充功能"
|
||||||
},
|
},
|
||||||
"failed": {
|
"failed": {
|
||||||
"badge": "失敗",
|
"badge": "失敗",
|
||||||
@@ -365,10 +382,17 @@
|
|||||||
"title": "無法播放視頻!"
|
"title": "無法播放視頻!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "擴充功能已被禁用",
|
||||||
|
"enableExtension": "啟用擴充功能",
|
||||||
|
"homeButton": "回到首頁",
|
||||||
|
"text": "您已安裝該擴充功能, 你要啟用擴充程式去用它。",
|
||||||
|
"title": "請啟用擴充功能"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "發生錯誤",
|
"failure": "發生錯誤",
|
||||||
"notFound": "沒有視頻",
|
"notFound": "沒有視頻",
|
||||||
"pending": "檢查影片..."
|
"pending": "尋找影片中..."
|
||||||
},
|
},
|
||||||
"notFound": {
|
"notFound": {
|
||||||
"badge": "未找到",
|
"badge": "未找到",
|
||||||
@@ -386,9 +410,9 @@
|
|||||||
},
|
},
|
||||||
"turnstile": {
|
"turnstile": {
|
||||||
"description": "請通過右側的驗證碼來確認您是人類。這是為了保護 movie-web 的安全!",
|
"description": "請通過右側的驗證碼來確認您是人類。這是為了保護 movie-web 的安全!",
|
||||||
"error": "無法驗證您的人類身份。請再試一次。",
|
"error": "無法驗證您是一個人類。請再試一次。",
|
||||||
"title": "我們需要驗證您是否為人類。",
|
"title": "我們需要驗證您是否為人類。",
|
||||||
"verifyingHumanity": "正在驗證您的人類身份..."
|
"verifyingHumanity": "正在驗證您是不是一個人類..."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"screens": {
|
"screens": {
|
||||||
@@ -430,7 +454,7 @@
|
|||||||
},
|
},
|
||||||
"devices": {
|
"devices": {
|
||||||
"deviceNameLabel": "設備名稱",
|
"deviceNameLabel": "設備名稱",
|
||||||
"failed": "無法載入階段",
|
"failed": "無法載入",
|
||||||
"removeDevice": "刪除",
|
"removeDevice": "刪除",
|
||||||
"title": "設備"
|
"title": "設備"
|
||||||
},
|
},
|
||||||
@@ -503,7 +527,7 @@
|
|||||||
"thumbnail": "生成縮圖",
|
"thumbnail": "生成縮圖",
|
||||||
"thumbnailDescription": "大多數時候,視頻沒有縮圖。您可以啟用此設置以即時生成它們,但它們會使您的視頻變慢。",
|
"thumbnailDescription": "大多數時候,視頻沒有縮圖。您可以啟用此設置以即時生成它們,但它們會使您的視頻變慢。",
|
||||||
"thumbnailLabel": "生成縮圖",
|
"thumbnailLabel": "生成縮圖",
|
||||||
"title": "偏好"
|
"title": "偏好設定"
|
||||||
},
|
},
|
||||||
"reset": "重置",
|
"reset": "重置",
|
||||||
"save": "保存",
|
"save": "保存",
|
||||||
@@ -516,12 +540,13 @@
|
|||||||
"insecure": "不安全",
|
"insecure": "不安全",
|
||||||
"notLoggedIn": "您尚未登錄",
|
"notLoggedIn": "您尚未登錄",
|
||||||
"secure": "安全",
|
"secure": "安全",
|
||||||
"title": "應用資訊",
|
"title": "應用程式的資訊",
|
||||||
"unknownVersion": "未知",
|
"unknownVersion": "未知",
|
||||||
"userId": "使用者ID"
|
"userId": "使用者ID"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "背景模糊",
|
||||||
"backgroundLabel": "背景不透明度",
|
"backgroundLabel": "背景不透明度",
|
||||||
"colorLabel": "顏色",
|
"colorLabel": "顏色",
|
||||||
"previewQuote": "我絕不能害怕。 恐懼會扼殺思維能力。",
|
"previewQuote": "我絕不能害怕。 恐懼會扼殺思維能力。",
|
||||||
|
@@ -57,6 +57,8 @@
|
|||||||
},
|
},
|
||||||
"host": "您正在连接到 <0>{{hostname}}</0> - 在创建账户前,确保您信任它",
|
"host": "您正在连接到 <0>{{hostname}}</0> - 在创建账户前,确保您信任它",
|
||||||
"no": "返回",
|
"no": "返回",
|
||||||
|
"noHost": "服务器尚未进行配置,因此您无法创建账户",
|
||||||
|
"noHostTitle": "未配置服务器!",
|
||||||
"title": "您是否信任这个服务器?",
|
"title": "您是否信任这个服务器?",
|
||||||
"yes": "我信任这个服务器"
|
"yes": "我信任这个服务器"
|
||||||
},
|
},
|
||||||
@@ -153,7 +155,8 @@
|
|||||||
"types": {
|
"types": {
|
||||||
"movie": "电影",
|
"movie": "电影",
|
||||||
"show": "电视节目"
|
"show": "电视节目"
|
||||||
}
|
},
|
||||||
|
"unreleased": "未发布"
|
||||||
},
|
},
|
||||||
"navigation": {
|
"navigation": {
|
||||||
"banner": {
|
"banner": {
|
||||||
@@ -292,6 +295,7 @@
|
|||||||
"title": "质量"
|
"title": "质量"
|
||||||
},
|
},
|
||||||
"settings": {
|
"settings": {
|
||||||
|
"audioItem": "音频",
|
||||||
"downloadItem": "下载",
|
"downloadItem": "下载",
|
||||||
"enableSubtitles": "启用字幕",
|
"enableSubtitles": "启用字幕",
|
||||||
"experienceSection": "观看体验",
|
"experienceSection": "观看体验",
|
||||||
@@ -318,8 +322,9 @@
|
|||||||
"unknownOption": "未知"
|
"unknownOption": "未知"
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
"customChoice": "从文件选取字幕",
|
"customChoice": "拖入或上传文件",
|
||||||
"customizeLabel": "自定义",
|
"customizeLabel": "自定义",
|
||||||
|
"dropSubtitleFile": "将字幕拖入这里",
|
||||||
"offChoice": "关闭",
|
"offChoice": "关闭",
|
||||||
"settings": {
|
"settings": {
|
||||||
"backlink": "自定义字幕",
|
"backlink": "自定义字幕",
|
||||||
@@ -377,6 +382,13 @@
|
|||||||
"title": "视频播放失败!"
|
"title": "视频播放失败!"
|
||||||
},
|
},
|
||||||
"scraping": {
|
"scraping": {
|
||||||
|
"extensionFailure": {
|
||||||
|
"badge": "扩展程序已禁用",
|
||||||
|
"enableExtension": "启用扩展程序",
|
||||||
|
"homeButton": "返回首页",
|
||||||
|
"text": "您已经安装 movie-web 扩展程序。要开始使用,您需要为此站点启用扩展。",
|
||||||
|
"title": "请启用扩展程序"
|
||||||
|
},
|
||||||
"items": {
|
"items": {
|
||||||
"failure": "发生了错误",
|
"failure": "发生了错误",
|
||||||
"notFound": "没有视频",
|
"notFound": "没有视频",
|
||||||
@@ -534,6 +546,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"subtitles": {
|
"subtitles": {
|
||||||
|
"backgroundBlurLabel": "背景模糊",
|
||||||
"backgroundLabel": "背景不透明度",
|
"backgroundLabel": "背景不透明度",
|
||||||
"colorLabel": "颜色",
|
"colorLabel": "颜色",
|
||||||
"previewQuote": "我不能害怕。恐惧是心灵的杀手。",
|
"previewQuote": "我不能害怕。恐惧是心灵的杀手。",
|
||||||
|
@@ -9,6 +9,7 @@ import { ExtensionMakeRequestResponse } from "@/backend/extension/plasmo";
|
|||||||
export const RULE_IDS = {
|
export const RULE_IDS = {
|
||||||
PREPARE_STREAM: 1,
|
PREPARE_STREAM: 1,
|
||||||
SET_DOMAINS_HLS: 2,
|
SET_DOMAINS_HLS: 2,
|
||||||
|
SET_DOMAINS_HLS_AUDIO: 3,
|
||||||
};
|
};
|
||||||
|
|
||||||
// for some reason, about 500 ms is needed after
|
// for some reason, about 500 ms is needed after
|
||||||
|
@@ -51,3 +51,15 @@ export async function downloadCaption(
|
|||||||
downloadCache.set(caption.url, output, expirySeconds);
|
downloadCache.set(caption.url, output, expirySeconds);
|
||||||
return output;
|
return output;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Downloads the WebVTT content. No different than a simple
|
||||||
|
* get request with a cache.
|
||||||
|
*/
|
||||||
|
export async function downloadWebVTT(url: string): Promise<string> {
|
||||||
|
const cached = downloadCache.get(url);
|
||||||
|
if (cached) return cached;
|
||||||
|
|
||||||
|
const data = await fetch(url).then((v) => v.text());
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
@@ -43,7 +43,7 @@ export function formatTMDBMetaResult(
|
|||||||
title: movie.title,
|
title: movie.title,
|
||||||
object_type: mediaTypeToTMDB(type),
|
object_type: mediaTypeToTMDB(type),
|
||||||
poster: getMediaPoster(movie.poster_path) ?? undefined,
|
poster: getMediaPoster(movie.poster_path) ?? undefined,
|
||||||
original_release_year: new Date(movie.release_date).getFullYear(),
|
original_release_date: new Date(movie.release_date),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
if (type === MWMediaType.SERIES) {
|
if (type === MWMediaType.SERIES) {
|
||||||
@@ -58,7 +58,7 @@ export function formatTMDBMetaResult(
|
|||||||
title: v.name,
|
title: v.name,
|
||||||
})),
|
})),
|
||||||
poster: getMediaPoster(show.poster_path) ?? undefined,
|
poster: getMediaPoster(show.poster_path) ?? undefined,
|
||||||
original_release_year: new Date(show.first_air_date).getFullYear(),
|
original_release_date: new Date(show.first_air_date),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -66,7 +66,7 @@ export function formatTMDBMeta(
|
|||||||
return {
|
return {
|
||||||
title: media.title,
|
title: media.title,
|
||||||
id: media.id.toString(),
|
id: media.id.toString(),
|
||||||
year: media.original_release_year?.toString(),
|
year: media.original_release_date?.getFullYear()?.toString(),
|
||||||
poster: media.poster,
|
poster: media.poster,
|
||||||
type,
|
type,
|
||||||
seasons: seasons as any,
|
seasons: seasons as any,
|
||||||
@@ -94,7 +94,8 @@ export function formatTMDBMetaToMediaItem(media: TMDBMediaResult): MediaItem {
|
|||||||
return {
|
return {
|
||||||
title: media.title,
|
title: media.title,
|
||||||
id: media.id.toString(),
|
id: media.id.toString(),
|
||||||
year: media.original_release_year ?? 0,
|
year: media.original_release_date?.getFullYear() ?? 0,
|
||||||
|
release_date: media.original_release_date,
|
||||||
poster: media.poster,
|
poster: media.poster,
|
||||||
type,
|
type,
|
||||||
};
|
};
|
||||||
@@ -142,22 +143,37 @@ export function decodeTMDBId(
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
const baseURL = "https://api.themoviedb.org/3";
|
const tmdbBaseUrl1 = "https://api.themoviedb.org/3";
|
||||||
|
const tmdbBaseUrl2 = "https://api.tmdb.org/3";
|
||||||
|
|
||||||
const headers = {
|
const apiKey = conf().TMDB_READ_API_KEY;
|
||||||
|
|
||||||
|
const tmdbHeaders = {
|
||||||
accept: "application/json",
|
accept: "application/json",
|
||||||
Authorization: `Bearer ${conf().TMDB_READ_API_KEY}`,
|
Authorization: `Bearer ${apiKey}`,
|
||||||
};
|
};
|
||||||
|
|
||||||
async function get<T>(url: string, params?: object): Promise<T> {
|
async function get<T>(url: string, params?: object): Promise<T> {
|
||||||
const res = await mwFetch<any>(encodeURI(url), {
|
if (!apiKey) throw new Error("TMDB API key not set");
|
||||||
headers,
|
try {
|
||||||
baseURL,
|
return await mwFetch<T>(encodeURI(url), {
|
||||||
params: {
|
headers: tmdbHeaders,
|
||||||
...params,
|
baseURL: tmdbBaseUrl1,
|
||||||
},
|
params: {
|
||||||
});
|
...params,
|
||||||
return res;
|
},
|
||||||
|
signal: AbortSignal.timeout(5000),
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
return mwFetch<T>(encodeURI(url), {
|
||||||
|
headers: tmdbHeaders,
|
||||||
|
baseURL: tmdbBaseUrl2,
|
||||||
|
params: {
|
||||||
|
...params,
|
||||||
|
},
|
||||||
|
signal: AbortSignal.timeout(30000),
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function multiSearch(
|
export async function multiSearch(
|
||||||
@@ -256,7 +272,7 @@ export function formatTMDBSearchResult(
|
|||||||
title: show.name,
|
title: show.name,
|
||||||
poster: getMediaPoster(show.poster_path),
|
poster: getMediaPoster(show.poster_path),
|
||||||
id: show.id,
|
id: show.id,
|
||||||
original_release_year: new Date(show.first_air_date).getFullYear(),
|
original_release_date: new Date(show.first_air_date),
|
||||||
object_type: mediatype,
|
object_type: mediatype,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -267,7 +283,7 @@ export function formatTMDBSearchResult(
|
|||||||
title: movie.title,
|
title: movie.title,
|
||||||
poster: getMediaPoster(movie.poster_path),
|
poster: getMediaPoster(movie.poster_path),
|
||||||
id: movie.id,
|
id: movie.id,
|
||||||
original_release_year: new Date(movie.release_date).getFullYear(),
|
original_release_date: new Date(movie.release_date),
|
||||||
object_type: mediatype,
|
object_type: mediatype,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -20,7 +20,7 @@ export type TMDBMediaResult = {
|
|||||||
title: string;
|
title: string;
|
||||||
poster?: string;
|
poster?: string;
|
||||||
id: number;
|
id: number;
|
||||||
original_release_year?: number;
|
original_release_date?: Date;
|
||||||
object_type: TMDBContentTypes;
|
object_type: TMDBContentTypes;
|
||||||
seasons?: TMDBSeasonShort[];
|
seasons?: TMDBSeasonShort[];
|
||||||
};
|
};
|
||||||
|
51
src/components/DropFile.tsx
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
import { useEffect, useState } from "react";
|
||||||
|
import type { DragEvent, ReactNode } from "react";
|
||||||
|
|
||||||
|
interface FileDropHandlerProps {
|
||||||
|
children: ReactNode;
|
||||||
|
className: string;
|
||||||
|
onDrop: (event: DragEvent<HTMLDivElement>) => void;
|
||||||
|
onDraggingChange: (isDragging: boolean) => void;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function FileDropHandler(props: FileDropHandlerProps) {
|
||||||
|
const [dragging, setDragging] = useState(false);
|
||||||
|
|
||||||
|
const handleDragEnter = (event: DragEvent<HTMLDivElement>) => {
|
||||||
|
event.preventDefault();
|
||||||
|
setDragging(true);
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleDragLeave = (event: DragEvent<HTMLDivElement>) => {
|
||||||
|
if (!event.currentTarget.contains(event.relatedTarget as Node)) {
|
||||||
|
setDragging(false);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleDragOver = (event: DragEvent<HTMLDivElement>) => {
|
||||||
|
event.preventDefault();
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleDrop = (event: DragEvent<HTMLDivElement>) => {
|
||||||
|
event.preventDefault();
|
||||||
|
setDragging(false);
|
||||||
|
|
||||||
|
props.onDrop(event);
|
||||||
|
};
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
props.onDraggingChange(dragging);
|
||||||
|
}, [dragging, props]);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
onDragEnter={handleDragEnter}
|
||||||
|
onDragLeave={handleDragLeave}
|
||||||
|
onDragOver={handleDragOver}
|
||||||
|
onDrop={handleDrop}
|
||||||
|
className={props.className}
|
||||||
|
>
|
||||||
|
{props.children}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
@@ -64,6 +64,7 @@ export enum Icons {
|
|||||||
DONATION = "donation",
|
DONATION = "donation",
|
||||||
CIRCLE_QUESTION = "circle_question",
|
CIRCLE_QUESTION = "circle_question",
|
||||||
BRUSH = "brush",
|
BRUSH = "brush",
|
||||||
|
UPLOAD = "upload",
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IconProps {
|
export interface IconProps {
|
||||||
@@ -134,6 +135,7 @@ const iconList: Record<Icons, string> = {
|
|||||||
donation: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 576 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path opacity="1" fill="currentColor" d="M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"/></svg>`,
|
donation: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 576 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path opacity="1" fill="currentColor" d="M163.9 136.9c-29.4-29.8-29.4-78.2 0-108s77-29.8 106.4 0l17.7 18 17.7-18c29.4-29.8 77-29.8 106.4 0s29.4 78.2 0 108L310.5 240.1c-6.2 6.3-14.3 9.4-22.5 9.4s-16.3-3.1-22.5-9.4L163.9 136.9zM568.2 336.3c13.1 17.8 9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5H192 32c-17.7 0-32-14.3-32-32V416c0-17.7 14.3-32 32-32H68.8l44.9-36c22.7-18.2 50.9-28 80-28H272h16 64c17.7 0 32 14.3 32 32s-14.3 32-32 32H288 272c-8.8 0-16 7.2-16 16s7.2 16 16 16H392.6l119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5zM193.6 384l0 0-.9 0c.3 0 .6 0 .9 0z"/></svg>`,
|
||||||
circle_question: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path opacity="1" fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>`,
|
circle_question: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path opacity="1" fill="currentColor" d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256zm169.8-90.7c7.9-22.3 29.1-37.3 52.8-37.3h58.3c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24V250.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1H222.6c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"/></svg>`,
|
||||||
brush: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path d="M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z" fill="currentColor"/></svg>`,
|
brush: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 384 512"><!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2023 Fonticons, Inc.--><path d="M162.4 6c-1.5-3.6-5-6-8.9-6h-19c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6H48C21.5 0 0 21.5 0 48V224v22.4V256H9.6 374.4 384v-9.6V224 48c0-26.5-21.5-48-48-48H230.5c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 288v32c0 35.3 28.7 64 64 64h64v64c0 35.3 28.7 64 64 64s64-28.7 64-64V384h64c35.3 0 64-28.7 64-64V288H0zM192 432a16 16 0 1 1 0 32 16 16 0 1 1 0-32z" fill="currentColor"/></svg>`,
|
||||||
|
upload: `<svg xmlns="http://www.w3.org/2000/svg" height="1em" width="1em" viewBox="0 0 384 512"><!--! Font Awesome Pro 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path opacity="1" fill="currentColor" d="M320 480H64c-17.7 0-32-14.3-32-32V64c0-17.7 14.3-32 32-32H192V144c0 26.5 21.5 48 48 48H352V448c0 17.7-14.3 32-32 32zM240 160c-8.8 0-16-7.2-16-16V32.5c2.8 .7 5.4 2.1 7.4 4.2L347.3 152.6c2.1 2.1 3.5 4.6 4.2 7.4H240zM64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V163.9c0-12.7-5.1-24.9-14.1-33.9L254.1 14.1c-9-9-21.2-14.1-33.9-14.1H64zM208 278.6l52.7 52.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-80-80c-6.2-6.2-16.4-6.2-22.6 0l-80 80c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L176 278.6V400c0 8.8 7.2 16 16 16s16-7.2 16-16V278.6z"/></svg>`,
|
||||||
};
|
};
|
||||||
|
|
||||||
function ChromeCastButton() {
|
function ChromeCastButton() {
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { ReactNode, useCallback } from "react";
|
import { ReactNode, useCallback } from "react";
|
||||||
|
import { useNavigate } from "react-router-dom";
|
||||||
|
|
||||||
import { Icon, Icons } from "@/components/Icon";
|
import { Icon, Icons } from "@/components/Icon";
|
||||||
import { Spinner } from "@/components/layout/Spinner";
|
import { Spinner } from "@/components/layout/Spinner";
|
||||||
@@ -20,6 +21,7 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function Button(props: Props) {
|
export function Button(props: Props) {
|
||||||
|
const navigate = useNavigate();
|
||||||
const { onClick, href, loading } = props;
|
const { onClick, href, loading } = props;
|
||||||
const cb = useCallback(
|
const cb = useCallback(
|
||||||
(
|
(
|
||||||
@@ -31,10 +33,14 @@ export function Button(props: Props) {
|
|||||||
if (loading) return;
|
if (loading) return;
|
||||||
if (href && !onClick) {
|
if (href && !onClick) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
window.open(href, "_blank", "noreferrer");
|
if (!href.includes("http")) {
|
||||||
|
navigate(href);
|
||||||
|
} else {
|
||||||
|
window.open(href, "_blank", "noreferrer");
|
||||||
|
}
|
||||||
} else onClick?.(event);
|
} else onClick?.(event);
|
||||||
},
|
},
|
||||||
[onClick, href, loading],
|
[loading, href, onClick, navigate],
|
||||||
);
|
);
|
||||||
|
|
||||||
let colorClasses = "bg-white hover:bg-gray-200 text-black";
|
let colorClasses = "bg-white hover:bg-gray-200 text-black";
|
||||||
|
@@ -25,7 +25,7 @@ export function IconPatch(props: IconPatchProps) {
|
|||||||
return (
|
return (
|
||||||
<div className={props.className || undefined} onClick={props.onClick}>
|
<div className={props.className || undefined} onClick={props.onClick}>
|
||||||
<div
|
<div
|
||||||
className={`flex items-center justify-center rounded-full border-2 border-transparent backdrop-blur-lg bg-pill-background bg-opacity-50 transition-[background-color,color,transform,border-color] duration-75 ${transparentClasses} ${clickableClasses} ${activeClasses} ${sizeClasses}`}
|
className={`flex items-center justify-center rounded-full border-2 border-transparent bg-pill-background bg-opacity-100 transition-[background-color,color,transform,border-color] duration-75 ${transparentClasses} ${clickableClasses} ${activeClasses} ${sizeClasses}`}
|
||||||
>
|
>
|
||||||
<Icon icon={props.icon} />
|
<Icon icon={props.icon} />
|
||||||
</div>
|
</div>
|
||||||
|
@@ -1,4 +1,5 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
|
import { useCallback } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
@@ -24,6 +25,20 @@ export interface MediaCardProps {
|
|||||||
onClose?: () => void;
|
onClose?: () => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function checkReleased(media: MediaItem): boolean {
|
||||||
|
const isReleasedYear = Boolean(
|
||||||
|
media.year && media.year <= new Date().getFullYear(),
|
||||||
|
);
|
||||||
|
const isReleasedDate = Boolean(
|
||||||
|
media.release_date && media.release_date <= new Date(),
|
||||||
|
);
|
||||||
|
|
||||||
|
// If the media has a release date, use that, otherwise use the year
|
||||||
|
const isReleased = media.release_date ? isReleasedDate : isReleasedYear;
|
||||||
|
|
||||||
|
return isReleased;
|
||||||
|
}
|
||||||
|
|
||||||
function MediaCardContent({
|
function MediaCardContent({
|
||||||
media,
|
media,
|
||||||
linkable,
|
linkable,
|
||||||
@@ -35,10 +50,19 @@ function MediaCardContent({
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const percentageString = `${Math.round(percentage ?? 0).toFixed(0)}%`;
|
const percentageString = `${Math.round(percentage ?? 0).toFixed(0)}%`;
|
||||||
|
|
||||||
const canLink = linkable && !closable;
|
const isReleased = useCallback(() => checkReleased(media), [media]);
|
||||||
|
|
||||||
|
const canLink = linkable && !closable && isReleased();
|
||||||
|
|
||||||
const dotListContent = [t(`media.types.${media.type}`)];
|
const dotListContent = [t(`media.types.${media.type}`)];
|
||||||
if (media.year) dotListContent.push(media.year.toFixed());
|
|
||||||
|
if (media.year) {
|
||||||
|
dotListContent.push(media.year.toFixed());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isReleased()) {
|
||||||
|
dotListContent.push(t("media.unreleased"));
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Flare.Base
|
<Flare.Base
|
||||||
@@ -58,14 +82,14 @@ function MediaCardContent({
|
|||||||
/>
|
/>
|
||||||
<Flare.Child
|
<Flare.Child
|
||||||
className={`pointer-events-auto relative mb-2 p-3 transition-transform duration-100 ${
|
className={`pointer-events-auto relative mb-2 p-3 transition-transform duration-100 ${
|
||||||
canLink ? "group-hover:scale-95" : ""
|
canLink ? "group-hover:scale-95" : "opacity-60"
|
||||||
}`}
|
}`}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
className={classNames(
|
className={classNames(
|
||||||
"relative mb-4 pb-[150%] w-full overflow-hidden rounded-xl bg-mediaCard-hoverBackground bg-cover bg-center transition-[border-radius] duration-100",
|
"relative mb-4 pb-[150%] w-full overflow-hidden rounded-xl bg-mediaCard-hoverBackground bg-cover bg-center transition-[border-radius] duration-100",
|
||||||
{
|
{
|
||||||
"group-hover:rounded-lg": !closable,
|
"group-hover:rounded-lg": canLink,
|
||||||
},
|
},
|
||||||
)}
|
)}
|
||||||
style={{
|
style={{
|
||||||
@@ -142,7 +166,12 @@ function MediaCardContent({
|
|||||||
export function MediaCard(props: MediaCardProps) {
|
export function MediaCard(props: MediaCardProps) {
|
||||||
const content = <MediaCardContent {...props} />;
|
const content = <MediaCardContent {...props} />;
|
||||||
|
|
||||||
const canLink = props.linkable && !props.closable;
|
const isReleased = useCallback(
|
||||||
|
() => checkReleased(props.media),
|
||||||
|
[props.media],
|
||||||
|
);
|
||||||
|
|
||||||
|
const canLink = props.linkable && !props.closable && isReleased();
|
||||||
|
|
||||||
let link = canLink
|
let link = canLink
|
||||||
? `/media/${encodeURIComponent(mediaItemToId(props.media))}`
|
? `/media/${encodeURIComponent(mediaItemToId(props.media))}`
|
||||||
@@ -157,7 +186,7 @@ export function MediaCard(props: MediaCardProps) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!props.linkable) return <span>{content}</span>;
|
if (!canLink) return <span>{content}</span>;
|
||||||
return (
|
return (
|
||||||
<Link
|
<Link
|
||||||
to={link}
|
to={link}
|
||||||
|
@@ -1,12 +1,20 @@
|
|||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { useCallback } from "react";
|
import { useCallback, useEffect, useRef } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
|
import { useAsync } from "react-use";
|
||||||
|
|
||||||
|
import { getMetaFromId } from "@/backend/metadata/getmeta";
|
||||||
|
import { MWMediaType, MWSeasonMeta } from "@/backend/metadata/types/mw";
|
||||||
import { Icon, Icons } from "@/components/Icon";
|
import { Icon, Icons } from "@/components/Icon";
|
||||||
import { usePlayerMeta } from "@/components/player/hooks/usePlayerMeta";
|
import { usePlayerMeta } from "@/components/player/hooks/usePlayerMeta";
|
||||||
import { Transition } from "@/components/utils/Transition";
|
import { Transition } from "@/components/utils/Transition";
|
||||||
import { PlayerMeta } from "@/stores/player/slices/source";
|
import { PlayerMeta } from "@/stores/player/slices/source";
|
||||||
import { usePlayerStore } from "@/stores/player/store";
|
import { usePlayerStore } from "@/stores/player/store";
|
||||||
|
import { usePreferencesStore } from "@/stores/preferences";
|
||||||
|
import { useProgressStore } from "@/stores/progress";
|
||||||
|
import { isAutoplayAllowed } from "@/utils/autoplay";
|
||||||
|
|
||||||
|
import { hasAired } from "../utils/aired";
|
||||||
|
|
||||||
function shouldShowNextEpisodeButton(
|
function shouldShowNextEpisodeButton(
|
||||||
time: number,
|
time: number,
|
||||||
@@ -38,6 +46,45 @@ function Button(props: {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function useSeasons(mediaId: string, isLastEpisode: boolean = false) {
|
||||||
|
const state = useAsync(async () => {
|
||||||
|
if (isLastEpisode) {
|
||||||
|
const data = await getMetaFromId(MWMediaType.SERIES, mediaId ?? "");
|
||||||
|
if (data?.meta.type !== MWMediaType.SERIES) return null;
|
||||||
|
return data.meta.seasons;
|
||||||
|
}
|
||||||
|
}, [mediaId, isLastEpisode]);
|
||||||
|
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
function useNextSeasonEpisode(
|
||||||
|
nextSeason: MWSeasonMeta | undefined,
|
||||||
|
mediaId: string,
|
||||||
|
) {
|
||||||
|
const state = useAsync(async () => {
|
||||||
|
if (nextSeason) {
|
||||||
|
const data = await getMetaFromId(
|
||||||
|
MWMediaType.SERIES,
|
||||||
|
mediaId ?? "",
|
||||||
|
nextSeason?.id,
|
||||||
|
);
|
||||||
|
if (data?.meta.type !== MWMediaType.SERIES) return null;
|
||||||
|
|
||||||
|
const nextSeasonEpisodes = data?.meta?.seasonData?.episodes
|
||||||
|
.filter((episode) => hasAired(episode.air_date))
|
||||||
|
.map((episode) => ({
|
||||||
|
number: episode.number,
|
||||||
|
title: episode.title,
|
||||||
|
tmdbId: episode.id,
|
||||||
|
}));
|
||||||
|
|
||||||
|
if (nextSeasonEpisodes.length > 0) return nextSeasonEpisodes[0];
|
||||||
|
}
|
||||||
|
}, [mediaId, nextSeason?.id]);
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
export function NextEpisodeButton(props: {
|
export function NextEpisodeButton(props: {
|
||||||
controlsShowing: boolean;
|
controlsShowing: boolean;
|
||||||
onChange?: (meta: PlayerMeta) => void;
|
onChange?: (meta: PlayerMeta) => void;
|
||||||
@@ -55,8 +102,25 @@ export function NextEpisodeButton(props: {
|
|||||||
const setShouldStartFromBeginning = usePlayerStore(
|
const setShouldStartFromBeginning = usePlayerStore(
|
||||||
(s) => s.setShouldStartFromBeginning,
|
(s) => s.setShouldStartFromBeginning,
|
||||||
);
|
);
|
||||||
|
const updateItem = useProgressStore((s) => s.updateItem);
|
||||||
|
const enableAutoplay = usePreferencesStore((s) => s.enableAutoplay);
|
||||||
|
|
||||||
|
const isLastEpisode =
|
||||||
|
meta?.episode?.number === meta?.episodes?.at(-1)?.number;
|
||||||
|
|
||||||
|
const seasons = useSeasons(meta?.tmdbId ?? "", isLastEpisode);
|
||||||
|
|
||||||
|
const nextSeason = seasons.value?.find(
|
||||||
|
(season) => season.number === (meta?.season?.number ?? 0) + 1,
|
||||||
|
);
|
||||||
|
|
||||||
|
const nextSeasonEpisode = useNextSeasonEpisode(
|
||||||
|
nextSeason,
|
||||||
|
meta?.tmdbId ?? "",
|
||||||
|
);
|
||||||
|
|
||||||
let show = false;
|
let show = false;
|
||||||
|
const hasAutoplayed = useRef(false);
|
||||||
if (showingState === "always") show = true;
|
if (showingState === "always") show = true;
|
||||||
else if (showingState === "hover" && props.controlsShowing) show = true;
|
else if (showingState === "hover" && props.controlsShowing) show = true;
|
||||||
if (isHidden || status !== "playing" || duration === 0) show = false;
|
if (isHidden || status !== "playing" || duration === 0) show = false;
|
||||||
@@ -68,18 +132,53 @@ export function NextEpisodeButton(props: {
|
|||||||
? bottom
|
? bottom
|
||||||
: "bottom-[calc(3rem+env(safe-area-inset-bottom))]";
|
: "bottom-[calc(3rem+env(safe-area-inset-bottom))]";
|
||||||
|
|
||||||
const nextEp = meta?.episodes?.find(
|
const nextEp = isLastEpisode
|
||||||
(v) => v.number === (meta?.episode?.number ?? 0) + 1,
|
? nextSeasonEpisode.value
|
||||||
);
|
: meta?.episodes?.find(
|
||||||
|
(v) => v.number === (meta?.episode?.number ?? 0) + 1,
|
||||||
|
);
|
||||||
|
|
||||||
const loadNextEpisode = useCallback(() => {
|
const loadNextEpisode = useCallback(() => {
|
||||||
if (!meta || !nextEp) return;
|
if (!meta || !nextEp) return;
|
||||||
const metaCopy = { ...meta };
|
const metaCopy = { ...meta };
|
||||||
metaCopy.episode = nextEp;
|
metaCopy.episode = nextEp;
|
||||||
|
metaCopy.season =
|
||||||
|
isLastEpisode && nextSeason
|
||||||
|
? {
|
||||||
|
...nextSeason,
|
||||||
|
tmdbId: nextSeason.id,
|
||||||
|
}
|
||||||
|
: metaCopy.season;
|
||||||
setShouldStartFromBeginning(true);
|
setShouldStartFromBeginning(true);
|
||||||
setDirectMeta(metaCopy);
|
setDirectMeta(metaCopy);
|
||||||
props.onChange?.(metaCopy);
|
props.onChange?.(metaCopy);
|
||||||
}, [setDirectMeta, nextEp, meta, props, setShouldStartFromBeginning]);
|
const defaultProgress = { duration: 0, watched: 0 };
|
||||||
|
updateItem({
|
||||||
|
meta: metaCopy,
|
||||||
|
progress: defaultProgress,
|
||||||
|
});
|
||||||
|
}, [
|
||||||
|
setDirectMeta,
|
||||||
|
nextEp,
|
||||||
|
meta,
|
||||||
|
props,
|
||||||
|
setShouldStartFromBeginning,
|
||||||
|
updateItem,
|
||||||
|
isLastEpisode,
|
||||||
|
nextSeason,
|
||||||
|
]);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (!enableAutoplay || metaType !== "show") return;
|
||||||
|
const onePercent = duration / 100;
|
||||||
|
const isEnding = time >= duration - onePercent && duration !== 0;
|
||||||
|
|
||||||
|
if (duration === 0) hasAutoplayed.current = false;
|
||||||
|
if (isEnding && isAutoplayAllowed() && !hasAutoplayed.current) {
|
||||||
|
hasAutoplayed.current = true;
|
||||||
|
loadNextEpisode();
|
||||||
|
}
|
||||||
|
}, [duration, enableAutoplay, loadNextEpisode, metaType, time]);
|
||||||
|
|
||||||
if (!meta?.episode || !nextEp) return null;
|
if (!meta?.episode || !nextEp) return null;
|
||||||
if (metaType !== "show") return null;
|
if (metaType !== "show") return null;
|
||||||
@@ -107,7 +206,9 @@ export function NextEpisodeButton(props: {
|
|||||||
className="bg-buttons-primary hover:bg-buttons-primaryHover text-buttons-primaryText flex justify-center items-center"
|
className="bg-buttons-primary hover:bg-buttons-primaryHover text-buttons-primaryText flex justify-center items-center"
|
||||||
>
|
>
|
||||||
<Icon className="text-xl mr-1" icon={Icons.SKIP_EPISODE} />
|
<Icon className="text-xl mr-1" icon={Icons.SKIP_EPISODE} />
|
||||||
{t("player.nextEpisode.next")}
|
{isLastEpisode && nextEp
|
||||||
|
? t("player.nextEpisode.nextSeason")
|
||||||
|
: t("player.nextEpisode.next")}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
</Transition>
|
</Transition>
|
||||||
|
@@ -14,6 +14,7 @@ import { Menu } from "@/components/player/internals/ContextMenu";
|
|||||||
import { useOverlayRouter } from "@/hooks/useOverlayRouter";
|
import { useOverlayRouter } from "@/hooks/useOverlayRouter";
|
||||||
import { usePlayerStore } from "@/stores/player/store";
|
import { usePlayerStore } from "@/stores/player/store";
|
||||||
|
|
||||||
|
import { AudioView } from "./settings/AudioView";
|
||||||
import { CaptionSettingsView } from "./settings/CaptionSettingsView";
|
import { CaptionSettingsView } from "./settings/CaptionSettingsView";
|
||||||
import { CaptionsView } from "./settings/CaptionsView";
|
import { CaptionsView } from "./settings/CaptionsView";
|
||||||
import { DownloadRoutes } from "./settings/Downloads";
|
import { DownloadRoutes } from "./settings/Downloads";
|
||||||
@@ -46,6 +47,11 @@ function SettingsOverlay({ id }: { id: string }) {
|
|||||||
<QualityView id={id} />
|
<QualityView id={id} />
|
||||||
</Menu.Card>
|
</Menu.Card>
|
||||||
</OverlayPage>
|
</OverlayPage>
|
||||||
|
<OverlayPage id={id} path="/audio" width={343} height={431}>
|
||||||
|
<Menu.Card>
|
||||||
|
<AudioView id={id} />
|
||||||
|
</Menu.Card>
|
||||||
|
</OverlayPage>
|
||||||
<OverlayPage id={id} path="/captions" width={343} height={431}>
|
<OverlayPage id={id} path="/captions" width={343} height={431}>
|
||||||
<Menu.CardWithScrollable>
|
<Menu.CardWithScrollable>
|
||||||
<CaptionsView id={id} />
|
<CaptionsView id={id} />
|
||||||
|
@@ -41,8 +41,13 @@ export function Volume(props: Props) {
|
|||||||
|
|
||||||
const handleMouseEnter = useCallback(async () => {
|
const handleMouseEnter = useCallback(async () => {
|
||||||
if (await canChangeVolume()) setHovering(true);
|
if (await canChangeVolume()) setHovering(true);
|
||||||
|
document.body.classList.add("overflow-y-hidden");
|
||||||
}, [setHovering]);
|
}, [setHovering]);
|
||||||
|
|
||||||
|
const handleMouseLeave = () => {
|
||||||
|
document.body.classList.remove("overflow-y-hidden");
|
||||||
|
};
|
||||||
|
|
||||||
let percentage = makePercentage(volume * 100);
|
let percentage = makePercentage(volume * 100);
|
||||||
if (dragging) percentage = makePercentage(dragPercentage);
|
if (dragging) percentage = makePercentage(dragPercentage);
|
||||||
const percentageString = makePercentageString(percentage);
|
const percentageString = makePercentageString(percentage);
|
||||||
@@ -61,9 +66,10 @@ export function Volume(props: Props) {
|
|||||||
<div
|
<div
|
||||||
className={props.className}
|
className={props.className}
|
||||||
onMouseEnter={handleMouseEnter}
|
onMouseEnter={handleMouseEnter}
|
||||||
|
onMouseLeave={handleMouseLeave}
|
||||||
onWheel={handleWheel}
|
onWheel={handleWheel}
|
||||||
>
|
>
|
||||||
<div className="pointer-events-auto flex cursor-pointer items-center py-0">
|
<div className="pointer-events-auto flex cursor-pointer items-center py-0 touch-none">
|
||||||
<div className="px-4 text-2xl text-white" onClick={handleClick}>
|
<div className="px-4 text-2xl text-white" onClick={handleClick}>
|
||||||
<Icon icon={percentage > 0 ? Icons.VOLUME : Icons.VOLUME_X} />
|
<Icon icon={percentage > 0 ? Icons.VOLUME : Icons.VOLUME_X} />
|
||||||
</div>
|
</div>
|
||||||
|
65
src/components/player/atoms/settings/AudioView.tsx
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
import { useCallback } from "react";
|
||||||
|
import { useTranslation } from "react-i18next";
|
||||||
|
|
||||||
|
import { FlagIcon } from "@/components/FlagIcon";
|
||||||
|
import { Menu } from "@/components/player/internals/ContextMenu";
|
||||||
|
import { useOverlayRouter } from "@/hooks/useOverlayRouter";
|
||||||
|
import { AudioTrack } from "@/stores/player/slices/source";
|
||||||
|
import { usePlayerStore } from "@/stores/player/store";
|
||||||
|
import { getPrettyLanguageNameFromLocale } from "@/utils/language";
|
||||||
|
|
||||||
|
import { SelectableLink } from "../../internals/ContextMenu/Links";
|
||||||
|
|
||||||
|
export function AudioOption(props: {
|
||||||
|
langCode?: string;
|
||||||
|
children: React.ReactNode;
|
||||||
|
selected?: boolean;
|
||||||
|
onClick?: () => void;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<SelectableLink selected={props.selected} onClick={props.onClick}>
|
||||||
|
<span className="flex items-center">
|
||||||
|
<span data-code={props.langCode} className="mr-3 inline-flex">
|
||||||
|
<FlagIcon langCode={props.langCode} />
|
||||||
|
</span>
|
||||||
|
<span>{props.children}</span>
|
||||||
|
</span>
|
||||||
|
</SelectableLink>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function AudioView({ id }: { id: string }) {
|
||||||
|
const { t } = useTranslation();
|
||||||
|
const unknownChoice = t("player.menus.subtitles.unknownLanguage");
|
||||||
|
|
||||||
|
const router = useOverlayRouter(id);
|
||||||
|
const audioTracks = usePlayerStore((s) => s.audioTracks);
|
||||||
|
const currentAudioTrack = usePlayerStore((s) => s.currentAudioTrack);
|
||||||
|
const changeAudioTrack = usePlayerStore((s) => s.display?.changeAudioTrack);
|
||||||
|
|
||||||
|
const change = useCallback(
|
||||||
|
(track: AudioTrack) => {
|
||||||
|
changeAudioTrack?.(track);
|
||||||
|
router.close();
|
||||||
|
},
|
||||||
|
[router, changeAudioTrack],
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<Menu.BackLink onClick={() => router.navigate("/")}>Audio</Menu.BackLink>
|
||||||
|
<Menu.Section className="flex flex-col pb-4">
|
||||||
|
{audioTracks.map((v) => (
|
||||||
|
<AudioOption
|
||||||
|
key={v.id}
|
||||||
|
selected={v.id === currentAudioTrack?.id}
|
||||||
|
langCode={v.language}
|
||||||
|
onClick={audioTracks.includes(v) ? () => change(v) : undefined}
|
||||||
|
>
|
||||||
|
{getPrettyLanguageNameFromLocale(v.language) ?? unknownChoice}
|
||||||
|
</AudioOption>
|
||||||
|
))}
|
||||||
|
</Menu.Section>
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
@@ -231,7 +231,7 @@ export function CaptionSettingsView({ id }: { id: string }) {
|
|||||||
<Menu.BackLink onClick={() => router.navigate("/captions")}>
|
<Menu.BackLink onClick={() => router.navigate("/captions")}>
|
||||||
{t("player.menus.subtitles.settings.backlink")}
|
{t("player.menus.subtitles.settings.backlink")}
|
||||||
</Menu.BackLink>
|
</Menu.BackLink>
|
||||||
<Menu.Section className="space-y-6">
|
<Menu.Section className="space-y-6 pb-5">
|
||||||
<CaptionSetting
|
<CaptionSetting
|
||||||
label={t("player.menus.subtitles.settings.delay")}
|
label={t("player.menus.subtitles.settings.delay")}
|
||||||
max={10}
|
max={10}
|
||||||
@@ -262,6 +262,14 @@ export function CaptionSettingsView({ id }: { id: string }) {
|
|||||||
value={styling.backgroundOpacity * 100}
|
value={styling.backgroundOpacity * 100}
|
||||||
textTransformer={(s) => `${s}%`}
|
textTransformer={(s) => `${s}%`}
|
||||||
/>
|
/>
|
||||||
|
<CaptionSetting
|
||||||
|
label={t("settings.subtitles.backgroundBlurLabel")}
|
||||||
|
max={100}
|
||||||
|
min={0}
|
||||||
|
onChange={(v) => updateStyling({ backgroundBlur: v / 100 })}
|
||||||
|
value={styling.backgroundBlur * 100}
|
||||||
|
textTransformer={(s) => `${s}%`}
|
||||||
|
/>
|
||||||
<CaptionSetting
|
<CaptionSetting
|
||||||
label={t("settings.subtitles.textSizeLabel")}
|
label={t("settings.subtitles.textSizeLabel")}
|
||||||
max={200}
|
max={200}
|
||||||
|
@@ -1,11 +1,14 @@
|
|||||||
|
import classNames from "classnames";
|
||||||
import Fuse from "fuse.js";
|
import Fuse from "fuse.js";
|
||||||
import { useMemo, useRef, useState } from "react";
|
import { type DragEvent, useMemo, useRef, useState } from "react";
|
||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useAsyncFn } from "react-use";
|
import { useAsyncFn } from "react-use";
|
||||||
import { convert } from "subsrt-ts";
|
import { convert } from "subsrt-ts";
|
||||||
|
|
||||||
import { subtitleTypeList } from "@/backend/helpers/subs";
|
import { subtitleTypeList } from "@/backend/helpers/subs";
|
||||||
|
import { FileDropHandler } from "@/components/DropFile";
|
||||||
import { FlagIcon } from "@/components/FlagIcon";
|
import { FlagIcon } from "@/components/FlagIcon";
|
||||||
|
import { Icon, Icons } from "@/components/Icon";
|
||||||
import { useCaptions } from "@/components/player/hooks/useCaptions";
|
import { useCaptions } from "@/components/player/hooks/useCaptions";
|
||||||
import { Menu } from "@/components/player/internals/ContextMenu";
|
import { Menu } from "@/components/player/internals/ContextMenu";
|
||||||
import { Input } from "@/components/player/internals/ContextMenu/Input";
|
import { Input } from "@/components/player/internals/ContextMenu/Input";
|
||||||
@@ -122,9 +125,44 @@ export function CaptionsView({ id }: { id: string }) {
|
|||||||
>(null);
|
>(null);
|
||||||
const { selectCaptionById, disable } = useCaptions();
|
const { selectCaptionById, disable } = useCaptions();
|
||||||
const captionList = usePlayerStore((s) => s.captionList);
|
const captionList = usePlayerStore((s) => s.captionList);
|
||||||
|
const getHlsCaptionList = usePlayerStore((s) => s.display?.getCaptionList);
|
||||||
|
const [dragging, setDragging] = useState(false);
|
||||||
|
const setCaption = usePlayerStore((s) => s.setCaption);
|
||||||
|
|
||||||
|
function onDrop(event: DragEvent<HTMLDivElement>) {
|
||||||
|
const files = event.dataTransfer.files;
|
||||||
|
const firstFile = files[0];
|
||||||
|
if (!files || !firstFile) return;
|
||||||
|
|
||||||
|
const fileExtension = `.${firstFile.name.split(".").pop()}`;
|
||||||
|
if (!fileExtension || !subtitleTypeList.includes(fileExtension)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.addEventListener("load", (e) => {
|
||||||
|
if (!e.target || typeof e.target.result !== "string") return;
|
||||||
|
|
||||||
|
const converted = convert(e.target.result, "srt");
|
||||||
|
|
||||||
|
setCaption({
|
||||||
|
language: "custom",
|
||||||
|
srtData: converted,
|
||||||
|
id: "custom-caption",
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
reader.readAsText(firstFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
const captions = useMemo(
|
||||||
|
() =>
|
||||||
|
captionList.length !== 0 ? captionList : getHlsCaptionList?.() ?? [],
|
||||||
|
[captionList, getHlsCaptionList],
|
||||||
|
);
|
||||||
|
|
||||||
const [searchQuery, setSearchQuery] = useState("");
|
const [searchQuery, setSearchQuery] = useState("");
|
||||||
const subtitleList = useSubtitleList(captionList, searchQuery);
|
const subtitleList = useSubtitleList(captions, searchQuery);
|
||||||
|
|
||||||
const [downloadReq, startDownload] = useAsyncFn(
|
const [downloadReq, startDownload] = useAsyncFn(
|
||||||
async (captionId: string) => {
|
async (captionId: string) => {
|
||||||
@@ -157,6 +195,20 @@ export function CaptionsView({ id }: { id: string }) {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div>
|
<div>
|
||||||
|
<div
|
||||||
|
className={classNames(
|
||||||
|
"absolute inset-0 flex items-center justify-center text-white z-10 pointer-events-none transition-opacity duration-300",
|
||||||
|
dragging ? "opacity-100" : "opacity-0",
|
||||||
|
)}
|
||||||
|
>
|
||||||
|
<div className="flex flex-col items-center">
|
||||||
|
<Icon className="text-5xl mb-4" icon={Icons.UPLOAD} />
|
||||||
|
<span className="text-xl weight font-medium">
|
||||||
|
{t("player.menus.subtitles.dropSubtitleFile")}
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<Menu.BackLink
|
<Menu.BackLink
|
||||||
onClick={() => router.navigate("/")}
|
onClick={() => router.navigate("/")}
|
||||||
rightSide={
|
rightSide={
|
||||||
@@ -171,17 +223,28 @@ export function CaptionsView({ id }: { id: string }) {
|
|||||||
>
|
>
|
||||||
{t("player.menus.subtitles.title")}
|
{t("player.menus.subtitles.title")}
|
||||||
</Menu.BackLink>
|
</Menu.BackLink>
|
||||||
|
</div>
|
||||||
|
<FileDropHandler
|
||||||
|
className={`transition duration-300 ${dragging ? "opacity-20" : ""}`}
|
||||||
|
onDraggingChange={(isDragging) => {
|
||||||
|
setDragging(isDragging);
|
||||||
|
}}
|
||||||
|
onDrop={(event) => onDrop(event)}
|
||||||
|
>
|
||||||
<div className="mt-3">
|
<div className="mt-3">
|
||||||
<Input value={searchQuery} onInput={setSearchQuery} />
|
<Input value={searchQuery} onInput={setSearchQuery} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<Menu.ScrollToActiveSection className="!pt-1 mt-2 pb-3">
|
||||||
<Menu.ScrollToActiveSection className="!pt-1 mt-2 pb-3">
|
<CaptionOption
|
||||||
<CaptionOption onClick={() => disable()} selected={!selectedCaptionId}>
|
onClick={() => disable()}
|
||||||
{t("player.menus.subtitles.offChoice")}
|
selected={!selectedCaptionId}
|
||||||
</CaptionOption>
|
>
|
||||||
<CustomCaptionOption />
|
{t("player.menus.subtitles.offChoice")}
|
||||||
{content}
|
</CaptionOption>
|
||||||
</Menu.ScrollToActiveSection>
|
<CustomCaptionOption />
|
||||||
|
{content}
|
||||||
|
</Menu.ScrollToActiveSection>
|
||||||
|
</FileDropHandler>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,7 @@ export function SettingsMenu({ id }: { id: string }) {
|
|||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const router = useOverlayRouter(id);
|
const router = useOverlayRouter(id);
|
||||||
const currentQuality = usePlayerStore((s) => s.currentQuality);
|
const currentQuality = usePlayerStore((s) => s.currentQuality);
|
||||||
|
const currentAudioTrack = usePlayerStore((s) => s.currentAudioTrack);
|
||||||
const selectedCaptionLanguage = usePlayerStore(
|
const selectedCaptionLanguage = usePlayerStore(
|
||||||
(s) => s.caption.selected?.language,
|
(s) => s.caption.selected?.language,
|
||||||
);
|
);
|
||||||
@@ -35,6 +36,11 @@ export function SettingsMenu({ id }: { id: string }) {
|
|||||||
t("player.menus.subtitles.unknownLanguage")
|
t("player.menus.subtitles.unknownLanguage")
|
||||||
: undefined;
|
: undefined;
|
||||||
|
|
||||||
|
const selectedAudioLanguagePretty = currentAudioTrack
|
||||||
|
? getPrettyLanguageNameFromLocale(currentAudioTrack.language) ??
|
||||||
|
t("player.menus.subtitles.unknownLanguage")
|
||||||
|
: undefined;
|
||||||
|
|
||||||
const source = usePlayerStore((s) => s.source);
|
const source = usePlayerStore((s) => s.source);
|
||||||
|
|
||||||
const downloadable = source?.type === "file" || source?.type === "hls";
|
const downloadable = source?.type === "file" || source?.type === "hls";
|
||||||
@@ -51,6 +57,15 @@ export function SettingsMenu({ id }: { id: string }) {
|
|||||||
>
|
>
|
||||||
{t("player.menus.settings.qualityItem")}
|
{t("player.menus.settings.qualityItem")}
|
||||||
</Menu.ChevronLink>
|
</Menu.ChevronLink>
|
||||||
|
{currentAudioTrack && (
|
||||||
|
<Menu.ChevronLink
|
||||||
|
onClick={() => router.navigate("/audio")}
|
||||||
|
rightText={selectedAudioLanguagePretty ?? undefined}
|
||||||
|
>
|
||||||
|
{t("player.menus.settings.audioItem")}
|
||||||
|
</Menu.ChevronLink>
|
||||||
|
)}
|
||||||
|
|
||||||
<Menu.ChevronLink
|
<Menu.ChevronLink
|
||||||
onClick={() => router.navigate("/source")}
|
onClick={() => router.navigate("/source")}
|
||||||
rightText={sourceName}
|
rightText={sourceName}
|
||||||
|
@@ -1,23 +1,21 @@
|
|||||||
import { useTranslation } from "react-i18next";
|
import { useTranslation } from "react-i18next";
|
||||||
import { useNavigate } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
import { Icon, Icons } from "@/components/Icon";
|
import { Icon, Icons } from "@/components/Icon";
|
||||||
|
|
||||||
export function BackLink(props: { url: string }) {
|
export function BackLink(props: { url: string }) {
|
||||||
const { t } = useTranslation();
|
const { t } = useTranslation();
|
||||||
const navigate = useNavigate();
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex items-center">
|
<div className="flex items-center">
|
||||||
<button
|
<Link
|
||||||
type="button"
|
to={props.url}
|
||||||
onClick={() => navigate(props.url)}
|
|
||||||
className="py-1 -my-1 px-2 -mx-2 tabbable rounded-lg flex items-center cursor-pointer text-type-secondary hover:text-white transition-colors duration-200 font-medium"
|
className="py-1 -my-1 px-2 -mx-2 tabbable rounded-lg flex items-center cursor-pointer text-type-secondary hover:text-white transition-colors duration-200 font-medium"
|
||||||
>
|
>
|
||||||
<Icon className="mr-2" icon={Icons.ARROW_LEFT} />
|
<Icon className="mr-2" icon={Icons.ARROW_LEFT} />
|
||||||
<span className="md:hidden">{t("player.back.short")}</span>
|
<span className="md:hidden">{t("player.back.short")}</span>
|
||||||
<span className="hidden md:block">{t("player.back.default")}</span>
|
<span className="hidden md:block">{t("player.back.default")}</span>
|
||||||
</button>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@@ -4,6 +4,7 @@ import { OverlayDisplay } from "@/components/overlays/OverlayDisplay";
|
|||||||
import { CastingInternal } from "@/components/player/internals/CastingInternal";
|
import { CastingInternal } from "@/components/player/internals/CastingInternal";
|
||||||
import { HeadUpdater } from "@/components/player/internals/HeadUpdater";
|
import { HeadUpdater } from "@/components/player/internals/HeadUpdater";
|
||||||
import { KeyboardEvents } from "@/components/player/internals/KeyboardEvents";
|
import { KeyboardEvents } from "@/components/player/internals/KeyboardEvents";
|
||||||
|
import { MediaSession } from "@/components/player/internals/MediaSession";
|
||||||
import { MetaReporter } from "@/components/player/internals/MetaReporter";
|
import { MetaReporter } from "@/components/player/internals/MetaReporter";
|
||||||
import { ProgressSaver } from "@/components/player/internals/ProgressSaver";
|
import { ProgressSaver } from "@/components/player/internals/ProgressSaver";
|
||||||
import { ThumbnailScraper } from "@/components/player/internals/ThumbnailScraper";
|
import { ThumbnailScraper } from "@/components/player/internals/ThumbnailScraper";
|
||||||
@@ -91,6 +92,7 @@ export function Container(props: PlayerProps) {
|
|||||||
<VideoContainer />
|
<VideoContainer />
|
||||||
<ProgressSaver />
|
<ProgressSaver />
|
||||||
<KeyboardEvents />
|
<KeyboardEvents />
|
||||||
|
<MediaSession />
|
||||||
<div className="relative h-screen overflow-hidden">
|
<div className="relative h-screen overflow-hidden">
|
||||||
<VideoClickTarget showingControls={props.showingControls} />
|
<VideoClickTarget showingControls={props.showingControls} />
|
||||||
<HeadUpdater />
|
<HeadUpdater />
|
||||||
|
@@ -55,6 +55,10 @@ export function CaptionCue({
|
|||||||
color: styling.color,
|
color: styling.color,
|
||||||
fontSize: `${(1.5 * styling.size).toFixed(2)}em`,
|
fontSize: `${(1.5 * styling.size).toFixed(2)}em`,
|
||||||
backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`,
|
backgroundColor: `rgba(0,0,0,${styling.backgroundOpacity.toFixed(2)})`,
|
||||||
|
backdropFilter:
|
||||||
|
styling.backgroundBlur !== 0
|
||||||
|
? `blur(${Math.floor(styling.backgroundBlur * 64)}px)`
|
||||||
|
: "none",
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
@@ -12,6 +12,7 @@ import {
|
|||||||
} from "@/components/player/display/displayInterface";
|
} from "@/components/player/display/displayInterface";
|
||||||
import { handleBuffered } from "@/components/player/utils/handleBuffered";
|
import { handleBuffered } from "@/components/player/utils/handleBuffered";
|
||||||
import { getMediaErrorDetails } from "@/components/player/utils/mediaErrorDetails";
|
import { getMediaErrorDetails } from "@/components/player/utils/mediaErrorDetails";
|
||||||
|
import { useLanguageStore } from "@/stores/language";
|
||||||
import {
|
import {
|
||||||
LoadableSource,
|
LoadableSource,
|
||||||
SourceQuality,
|
SourceQuality,
|
||||||
@@ -67,6 +68,11 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
let preferenceQuality: SourceQuality | null = null;
|
let preferenceQuality: SourceQuality | null = null;
|
||||||
let lastVolume = 1;
|
let lastVolume = 1;
|
||||||
|
|
||||||
|
const languagePromises = new Map<
|
||||||
|
string,
|
||||||
|
(value: void | PromiseLike<void>) => void
|
||||||
|
>();
|
||||||
|
|
||||||
function reportLevels() {
|
function reportLevels() {
|
||||||
if (!hls) return;
|
if (!hls) return;
|
||||||
const levels = hls.levels;
|
const levels = hls.levels;
|
||||||
@@ -76,6 +82,31 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
emit("qualities", convertedLevels);
|
emit("qualities", convertedLevels);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function reportAudioTracks() {
|
||||||
|
if (!hls) return;
|
||||||
|
const currentLanguage = useLanguageStore.getState().language;
|
||||||
|
const audioTracks = hls.audioTracks;
|
||||||
|
const languageTrack = audioTracks.find((v) => v.lang === currentLanguage);
|
||||||
|
if (languageTrack) {
|
||||||
|
hls.audioTrack = audioTracks.indexOf(languageTrack);
|
||||||
|
}
|
||||||
|
const currentTrack = audioTracks?.[hls.audioTrack ?? 0];
|
||||||
|
if (!currentTrack) return;
|
||||||
|
emit("changedaudiotrack", {
|
||||||
|
id: currentTrack.id.toString(),
|
||||||
|
label: currentTrack.name,
|
||||||
|
language: currentTrack.lang ?? "unknown",
|
||||||
|
});
|
||||||
|
emit(
|
||||||
|
"audiotracks",
|
||||||
|
hls.audioTracks.map((v) => ({
|
||||||
|
id: v.id.toString(),
|
||||||
|
label: v.name,
|
||||||
|
language: v.lang ?? "unknown",
|
||||||
|
})),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
function setupQualityForHls() {
|
function setupQualityForHls() {
|
||||||
if (videoElement && canPlayHlsNatively(videoElement)) {
|
if (videoElement && canPlayHlsNatively(videoElement)) {
|
||||||
return; // nothing to change
|
return; // nothing to change
|
||||||
@@ -106,6 +137,7 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setupSource(vid: HTMLVideoElement, src: LoadableSource) {
|
function setupSource(vid: HTMLVideoElement, src: LoadableSource) {
|
||||||
|
hls = null;
|
||||||
if (src.type === "hls") {
|
if (src.type === "hls") {
|
||||||
if (canPlayHlsNatively(vid)) {
|
if (canPlayHlsNatively(vid)) {
|
||||||
vid.src = processCdnLink(src.url);
|
vid.src = processCdnLink(src.url);
|
||||||
@@ -133,6 +165,7 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
renderTextTracksNatively: false,
|
||||||
});
|
});
|
||||||
hls.on(Hls.Events.ERROR, (event, data) => {
|
hls.on(Hls.Events.ERROR, (event, data) => {
|
||||||
console.error("HLS error", data);
|
console.error("HLS error", data);
|
||||||
@@ -149,6 +182,7 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
if (!hls) return;
|
if (!hls) return;
|
||||||
reportLevels();
|
reportLevels();
|
||||||
setupQualityForHls();
|
setupQualityForHls();
|
||||||
|
reportAudioTracks();
|
||||||
|
|
||||||
if (isExtensionActiveCached()) {
|
if (isExtensionActiveCached()) {
|
||||||
hls.on(Hls.Events.LEVEL_LOADED, async (_, data) => {
|
hls.on(Hls.Events.LEVEL_LOADED, async (_, data) => {
|
||||||
@@ -166,6 +200,21 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
hls.on(Hls.Events.AUDIO_TRACK_LOADED, async (_, data) => {
|
||||||
|
const chunkUrlsDomains = data.details.fragments.map(
|
||||||
|
(v) => new URL(v.url).hostname,
|
||||||
|
);
|
||||||
|
const chunkUrls = [...new Set(chunkUrlsDomains)];
|
||||||
|
|
||||||
|
await setDomainRule({
|
||||||
|
ruleId: RULE_IDS.SET_DOMAINS_HLS_AUDIO,
|
||||||
|
targetDomains: chunkUrls,
|
||||||
|
requestHeaders: {
|
||||||
|
...src.preferredHeaders,
|
||||||
|
...src.headers,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
hls.on(Hls.Events.LEVEL_SWITCHED, () => {
|
hls.on(Hls.Events.LEVEL_SWITCHED, () => {
|
||||||
@@ -173,6 +222,16 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
const quality = hlsLevelToQuality(hls.levels[hls.currentLevel]);
|
const quality = hlsLevelToQuality(hls.levels[hls.currentLevel]);
|
||||||
emit("changedquality", quality);
|
emit("changedquality", quality);
|
||||||
});
|
});
|
||||||
|
hls.on(Hls.Events.SUBTITLE_TRACK_LOADED, () => {
|
||||||
|
for (const [lang, resolve] of languagePromises) {
|
||||||
|
const track = hls?.subtitleTracks.find((t) => t.lang === lang);
|
||||||
|
if (track) {
|
||||||
|
resolve();
|
||||||
|
languagePromises.delete(lang);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
hls.attachMedia(vid);
|
hls.attachMedia(vid);
|
||||||
@@ -413,5 +472,53 @@ export function makeVideoElementDisplayInterface(): DisplayInterface {
|
|||||||
setPlaybackRate(rate) {
|
setPlaybackRate(rate) {
|
||||||
if (videoElement) videoElement.playbackRate = rate;
|
if (videoElement) videoElement.playbackRate = rate;
|
||||||
},
|
},
|
||||||
|
getCaptionList() {
|
||||||
|
return (
|
||||||
|
hls?.subtitleTracks.map((track) => {
|
||||||
|
return {
|
||||||
|
id: track.id.toString(),
|
||||||
|
language: track.lang ?? "unknown",
|
||||||
|
url: track.url,
|
||||||
|
needsProxy: false,
|
||||||
|
hls: true,
|
||||||
|
};
|
||||||
|
}) ?? []
|
||||||
|
);
|
||||||
|
},
|
||||||
|
getSubtitleTracks() {
|
||||||
|
return hls?.subtitleTracks ?? [];
|
||||||
|
},
|
||||||
|
async setSubtitlePreference(lang) {
|
||||||
|
// default subtitles are already loaded by hls.js
|
||||||
|
const track = hls?.subtitleTracks.find((t) => t.lang === lang);
|
||||||
|
if (track?.details !== undefined) return Promise.resolve();
|
||||||
|
|
||||||
|
// need to wait a moment before hls loads the subtitles
|
||||||
|
const promise = new Promise<void>((resolve, reject) => {
|
||||||
|
languagePromises.set(lang, resolve);
|
||||||
|
|
||||||
|
// reject after some time, if hls.js fails to load the subtitles
|
||||||
|
// for any reason
|
||||||
|
setTimeout(() => {
|
||||||
|
reject();
|
||||||
|
languagePromises.delete(lang);
|
||||||
|
}, 5000);
|
||||||
|
});
|
||||||
|
hls?.setSubtitleOption({ lang });
|
||||||
|
return promise;
|
||||||
|
},
|
||||||
|
changeAudioTrack(track) {
|
||||||
|
if (!hls) return;
|
||||||
|
const audioTrack = hls?.audioTracks.find(
|
||||||
|
(t) => t.id.toString() === track.id,
|
||||||
|
);
|
||||||
|
if (!audioTrack) return;
|
||||||
|
hls.audioTrack = hls.audioTracks.indexOf(audioTrack);
|
||||||
|
emit("changedaudiotrack", {
|
||||||
|
id: audioTrack.id.toString(),
|
||||||
|
label: audioTrack.name,
|
||||||
|
language: audioTrack.lang ?? "unknown",
|
||||||
|
});
|
||||||
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|