Compare commits
851 Commits
1.2.3
...
siftleft-s
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
79c0ad1670 | ||
|
|
93138cbbae | ||
|
|
fc5e380ccc | ||
|
|
33587d54e4 | ||
|
|
d355bb87e3 | ||
|
|
52b9b257c3 | ||
|
|
b939b64778 | ||
|
|
342270d6dd | ||
|
|
dae093bbfa | ||
|
|
7de12d64d5 | ||
|
|
b6460616ba | ||
|
|
7a1de52e05 | ||
|
|
91c8f9f23c | ||
|
|
84771d7167 | ||
|
|
3dd01b1f70 | ||
|
|
89f6f0051d | ||
|
|
194b27e685 | ||
|
|
e32e3979a8 | ||
|
|
af5a14afc3 | ||
|
|
5812a6bb68 | ||
|
|
f339c0b1c0 | ||
|
|
502bb5fa15 | ||
|
|
89bdc92451 | ||
|
|
63d6816c7c | ||
|
|
e572e9c79c | ||
|
|
2b0ebdb6c7 | ||
|
|
3a06d5a745 | ||
|
|
12aa325494 | ||
|
|
a806a6455e | ||
|
|
4296b43832 | ||
|
|
c3ad4a4b4d | ||
|
|
805eb288d9 | ||
|
|
b21efd8336 | ||
|
|
7d82c82fd9 | ||
|
|
3f92d4c038 | ||
|
|
377d7d565b | ||
|
|
e6def62581 | ||
|
|
17c1284ccf | ||
|
|
0a9cd05453 | ||
|
|
2b8534d49e | ||
|
|
472bf520d8 | ||
|
|
4d3a2ae946 | ||
|
|
4c329be95f | ||
|
|
b47b8cf050 | ||
|
|
1b8351fef9 | ||
|
|
d0c6ab224f | ||
|
|
53e23b7422 | ||
|
|
010f9db274 | ||
|
|
c2c0980c57 | ||
|
|
fcb6422663 | ||
|
|
993abd746e | ||
|
|
30228cc33c | ||
|
|
14ff704b28 | ||
|
|
cd1b0e0a50 | ||
|
|
4a73afa057 | ||
|
|
63d20330b4 | ||
|
|
982a4f957c | ||
|
|
67fd327df4 | ||
|
|
db0db4ebff | ||
|
|
4514f1f3a4 | ||
|
|
926fab30e9 | ||
|
|
492cdc9926 | ||
|
|
6b5e7c1b49 | ||
|
|
2bc7e8e38f | ||
|
|
48916d5df7 | ||
|
|
0887f567ab | ||
|
|
3e4def2069 | ||
|
|
39867d8151 | ||
|
|
c7a86ebd5c | ||
|
|
56d993ca82 | ||
|
|
45b3ec4ac6 | ||
|
|
9bd04c55c9 | ||
|
|
dd4633ff8f | ||
|
|
c0207d00a2 | ||
|
|
bd83415c82 | ||
|
|
478f806e9c | ||
|
|
db402baa14 | ||
|
|
dac5bd1d93 | ||
|
|
4b2f2920a2 | ||
|
|
83620d7eb5 | ||
|
|
de4abad748 | ||
|
|
3ca01024fd | ||
|
|
5809a7cfa7 | ||
|
|
0e78534e48 | ||
|
|
b68ae363ec | ||
|
|
3181cfe58a | ||
|
|
bc11452259 | ||
|
|
853a4f386f | ||
|
|
9683c591bb | ||
|
|
47029fb04e | ||
|
|
735a77b783 | ||
|
|
5f4200c721 | ||
|
|
9b893f09d7 | ||
|
|
3b9b6c948f | ||
|
|
7b7a32c0a7 | ||
|
|
fd7d05e862 | ||
|
|
8232dce395 | ||
|
|
6f3bb25b09 | ||
|
|
1dc8b24665 | ||
|
|
ed66351337 | ||
|
|
9e6eb50ced | ||
|
|
d727837324 | ||
|
|
175d14224e | ||
|
|
51f1f67fe8 | ||
|
|
ab250d8686 | ||
|
|
1ff8637c23 | ||
|
|
727166e945 | ||
|
|
e50f3eb311 | ||
|
|
f5fa37b5f2 | ||
|
|
587822838a | ||
|
|
553417194c | ||
|
|
8a08a2167b | ||
|
|
d65bf02d78 | ||
|
|
30c8d97517 | ||
|
|
65d8f896c7 | ||
|
|
458ebcb321 | ||
|
|
ec022b2db9 | ||
|
|
a369202c51 | ||
|
|
77ee40909f | ||
|
|
5fd829aa09 | ||
|
|
8864523173 | ||
|
|
44cc70ee35 | ||
|
|
cdc970a434 | ||
|
|
2ca479786c | ||
|
|
7ca33019d2 | ||
|
|
99358bbffc | ||
|
|
df126f89d6 | ||
|
|
a227443cb6 | ||
|
|
3780db627d | ||
|
|
a40f3b2950 | ||
|
|
2e10bdbd22 | ||
|
|
4fcf7f31a1 | ||
|
|
da0896fe42 | ||
|
|
52d65abce7 | ||
|
|
f3fee65ba9 | ||
|
|
4a5f08074b | ||
|
|
5a9bcea3a9 | ||
|
|
f71e62c07e | ||
|
|
b55a0456af | ||
|
|
066aa77ba1 | ||
|
|
b610368f12 | ||
|
|
e6e985d92d | ||
|
|
42e609e66f | ||
|
|
16b7e8f8af | ||
|
|
c24cc8859c | ||
|
|
b2e65035d0 | ||
|
|
7006598d87 | ||
|
|
156155663d | ||
|
|
b38ebc503e | ||
|
|
ad4184dbe3 | ||
|
|
ec0236bd01 | ||
|
|
c87c6c80af | ||
|
|
73e44e1aa8 | ||
|
|
2d6d0252cf | ||
|
|
913d37a663 | ||
|
|
3248ee99e9 | ||
|
|
8f069a52d2 | ||
|
|
e5f69cb497 | ||
|
|
5b736084e2 | ||
|
|
f6850a90e4 | ||
|
|
e02816b1a4 | ||
|
|
ca1cc52823 | ||
|
|
1ddbcf79ac | ||
|
|
b79c9aa960 | ||
|
|
dd60cc9c29 | ||
|
|
f30fc8b601 | ||
|
|
ed7daac55a | ||
|
|
556bbccb69 | ||
|
|
b19c8d8403 | ||
|
|
84805c7e46 | ||
|
|
6b112c6b28 | ||
|
|
61b57ed519 | ||
|
|
a50124a7ab | ||
|
|
639bab1b0d | ||
|
|
32353a70aa | ||
|
|
cb9048116e | ||
|
|
bf33f2928b | ||
|
|
100f85f7b6 | ||
|
|
283561e34f | ||
|
|
19c77f929c | ||
|
|
1da05948c7 | ||
|
|
7381ddb5dc | ||
|
|
c7bff204f9 | ||
|
|
be90629bd7 | ||
|
|
0949658545 | ||
|
|
300bd61c2e | ||
|
|
0989c8c355 | ||
|
|
bb6a44ce7a | ||
|
|
f12986a277 | ||
|
|
eb32ea1419 | ||
|
|
48cf1d581e | ||
|
|
7a2592ba50 | ||
|
|
7dc965d707 | ||
|
|
5d796fa306 | ||
|
|
bea9119ec6 | ||
|
|
999ded510a | ||
|
|
8d9819ef22 | ||
|
|
14709591c5 | ||
|
|
6a49219a62 | ||
|
|
b31dad8687 | ||
|
|
97f953f5e8 | ||
|
|
e43a96b069 | ||
|
|
9557b26094 | ||
|
|
089770e5ca | ||
|
|
18992f00c2 | ||
|
|
54b87351e1 | ||
|
|
7be40cdf90 | ||
|
|
766fc071fe | ||
|
|
69cd0e776b | ||
|
|
b450dd1d49 | ||
|
|
f416529ebf | ||
|
|
788290f55c | ||
|
|
410997bd47 | ||
|
|
4f731c3b55 | ||
|
|
fd88f045e8 | ||
|
|
728842d1d0 | ||
|
|
6a468b0809 | ||
|
|
243d04c2db | ||
|
|
587f5ef9a7 | ||
|
|
366a8a5279 | ||
|
|
aea485b8df | ||
|
|
67a59def91 | ||
|
|
a8b080de6e | ||
|
|
46ea5b196b | ||
|
|
ae00d3117a | ||
|
|
3adf8dc5d7 | ||
|
|
e1ed668cc0 | ||
|
|
8923436c46 | ||
|
|
a304049b7a | ||
|
|
c4e4237e8a | ||
|
|
2192f69f7e | ||
|
|
5a9858de21 | ||
|
|
4d9a25a7d9 | ||
|
|
1017b0746c | ||
|
|
46b1afd430 | ||
|
|
885adbaead | ||
|
|
3a68788611 | ||
|
|
6945115be6 | ||
|
|
7c9f22350d | ||
|
|
bedc8b35dc | ||
|
|
92669b3d37 | ||
|
|
8ebc91ce31 | ||
|
|
63d5181602 | ||
|
|
74e902729c | ||
|
|
dc90d91d7c | ||
|
|
1ddc7a7634 | ||
|
|
bf5995ef74 | ||
|
|
f18300c600 | ||
|
|
2b9a61d234 | ||
|
|
ad10970385 | ||
|
|
b49d272d0c | ||
|
|
d8e9ffb7a2 | ||
|
|
913d2f1f01 | ||
|
|
7faba38844 | ||
|
|
0db182edcf | ||
|
|
83c3c5ce12 | ||
|
|
a373f94c93 | ||
|
|
ef21d85fd6 | ||
|
|
287170b26a | ||
|
|
5457196f72 | ||
|
|
d7452b6538 | ||
|
|
996c3b87e1 | ||
|
|
98c7974853 | ||
|
|
c71b049124 | ||
|
|
e34e6428b6 | ||
|
|
2708f4e9a8 | ||
|
|
428374d432 | ||
|
|
343738299c | ||
|
|
3a58fa902b | ||
|
|
bd8dd77ce3 | ||
|
|
96fc118507 | ||
|
|
dd120b2209 | ||
|
|
f819784eea | ||
|
|
91541ddb91 | ||
|
|
b1ffe38518 | ||
|
|
5b3702ac5f | ||
|
|
2f0bfd1432 | ||
|
|
e0eeed00d9 | ||
|
|
530dbf4a51 | ||
|
|
5a8747e2f9 | ||
|
|
f0fa288c75 | ||
|
|
e25243ed8a | ||
|
|
7060c0795c | ||
|
|
14e070e44a | ||
|
|
02278c73ce | ||
|
|
2575656831 | ||
|
|
5ec72f1d89 | ||
|
|
2e4595c1ec | ||
|
|
291fdb306d | ||
|
|
0d492805b3 | ||
|
|
ba10c80ab1 | ||
|
|
d89601d505 | ||
|
|
cc11ef6d7a | ||
|
|
a2e9a94b58 | ||
|
|
8b7ae28830 | ||
|
|
c0567dd005 | ||
|
|
7becdd26f1 | ||
|
|
8962c86d29 | ||
|
|
d4e440c1a2 | ||
|
|
6546210da8 | ||
|
|
5d418be054 | ||
|
|
f2fb92eedc | ||
|
|
f4c7807181 | ||
|
|
4a04915269 | ||
|
|
a518b7c2ca | ||
|
|
48faf7b2f0 | ||
|
|
350cc21f42 | ||
|
|
ccbb24fdf1 | ||
|
|
8bbf568d43 | ||
|
|
6b2801f7de | ||
|
|
50881ff172 | ||
|
|
4e4c36a6c4 | ||
|
|
1d36fa2c21 | ||
|
|
21435d0111 | ||
|
|
669430aa10 | ||
|
|
566f8f1b1d | ||
|
|
9365f88a31 | ||
|
|
40172b8500 | ||
|
|
ea53546799 | ||
|
|
91062a28e3 | ||
|
|
9b35a4da70 | ||
|
|
5d379e6534 | ||
|
|
13b5c66e6d | ||
|
|
3668f1e3f4 | ||
|
|
417b17f86d | ||
|
|
3ef741b27b | ||
|
|
565063d839 | ||
|
|
646a2348db | ||
|
|
7f1d03df55 | ||
|
|
397442913b | ||
|
|
f9ed831092 | ||
|
|
633ec4b199 | ||
|
|
1614342248 | ||
|
|
298cbebca3 | ||
|
|
9f7b60a402 | ||
|
|
b30f3a9b58 | ||
|
|
7637d69e1b | ||
|
|
33bcce593a | ||
|
|
3cd346c7de | ||
|
|
cbd3c75dd2 | ||
|
|
9f7db595a7 | ||
|
|
4204e4b8b7 | ||
|
|
e61c44ef46 | ||
|
|
13c2f8d968 | ||
|
|
0673c1cde1 | ||
|
|
e35a26c916 | ||
|
|
b555f679f6 | ||
|
|
45a0535640 | ||
|
|
cb0faf690c | ||
|
|
8fcc321eb6 | ||
|
|
5450a431cf | ||
|
|
f1d4792d3e | ||
|
|
65011019b7 | ||
|
|
dfed1a4b45 | ||
|
|
9b138fd5fd | ||
|
|
903ea5ea68 | ||
|
|
7794915172 | ||
|
|
df408c1e82 | ||
|
|
fbefe47806 | ||
|
|
bd7ecb9c55 | ||
|
|
2a04ee385d | ||
|
|
3268464ada | ||
|
|
09a2c5c3b9 | ||
|
|
51a867bc20 | ||
|
|
a1bac9b6e1 | ||
|
|
268730e07b | ||
|
|
120ba0b8ca | ||
|
|
bd26972a73 | ||
|
|
7cef87e856 | ||
|
|
420f0d6634 | ||
|
|
dd98af0775 | ||
|
|
5f0011b0f6 | ||
|
|
25a39148a8 | ||
|
|
e298c3d10c | ||
|
|
afcece17dd | ||
|
|
74551f58d7 | ||
|
|
4984194c33 | ||
|
|
d6b06269a4 | ||
|
|
7eb96eb3cb | ||
|
|
bb9a5772bc | ||
|
|
e59ef24d35 | ||
|
|
8c6c10cd0f | ||
|
|
958d55a8be | ||
|
|
57766496e4 | ||
|
|
75fc6b0c8c | ||
|
|
38a1726e22 | ||
|
|
d3ba7eeb13 | ||
|
|
5ece4d2632 | ||
|
|
fc1be18cbe | ||
|
|
878f13a643 | ||
|
|
b5ab38e657 | ||
|
|
fb66e2392b | ||
|
|
7e77b94158 | ||
|
|
2f9f6d90dd | ||
|
|
c63dc3df7b | ||
|
|
9914c37683 | ||
|
|
1439bb291f | ||
|
|
0907ee90e3 | ||
|
|
7abfe56910 | ||
|
|
0cc0830421 | ||
|
|
71c76adac4 | ||
|
|
7cb830e22f | ||
|
|
c334d2d00d | ||
|
|
c11dc8e17e | ||
|
|
8a6dcf910a | ||
|
|
33bb0c6bd6 | ||
|
|
0564c0e62e | ||
|
|
b52e78d173 | ||
|
|
f05e5c2e29 | ||
|
|
879a2a9255 | ||
|
|
f391773c65 | ||
|
|
5340f417e0 | ||
|
|
d2e9e47b67 | ||
|
|
b0800060c2 | ||
|
|
15f66870d1 | ||
|
|
afd82ac34d | ||
|
|
adece1d784 | ||
|
|
e74d786a68 | ||
|
|
f190317d95 | ||
|
|
5d54006c9e | ||
|
|
2870023e9c | ||
|
|
df7a06315f | ||
|
|
12c83a13c7 | ||
|
|
aa377038a0 | ||
|
|
7038fd5712 | ||
|
|
81194f6bd6 | ||
|
|
bab95cce1b | ||
|
|
00438ec1ab | ||
|
|
87423abd7c | ||
|
|
347e7e03e1 | ||
|
|
6e08d8a497 | ||
|
|
3fdd42487a | ||
|
|
2cbb8bf3ca | ||
|
|
3996f82404 | ||
|
|
d7fd6667fd | ||
|
|
21ca30af3c | ||
|
|
1b206e8495 | ||
|
|
cc0920fc09 | ||
|
|
428ea2f34e | ||
|
|
f940f17bba | ||
|
|
91003d6597 | ||
|
|
9a4018bffe | ||
|
|
8a6415ef5f | ||
|
|
b674c187a0 | ||
|
|
665192e27e | ||
|
|
b4256a986a | ||
|
|
13b30608cb | ||
|
|
a86dd35ac3 | ||
|
|
19d0cace13 | ||
|
|
d0589e77d4 | ||
|
|
271c954f9a | ||
|
|
3f8cf1792d | ||
|
|
f6899785a9 | ||
|
|
2d11d7b29e | ||
|
|
29efc14aa7 | ||
|
|
62365880b4 | ||
|
|
aa3f1206b2 | ||
|
|
b160e5d1f8 | ||
|
|
56ad0273e4 | ||
|
|
83c29165ad | ||
|
|
39ee46caee | ||
|
|
774fea9230 | ||
|
|
1d8b0d6189 | ||
|
|
72e96c7147 | ||
|
|
1ae4f4f0fc | ||
|
|
28c387074f | ||
|
|
3993b47e06 | ||
|
|
42130e0468 | ||
|
|
685c354d0e | ||
|
|
fa9d3037ba | ||
|
|
7b87dc3ca9 | ||
|
|
0d08edbe55 | ||
|
|
cec5cb41d7 | ||
|
|
76eff6a87a | ||
|
|
fd4492f229 | ||
|
|
5daba16333 | ||
|
|
eb549d70d1 | ||
|
|
9f6c02276a | ||
|
|
ebc2d649c4 | ||
|
|
01414e43ca | ||
|
|
9aac073a49 | ||
|
|
599264e167 | ||
|
|
ed590ee557 | ||
|
|
d73f8468d8 | ||
|
|
ef8943d838 | ||
|
|
2fd649db14 | ||
|
|
11a7ac4e2b | ||
|
|
a9bf667f8e | ||
|
|
4bf7f863dc | ||
|
|
8d0ac336d2 | ||
|
|
ddaee6486d | ||
|
|
3485922366 | ||
|
|
0efe6f7a8e | ||
|
|
07a6e3094d | ||
|
|
7d9ec9509b | ||
|
|
d5d13fa831 | ||
|
|
13fb849973 | ||
|
|
b5c86e290f | ||
|
|
6b0468ebff | ||
|
|
825f6884be | ||
|
|
ee9e340de0 | ||
|
|
2cbb86cefc | ||
|
|
3923817f2b | ||
|
|
b00d8e4ad8 | ||
|
|
aa75e596c8 | ||
|
|
787daccb78 | ||
|
|
87cf61c39b | ||
|
|
853fd906cb | ||
|
|
af8d963fd2 | ||
|
|
0ed238a775 | ||
|
|
8cf0c86ebb | ||
|
|
b23fd48d49 | ||
|
|
ffe26a8841 | ||
|
|
0b6139fb42 | ||
|
|
7d7ff34d83 | ||
|
|
e079f6c830 | ||
|
|
63fdd2eba3 | ||
|
|
759113f453 | ||
|
|
7255cd29a7 | ||
|
|
13afa7fe21 | ||
|
|
00a9e36c59 | ||
|
|
6fc4303acc | ||
|
|
56222d6cfb | ||
|
|
65b7077756 | ||
|
|
03138bcde5 | ||
|
|
7e9e3155a8 | ||
|
|
2b3b47c59d | ||
|
|
8fc85bc39c | ||
|
|
92571512bf | ||
|
|
d3153b5e38 | ||
|
|
71797d1dd4 | ||
|
|
476b9c90e2 | ||
|
|
2d4edfe401 | ||
|
|
ced5f30280 | ||
|
|
d5aeba60ca | ||
|
|
5c0012cf51 | ||
|
|
091dc14074 | ||
|
|
a3f793fec7 | ||
|
|
b496ae42fd | ||
|
|
e9eeeacdf0 | ||
|
|
8da382f7c6 | ||
|
|
28d70a1b18 | ||
|
|
c1f6e5663b | ||
|
|
bf0be09f09 | ||
|
|
955317d924 | ||
|
|
8e27dbff15 | ||
|
|
7c61f59dcd | ||
|
|
70c38db81d | ||
|
|
4332d0edb0 | ||
|
|
5810f17c31 | ||
|
|
15b3d67ba7 | ||
|
|
1a42158dd1 | ||
|
|
713ce148a4 | ||
|
|
63426d6f8b | ||
|
|
a363b2ff95 | ||
|
|
c2962af4f8 | ||
|
|
ae11d168ce | ||
|
|
7b029d3657 | ||
|
|
b1c9ca65fa | ||
|
|
5471757fa7 | ||
|
|
7a85900b7c | ||
|
|
269def8300 | ||
|
|
c992d10833 | ||
|
|
813e72d871 | ||
|
|
50881a75e6 | ||
|
|
c56d777c11 | ||
|
|
7f65fe9218 | ||
|
|
ad570c391a | ||
|
|
a6aef109cc | ||
|
|
6fcd82fb85 | ||
|
|
ff68043c9f | ||
|
|
5877111ccb | ||
|
|
00b886c492 | ||
|
|
e242d87427 | ||
|
|
271d4b680a | ||
|
|
ad096b80a1 | ||
|
|
b912c07cd1 | ||
|
|
ab75b183fb | ||
|
|
121b1e75d2 | ||
|
|
c77726b917 | ||
|
|
649c7aaa78 | ||
|
|
6a79519641 | ||
|
|
e4a0a8e82c | ||
|
|
72565e48ff | ||
|
|
ffac1adad6 | ||
|
|
d317cfbcc0 | ||
|
|
388655fdd1 | ||
|
|
b7b7aa3a47 | ||
|
|
2eed7a8a1c | ||
|
|
078b8d8fd6 | ||
|
|
3a9730f883 | ||
|
|
30ddcacca6 | ||
|
|
1de315619b | ||
|
|
e7fab8439d | ||
|
|
f22449ffd1 | ||
|
|
962df90b24 | ||
|
|
d351c7b734 | ||
|
|
84827e19c3 | ||
|
|
b8196ee63c | ||
|
|
e6e4facde0 | ||
|
|
6ac425d468 | ||
|
|
49b358b1ee | ||
|
|
71931b0f18 | ||
|
|
1af7b536a5 | ||
|
|
a5cd8696e6 | ||
|
|
cd5ede5670 | ||
|
|
cb877e4494 | ||
|
|
c66bff9d1b | ||
|
|
d63a0d10d3 | ||
|
|
847c9e7355 | ||
|
|
d33c89666d | ||
|
|
c8a9038f27 | ||
|
|
b65303dd71 | ||
|
|
8d323c1da4 | ||
|
|
5c5de860e2 | ||
|
|
da576baab9 | ||
|
|
78225165ca | ||
|
|
b0d1a3949e | ||
|
|
1469d0c062 | ||
|
|
a1704b2dd9 | ||
|
|
0780e5ace2 | ||
|
|
5d7658b58f | ||
|
|
1e2014b9fa | ||
|
|
07018e5876 | ||
|
|
6df5127132 | ||
|
|
8ae87d8653 | ||
|
|
d8ba1b1462 | ||
|
|
07e0b267f9 | ||
|
|
ae456bf7a1 | ||
|
|
57417c08cf | ||
|
|
943b6bdfc3 | ||
|
|
c707c87cac | ||
|
|
2cbf528894 | ||
|
|
11375a4f59 | ||
|
|
67b9b5f0d8 | ||
|
|
fdc532b3c1 | ||
|
|
ddb1c550f5 | ||
|
|
c2e060d464 | ||
|
|
848d3563f4 | ||
|
|
47944ba3b1 | ||
|
|
8dc9db90c9 | ||
|
|
c9680ed741 | ||
|
|
5a1adea050 | ||
|
|
f5fee9b44a | ||
|
|
40493dfb3a | ||
|
|
61fde53de0 | ||
|
|
dc193f7555 | ||
|
|
d9f27fb004 | ||
|
|
603f7fd911 | ||
|
|
59153633b8 | ||
|
|
d0365faf76 | ||
|
|
57bd65225d | ||
|
|
58fa7c987d | ||
|
|
b7db033bdd | ||
|
|
e5974d4663 | ||
|
|
a1b1efeae2 | ||
|
|
59dc413829 | ||
|
|
50cc6995e0 | ||
|
|
1958a55651 | ||
|
|
77419ec2c1 | ||
|
|
e9ce8ca1a0 | ||
|
|
b1be74a56f | ||
|
|
42c2003220 | ||
|
|
a67c9ab129 | ||
|
|
fc914b4b84 | ||
|
|
748b85e025 | ||
|
|
7ab6411f71 | ||
|
|
4d6897f063 | ||
|
|
8515c9d223 | ||
|
|
8a69411d50 | ||
|
|
49e118a8b3 | ||
|
|
3259cabfb3 | ||
|
|
b527bc6208 | ||
|
|
0a88b3043c | ||
|
|
66cee9dbd2 | ||
|
|
db4ae09ee3 | ||
|
|
362045c664 | ||
|
|
cd72110ea4 | ||
|
|
b4ceb4078d | ||
|
|
f915af1a5a | ||
|
|
451a4817c4 | ||
|
|
6cf52f4cf3 | ||
|
|
abd71413c3 | ||
|
|
d3f9670bc2 | ||
|
|
dcbefcc1c3 | ||
|
|
ff6b9bd8f9 | ||
|
|
a459c4692c | ||
|
|
ebbb850b27 | ||
|
|
87c7719513 | ||
|
|
c4b84b2b6b | ||
|
|
d73c68ad85 | ||
|
|
a270cd818a | ||
|
|
398fabd664 | ||
|
|
b44e729a1a | ||
|
|
12a9b2ff8e | ||
|
|
1baa1c2b0a | ||
|
|
800a0df8e3 | ||
|
|
353d08daf6 | ||
|
|
909ff2daa7 | ||
|
|
8fd3e680e4 | ||
|
|
86b4e0e7a4 | ||
|
|
d785ada3fe | ||
|
|
3b0ab7e99f | ||
|
|
0e71211fad | ||
|
|
7111e38898 | ||
|
|
6f480bf014 | ||
|
|
5779d87788 | ||
|
|
e77eb1de13 | ||
|
|
09162a3c57 | ||
|
|
cc1c55129f | ||
|
|
be1e7babc0 | ||
|
|
5b67721a6a | ||
|
|
dfb16ea61d | ||
|
|
ccdcf4cefa | ||
|
|
50af37507f | ||
|
|
788ea67b49 | ||
|
|
5b3286df4d | ||
|
|
20befe4bd6 | ||
|
|
a622c8f484 | ||
|
|
c3719435a3 | ||
|
|
7598b28a4a | ||
|
|
02f3cc739f | ||
|
|
9b6b25dac0 | ||
|
|
76007b6ee9 | ||
|
|
f58cbefd1e | ||
|
|
fb0c9c595e | ||
|
|
b1d35057cc | ||
|
|
bd4dee0f3e | ||
|
|
1e44902340 | ||
|
|
632d70412a | ||
|
|
0f42bd818f | ||
|
|
700f8a0ea7 | ||
|
|
59569bf9fc | ||
|
|
7f1afb2b3e | ||
|
|
fcf9cf63b5 | ||
|
|
54d21a7803 | ||
|
|
b12a099e29 | ||
|
|
4aab3c0061 | ||
|
|
76dc01b959 | ||
|
|
06b90ff48e | ||
|
|
b7a03cfdb9 | ||
|
|
6e15903f1e | ||
|
|
bbdcb3fb0f | ||
|
|
3338bd792e | ||
|
|
ed676acac3 | ||
|
|
5652a43d1d | ||
|
|
eeca365e18 | ||
|
|
0e18b5d0c1 | ||
|
|
0033f39b85 | ||
|
|
d8616d1e68 | ||
|
|
8ea7c4cda6 | ||
|
|
742add3d1e | ||
|
|
e01179653f | ||
|
|
a60b86691e | ||
|
|
ec698681aa | ||
|
|
2a9d2f9993 | ||
|
|
fd33cc8206 | ||
|
|
9c3a4cebd4 | ||
|
|
ba3efefc7b | ||
|
|
e418b083e8 | ||
|
|
48560e3d60 | ||
|
|
34c64acb75 | ||
|
|
c2a46b7af7 | ||
|
|
99d49a56ba | ||
|
|
7cb942aca3 | ||
|
|
541fff199a | ||
|
|
6beea8f2f4 | ||
|
|
e3d7ac4442 | ||
|
|
79a858f176 | ||
|
|
cc53d95ed1 | ||
|
|
5e4c6b5770 | ||
|
|
6bb599c81f | ||
|
|
8f52173ec3 | ||
|
|
287130dd37 | ||
|
|
ec68abe2b5 | ||
|
|
ce87b1cc39 | ||
|
|
0ee86f33da | ||
|
|
be69e4a50f | ||
|
|
0ad5b3e900 | ||
|
|
5ce3aa2817 | ||
|
|
210870590c | ||
|
|
0ab06e34ec | ||
|
|
f3165f0cab | ||
|
|
70007285bf | ||
|
|
4edbb66c91 | ||
|
|
3883e3fb30 | ||
|
|
9348cbe2a1 | ||
|
|
2bb3df5bee | ||
|
|
1de57c874e | ||
|
|
e64eaf45ee | ||
|
|
c39e578f04 | ||
|
|
c15351b793 | ||
|
|
cde96d8f24 | ||
|
|
e220a97c8f | ||
|
|
fe670dc94f | ||
|
|
ac9eac5ed6 | ||
|
|
2303c81ce0 | ||
|
|
9ce41022cf | ||
|
|
b36b3d1a82 | ||
|
|
18151e6e9e | ||
|
|
30bb34a4fe | ||
|
|
7a5a97c6ae | ||
|
|
8b803a1f5d | ||
|
|
3885047cb6 | ||
|
|
419311dffa | ||
|
|
9cce056cc8 | ||
|
|
6f34626ad6 | ||
|
|
5b00f4ead7 | ||
|
|
4c3fb3fe63 | ||
|
|
717e5b0e57 | ||
|
|
0f76b9066d | ||
|
|
2d7996570e | ||
|
|
2929d5c17a | ||
|
|
a08fed1add | ||
|
|
35045bb69a | ||
|
|
100d955e1a | ||
|
|
ff8ec5a1a0 | ||
|
|
c0d3b9062b | ||
|
|
17131f3172 | ||
|
|
746debf586 | ||
|
|
94a352e7f5 | ||
|
|
bc0fb5b91e | ||
|
|
00692a29d6 | ||
|
|
538462f134 | ||
|
|
b62e259cfb | ||
|
|
034d60f966 | ||
|
|
256a5b2450 | ||
|
|
41c54325fa | ||
|
|
f9e0b7236c | ||
|
|
dcee0c7d39 | ||
|
|
762386efd7 | ||
|
|
f3eaee206c | ||
|
|
176264f135 | ||
|
|
b791157717 | ||
|
|
b191e2c437 | ||
|
|
d66800b8ce | ||
|
|
8b71cb0b2f | ||
|
|
30b7be0781 | ||
|
|
b97ac08003 | ||
|
|
0dbbb61d11 | ||
|
|
fe7fa09ce8 | ||
|
|
5f8aeabea0 | ||
|
|
bd6888687f | ||
|
|
c4fc7edc43 | ||
|
|
6f25d651b7 | ||
|
|
c9a3bb08ee | ||
|
|
4f332b7719 | ||
|
|
c76957b3cb | ||
|
|
b40e6305ca | ||
|
|
5582c05414 | ||
|
|
ee8ffdc51b |
@@ -1,18 +0,0 @@
|
|||||||
# Documentation, might leak version number
|
|
||||||
CHANGELOG.md
|
|
||||||
LICENSE.md
|
|
||||||
CREDITS.md
|
|
||||||
INSTALL.md
|
|
||||||
README.md
|
|
||||||
doc/
|
|
||||||
|
|
||||||
# Dotfiles, pointless
|
|
||||||
.codeclimate.yml
|
|
||||||
.csslintrc
|
|
||||||
.editorconfig
|
|
||||||
.eslint*
|
|
||||||
.git*
|
|
||||||
.php_cs
|
|
||||||
.styleci.yml
|
|
||||||
.travis.yml
|
|
||||||
.github
|
|
||||||
22
.eslintrc
22
.eslintrc
@@ -1,3 +1,7 @@
|
|||||||
|
---
|
||||||
|
parserOptions:
|
||||||
|
ecmaVersion: 2017
|
||||||
|
|
||||||
ecmaFeatures:
|
ecmaFeatures:
|
||||||
modules: true
|
modules: true
|
||||||
jsx: true
|
jsx: true
|
||||||
@@ -8,18 +12,16 @@ env:
|
|||||||
es6: true
|
es6: true
|
||||||
jquery: true
|
jquery: true
|
||||||
node: true
|
node: true
|
||||||
|
mocha: true
|
||||||
|
|
||||||
globals:
|
globals:
|
||||||
sjcl: false
|
DOMPurify: readonly
|
||||||
DOMPurify: false
|
cleanup: writable
|
||||||
after: true
|
describe: readonly
|
||||||
before: true
|
jsc: readonly
|
||||||
cleanup: true
|
jsdom: writable
|
||||||
describe: false
|
kjua: writable
|
||||||
it: false
|
WebCrypto: writable
|
||||||
jsc: false
|
|
||||||
jsdom: true
|
|
||||||
kjua: true
|
|
||||||
|
|
||||||
# http://eslint.org/docs/rules/
|
# http://eslint.org/docs/rules/
|
||||||
rules:
|
rules:
|
||||||
|
|||||||
12
.gitattributes
vendored
12
.gitattributes
vendored
@@ -1,10 +1,12 @@
|
|||||||
doc/ export-ignore
|
doc/ export-ignore
|
||||||
tst/ export-ignore
|
tst/ export-ignore
|
||||||
|
img/browserstack.svg export-ignore
|
||||||
js/.istanbul.yml export-ignore
|
js/.istanbul.yml export-ignore
|
||||||
|
js/.nycrc.yml export-ignore
|
||||||
|
js/common.js export-ignore
|
||||||
js/test/ export-ignore
|
js/test/ export-ignore
|
||||||
.codeclimate.yml export-ignore
|
.codeclimate.yml export-ignore
|
||||||
.csslintrc export-ignore
|
.csslintrc export-ignore
|
||||||
.dockerignore export-ignore
|
|
||||||
.editorconfig export-ignore
|
.editorconfig export-ignore
|
||||||
.eslintignore export-ignore
|
.eslintignore export-ignore
|
||||||
.eslintrc export-ignore
|
.eslintrc export-ignore
|
||||||
@@ -14,9 +16,11 @@ js/test/ export-ignore
|
|||||||
.jshintrc export-ignore
|
.jshintrc export-ignore
|
||||||
.nsprc export-ignore
|
.nsprc export-ignore
|
||||||
.php_cs export-ignore
|
.php_cs export-ignore
|
||||||
|
.scrutinizer.yml export-ignore
|
||||||
.styleci.yml export-ignore
|
.styleci.yml export-ignore
|
||||||
.travis.yml export-ignore
|
.travis.yml export-ignore
|
||||||
Dockerfile export-ignore
|
|
||||||
docker-compose.yml export-ignore
|
|
||||||
docker/ export-ignore
|
|
||||||
composer.json export-ignore
|
composer.json export-ignore
|
||||||
|
composer.lock export-ignore
|
||||||
|
BADGES.md export-ignore
|
||||||
|
CODE_OF_CONDUCT.md export-ignore
|
||||||
|
Makefile export-ignore
|
||||||
|
|||||||
49
.github/workflows/codeql-analysis.yml
vendored
Normal file
49
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# For most projects, this workflow file will not need changing; you simply need
|
||||||
|
# to commit it to your repository.
|
||||||
|
#
|
||||||
|
# You may wish to alter this file to override the set of languages analyzed,
|
||||||
|
# or to provide custom queries or build logic.
|
||||||
|
#
|
||||||
|
# ******** NOTE ********
|
||||||
|
# Currently can only check JS.
|
||||||
|
#
|
||||||
|
name: "CodeQL"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '28 22 * * 5'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
analyze:
|
||||||
|
name: Analyze
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
language: [ 'javascript' ]
|
||||||
|
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||||
|
# Learn more:
|
||||||
|
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
with:
|
||||||
|
languages: ${{ matrix.language }}
|
||||||
|
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||||
|
# By default, queries listed here will override any specified in a config file.
|
||||||
|
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||||
|
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
35
.github/workflows/shiftleft-analysis.yml
vendored
Normal file
35
.github/workflows/shiftleft-analysis.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
# This workflow integrates Scan with GitHub's code scanning feature
|
||||||
|
# Scan is a free open-source security tool for modern DevOps teams from ShiftLeft
|
||||||
|
# Visit https://slscan.io/en/latest/integrations/code-scan for help
|
||||||
|
name: SL Scan
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '16 22 * * 4'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Scan-Build:
|
||||||
|
# Scan runs on ubuntu, mac and windows
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
# potentially add composer install steo here
|
||||||
|
- name: Perform Scan
|
||||||
|
uses: ShiftLeftSecurity/scan-action@master
|
||||||
|
env:
|
||||||
|
WORKSPACE: ""
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
SCAN_AUTO_BUILD: true
|
||||||
|
with:
|
||||||
|
output: reports
|
||||||
|
# Scan auto-detects the languages.
|
||||||
|
|
||||||
|
- name: Upload report
|
||||||
|
uses: github/codeql-action/upload-sarif@v1
|
||||||
|
with:
|
||||||
|
sarif_file: reports
|
||||||
54
.github/workflows/tests.yml
vendored
Normal file
54
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
name: Tests
|
||||||
|
on: [push]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
Composer:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Validate composer.json and composer.lock
|
||||||
|
run: composer validate
|
||||||
|
- name: Install dependencies
|
||||||
|
run: composer install --prefer-dist --no-dev
|
||||||
|
PHPunit:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
|
||||||
|
name: PHP ${{ matrix.php-versions }} unit tests on ${{ matrix.operating-system }}
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup PHP
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: ${{ matrix.php-versions }}
|
||||||
|
extensions: gd, sqlite3
|
||||||
|
- name: Remove composer lock
|
||||||
|
run: rm composer.lock
|
||||||
|
- name: Setup PHPunit
|
||||||
|
run: composer install -n
|
||||||
|
- name: Install Google Cloud Storage
|
||||||
|
run: composer require google/cloud-storage
|
||||||
|
- name: Run unit tests
|
||||||
|
run: ../vendor/bin/phpunit --no-coverage
|
||||||
|
working-directory: tst
|
||||||
|
Mocha:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: Setup Node
|
||||||
|
uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: '12'
|
||||||
|
- name: Setup Mocha
|
||||||
|
run: npm install -g mocha
|
||||||
|
- name: Setup Node modules
|
||||||
|
run: npm install
|
||||||
|
working-directory: js
|
||||||
|
- name: Run unit tests
|
||||||
|
run: mocha
|
||||||
|
working-directory: js
|
||||||
|
|
||||||
8
.gitignore
vendored
8
.gitignore
vendored
@@ -6,16 +6,12 @@ cfg/*
|
|||||||
!cfg/.htaccess
|
!cfg/.htaccess
|
||||||
|
|
||||||
# Ignore data/
|
# Ignore data/
|
||||||
data/
|
/data/
|
||||||
|
|
||||||
# Ignore PhpDoc
|
# Ignore PhpDoc
|
||||||
doc/*
|
doc/*
|
||||||
!doc/*.md
|
!doc/*.md
|
||||||
|
|
||||||
# Ignore developers composer status so it isn't accidentally checked in,
|
|
||||||
# see https://github.com/PrivateBin/PrivateBin/issues/84
|
|
||||||
composer.lock
|
|
||||||
|
|
||||||
# Ignore vendor dir of Composer except PHP files
|
# Ignore vendor dir of Composer except PHP files
|
||||||
vendor/*.*
|
vendor/*.*
|
||||||
vendor/*/*.*
|
vendor/*/*.*
|
||||||
@@ -40,3 +36,5 @@ tst/ConfigurationCombinationsTest.php
|
|||||||
.project
|
.project
|
||||||
.externalToolBuilders
|
.externalToolBuilders
|
||||||
.c9
|
.c9
|
||||||
|
/.idea/
|
||||||
|
*.iml
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
RewriteEngine on
|
RewriteEngine on
|
||||||
|
RewriteCond !%{HTTP_USER_AGENT} "Let's Encrypt validation server" [NC]
|
||||||
RewriteCond %{HTTP_USER_AGENT} ^.*(bot|spider|crawl|https?://|WhatsApp|SkypeUriPreview|facebookexternalhit) [NC]
|
RewriteCond %{HTTP_USER_AGENT} ^.*(bot|spider|crawl|https?://|WhatsApp|SkypeUriPreview|facebookexternalhit) [NC]
|
||||||
RewriteRule .* - [R=403,L]
|
RewriteRule .* - [R=403,L]
|
||||||
|
|
||||||
|
<IfModule mod_php7.c>
|
||||||
|
php_value max_execution_time 30
|
||||||
|
php_value post_max_size 10M
|
||||||
|
php_value upload_max_size 10M
|
||||||
|
php_value upload_max_filesize 10M
|
||||||
|
php_value max_file_uploads 100
|
||||||
|
</IfModule>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"bitwise": true,
|
"bitwise": true,
|
||||||
"curly": true,
|
"curly": true,
|
||||||
"eqeqeq": true,
|
"eqeqeq": true,
|
||||||
"esversion": 5,
|
"esversion": 6,
|
||||||
"forin": true,
|
"forin": true,
|
||||||
"freeze": true,
|
"freeze": true,
|
||||||
"futurehostile": true,
|
"futurehostile": true,
|
||||||
@@ -39,7 +39,6 @@
|
|||||||
"window": true
|
"window": true
|
||||||
},
|
},
|
||||||
"globals": {
|
"globals": {
|
||||||
"sjcl": true,
|
|
||||||
"DOMPurify": true,
|
"DOMPurify": true,
|
||||||
"kjua": true
|
"kjua": true
|
||||||
}
|
}
|
||||||
|
|||||||
36
.scrutinizer.yml
Normal file
36
.scrutinizer.yml
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
checks:
|
||||||
|
php: true
|
||||||
|
javascript: true
|
||||||
|
filter:
|
||||||
|
paths:
|
||||||
|
- "css/privatebin.css"
|
||||||
|
- "css/bootstrap/privatebin.css"
|
||||||
|
- "js/privatebin.js"
|
||||||
|
- "lib/*.php"
|
||||||
|
- "index.php"
|
||||||
|
coding_style:
|
||||||
|
php:
|
||||||
|
spaces:
|
||||||
|
around_operators:
|
||||||
|
additive: false
|
||||||
|
concatenation: true
|
||||||
|
build:
|
||||||
|
environment:
|
||||||
|
php:
|
||||||
|
version: '7.2'
|
||||||
|
tests:
|
||||||
|
override:
|
||||||
|
-
|
||||||
|
command: 'composer require google/cloud-storage && cd tst && ../vendor/bin/phpunit'
|
||||||
|
coverage:
|
||||||
|
file: 'tst/log/coverage-clover.xml'
|
||||||
|
format: 'clover'
|
||||||
|
nodes:
|
||||||
|
tests: true
|
||||||
|
analysis:
|
||||||
|
tests:
|
||||||
|
override:
|
||||||
|
-
|
||||||
|
command: phpcs-run
|
||||||
|
use_website_config: true
|
||||||
|
- php-scrutinizer-run
|
||||||
@@ -17,8 +17,9 @@ disabled:
|
|||||||
- concat_without_spaces
|
- concat_without_spaces
|
||||||
- declare_equal_normalize
|
- declare_equal_normalize
|
||||||
- heredoc_to_nowdoc
|
- heredoc_to_nowdoc
|
||||||
- method_argument_space
|
- method_argument_space_strict
|
||||||
- new_with_braces
|
- new_with_braces
|
||||||
|
- no_alternative_syntax
|
||||||
- phpdoc_align
|
- phpdoc_align
|
||||||
- phpdoc_no_access
|
- phpdoc_no_access
|
||||||
- phpdoc_separation
|
- phpdoc_separation
|
||||||
|
|||||||
35
.travis.yml
35
.travis.yml
@@ -1,35 +0,0 @@
|
|||||||
language: php
|
|
||||||
sudo: false
|
|
||||||
php:
|
|
||||||
- '5.4'
|
|
||||||
- '5.5'
|
|
||||||
- '5.6'
|
|
||||||
- '7.0'
|
|
||||||
- '7.1'
|
|
||||||
- '7.2'
|
|
||||||
|
|
||||||
# as this is a php project, node.js v4 (for JS unit testing) isn't installed
|
|
||||||
install:
|
|
||||||
- if [ ! -d "$HOME/.nvm" ]; then mkdir -p $HOME/.nvm && curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | NVM_METHOD=script bash; fi
|
|
||||||
- source ~/.nvm/nvm.sh && nvm install 4
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- composer install -n
|
|
||||||
- npm install -g mocha
|
|
||||||
- cd js && npm install jsverify jsdom@9 jsdom-global@2 mime-types
|
|
||||||
|
|
||||||
script:
|
|
||||||
- mocha
|
|
||||||
- cd ../tst && ../vendor/bin/phpunit
|
|
||||||
|
|
||||||
after_script:
|
|
||||||
- ../vendor/bin/test-reporter --coverage-report log/coverage-clover.xml
|
|
||||||
- cd .. && vendor/bin/codacycoverage clover tst/log/coverage-clover.xml
|
|
||||||
|
|
||||||
cache:
|
|
||||||
directories:
|
|
||||||
- $HOME/.composer/cache/files
|
|
||||||
- $HOME/.composer/cache/vcs
|
|
||||||
- $HOME/.nvm
|
|
||||||
- $HOME/.npm
|
|
||||||
- js/node_modules
|
|
||||||
11
BADGES.md
Normal file
11
BADGES.md
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# Badges
|
||||||
|
|
||||||
|
[](https://travis-ci.org/PrivateBin/PrivateBin) [](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/build-status/master)
|
||||||
|
[](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
||||||
|
[](https://codeclimate.com/github/PrivateBin/PrivateBin)
|
||||||
|
[](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
||||||
|
[](https://insight.sensiolabs.com/projects/57c9e74e-c6f9-4de6-a876-df66ec2ea1ff)
|
||||||
|
[](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
||||||
|
[](https://codeclimate.com/github/PrivateBin/PrivateBin/coverage) [](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
||||||
|
|
||||||
|
[](https://www.browserstack.com/)
|
||||||
89
CHANGELOG.md
89
CHANGELOG.md
@@ -1,6 +1,93 @@
|
|||||||
# PrivateBin version history
|
# PrivateBin version history
|
||||||
|
|
||||||
* **1.3 (not yet released)**
|
* **1.4 (not yet released)**
|
||||||
|
* ADDED: Translation for Estonian
|
||||||
|
* ADDED: new HTTP headers improving security (#765)
|
||||||
|
* ADDED: Download button for paste text (#774)
|
||||||
|
* ADDED: Opt-out of federated learning of cohorts (FLoC) (#776)
|
||||||
|
* ADDED: Configuration option to exempt IPs from the rate-limiter (#787)
|
||||||
|
* ADDED: Google Cloud Storage backend support (#795)
|
||||||
|
* CHANGED: Language selection cookie only transmitted over HTTPS (#472)
|
||||||
|
* CHANGED: Upgrading libraries to: random_compat 2.0.20
|
||||||
|
* **1.3.5 (2021-04-05)**
|
||||||
|
* ADDED: Translation for Hebrew, Lithuanian, Indonesian and Catalan
|
||||||
|
* ADDED: Make the project info configurable (#681)
|
||||||
|
* CHANGED: Upgrading libraries to: DOMpurify 2.2.7, kjua 0.9.0 & random_compat 2.0.18
|
||||||
|
* CHANGED: Open all links in new window (#630)
|
||||||
|
* FIXED: PDF display in Firefox (#630)
|
||||||
|
* FIXED: Allow pasting into password input dialog (#630)
|
||||||
|
* FIXED: Display of expiration date in email (#630)
|
||||||
|
* FIXED: Allow display of durations in weeks (#630)
|
||||||
|
* FIXED: Avoid exposing burn-after-reading messages from cache (#630)
|
||||||
|
* FIXED: Only display the dropzone when it should (#630)
|
||||||
|
* FIXED: Detect delete token properly (#630)
|
||||||
|
* FIXED: Sanitize output from `Helper.urls2links()` (#630)
|
||||||
|
* FIXED: Avoid recreation of existing pasteurl element when calling URL shortener (#630)
|
||||||
|
* FIXED: Downloads in Chrome >= 83 (#634)
|
||||||
|
* FIXED: Display of empty files (#663)
|
||||||
|
* FIXED: Improve OpenGraph attributes (#651)
|
||||||
|
* FIXED: Reset to configured burn-after-reading, discussion and expiration settings (#682)
|
||||||
|
* FIXED: Italic segment of project information (#756)
|
||||||
|
* **1.3.4 (2020-03-22)**
|
||||||
|
* CHANGED: Minimum required PHP version is 5.6, due to a change in the identicon library and to use php's native hash_equals()
|
||||||
|
* CHANGED: Upgrading libraries to: identicon 2.0.0
|
||||||
|
* FIXED: Support custom expiration options in email function (#586)
|
||||||
|
* FIXED: Regression with encoding of HTML entities (#588)
|
||||||
|
* FIXED: Unable to paste password on paste with attachment (#565 & #595)
|
||||||
|
* **1.3.3 (2020-02-16)**
|
||||||
|
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
||||||
|
* CHANGED: Several translations got updated with missing messages
|
||||||
|
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
||||||
|
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
||||||
|
* **1.2.3 (2020-02-16)**
|
||||||
|
* CHANGED: Upgrading libraries to: DOMpurify 2.0.8
|
||||||
|
* CHANGED: Introduce HTML entity encoding on server side (#581)
|
||||||
|
* FIXED: HTML entity double encoding issues introduced in 1.3.2 (#560)
|
||||||
|
* **1.3.2 (2020-01-11)**
|
||||||
|
* ADDED: Translation for Ukrainian (#533)
|
||||||
|
* ADDED: Option to send a mail with the link, when creating a paste (#398)
|
||||||
|
* ADDED: Add support for CONFIG_PATH environment variable (#552)
|
||||||
|
* CHANGED: Upgrading libraries to: base-x 3.0.7, DOMpurify 2.0.7 & Showdown 1.9.1
|
||||||
|
* FIXED: HTML injection via unescaped attachment filename (#554)
|
||||||
|
* FIXED: Password disabling option (#527)
|
||||||
|
* **1.2.2 (2020-01-11)**
|
||||||
|
* CHANGED: Upgrading libraries to: bootstrap 3.4.1, DOMpurify 2.0.7, jQuery 3.4.1, kjua 0.6.0, Showdown 1.9.1 & SJCL 1.0.8
|
||||||
|
* FIXED: HTML injection via unescaped attachment filename (#554)
|
||||||
|
* **1.3.1 (2019-09-22)**
|
||||||
|
* ADDED: Translation for Bulgarian (#455)
|
||||||
|
* CHANGED: Improved mobile UI - obscured send button and hard to click shortener button (#477)
|
||||||
|
* CHANGED: Enhanced URL shortener integration (#479)
|
||||||
|
* CHANGED: Improved file upload drag & drop UI (#317)
|
||||||
|
* CHANGED: Increased default size limit from 2 to 10 MiB, switch data from BLOB to MEDIUMBLOB in MySQL (#458)
|
||||||
|
* CHANGED: Upgrading libraries to: DOMpurify 2.0.1
|
||||||
|
* FIXED: Enabling browsers without WASM to create pastes and read uncompressed ones (#454)
|
||||||
|
* FIXED: Cloning related issues (#489, #491, #493, #494)
|
||||||
|
* FIXED: Enable file operation only when editing (#497)
|
||||||
|
* FIXED: Clicking 'New' on a previously submitted paste does not blank address bar (#354)
|
||||||
|
* FIXED: Clear address bar when create new paste from existing paste (#479)
|
||||||
|
* FIXED: Discussion section not hiding when new/clone paste is clicked on (#484)
|
||||||
|
* FIXED: Showdown.js error when posting svg qrcode (#485)
|
||||||
|
* FIXED: Failed to handle the case where user cancelled attachment selection properly (#487)
|
||||||
|
* FIXED: Displaying the appropriate errors in older browsers (#508)
|
||||||
|
* **1.3 (2019-07-09)**
|
||||||
|
* ADDED: Translation for Czech (#424)
|
||||||
|
* ADDED: Threat modeled the application (#177)
|
||||||
|
* ADDED: Made compression configurable (#38)
|
||||||
|
* CHANGED: Minimum required PHP version is 5.5, due to a change in the identicon library
|
||||||
|
* CHANGED: Minimum required browser versions are Firefox 54, Chrome 57, Opera 44, Safari 11, Edge 16, due to use of WebCrypto API, async/await, ES6 & WebAssembly features - all Internet Explorer versions are incompatible
|
||||||
|
* CHANGED: JSON and encryption formats were changed to replace SJCL library by browser integrated WebCrypto API (#28, #74)
|
||||||
|
* CHANGED: Replaced rawdeflate.js with zlib.wasm to resolve decompression failures and gain compatibility with standard deflate implementations (#193, #260, #328, #434, #440)
|
||||||
|
* CHANGED: Increase PBKDF2 iterations to 100k (#350)
|
||||||
|
* CHANGED: Replaced last use of MD5 with Fowler–Noll–Vo checksum which produces the exact length we need for the paste ID (#49)
|
||||||
|
* CHANGED: Simplified some PHP code & renamed PrivateBin class into Controller, to make MVC pattern use more obvious (#342)
|
||||||
|
* CHANGED: Upgrading libraries to: identicon 1.2.0, random_compat 2.0.18, jQuery 3.4.1, Showdown 1.9.0, DOMpurify 1.0.11 & kjua 0.6.0
|
||||||
|
* FIXED: Prevent Chrome from sending content of paste to Google for translation (#378)
|
||||||
|
* FIXED: To support attachments larger then 2 MiB in newer Chrome versions, we switched to blob instead of data URIs (#432)
|
||||||
|
* FIXED: Since Outlook strips trailing equal signs in links, the key in URL hash is now base58 encoded, instead of base64 (#377)
|
||||||
|
* FIXED: Facebooks started injecting parameters into shared URLs for tracking that lead to inaccessible pastes (#396)
|
||||||
|
* FIXED: Properly escaped HTML in raw text mode (#358)
|
||||||
|
* FIXED: Made download links better readable in the dark bootstrap theme (#364)
|
||||||
|
* FIXED: Allow Letsencrypt bot to access on apache servers (#413)
|
||||||
* **1.2.1 (2018-08-11)**
|
* **1.2.1 (2018-08-11)**
|
||||||
* ADDED: Add support for mega.nz links in pastes and comments (#331)
|
* ADDED: Add support for mega.nz links in pastes and comments (#331)
|
||||||
* CHANGED: Added some missing Russian translations (#348)
|
* CHANGED: Added some missing Russian translations (#348)
|
||||||
|
|||||||
9
CODE_OF_CONDUCT.md
Normal file
9
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# Netiquette
|
||||||
|
|
||||||
|
As suggested by the current project hoster, we are hereby referring to
|
||||||
|
[RFC 1855](https://tools.ietf.org/html/rfc1855) as a minimum set of guidelines
|
||||||
|
of Network Etiquette for individuals interacting on this project.
|
||||||
|
|
||||||
|
The maintainers of this project reserve the right to remove unlawful or
|
||||||
|
disrupting content and block users that repeatedly disturb the project at their
|
||||||
|
discretion.
|
||||||
18
CREDITS.md
18
CREDITS.md
@@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
Simon Rupf - current developer and maintainer
|
Simon Rupf - current developer and maintainer
|
||||||
rugk - security review, doc improvment, JS refactoring & various other stuff
|
rugk - security review, doc improvment, JS refactoring & various other stuff
|
||||||
|
R4SAS - python client, compression, blob URI to support larger attachments
|
||||||
|
|
||||||
## Past contributions
|
## Past contributions
|
||||||
|
|
||||||
@@ -12,7 +13,7 @@ Sébastien Sauvage - original idea and main developer
|
|||||||
* Alexey Gladkov - syntax highlighting
|
* Alexey Gladkov - syntax highlighting
|
||||||
* Greg Knaddison - robots.txt
|
* Greg Knaddison - robots.txt
|
||||||
* MrKooky - HTML5 markup, CSS cleanup
|
* MrKooky - HTML5 markup, CSS cleanup
|
||||||
* Simon Rupf - MVC refactoring, configuration, i18n and unit tests
|
* Simon Rupf - WebCrypto, unit tests, containers images, database backend, MVC, configuration, i18n
|
||||||
* Hexalyse - Password protection
|
* Hexalyse - Password protection
|
||||||
* Viktor Stanchev - File upload support
|
* Viktor Stanchev - File upload support
|
||||||
* azlux - Tab character input support
|
* azlux - Tab character input support
|
||||||
@@ -21,8 +22,13 @@ Sébastien Sauvage - original idea and main developer
|
|||||||
* Sobak - PSR-4 and PSR-2 refactoring
|
* Sobak - PSR-4 and PSR-2 refactoring
|
||||||
* Nathaniel Olsen - jQuery upgrade
|
* Nathaniel Olsen - jQuery upgrade
|
||||||
* Alexander Demenshin - modal password dialog
|
* Alexander Demenshin - modal password dialog
|
||||||
* PunKeel - Dockerfile
|
* PunKeel - first docker container
|
||||||
* thororm - Display of video, audio & PDF, drag & drop, preview of attachments
|
* thororm - Display of video, audio & PDF, drag & drop, preview of attachments
|
||||||
|
* Harald Leithner - base58 encoding of key
|
||||||
|
* Haocen - lots of bugfixes and UI improvements
|
||||||
|
* Lucas Savva - configurable config file location, NixOS packaging
|
||||||
|
* rodehoed - option to exempt ips from the rate-limiter
|
||||||
|
* Mark van Holsteijn - Google Cloud Storage backend
|
||||||
|
|
||||||
## Translations
|
## Translations
|
||||||
* Hexalyse - French
|
* Hexalyse - French
|
||||||
@@ -39,3 +45,11 @@ Sébastien Sauvage - original idea and main developer
|
|||||||
* Tulio Leao - Portuguese
|
* Tulio Leao - Portuguese
|
||||||
* Michael van Schaik - Dutch
|
* Michael van Schaik - Dutch
|
||||||
* Péter Tabajdi - Hungarian
|
* Péter Tabajdi - Hungarian
|
||||||
|
* info-path - Czech
|
||||||
|
* BigWax - Bulgarian
|
||||||
|
* AndriiZ - Ukrainian
|
||||||
|
* Yaron Shahrabani - Hebrew
|
||||||
|
* Moo - Lithuanian
|
||||||
|
* whenwesober - Indonesian
|
||||||
|
* retiolus - Catalan
|
||||||
|
* sarnane - Estonian
|
||||||
|
|||||||
26
Dockerfile
26
Dockerfile
@@ -1,26 +0,0 @@
|
|||||||
FROM php:apache
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
libfreetype6-dev \
|
|
||||||
libjpeg62-turbo-dev \
|
|
||||||
libpng-dev \
|
|
||||||
wget \
|
|
||||||
zip \
|
|
||||||
unzip && \
|
|
||||||
# We install and enable php-gd
|
|
||||||
docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ &&\
|
|
||||||
docker-php-ext-install -j$(nproc) gd && \
|
|
||||||
# We enable Apache's mod_rewrite
|
|
||||||
a2enmod rewrite
|
|
||||||
|
|
||||||
|
|
||||||
# Copy app content
|
|
||||||
COPY . /var/www/html
|
|
||||||
|
|
||||||
# Copy start script
|
|
||||||
RUN mv /var/www/html/docker/entrypoint.sh / && \
|
|
||||||
rm -r /var/www/html/docker
|
|
||||||
|
|
||||||
VOLUME /var/www/html/data
|
|
||||||
|
|
||||||
CMD /entrypoint.sh
|
|
||||||
67
INSTALL.md
67
INSTALL.md
@@ -9,21 +9,21 @@ options](#configuration) to adjust as you see fit.
|
|||||||
|
|
||||||
**NOTE:** See [our FAQ](https://github.com/PrivateBin/PrivateBin/wiki/FAQ#how-can-i-securely-clonedownload-your-project) for information how to securely download the PrivateBin release files.
|
**NOTE:** See [our FAQ](https://github.com/PrivateBin/PrivateBin/wiki/FAQ#how-can-i-securely-clonedownload-your-project) for information how to securely download the PrivateBin release files.
|
||||||
|
|
||||||
|
**NOTE:** There is a [ansible](https://ansible.com) role by @e1mo available to install and configure PrivateBin on your server. It's available on [ansible galaxy](https://galaxy.ansible.com/e1mo/privatebin) ([source code](https://git.sr.ht/~e1mo/ansible-role-privatebin)).
|
||||||
|
|
||||||
### Minimal requirements
|
### Minimal requirements
|
||||||
|
|
||||||
- PHP version 5.4 or above
|
- PHP version 7.0 or above
|
||||||
- _one_ of the following sources of cryptographically safe randomness is required:
|
- Or PHP version 5.6 AND _one_ of the following sources of cryptographically safe randomness:
|
||||||
- PHP 7 or higher
|
|
||||||
- [Libsodium](https://download.libsodium.org/libsodium/content/installation/) and it's [PHP extension](https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsodium)
|
- [Libsodium](https://download.libsodium.org/libsodium/content/installation/) and it's [PHP extension](https://paragonie.com/book/pecl-libsodium/read/00-intro.md#installing-libsodium)
|
||||||
- open_basedir access to `/dev/urandom`
|
- open_basedir access to `/dev/urandom`
|
||||||
- mcrypt extension
|
- mcrypt extension (mcrypt needs to be able to access `/dev/urandom`. This means if `open_basedir` is set, it must include this file.)
|
||||||
- com_dotnet extension
|
- com_dotnet extension
|
||||||
|
|
||||||
Mcrypt needs to be able to access `/dev/urandom`. This means if `open_basedir` is set, it must include this file.
|
|
||||||
- GD extension
|
- GD extension
|
||||||
- some disk space or (optionally) a database supported by [PDO](https://secure.php.net/manual/book.pdo.php)
|
- zlib extension
|
||||||
|
- some disk space or (optionally) a database supported by [PDO](https://php.net/manual/book.pdo.php)
|
||||||
- ability to create files and folders in the installation directory and the PATH defined in index.php
|
- ability to create files and folders in the installation directory and the PATH defined in index.php
|
||||||
- A web browser with javascript support
|
- A web browser with JavaScript support
|
||||||
|
|
||||||
## Hardening and security
|
## Hardening and security
|
||||||
|
|
||||||
@@ -50,10 +50,31 @@ process (see also
|
|||||||
> PrivateBin will look for your includes / data here:
|
> PrivateBin will look for your includes / data here:
|
||||||
> /home/example.com/secret/privatebin
|
> /home/example.com/secret/privatebin
|
||||||
|
|
||||||
|
### Changing the config path only
|
||||||
|
|
||||||
|
In situations where you want to keep the PrivateBin static files separate from the
|
||||||
|
rest of your data, or you want to reuse the installation files on multiple vhosts,
|
||||||
|
you may only want to change the `conf.php`. In this instance, you can set the
|
||||||
|
`CONFIG_PATH` environment variable to the absolute path to the `conf.php` file.
|
||||||
|
This can be done in your web server's virtual host config, the PHP config, or in
|
||||||
|
the index.php if you choose to customize it.
|
||||||
|
|
||||||
|
Note that your PHP process will need read access to the config wherever it may be.
|
||||||
|
|
||||||
|
> #### CONFIG_PATH example
|
||||||
|
> Setting the value in an Apache Vhost:
|
||||||
|
> SetEnv CONFIG_PATH /var/lib/privatebin/conf.php
|
||||||
|
>
|
||||||
|
> In a php-fpm pool config:
|
||||||
|
> env[CONFIG_PATH] = /var/lib/privatebin/conf.php
|
||||||
|
>
|
||||||
|
> In the index.php, near the top:
|
||||||
|
> putenv('CONFIG_PATH=/var/lib/privatebin/conf.php');
|
||||||
|
|
||||||
### Transport security
|
### Transport security
|
||||||
|
|
||||||
When setting up PrivateBin, also set up HTTPS, if you haven't already. Without HTTPS
|
When setting up PrivateBin, also set up HTTPS, if you haven't already. Without HTTPS
|
||||||
PrivateBin is not secure, as the javascript files could be manipulated during transmission.
|
PrivateBin is not secure, as the JavaScript files could be manipulated during transmission.
|
||||||
For more information on this, see our [FAQ entry on HTTPS setup](https://github.com/PrivateBin/PrivateBin/wiki/FAQ#how-should-i-setup-https).
|
For more information on this, see our [FAQ entry on HTTPS setup](https://github.com/PrivateBin/PrivateBin/wiki/FAQ#how-should-i-setup-https).
|
||||||
|
|
||||||
### File-level permissions
|
### File-level permissions
|
||||||
@@ -66,8 +87,9 @@ See [this FAQ item](https://github.com/PrivateBin/PrivateBin/wiki/FAQ#what-are-t
|
|||||||
|
|
||||||
In the file `cfg/conf.php` you can configure PrivateBin. A `cfg/conf.sample.php`
|
In the file `cfg/conf.php` you can configure PrivateBin. A `cfg/conf.sample.php`
|
||||||
is provided containing all options and default values. You can copy it to
|
is provided containing all options and default values. You can copy it to
|
||||||
`cfg/conf.php` and adapt it as needed. The config file is divided into multiple
|
`cfg/conf.php` and adapt it as needed. Alternatively you can copy it anywhere and
|
||||||
sections, which are enclosed in square brackets.
|
set the `CONFIG_PATH` environment variable (see above notes). The config file is
|
||||||
|
divided into multiple sections, which are enclosed in square brackets.
|
||||||
|
|
||||||
In the `[main]` section you can enable or disable the discussion feature, set
|
In the `[main]` section you can enable or disable the discussion feature, set
|
||||||
the limit of stored pastes and comments in bytes. The `[traffic]` section lets
|
the limit of stored pastes and comments in bytes. The `[traffic]` section lets
|
||||||
@@ -139,7 +161,7 @@ For reference or if you want to create the table schema for yourself to avoid ha
|
|||||||
```sql
|
```sql
|
||||||
CREATE TABLE prefix_paste (
|
CREATE TABLE prefix_paste (
|
||||||
dataid CHAR(16) NOT NULL,
|
dataid CHAR(16) NOT NULL,
|
||||||
data BLOB,
|
data MEDIUMBLOB,
|
||||||
postdate INT,
|
postdate INT,
|
||||||
expiredate INT,
|
expiredate INT,
|
||||||
opendiscussion INT,
|
opendiscussion INT,
|
||||||
@@ -165,7 +187,24 @@ CREATE INDEX parent ON prefix_comment(pasteid);
|
|||||||
CREATE TABLE prefix_config (
|
CREATE TABLE prefix_config (
|
||||||
id CHAR(16) NOT NULL, value TEXT, PRIMARY KEY (id)
|
id CHAR(16) NOT NULL, value TEXT, PRIMARY KEY (id)
|
||||||
);
|
);
|
||||||
INSERT INTO prefix_config VALUES('VERSION', '1.2.1');
|
INSERT INTO prefix_config VALUES('VERSION', '1.3.5');
|
||||||
```
|
```
|
||||||
|
|
||||||
In **PostgreSQL**, the data, attachment, nickname and vizhash columns needs to be TEXT and not BLOB or MEDIUMBLOB.
|
In **PostgreSQL**, the data, attachment, nickname and vizhash columns needs to
|
||||||
|
be TEXT and not BLOB or MEDIUMBLOB.
|
||||||
|
|
||||||
|
### Using Google Cloud Storage
|
||||||
|
If you want to deploy PrivateBin in a serverless manner in the Google Cloud, you
|
||||||
|
can choose the `GoogleCloudStorage` as backend. To use this backend, you create
|
||||||
|
a GCS bucket and specify the name as the model option `bucket`. Alternatively,
|
||||||
|
you can set the name through the environment variable PASTEBIN_GCS_BUCKET.
|
||||||
|
|
||||||
|
The default prefix for pastes stored in the bucket is `pastes`. To change the
|
||||||
|
prefix, specify the option `prefix`.
|
||||||
|
|
||||||
|
Google Cloud Storage buckets may be significantly slower than a `FileSystem` or
|
||||||
|
`Database` backend. The big advantage is that the deployment on Google Cloud
|
||||||
|
Platform using Google Cloud Run is easy and cheap.
|
||||||
|
|
||||||
|
To use the Google Cloud Storage backend you have to install the suggested
|
||||||
|
library using the command `composer require google/cloud-storage`.
|
||||||
|
|||||||
174
LICENSE.md
174
LICENSE.md
@@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
PrivateBin consists of PHP and JS code which was originally written by Sébastien
|
PrivateBin consists of PHP and JS code which was originally written by Sébastien
|
||||||
Sauvage in 2012 and falls unter the Zlib/libpng license. Also included are
|
Sauvage in 2012 and falls unter the Zlib/libpng license. Also included are
|
||||||
libraries that fall under the GPLv2 (SJCL, rawinflate, rawdeflate), BSD
|
libraries that fall under the GPLv2 (rawinflate), BSD 3-clause (Showdown), MIT
|
||||||
2-clause (SJCL), BSD 3-clause (base64.js version 2.1.9, Showdown), MIT
|
(base64.js version 1.7, Bootstrap, Identicon, random_compat, composer, kjua,
|
||||||
(base64.js version 1.7, Bootstrap, Identicon, random_compat), Apache
|
base-x), Apache (prettify.js) and CC-BY (favicon, icon, logo) licenses. All of
|
||||||
(prettify.js) and CC-BY (favicon, icon, logo) licenses. All of these license
|
these license terms can be found here below:
|
||||||
terms can be found here below:
|
|
||||||
|
|
||||||
## Zlib/libpng license for PrivateBin
|
## Zlib/libpng license for PrivateBin and zlib
|
||||||
|
|
||||||
Copyright © 2012 Sébastien Sauvage
|
Copyright © 2012 Sébastien Sauvage
|
||||||
|
Copyright © 1995-2017 Jean-loup Gailly and Mark Adler
|
||||||
|
|
||||||
This software is provided 'as-is', without any express or implied warranty. In
|
This software is provided 'as-is', without any express or implied warranty. In
|
||||||
no event will the authors be held liable for any damages arising from the use
|
no event will the authors be held liable for any damages arising from the use
|
||||||
@@ -30,17 +30,7 @@ the following restrictions:
|
|||||||
|
|
||||||
3. This notice may not be removed or altered from any source distribution.
|
3. This notice may not be removed or altered from any source distribution.
|
||||||
|
|
||||||
### MIT license for kjua
|
## GNU General Public License, version 2.0, for rawinflate
|
||||||
|
|
||||||
Copyright (c) 2016 Lars Jung (https://larsjung.de)
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
||||||
|
|
||||||
## GNU General Public License, version 2.0, for SJCL, rawdeflate and rawinflate
|
|
||||||
|
|
||||||
_Version 2, June 1991_
|
_Version 2, June 1991_
|
||||||
_Copyright © 1989, 1991 Free Software Foundation, Inc.,_
|
_Copyright © 1989, 1991 Free Software Foundation, Inc.,_
|
||||||
@@ -317,31 +307,6 @@ POSSIBILITY OF SUCH DAMAGES.
|
|||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
## BSD 2-Clause License for SJCL
|
|
||||||
|
|
||||||
_Copyright © 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at Stanford University._
|
|
||||||
_All rights reserved._
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
1. Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
|
|
||||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
|
||||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
||||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
||||||
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
||||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
||||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
## BSD 3-Clause License for Showdown
|
## BSD 3-Clause License for Showdown
|
||||||
|
|
||||||
Showdown Copyright © 2007, John Fraser
|
Showdown Copyright © 2007, John Fraser
|
||||||
@@ -377,61 +342,16 @@ any theory of liability, whether in contract, strict liability, or tort
|
|||||||
(including negligence or otherwise) arising in any way out of the use of this
|
(including negligence or otherwise) arising in any way out of the use of this
|
||||||
software, even if advised of the possibility of such damage.
|
software, even if advised of the possibility of such damage.
|
||||||
|
|
||||||
## BSD 3-Clause License for base64.js version 2.1.9
|
## MIT License for base64.js version 1.7, Bootstrap, Identicon, random_compat, Composer, kjua and base-x
|
||||||
|
|
||||||
Copyright © 2014, Dan Kogai
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
|
||||||
modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this
|
|
||||||
list of conditions and the following disclaimer.
|
|
||||||
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice,
|
|
||||||
this list of conditions and the following disclaimer in the documentation
|
|
||||||
and/or other materials provided with the distribution.
|
|
||||||
|
|
||||||
* Neither the name of base64.js nor the names of its contributors may be used
|
|
||||||
to endorse or promote products derived from this software without specific
|
|
||||||
prior written permission.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
||||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
||||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
||||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
||||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
||||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
||||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
|
|
||||||
## MIT License for base64.js version 1.7
|
|
||||||
|
|
||||||
Copyright © 2012 Dan Kogai
|
Copyright © 2012 Dan Kogai
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in
|
|
||||||
all copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
## MIT License for Bootstrap
|
|
||||||
|
|
||||||
Copyright © 2011-2016 Twitter, Inc.
|
Copyright © 2011-2016 Twitter, Inc.
|
||||||
|
Copyright © 2013 Benjamin Laugueux <benjamin@yzalis.com>
|
||||||
|
Copyright © 2015 Paragon Initiative Enterprises
|
||||||
|
Copyright © 2016 Nils Adermann, Jordi Boggiano
|
||||||
|
Copyright © 2016 Lars Jung (https://larsjung.de)
|
||||||
|
Copyright © 2018 base-x contributors
|
||||||
|
Copyright © 2014-2018 The Bitcoin Core developers
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -451,72 +371,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
||||||
## MIT License for Identicon
|
|
||||||
|
|
||||||
Copyright © 2013 Benjamin Laugueux <benjamin@yzalis.com>
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
|
||||||
to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
## MIT License for random_compat
|
|
||||||
|
|
||||||
Copyright © 2015 Paragon Initiative Enterprises
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
|
|
||||||
## MIT license for Composer
|
|
||||||
|
|
||||||
Copyright (c) 2016 Nils Adermann, Jordi Boggiano
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is furnished
|
|
||||||
to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
THE SOFTWARE.
|
|
||||||
|
|
||||||
## Apache License for prettify.js
|
## Apache License for prettify.js
|
||||||
|
|
||||||
_Version 2.0, January 2004_
|
_Version 2.0, January 2004_
|
||||||
|
|||||||
56
Makefile
Normal file
56
Makefile
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
.PHONY: all coverage coverage-js coverage-php doc doc-js doc-php increment sign test test-js test-php help
|
||||||
|
|
||||||
|
CURRENT_VERSION = 1.3.5
|
||||||
|
VERSION ?= 1.3.6
|
||||||
|
VERSION_FILES = index.php cfg/ *.md css/ i18n/ img/ js/privatebin.js lib/ Makefile tpl/ tst/
|
||||||
|
REGEX_CURRENT_VERSION := $(shell echo $(CURRENT_VERSION) | sed "s/\./\\\./g")
|
||||||
|
REGEX_VERSION := $(shell echo $(VERSION) | sed "s/\./\\\./g")
|
||||||
|
|
||||||
|
all: coverage doc ## Equivalent to running `make coverage doc`.
|
||||||
|
|
||||||
|
composer: ## Update composer dependencies (only production ones, optimize the autoloader)
|
||||||
|
composer update --no-dev --optimize-autoloader
|
||||||
|
|
||||||
|
coverage: coverage-js coverage-php ## Run all unit tests and generate code coverage reports.
|
||||||
|
|
||||||
|
coverage-js: ## Run JS unit tests and generate code coverage reports.
|
||||||
|
cd js && nyc mocha
|
||||||
|
|
||||||
|
coverage-php: ## Run PHP unit tests and generate code coverage reports.
|
||||||
|
cd tst && phpunit 2> /dev/null
|
||||||
|
cd tst/log/php-coverage-report && sed -i "s#$(CURDIR)##g" *.html */*.html
|
||||||
|
|
||||||
|
doc: doc-js doc-php ## Generate all code documentation.
|
||||||
|
|
||||||
|
doc-js: ## Generate JS code documentation.
|
||||||
|
jsdoc -p -d doc/jsdoc js/privatebin.js js/legacy.js
|
||||||
|
|
||||||
|
doc-php: ## Generate JS code documentation.
|
||||||
|
phpdoc --visibility public,protected,private -t doc/phpdoc -d lib/
|
||||||
|
|
||||||
|
increment: ## Increment and commit new version number, set target version using `make increment VERSION=1.2.3`.
|
||||||
|
for F in `grep -l -R $(REGEX_CURRENT_VERSION) $(VERSION_FILES) | grep -v -e tst/log/ -e ":0" -e CHANGELOG.md`; \
|
||||||
|
do \
|
||||||
|
sed -i "s/$(REGEX_CURRENT_VERSION)/$(REGEX_VERSION)/g" $$F; \
|
||||||
|
done
|
||||||
|
git add $(VERSION_FILES)
|
||||||
|
git commit -m "incrementing version"
|
||||||
|
|
||||||
|
sign: ## Sign a release.
|
||||||
|
git tag $(VERSION)
|
||||||
|
git push --tags
|
||||||
|
signrelease.sh
|
||||||
|
|
||||||
|
test: test-js test-php ## Run all unit tests.
|
||||||
|
|
||||||
|
test-js: ## Run JS unit tests.
|
||||||
|
cd js && mocha
|
||||||
|
|
||||||
|
test-php: ## Run PHP unit tests.
|
||||||
|
cd tst && phpunit --no-coverage
|
||||||
|
|
||||||
|
help: ## Displays these usage instructions.
|
||||||
|
@echo "Usage: make <target(s)>"
|
||||||
|
@echo
|
||||||
|
@echo "Specify one or multiple of the following targets and they will be processed in the given order:"
|
||||||
|
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "%-16s%s\n", $$1, $$2}' $(MAKEFILE_LIST)
|
||||||
19
README.md
19
README.md
@@ -1,13 +1,6 @@
|
|||||||
# [<img alt="PrivateBin" src="https://cdn.rawgit.com/PrivateBin/assets/master/images/minified/logo.svg" width="500" />](https://privatebin.info/)
|
# [](https://privatebin.info/)
|
||||||
[](https://travis-ci.org/PrivateBin/PrivateBin) [](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/build-status/master)
|
|
||||||
[](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
|
||||||
[](https://codeclimate.com/github/PrivateBin/PrivateBin)
|
|
||||||
[](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
|
||||||
[](https://insight.sensiolabs.com/projects/57c9e74e-c6f9-4de6-a876-df66ec2ea1ff)
|
|
||||||
[](https://www.codacy.com/app/PrivateBin/PrivateBin)
|
|
||||||
[](https://codeclimate.com/github/PrivateBin/PrivateBin/coverage) [](https://scrutinizer-ci.com/g/PrivateBin/PrivateBin/?branch=master)
|
|
||||||
|
|
||||||
*Current version: 1.2.1*
|
*Current version: 1.3.5*
|
||||||
|
|
||||||
**PrivateBin** is a minimalist, open source online [pastebin](https://en.wikipedia.org/wiki/Pastebin)
|
**PrivateBin** is a minimalist, open source online [pastebin](https://en.wikipedia.org/wiki/Pastebin)
|
||||||
where the server has zero knowledge of pasted data.
|
where the server has zero knowledge of pasted data.
|
||||||
@@ -44,9 +37,7 @@ without losing any data.
|
|||||||
Otherwise you would also have to trust your internet provider, and any country
|
Otherwise you would also have to trust your internet provider, and any country
|
||||||
the traffic passes through.
|
the traffic passes through.
|
||||||
Additionally the instance should be secured by
|
Additionally the instance should be secured by
|
||||||
[HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) and
|
[HSTS](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security). It can use traditional certificate authorities and/or use
|
||||||
ideally by [HPKP](https://en.wikipedia.org/wiki/HTTP_Public_Key_Pinning) using a
|
|
||||||
certificate. It can use traditional certificate authorities and/or use
|
|
||||||
[DNSSEC](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions)
|
[DNSSEC](https://en.wikipedia.org/wiki/Domain_Name_System_Security_Extensions)
|
||||||
protected
|
protected
|
||||||
[DANE](https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities)
|
[DANE](https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities)
|
||||||
@@ -102,9 +93,9 @@ file](https://github.com/PrivateBin/PrivateBin/wiki/Configuration):
|
|||||||
|
|
||||||
## Further resources
|
## Further resources
|
||||||
|
|
||||||
* [Installation guide](https://github.com/PrivateBin/PrivateBin/blob/master/INSTALL.md#installation)
|
* [FAQ](https://github.com/PrivateBin/PrivateBin/wiki/FAQ)
|
||||||
|
|
||||||
* [Upgrading from ZeroBin 0.19 Alpha](https://github.com/PrivateBin/PrivateBin/wiki/Upgrading-from-ZeroBin-0.19-Alpha)
|
* [Installation guide](https://github.com/PrivateBin/PrivateBin/blob/master/INSTALL.md#installation)
|
||||||
|
|
||||||
* [Configuration guide](https://github.com/PrivateBin/PrivateBin/wiki/Configuration)
|
* [Configuration guide](https://github.com/PrivateBin/PrivateBin/wiki/Configuration)
|
||||||
|
|
||||||
|
|||||||
18
SECURITY.md
Normal file
18
SECURITY.md
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Security Policy
|
||||||
|
|
||||||
|
## Supported Versions
|
||||||
|
|
||||||
|
| Version | Supported |
|
||||||
|
| ------- | ------------------ |
|
||||||
|
| 1.3.5 | :heavy_check_mark: |
|
||||||
|
| < 1.3.5 | :x: |
|
||||||
|
|
||||||
|
## Reporting a Vulnerability
|
||||||
|
|
||||||
|
You can send us email at security@privatebin.org. You should be able to get
|
||||||
|
a response within a week (usually during the next weekend). The respondee will
|
||||||
|
reply from their personal address and can offer you their GPG public key to
|
||||||
|
support end-to-end encrypted communication on sensitive topics or attachments.
|
||||||
|
|
||||||
|
You can also contact us via the regular issue tracker if the risk of early
|
||||||
|
publication is low or you would request input from other PrivateBin users.
|
||||||
@@ -7,6 +7,10 @@
|
|||||||
; (optional) set a project name to be displayed on the website
|
; (optional) set a project name to be displayed on the website
|
||||||
; name = "PrivateBin"
|
; name = "PrivateBin"
|
||||||
|
|
||||||
|
; The full URL, with the domain name and directories that point to the PrivateBin files
|
||||||
|
; This URL is essential to allow Opengraph images to be displayed on social networks
|
||||||
|
; basepath = ""
|
||||||
|
|
||||||
; enable or disable the discussion feature, defaults to true
|
; enable or disable the discussion feature, defaults to true
|
||||||
discussion = true
|
discussion = true
|
||||||
|
|
||||||
@@ -29,12 +33,16 @@ defaultformatter = "plaintext"
|
|||||||
; (optional) set a syntax highlighting theme, as found in css/prettify/
|
; (optional) set a syntax highlighting theme, as found in css/prettify/
|
||||||
; syntaxhighlightingtheme = "sons-of-obsidian"
|
; syntaxhighlightingtheme = "sons-of-obsidian"
|
||||||
|
|
||||||
; size limit per paste or comment in bytes, defaults to 2 Mebibytes
|
; size limit per paste or comment in bytes, defaults to 10 Mebibytes
|
||||||
sizelimit = 2097152
|
sizelimit = 10485760
|
||||||
|
|
||||||
; template to include, default is "bootstrap" (tpl/bootstrap.php)
|
; template to include, default is "bootstrap" (tpl/bootstrap.php)
|
||||||
template = "bootstrap"
|
template = "bootstrap"
|
||||||
|
|
||||||
|
; (optional) info text to display
|
||||||
|
; use single, instead of double quotes for HTML attributes
|
||||||
|
;info = "More information on the <a href='https://privatebin.info/'>project page</a>."
|
||||||
|
|
||||||
; (optional) notice to display
|
; (optional) notice to display
|
||||||
; notice = "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service."
|
; notice = "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service."
|
||||||
|
|
||||||
@@ -60,22 +68,43 @@ languageselection = false
|
|||||||
; a different user when the same username was used in a comment. It might be
|
; a different user when the same username was used in a comment. It might be
|
||||||
; used to get the IP of a non anonymous comment poster if the server salt is
|
; used to get the IP of a non anonymous comment poster if the server salt is
|
||||||
; leaked and a SHA256 HMAC rainbow table is generated for all (relevant) IPs.
|
; leaked and a SHA256 HMAC rainbow table is generated for all (relevant) IPs.
|
||||||
; Can be set to one these values: none / vizhash / identicon (default).
|
; Can be set to one these values: "none" / "vizhash" / "identicon" (default).
|
||||||
; icon = none
|
; icon = "none"
|
||||||
|
|
||||||
; Content Security Policy headers allow a website to restrict what sources are
|
; Content Security Policy headers allow a website to restrict what sources are
|
||||||
; allowed to be accessed in its context. You need to change this if you added
|
; allowed to be accessed in its context. You need to change this if you added
|
||||||
; custom scripts from third-party domains to your templates, e.g. tracking
|
; custom scripts from third-party domains to your templates, e.g. tracking
|
||||||
; scripts or run your site behind certain DDoS-protection services.
|
; scripts or run your site behind certain DDoS-protection services.
|
||||||
; Check the documentation at https://content-security-policy.com/
|
; Check the documentation at https://content-security-policy.com/
|
||||||
; Note: If you use a bootstrap theme, you can remove the allow-popups from the sandbox restrictions.
|
; Notes:
|
||||||
; By default this disallows to load images from third-party servers, e.g. when they are embedded in pastes. If you wish to allow that, you can adjust the policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images for details.
|
; - If you use a bootstrap theme, you can remove the allow-popups from the
|
||||||
; cspheader = "default-src 'none'; manifest-src 'self'; connect-src *; script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self' data:; media-src data:; object-src data:; Referrer-Policy: 'no-referrer'; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals"
|
; sandbox restrictions.
|
||||||
|
; - By default this disallows to load images from third-party servers, e.g. when
|
||||||
|
; they are embedded in pastes. If you wish to allow that, you can adjust the
|
||||||
|
; policy here. See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-it-load-embedded-images
|
||||||
|
; for details.
|
||||||
|
; - The 'unsafe-eval' is used in two cases; to check if the browser supports
|
||||||
|
; async functions and display an error if not and for Chrome to enable
|
||||||
|
; webassembly support (used for zlib compression). You can remove it if Chrome
|
||||||
|
; doesn't need to be supported and old browsers don't need to be warned.
|
||||||
|
; cspheader = "default-src 'none'; base-uri 'self'; form-action 'none'; manifest-src 'self'; connect-src * blob:; script-src 'self' 'unsafe-eval' resource:; style-src 'self'; font-src 'self'; img-src 'self' data: blob:; media-src blob:; object-src blob:; sandbox allow-same-origin allow-scripts allow-forms allow-popups allow-modals allow-downloads"
|
||||||
|
|
||||||
; stay compatible with PrivateBin Alpha 0.19, less secure
|
; stay compatible with PrivateBin Alpha 0.19, less secure
|
||||||
; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of
|
; if enabled will use base64.js version 1.7 instead of 2.1.9 and sha1 instead of
|
||||||
; sha256 in HMAC for the deletion token
|
; sha256 in HMAC for the deletion token
|
||||||
zerobincompatibility = false
|
; zerobincompatibility = false
|
||||||
|
|
||||||
|
; Enable or disable the warning message when the site is served over an insecure
|
||||||
|
; connection (insecure HTTP instead of HTTPS), defaults to true.
|
||||||
|
; Secure transport methods like Tor and I2P domains are automatically whitelisted.
|
||||||
|
; It is **strongly discouraged** to disable this.
|
||||||
|
; See https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-it-show-me-an-error-about-an-insecure-connection for more information.
|
||||||
|
; httpwarning = true
|
||||||
|
|
||||||
|
; Pick compression algorithm or disable it. Only applies to pastes/comments
|
||||||
|
; created after changing the setting.
|
||||||
|
; Can be set to one these values: "none" / "zlib" (default).
|
||||||
|
; compression = "zlib"
|
||||||
|
|
||||||
[expire]
|
[expire]
|
||||||
; expire value that is selected per default
|
; expire value that is selected per default
|
||||||
@@ -106,6 +135,10 @@ markdown = "Markdown"
|
|||||||
; Set this to 0 to disable rate limiting.
|
; Set this to 0 to disable rate limiting.
|
||||||
limit = 10
|
limit = 10
|
||||||
|
|
||||||
|
; Set ips (v4|v6) which should be exempted for the rate-limit. CIDR also supported. Needed to be comma separated.
|
||||||
|
; Unset for enabling and invalid values will be ignored
|
||||||
|
; eg: exemptedIp = '1.2.3.4,10.10.10/24'
|
||||||
|
|
||||||
; (optional) if your website runs behind a reverse proxy or load balancer,
|
; (optional) if your website runs behind a reverse proxy or load balancer,
|
||||||
; set the HTTP header containing the visitors IP address, i.e. X_FORWARDED_FOR
|
; set the HTTP header containing the visitors IP address, i.e. X_FORWARDED_FOR
|
||||||
; header = "X_FORWARDED_FOR"
|
; header = "X_FORWARDED_FOR"
|
||||||
@@ -134,6 +167,13 @@ class = Filesystem
|
|||||||
[model_options]
|
[model_options]
|
||||||
dir = PATH "data"
|
dir = PATH "data"
|
||||||
|
|
||||||
|
[model]
|
||||||
|
; example of a Google Cloud Storage configuration
|
||||||
|
;class = GoogleCloudStorage
|
||||||
|
;[model_options]
|
||||||
|
;bucket = "my-private-bin"
|
||||||
|
;prefix = "pastes"
|
||||||
|
|
||||||
;[model]
|
;[model]
|
||||||
; example of DB configuration for MySQL
|
; example of DB configuration for MySQL
|
||||||
;class = Database
|
;class = Database
|
||||||
|
|||||||
49
codacy-analysis.yml
Normal file
49
codacy-analysis.yml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# This workflow checks out code, performs a Codacy security scan
|
||||||
|
# and integrates the results with the
|
||||||
|
# GitHub Advanced Security code scanning feature. For more information on
|
||||||
|
# the Codacy security scan action usage and parameters, see
|
||||||
|
# https://github.com/codacy/codacy-analysis-cli-action.
|
||||||
|
# For more information on Codacy Analysis CLI in general, see
|
||||||
|
# https://github.com/codacy/codacy-analysis-cli.
|
||||||
|
|
||||||
|
name: Codacy Security Scan
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
pull_request:
|
||||||
|
# The branches below must be a subset of the branches above
|
||||||
|
branches: [ master ]
|
||||||
|
schedule:
|
||||||
|
- cron: '45 16 * * 1'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
codacy-security-scan:
|
||||||
|
name: Codacy Security Scan
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
# Checkout the repository to the GitHub Actions runner
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
|
||||||
|
- name: Run Codacy Analysis CLI
|
||||||
|
uses: codacy/codacy-analysis-cli-action@1.1.0
|
||||||
|
with:
|
||||||
|
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
|
||||||
|
# You can also omit the token and run the tools that support default configurations
|
||||||
|
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
||||||
|
verbose: true
|
||||||
|
output: results.sarif
|
||||||
|
format: sarif
|
||||||
|
# Adjust severity of non-security issues
|
||||||
|
gh-code-scanning-compat: true
|
||||||
|
# Force 0 exit code to allow SARIF file generation
|
||||||
|
# This will handover control about PR rejection to the GitHub side
|
||||||
|
max-allowed-issues: 2147483647
|
||||||
|
|
||||||
|
# Upload the SARIF file generated in the previous step
|
||||||
|
- name: Upload SARIF results file
|
||||||
|
uses: github/codeql-action/upload-sarif@v1
|
||||||
|
with:
|
||||||
|
sarif_file: results.sarif
|
||||||
@@ -2,23 +2,37 @@
|
|||||||
"name" : "privatebin/privatebin",
|
"name" : "privatebin/privatebin",
|
||||||
"description" : "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bit AES in Galois Counter mode (GCM).",
|
"description" : "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bit AES in Galois Counter mode (GCM).",
|
||||||
"type" : "project",
|
"type" : "project",
|
||||||
"keywords": ["private", "secure", "end-to-end-encrypted", "e2e", "paste", "pastebin", "zero", "zero-knowledge", "encryption", "encrypted", "AES"],
|
"keywords" : [
|
||||||
"homepage": "https://github.com/PrivateBin",
|
"private",
|
||||||
|
"secure",
|
||||||
|
"end-to-end-encrypted",
|
||||||
|
"e2e",
|
||||||
|
"paste",
|
||||||
|
"pastebin",
|
||||||
|
"zero",
|
||||||
|
"zero-knowledge",
|
||||||
|
"encryption",
|
||||||
|
"encrypted",
|
||||||
|
"AES"
|
||||||
|
],
|
||||||
|
"homepage" : "https://privatebin.info/",
|
||||||
"license" : "zlib-acknowledgement",
|
"license" : "zlib-acknowledgement",
|
||||||
"support" : {
|
"support" : {
|
||||||
"issues" : "https://github.com/PrivateBin/PrivateBin/issues",
|
"issues" : "https://github.com/PrivateBin/PrivateBin/issues",
|
||||||
"wiki" : "https://github.com/PrivateBin/PrivateBin/wiki",
|
"wiki" : "https://github.com/PrivateBin/PrivateBin/wiki",
|
||||||
"source" : "https://github.com/PrivateBin/PrivateBin",
|
"source" : "https://github.com/PrivateBin/PrivateBin",
|
||||||
"docs": "https://zerobin.dssr.ch/documentation/"
|
"docs" : "https://privatebin.info/codedoc/"
|
||||||
},
|
},
|
||||||
"require" : {
|
"require" : {
|
||||||
"php": "^5.4.0 || ^7.0",
|
"php" : "^5.6.0 || ^7.0 || ^8.0",
|
||||||
"paragonie/random_compat": "2.0.15",
|
"paragonie/random_compat" : "2.0.20",
|
||||||
"yzalis/identicon": "1.1.0"
|
"yzalis/identicon" : "2.0.0",
|
||||||
|
"mlocati/ip-lib" : "1.14.0"
|
||||||
|
},
|
||||||
|
"suggest" : {
|
||||||
|
"google/cloud-storage" : "1.23.1"
|
||||||
},
|
},
|
||||||
"require-dev" : {
|
"require-dev" : {
|
||||||
"codacy/coverage": "dev-master",
|
|
||||||
"codeclimate/php-test-reporter": "dev-master",
|
|
||||||
"phpunit/phpunit" : "^4.6 || ^5.0"
|
"phpunit/phpunit" : "^4.6 || ^5.0"
|
||||||
},
|
},
|
||||||
"autoload" : {
|
"autoload" : {
|
||||||
|
|||||||
1629
composer.lock
generated
Normal file
1629
composer.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
3
crowdin.yml
Normal file
3
crowdin.yml
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
files:
|
||||||
|
- source: /i18n/en.json
|
||||||
|
translation: /i18n/%two_letters_code%.json
|
||||||
14
css/bootstrap/bootstrap-3.3.5.css
vendored
14
css/bootstrap/bootstrap-3.3.5.css
vendored
File diff suppressed because one or more lines are too long
5
css/bootstrap/bootstrap-3.4.1.css
vendored
Normal file
5
css/bootstrap/bootstrap-3.4.1.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -315,8 +315,8 @@ th {
|
|||||||
}
|
}
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Glyphicons Halflings';
|
font-family: 'Glyphicons Halflings';
|
||||||
src: url(fonts/../fonts/glyphicons-halflings-regular.eot?1445975532);
|
src: url(fonts/glyphicons-halflings-regular.eot?1445975532);
|
||||||
src: url(fonts/../fonts/glyphicons-halflings-regular.eot?&1445975532#iefix) format("embedded-opentype"), url(fonts/../fonts/glyphicons-halflings-regular.woff2?1445975532) format("woff2"), url(fonts/../fonts/glyphicons-halflings-regular.woff?1445975532) format("woff"), url(fonts/../fonts/glyphicons-halflings-regular.ttf?1445975532) format("truetype"), url(fonts/../fonts/glyphicons-halflings-regular.svg?1445975532#glyphicons_halflingsregular) format("svg");
|
src: url(fonts/glyphicons-halflings-regular.eot?&1445975532#iefix) format("embedded-opentype"), url(fonts/glyphicons-halflings-regular.woff2?1445975532) format("woff2"), url(fonts/glyphicons-halflings-regular.woff?1445975532) format("woff"), url(fonts/glyphicons-halflings-regular.ttf?1445975532) format("truetype"), url(fonts/glyphicons-halflings-regular.svg?1445975532#glyphicons_halflingsregular) format("svg");
|
||||||
}
|
}
|
||||||
.glyphicon {
|
.glyphicon {
|
||||||
position: relative;
|
position: relative;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.2.1
|
* @version 1.3.5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
body {
|
body {
|
||||||
@@ -80,13 +80,31 @@ body.loading {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#dropzone {
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
opacity: 0.6;
|
||||||
|
background-color: #99ccff;
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z'/%3E%3C/svg%3E");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25vh;
|
||||||
|
outline: 2px dashed #228bff;
|
||||||
|
outline-offset: -50px;
|
||||||
|
}
|
||||||
|
|
||||||
.dragAndDropFile{
|
.dragAndDropFile{
|
||||||
color: #777;
|
color: #777;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
display: inline;
|
display: inline;
|
||||||
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#deletelink {
|
#deletelink {
|
||||||
float: right;
|
float: right;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
@@ -113,8 +131,9 @@ body.loading {
|
|||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#message {
|
#message, .replymessage {
|
||||||
font-family: monospace;
|
font-family: monospace;
|
||||||
|
resize: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
#nickname {
|
#nickname {
|
||||||
@@ -125,6 +144,10 @@ body.loading {
|
|||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#filewrap {
|
||||||
|
transition: background-color 0.75s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
.comment {
|
.comment {
|
||||||
border-left: 1px solid #ccc;
|
border-left: 1px solid #ccc;
|
||||||
padding: 5px 0 5px 10px;
|
padding: 5px 0 5px 10px;
|
||||||
@@ -132,7 +155,7 @@ body.loading {
|
|||||||
transition: background-color 0.75s ease-out;
|
transition: background-color 0.75s ease-out;
|
||||||
}
|
}
|
||||||
|
|
||||||
.comment.highlight {
|
.highlight {
|
||||||
background-color: #ffdd86;
|
background-color: #ffdd86;
|
||||||
transition: background-color 0.2s ease-in;
|
transition: background-color 0.2s ease-in;
|
||||||
}
|
}
|
||||||
@@ -144,3 +167,41 @@ footer h4 {
|
|||||||
li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {
|
li.L0, li.L1, li.L2, li.L3, li.L5, li.L6, li.L7, li.L8 {
|
||||||
list-style-type: decimal !important;
|
list-style-type: decimal !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark-theme .alert-info .alert-link {
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* address 2K or 4K monitors when using bootstrap 3 */
|
||||||
|
@media (min-width: 1280px) {
|
||||||
|
.container {
|
||||||
|
width: 100%;
|
||||||
|
padding-left: 4ch;
|
||||||
|
padding-right: 4ch;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-dialog {
|
||||||
|
margin: auto !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* makeup for the original margin on modal-dialog */
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.modal-content {
|
||||||
|
margin: 30px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-content {
|
||||||
|
margin: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-body {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal .modal-content button {
|
||||||
|
margin: 0.5em 0;
|
||||||
|
}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.2.1
|
* @version 1.3.5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* When there is no script at all other */
|
/* When there is no script at all other */
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.2.1
|
* @version 1.3.5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* CSS Reset from YUI 3.4.1 (build 4118) - Copyright 2011 Yahoo! Inc. All rights reserved.
|
/* CSS Reset from YUI 3.4.1 (build 4118) - Copyright 2011 Yahoo! Inc. All rights reserved.
|
||||||
@@ -102,6 +102,7 @@ h3.title {
|
|||||||
padding: 5px;
|
padding: 5px;
|
||||||
white-space: pre-wrap;
|
white-space: pre-wrap;
|
||||||
font-family: Consolas, "Lucida Console", "DejaVu Sans Mono", Monaco, monospace;
|
font-family: Consolas, "Lucida Console", "DejaVu Sans Mono", Monaco, monospace;
|
||||||
|
resize: vertical;
|
||||||
}
|
}
|
||||||
|
|
||||||
#attachmentPreview img {
|
#attachmentPreview img {
|
||||||
@@ -115,10 +116,29 @@ h3.title {
|
|||||||
margin-bottom: 20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#dropzone {
|
||||||
|
text-align: center;
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
opacity: 0.6;
|
||||||
|
background-color: #99ccff;
|
||||||
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M0 0h24v24H0z' fill='none'/%3E%3Cpath d='M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM14 13v4h-4v-4H7l5-5 5 5h-3z'/%3E%3C/svg%3E");
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: center;
|
||||||
|
background-size: 25vh;
|
||||||
|
outline: 2px dashed #228bff;
|
||||||
|
outline-offset: -50px;
|
||||||
|
}
|
||||||
|
|
||||||
.dragAndDropFile{
|
.dragAndDropFile{
|
||||||
color: #777;
|
color: #777;
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
display: inline;
|
display: inline;
|
||||||
|
white-space: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
#status {
|
#status {
|
||||||
@@ -229,6 +249,10 @@ button img {
|
|||||||
padding: 1px 0 1px 0;
|
padding: 1px 0 1px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#downloadtextbutton img {
|
||||||
|
padding: 1px 0 1px 0;
|
||||||
|
}
|
||||||
|
|
||||||
#remainingtime, #password {
|
#remainingtime, #password {
|
||||||
color: #94a3b4;
|
color: #94a3b4;
|
||||||
display: inline;
|
display: inline;
|
||||||
@@ -290,9 +314,9 @@ input {
|
|||||||
|
|
||||||
#ienotice a { color: #000; }
|
#ienotice a { color: #000; }
|
||||||
|
|
||||||
#oldienotice { display: none; }
|
#oldnotice, #httpnotice { display: none; }
|
||||||
|
|
||||||
.errorMessage {
|
#errormessage, .errorMessage {
|
||||||
background-color: #f77 !important;
|
background-color: #f77 !important;
|
||||||
color:#ff0;
|
color:#ff0;
|
||||||
}
|
}
|
||||||
@@ -405,6 +429,15 @@ h4.title {
|
|||||||
|
|
||||||
.commentdate { color: #bfcede; }
|
.commentdate { color: #bfcede; }
|
||||||
|
|
||||||
|
#filewrap {
|
||||||
|
transition: background-color 0.75s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight {
|
||||||
|
background-color: #ffdd86;
|
||||||
|
transition: background-color 0.2s ease-in;
|
||||||
|
}
|
||||||
|
|
||||||
img.vizhash {
|
img.vizhash {
|
||||||
width: 16px;
|
width: 16px;
|
||||||
height: 16px;
|
height: 16px;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ $ sudo pear install phpdoc/phpDocumentor
|
|||||||
To generate the documentation, change into the main directory and run phpdoc:
|
To generate the documentation, change into the main directory and run phpdoc:
|
||||||
```console
|
```console
|
||||||
$ cd PrivateBin
|
$ cd PrivateBin
|
||||||
$ phpdoc -t doc/phpdoc -d lib/
|
$ phpdoc --visibility public,protected,private -t doc/phpdoc -d lib/
|
||||||
```
|
```
|
||||||
|
|
||||||
**Note:** When used with PHP 7, the prerelease of phpDocumentator 2.9 needs to be
|
**Note:** When used with PHP 7, the prerelease of phpDocumentator 2.9 needs to be
|
||||||
@@ -55,6 +55,6 @@ $ ln -s /usr/bin/nodejs /usr/local/bin/node
|
|||||||
To generate the documentation, change into the main directory and run phpdoc:
|
To generate the documentation, change into the main directory and run phpdoc:
|
||||||
```console
|
```console
|
||||||
$ cd PrivateBin
|
$ cd PrivateBin
|
||||||
$ jsdoc -d doc/jsdoc js/privatebin.js
|
$ jsdoc -p -d doc/jsdoc js/privatebin.js js/legacy.js
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
version: '3'
|
|
||||||
|
|
||||||
services:
|
|
||||||
privatebin:
|
|
||||||
build: .
|
|
||||||
ports:
|
|
||||||
- "3000:80"
|
|
||||||
volumes:
|
|
||||||
- data:/var/www/html/data
|
|
||||||
# Optionally mount a custom config file
|
|
||||||
#- /srv/docker/privatebin/conf.php:/var/www/html/cfg/conf.php
|
|
||||||
|
|
||||||
volumes:
|
|
||||||
data:
|
|
||||||
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
#! /bin/sh
|
|
||||||
|
|
||||||
chown -R www-data /var/www/html/data
|
|
||||||
apache2-foreground
|
|
||||||
189
i18n/ar.json
Normal file
189
i18n/ar.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "ar",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/bg.json
Normal file
189
i18n/bg.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s е изчистен и изцяло достъпен като отворен код, онлайн \"paste\" услуга, където сървъра не знае подадената информация. Тя се шифрова/дешифрова %sвъв браузъра%s използвайки 256 битов AES алгоритъм.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Повече информация може да намерите на <a href=\"https://privatebin.info/\">страницата на проекта (Английски)</a>.",
|
||||||
|
"Because ignorance is bliss": "Невежеството е блаженство",
|
||||||
|
"en": "bg",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Информацията не съществува, срокът и е изтекъл или е била изтрита.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s има нужда от PHP %s или по-нова, за да работи. Съжалявам.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s задължава отдела от настройките [%s] да съществува във файла със настройките.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Моля изчакайте една секунда между всяка публикация.",
|
||||||
|
"Моля изчакайте %d секунди между всяка публикация.",
|
||||||
|
"Моля изчакайте %d секунди между всяка публикация.",
|
||||||
|
"Моля изчакайте %d секунди между всяка публикация."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Съдържанието е ограничено до %s криптирана информация.",
|
||||||
|
"Invalid data.": "Невалидна информация.",
|
||||||
|
"You are unlucky. Try again.": "Нямаш късмет. Пробвай отново.",
|
||||||
|
"Error saving comment. Sorry.": "Грешка в запазването на коментара. Съжалявам.",
|
||||||
|
"Error saving paste. Sorry.": "Грешка в записването на информацията. Съжалявам.",
|
||||||
|
"Invalid paste ID.": "Невалиден идентификационен код.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Информацията не е от тип \"унищожаване след преглед\".",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Невалиден код за изтриване. Информацията Ви не беше изтрита.",
|
||||||
|
"Paste was properly deleted.": "Информацията Ви е изтрита.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Услугата %s се нуждае от JavaScript, за да работи. Съжаляваме за неудобството.",
|
||||||
|
"%s requires a modern browser to work.": "%s се нуждае от съвременен браузър за да работи.",
|
||||||
|
"New": "Създаване",
|
||||||
|
"Send": "Изпрати",
|
||||||
|
"Clone": "Дублирай",
|
||||||
|
"Raw text": "Чист текст",
|
||||||
|
"Expires": "Изтича",
|
||||||
|
"Burn after reading": "Унищожи след преглед",
|
||||||
|
"Open discussion": "Отворена дискусия",
|
||||||
|
"Password (recommended)": "Парола (препоръчва се)",
|
||||||
|
"Discussion": "Коментари",
|
||||||
|
"Toggle navigation": "Включи или Изключи навигацията",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d секунди",
|
||||||
|
"%d секунда",
|
||||||
|
"%d секунда",
|
||||||
|
"%d секунда"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d минути",
|
||||||
|
"%d минута",
|
||||||
|
"%d минута",
|
||||||
|
"%d минута"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d часа",
|
||||||
|
"%d час",
|
||||||
|
"%d час",
|
||||||
|
"%d час"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d дни",
|
||||||
|
"%d ден",
|
||||||
|
"%d ден",
|
||||||
|
"%d ден"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d седмици",
|
||||||
|
"%d седмица",
|
||||||
|
"%d седмица",
|
||||||
|
"%d седмица"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d месеци",
|
||||||
|
"%d месец",
|
||||||
|
"%d месец",
|
||||||
|
"%d месец"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d години",
|
||||||
|
"%d година",
|
||||||
|
"%d година",
|
||||||
|
"%d година"
|
||||||
|
],
|
||||||
|
"Never": "Никога",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Забележка: Това е пробна услуга: Информацията може да бъде изтрита по всяко време. Котета ще измрат ако злоупотребиш с услугата.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"Този документ изтича след една секунда.",
|
||||||
|
"Този документ изтича след %d секунди.",
|
||||||
|
"Този документ изтича след %d секунди.",
|
||||||
|
"Този документ изтича след %d секунди."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"Този документ изтича след една минута.",
|
||||||
|
"Този документ изтича след %d минути.",
|
||||||
|
"Този документ изтича след %d минути.",
|
||||||
|
"Този документ изтича след %d минути."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"Този документ изтича след един час.",
|
||||||
|
"Този документ изтича след %d часа.",
|
||||||
|
"Този документ изтича след %d часа.",
|
||||||
|
"Този документ изтича след %d часа."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"Този документ изтича след един ден.",
|
||||||
|
"Този документ изтича след %d дни.",
|
||||||
|
"Този документ изтича след %d дни.",
|
||||||
|
"Този документ изтича след %d дни."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"Този документ изтича след една година.",
|
||||||
|
"Този документ изтича след %d години.",
|
||||||
|
"Този документ изтича след %d години.",
|
||||||
|
"Този документ изтича след %d години."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Моля въведете паролата за това съдържание:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Информацията не можеше да се дешифрова (Грешен ключ?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Изтриването на информацията беше неуспешно. Тя не е от тип \"унищожаване след преглед\".",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "САМО ЗА ВАШИТЕ ОЧИ. Не затваряйте прозореца, понеже тази информация няма да може да бъде показана отново.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Дешифроването на коментара беше неуспешно. Грешен ключ?",
|
||||||
|
"Reply": "Отговор",
|
||||||
|
"Anonymous": "Безименен",
|
||||||
|
"Avatar generated from IP address": "Аватар (на базата на IP адреса Ви)",
|
||||||
|
"Add comment": "Добави коментар",
|
||||||
|
"Optional nickname…": "Избирателен псевдоним",
|
||||||
|
"Post comment": "Публикувай коментара",
|
||||||
|
"Sending comment…": "Изпращане на коментара Ви…",
|
||||||
|
"Comment posted.": "Коментара Ви е публикуван.",
|
||||||
|
"Could not refresh display: %s": "Презареждането на екрана беше неуспешно: %s",
|
||||||
|
"unknown status": "Неизвестно състояние",
|
||||||
|
"server error or not responding": "Грешка в сървъра или не отговаря",
|
||||||
|
"Could not post comment: %s": "Публикуването на коментара Ви беше неуспешно: %s",
|
||||||
|
"Sending paste…": "Изпращане на информацията Ви…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Вашата връзка е <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Натиснете [Ctrl]+[c] за да копирате)</span>",
|
||||||
|
"Delete data": "Изтриване на информацията",
|
||||||
|
"Could not create paste: %s": "Създаването на връзката ви беше неуспешно: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Дешифроването на информацията беше неуспешно: Ключа за декриптиране липсва във връзката (Да не сте използвали услуга за пренасочване или скъсяване на връзката, което би изрязало части от нея?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Чист текст",
|
||||||
|
"Source Code": "Изходен код",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Свали прикачения файл",
|
||||||
|
"Cloned: '%s'": "Дублирано: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "Дублирания файл '%s' беше прикачен.",
|
||||||
|
"Attach a file": "Прикачи файл",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "Също можеш да пуснеш файла върху този прозорец или да поставиш изображение от клипборда",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "Файла е твърде голям, за да се представи визуализация. Моля, свалете файла.",
|
||||||
|
"Remove attachment": "Премахнете файла",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Браузърът ви не поддържа прикачване на шифровани файлове. Моля, използвайте по-нов браузър",
|
||||||
|
"Invalid attachment.": "Невалидно прикачване.",
|
||||||
|
"Options": "Настройки",
|
||||||
|
"Shorten URL": "Скъси връзката",
|
||||||
|
"Editor": "Редактор",
|
||||||
|
"Preview": "Визуализация",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "PATH трябва да е във края на \"%s\" за да може %s да работи правилно. Моля обновете PATH във вашият index.php .",
|
||||||
|
"Decrypt": "Дешифровай",
|
||||||
|
"Enter password": "Въведи паролата",
|
||||||
|
"Loading…": "Зареждане…",
|
||||||
|
"Decrypting paste…": "Дешифроване на информацията…",
|
||||||
|
"Preparing new paste…": "Приготвяне на връзката Ви…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Във случай, че това съобщение не изчезне след време, моля прегледайте <a href=\"%s\">този FAQ (Английски)</a>, за информация, която би ви помогнала.",
|
||||||
|
"+++ no paste text +++": "+++ няма текстово съдържание +++",
|
||||||
|
"Could not get paste data: %s": "Взимането на информацията беше неуспешно: %s",
|
||||||
|
"QR code": "QR код",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Този сайт използва несигурна HTTP връзка. Моля използвайте само за проби.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "<a href=\"%s\">Вижте тази страница</a> за повече информация.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Браузъра ви може да се нуждае от HTTPS връзка за да използва WebCrypto API. Пробвай <a href=\"%s\">да минеш на HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/ca.json
Normal file
189
i18n/ca.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s és un pastebin en línia de codi obert i minimalista on el servidor no té coneixement de les dades enganxades. Les dades estan encriptades/desxifrades %sen el navegador%s utilitzant AES de 256 bits.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Més informació a la <a href=\"https://privatebin.info/\">pàgina del projecte</a>.",
|
||||||
|
"Because ignorance is bliss": "Perquè la ignorància és felicitat",
|
||||||
|
"en": "ca",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "El paste no existeix, ha caducat o s'ha eliminat.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requereix php %s o superior per funcionar. Ho sento.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requereix que la secció de configuració [%s] sigui present al fitxer de configuració.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/cs.json
Normal file
189
i18n/cs.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalistický open source 'pastebin' server, který neanalyzuje vložená data. Data jsou šifrována %sv prohlížeči%s pomocí 256 bitů AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Více informací na <a href=\"https://privatebin.info/\">stránce projetu</a>.",
|
||||||
|
"Because ignorance is bliss": "Protože nevědomost je sladká",
|
||||||
|
"en": "cs",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Vložený text neexistuje, expiroval nebo byl odstraněn.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s vyžaduje php %s nebo vyšší. Lituji.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Počet sekund do dalšího příspěvku: %d.",
|
||||||
|
"Počet sekund do dalšího příspěvku: %d.",
|
||||||
|
"Počet sekund do dalšího příspěvku: %d.",
|
||||||
|
"Počet sekund do dalšího příspěvku: %d."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Příspěvek je limitován na %s šífrovaných dat",
|
||||||
|
"Invalid data.": "Chybná data.",
|
||||||
|
"You are unlucky. Try again.": "Lituji, zkuste to znovu.",
|
||||||
|
"Error saving comment. Sorry.": "Chyba při ukládání komentáře.",
|
||||||
|
"Error saving paste. Sorry.": "Chyba při ukládání příspěvku.",
|
||||||
|
"Invalid paste ID.": "Chybně vložené ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%%s requires a modern browser to work.",
|
||||||
|
"New": "Nový",
|
||||||
|
"Send": "Odeslat",
|
||||||
|
"Clone": "Klonovat",
|
||||||
|
"Raw text": "Pouze Text",
|
||||||
|
"Expires": "Expirace",
|
||||||
|
"Burn after reading": "Po přečtení smazat",
|
||||||
|
"Open discussion": "Povolit komentáře",
|
||||||
|
"Password (recommended)": "Heslo (doporučeno)",
|
||||||
|
"Discussion": "Komentáře",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d sekuda",
|
||||||
|
"%d sekundy",
|
||||||
|
"%d sekund",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minuta",
|
||||||
|
"%d minuty",
|
||||||
|
"%d minut",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hodin",
|
||||||
|
"%d hodiny",
|
||||||
|
"%d hodin",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d den",
|
||||||
|
"%d dny",
|
||||||
|
"%d dní",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d týden",
|
||||||
|
"%d týdeny",
|
||||||
|
"%d týdnů",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d měsíc",
|
||||||
|
"%d měsíce",
|
||||||
|
"%d měsíců",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d rok",
|
||||||
|
"%d roky",
|
||||||
|
"%d roků",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Nikdy",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"Tento dokument expiruje za %d sekundu.",
|
||||||
|
"Tento dokument expiruje za %d sekundy.",
|
||||||
|
"Tento dokument expiruje za %d sekund.",
|
||||||
|
"Tento dokument expiruje za %d sekund."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"Tento dokument expiruje za %d minutu.",
|
||||||
|
"Tento dokument expiruje za %d minuty.",
|
||||||
|
"Tento dokument expiruje za %d minut.",
|
||||||
|
"Tento dokument expiruje za %d minut."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"Tento dokument expiruje za %d hodinu.",
|
||||||
|
"Tento dokument expiruje za %d hodiny.",
|
||||||
|
"Tento dokument expiruje za %d hodin.",
|
||||||
|
"Tento dokument expiruje za %d hodin."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"Tento dokument expiruje za %d den.",
|
||||||
|
"Tento dokument expiruje za %d dny.",
|
||||||
|
"Tento dokument expiruje za %d dny.",
|
||||||
|
"Tento dokument expiruje za %d dny."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"Tento dokument expiruje za %d měsíc.",
|
||||||
|
"Tento dokument expiruje za %d měsíce.",
|
||||||
|
"Tento dokument expiruje za %d měsíců.",
|
||||||
|
"Tento dokument expiruje za %d měsíců."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Zadejte prosím heslo:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonym",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Přidat komentář",
|
||||||
|
"Optional nickname…": "Volitelný nickname…",
|
||||||
|
"Post comment": "Odeslat komentář",
|
||||||
|
"Sending comment…": "Odesílání komentáře…",
|
||||||
|
"Comment posted.": "Komentář odeslán.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "neznámý stav",
|
||||||
|
"server error or not responding": "Chyba na serveru nebo server neodpovídá",
|
||||||
|
"Could not post comment: %s": "Nelze odeslat komentář: %s",
|
||||||
|
"Sending paste…": "Odesílání příspěvku…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Váš link je <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Stiskněte [Ctrl]+[c] pro zkopírování)</span>",
|
||||||
|
"Delete data": "Odstranit data",
|
||||||
|
"Could not create paste: %s": "Nelze vytvořit příspěvek: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Nepodařilo se dešifrovat příspěvek: V adrese chybí dešifrovací klíč (Možnou příčinou může být URL shortener?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Formát",
|
||||||
|
"Plain Text": "Prostý Text",
|
||||||
|
"Source Code": "Zdrojový kód",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Stáhnout přílohu",
|
||||||
|
"Cloned: '%s'": "Klonováno: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Připojit soubor",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "Soubor je příliš velký pro zobrazení náhledu. Stáhněte si přílohu.",
|
||||||
|
"Remove attachment": "Odstranit přílohu",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Váš prohlížeč nepodporuje nahrávání šifrovaných souborů. Použijte modernější verzi prohlížeče.",
|
||||||
|
"Invalid attachment.": "Chybná příloha.",
|
||||||
|
"Options": "Volby",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Náhled",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Zadejte heslo",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ žádný vložený text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
306
i18n/de.json
306
i18n/de.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s ist ein minimalistischer, quelloffener \"Pastebin\"-artiger Dienst, bei dem der Server keinerlei Kenntnis der Inhalte hat. Die Daten werden %sim Browser%s mit 256 Bit AES ver- und entschlüsselt.",
|
||||||
"%s ist ein minimalistischer, quelloffener \"Pastebin\"-artiger Dienst, bei dem der Server keinerlei Kenntnis der Inhalte hat. Die Daten werden <i>im Browser</i> mit 256 Bit AES ver- und entschlüsselt. Weitere Informationen sind auf der <a href=\"https://privatebin.info/\">Projektseite</a> zu finden.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Weitere Informationen sind auf der <a href=\"https://privatebin.info/\">Projektseite</a> zu finden.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Unwissenheit ist ein Segen",
|
||||||
"Unwissenheit ist ein Segen",
|
|
||||||
"en": "de",
|
"en": "de",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Diesen Text gibt es nicht, er ist abgelaufen oder wurde gelöscht.",
|
||||||
"Diesen Text gibt es nicht, er ist abgelaufen oder wurde gelöscht.",
|
"%s requires php %s or above to work. Sorry.": "%s benötigt PHP %s oder höher, um zu funktionieren. Sorry.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s benötigt den Konfigurationsabschnitt [%s] in der Konfigurationsdatei um zu funktionieren.",
|
||||||
"%s benötigt PHP %s oder höher, um zu funktionieren. Sorry.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Bitte warte eine Sekunde zwischen dem Absenden zweier Beiträge.",
|
||||||
"%s benötigt den Konfigurationsabschnitt [%s] in der Konfigurationsdatei um zu funktionieren.",
|
"Bitte warte %d Sekunden zwischen dem Absenden zweier Beiträge.",
|
||||||
"Please wait %d seconds between each post.":
|
"Bitte warte %d Sekunden zwischen dem Absenden zweier Beiträge.",
|
||||||
"Bitte warte %d Sekunden zwischen dem Absenden.",
|
"Bitte warte %d Sekunden zwischen dem Absenden zweier Beiträge."
|
||||||
"Paste is limited to %s of encrypted data.":
|
],
|
||||||
"Texte sind auf %s verschlüsselte Datenmenge beschränkt.",
|
"Paste is limited to %s of encrypted data.": "Texte sind auf %s verschlüsselte Datenmenge beschränkt.",
|
||||||
"Invalid data.":
|
"Invalid data.": "Ungültige Daten.",
|
||||||
"Ungültige Daten.",
|
"You are unlucky. Try again.": "Du hast Pech. Versuchs nochmal.",
|
||||||
"You are unlucky. Try again.":
|
"Error saving comment. Sorry.": "Fehler beim Speichern des Kommentars. Sorry.",
|
||||||
"Du hast Pech. Versuchs nochmal.",
|
"Error saving paste. Sorry.": "Fehler beim Speichern des Textes. Sorry.",
|
||||||
"Error saving comment. Sorry.":
|
"Invalid paste ID.": "Ungültige Text-ID.",
|
||||||
"Fehler beim Speichern des Kommentars. Sorry.",
|
"Paste is not of burn-after-reading type.": "Text ist kein \"Einmal\"-Typ.",
|
||||||
"Error saving paste. Sorry.":
|
"Wrong deletion token. Paste was not deleted.": "Falscher Lösch-Code. Text wurde nicht gelöscht.",
|
||||||
"Fehler beim Speichern des Textes. Sorry.",
|
"Paste was properly deleted.": "Text wurde erfolgreich gelöscht.",
|
||||||
"Invalid paste ID.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript ist eine Voraussetzung, um %s zu nutzen. Bitte entschuldige die Unannehmlichkeiten.",
|
||||||
"Ungültige Text-ID.",
|
"%s requires a modern browser to work.": "%s setzt einen modernen Browser voraus, um funktionieren zu können.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"New": "Neu",
|
||||||
"Text ist kein \"Einmal\"-Typ.",
|
"Send": "Senden",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"Clone": "Klonen",
|
||||||
"Falscher Lösch-Code. Text wurde nicht gelöscht.",
|
"Raw text": "Reiner Text",
|
||||||
"Paste was properly deleted.":
|
"Expires": "Ablaufzeit",
|
||||||
"Text wurde erfolgreich gelöscht.",
|
"Burn after reading": "Nach dem Lesen löschen",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Open discussion": "Kommentare aktivieren",
|
||||||
"JavaScript ist eine Voraussetzung, um %s zu nutzen.<br />Bitte entschuldige die Unannehmlichkeiten.",
|
"Password (recommended)": "Passwort (empfohlen)",
|
||||||
"%s requires a modern browser to work.":
|
"Discussion": "Kommentare",
|
||||||
"%s setzt einen modernen Browser voraus, um funktionieren zu können.",
|
"Toggle navigation": "Navigation umschalten",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"%d seconds": [
|
||||||
"Du benutzt immer noch den Internet Explorer? Tu Dir einen Gefallen und wechsle zu einem moderneren Browser:",
|
"%d Sekunde",
|
||||||
"New":
|
"%d Sekunden",
|
||||||
"Neu",
|
"%d seconds (2nd plural)",
|
||||||
"Send":
|
"%d seconds (3rd plural)"
|
||||||
"Senden",
|
],
|
||||||
"Clone":
|
"%d minutes": [
|
||||||
"Klonen",
|
"%d Minute",
|
||||||
"Raw text":
|
"%d Minuten",
|
||||||
"Reiner Text",
|
"%d minutes (2nd plural)",
|
||||||
"Expires":
|
"%d minutes (3rd plural)"
|
||||||
"Ablaufzeit",
|
],
|
||||||
"Burn after reading":
|
"%d hours": [
|
||||||
"Einmal-Text",
|
"%d Stunde",
|
||||||
"Open discussion":
|
"%d Stunden",
|
||||||
"Diskussion eröffnen",
|
"%d hours (2nd plural)",
|
||||||
"Password (recommended)":
|
"%d hours (3rd plural)"
|
||||||
"Passwort (empfohlen)",
|
],
|
||||||
"Discussion":
|
"%d days": [
|
||||||
"Diskussion",
|
"%d Tag",
|
||||||
"Toggle navigation":
|
"%d Tage",
|
||||||
"Navigation umschalten",
|
"%d days (2nd plural)",
|
||||||
"%d seconds": ["%d Sekunde", "%d Sekunden"],
|
"%d days (3rd plural)"
|
||||||
"%d minutes": ["%d Minute", "%d Minuten"],
|
],
|
||||||
"%d hours": ["%d Stunde", "%d Stunden"],
|
"%d weeks": [
|
||||||
"%d days": ["%d Tag", "%d Tage"],
|
"%d Woche",
|
||||||
"%d weeks": ["%d Woche", "%d Wochen"],
|
"%d Wochen",
|
||||||
"%d months": ["%d Monat", "%d Monate"],
|
"%d weeks (2nd plural)",
|
||||||
"%d years": ["%d Jahr", "%d Jahre"],
|
"%d weeks (3rd plural)"
|
||||||
"Never":
|
],
|
||||||
"Nie",
|
"%d months": [
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d Monat",
|
||||||
"Hinweis: Dies ist ein Versuchsdienst. Daten können jederzeit gelöscht werden. Kätzchen werden sterben wenn du diesen Dienst missbrauchst.",
|
"%d Monate",
|
||||||
"This document will expire in %d seconds.":
|
"%d months (2nd plural)",
|
||||||
["Dieses Dokument läuft in einer Sekunde ab.", "Dieses Dokument läuft in %d Sekunden ab."],
|
"%d months (3rd plural)"
|
||||||
"This document will expire in %d minutes.":
|
],
|
||||||
["Dieses Dokument läuft in einer Minute ab.", "Dieses Dokument läuft in %d Minuten ab."],
|
"%d years": [
|
||||||
"This document will expire in %d hours.":
|
"%d Jahr",
|
||||||
["Dieses Dokument läuft in einer Stunde ab.", "Dieses Dokument läuft in %d Stunden ab."],
|
"%d Jahre",
|
||||||
"This document will expire in %d days.":
|
"%d years (2nd plural)",
|
||||||
["Dieses Dokument läuft in einem Tag ab.", "Dieses Dokument läuft in %d Tagen ab."],
|
"%d years (3rd plural)"
|
||||||
"This document will expire in %d months.":
|
],
|
||||||
["Dieses Dokument läuft in einem Monat ab.", "Dieses Dokument läuft in %d Monaten ab."],
|
"Never": "Nie",
|
||||||
"Please enter the password for this paste:":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Hinweis: Dies ist ein Versuchsdienst. Daten können jederzeit gelöscht werden. Kätzchen werden sterben, wenn du diesen Dienst missbrauchst.",
|
||||||
"Bitte gib das Passwort für diesen Text ein:",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Dieses Dokument läuft in einer Sekunde ab.",
|
||||||
"Konnte Daten nicht entschlüsseln (Falscher Schlüssel?)",
|
"Dieses Dokument läuft in %d Sekunden ab.",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Dieses Dokument läuft in %d Sekunden ab.",
|
||||||
"Konnte das Paste nicht löschen, es wurde nicht im Einmal-Modus gespeichert.",
|
"Dieses Dokument läuft in %d Sekunden ab."
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
],
|
||||||
"DIESER TEXT IST NUR FÜR DICH GEDACHT. Schließe das Fenster nicht, diese Nachricht kann nur einmal geöffnet werden.",
|
"This document will expire in %d minutes.": [
|
||||||
"Could not decrypt comment; Wrong key?":
|
"Dieses Dokument läuft in einer Minute ab.",
|
||||||
"Konnte Kommentar nicht entschlüsseln; Falscher Schlüssel?",
|
"Dieses Dokument läuft in %d Minuten ab.",
|
||||||
"Reply":
|
"Dieses Dokument läuft in %d Minuten ab.",
|
||||||
"Antworten",
|
"Dieses Dokument läuft in %d Minuten ab."
|
||||||
"Anonymous":
|
],
|
||||||
"Anonym",
|
"This document will expire in %d hours.": [
|
||||||
"Avatar generated from IP address":
|
"Dieses Dokument läuft in einer Stunde ab.",
|
||||||
"Avatar (generiert aus der IP-Adresse)",
|
"Dieses Dokument läuft in %d Stunden ab.",
|
||||||
"Add comment":
|
"This document will expire in %d hours (2nd plural)",
|
||||||
"Kommentar hinzufügen",
|
"This document will expire in %d hours (3rd plural)"
|
||||||
"Optional nickname…":
|
],
|
||||||
"Optionales Pseudonym…",
|
"This document will expire in %d days.": [
|
||||||
"Post comment":
|
"Dieses Dokument läuft in einem Tag ab.",
|
||||||
"Kommentar absenden",
|
"Dieses Dokument läuft in %d Tagen ab.",
|
||||||
"Sending comment…":
|
"Dieses Dokument läuft in %d Tagen ab.",
|
||||||
"Sende Kommentar…",
|
"Dieses Dokument läuft in %d Tagen ab."
|
||||||
"Comment posted.":
|
],
|
||||||
"Kommentar gesendet.",
|
"This document will expire in %d months.": [
|
||||||
"Could not refresh display: %s":
|
"Dieses Dokument läuft in einem Monat ab.",
|
||||||
"Konnte Ansicht nicht aktualisieren: %s",
|
"Dieses Dokument läuft in %d Monaten ab.",
|
||||||
"unknown status":
|
"Dieses Dokument läuft in %d Monaten ab.",
|
||||||
"Unbekannter Grund",
|
"Dieses Dokument läuft in %d Monaten ab."
|
||||||
"server error or not responding":
|
],
|
||||||
"Fehler auf dem Server oder keine Antwort vom Server",
|
"Please enter the password for this paste:": "Bitte gib das Passwort für diesen Text ein:",
|
||||||
"Could not post comment: %s":
|
"Could not decrypt data (Wrong key?)": "Konnte Daten nicht entschlüsseln (Falscher Schlüssel?)",
|
||||||
"Konnte Kommentar nicht senden: %s",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Konnte das Paste nicht löschen, es wurde nicht im Einmal-Modus gespeichert.",
|
||||||
"Please move your mouse for more entropy…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "DIESER TEXT IST NUR FÜR DICH GEDACHT. Schließe das Fenster nicht, diese Nachricht kann nur einmal geöffnet werden.",
|
||||||
"Bitte bewege Deine Maus um die Entropie zu erhöhen…",
|
"Could not decrypt comment; Wrong key?": "Konnte Kommentar nicht entschlüsseln; Falscher Schlüssel?",
|
||||||
"Sending paste…":
|
"Reply": "Antworten",
|
||||||
"Sende Paste…",
|
"Anonymous": "Anonym",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Avatar generated from IP address": "Avatar (generiert aus der IP-Adresse)",
|
||||||
"Dein Paste ist unter <a id=\"pasteurl\" href=\"%s\">%s</a> zu finden <span id=\"copyhint\">(Drücke [Strg]+[c] um den Link zu kopieren)</span>",
|
"Add comment": "Kommentar hinzufügen",
|
||||||
"Delete data":
|
"Optional nickname…": "Optionales Pseudonym…",
|
||||||
"Lösche Daten",
|
"Post comment": "Kommentar absenden",
|
||||||
"Could not create paste: %s":
|
"Sending comment…": "Sende Kommentar…",
|
||||||
"Konnte Paste nicht erstellen: %s",
|
"Comment posted.": "Kommentar gesendet.",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Could not refresh display: %s": "Ansicht konnte nicht aktualisiert werden: %s",
|
||||||
"Konnte Paste nicht entschlüsseln: Der Schlüssel fehlt in der Adresse (Hast du eine Umleitung oder einen URL-Verkürzer benutzt, der Teile der Adresse entfernt?)",
|
"unknown status": "Unbekannter Grund",
|
||||||
|
"server error or not responding": "Fehler auf dem Server oder keine Antwort vom Server",
|
||||||
|
"Could not post comment: %s": "Konnte Kommentar nicht senden: %s",
|
||||||
|
"Sending paste…": "Sende Paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Dein Text ist unter <a id=\"pasteurl\" href=\"%s\">%s</a> zu finden <span id=\"copyhint\">(Drücke [Strg]+[c] um den Link zu kopieren)</span>",
|
||||||
|
"Delete data": "Lösche Daten",
|
||||||
|
"Could not create paste: %s": "Text konnte nicht erstellt werden: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Konnte Paste nicht entschlüsseln: Der Schlüssel fehlt in der Adresse (Hast du eine Umleitung oder einen URL-Verkürzer benutzt, der Teile der Adresse entfernt?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Format",
|
"Format": "Format",
|
||||||
"Plain Text": "Nur Text",
|
"Plain Text": "Nur Text",
|
||||||
"Source Code": "Quellcode",
|
"Source Code": "Quellcode",
|
||||||
@@ -132,28 +147,43 @@
|
|||||||
"Cloned: '%s'": "Geklont: '%s'",
|
"Cloned: '%s'": "Geklont: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "Die geklonte Datei '%s' wurde angehängt.",
|
"The cloned file '%s' was attached to this paste.": "Die geklonte Datei '%s' wurde angehängt.",
|
||||||
"Attach a file": "Datei anhängen",
|
"Attach a file": "Datei anhängen",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "Alternativ Drag & Drop einer Datei oder einfügen eines Bildes aus der Zwischenablage",
|
"alternatively drag & drop a file or paste an image from the clipboard": "Eine Datei kann auch durch ziehen und loslassen ausgewählt oder ein Bild aus der Zwischenablage einfügt werden.",
|
||||||
"File too large, to display a preview. Please download the attachment.": "Datei zu groß, um als Vorschau angezeigt zu werden. Bitte Anhang herunterladen.",
|
"File too large, to display a preview. Please download the attachment.": "Datei zu groß, um als Vorschau angezeigt zu werden. Bitte Anhang herunterladen.",
|
||||||
"Remove attachment": "Anhang entfernen",
|
"Remove attachment": "Anhang entfernen",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Dein Browser unterstützt das hochladen von verschlüsselten Dateien nicht. Bitte verwende einen neueren Browser.",
|
||||||
"Dein Browser unterstützt das hochladen von verschlüsselten Dateien nicht. Bitte verwende einen neueren Browser.",
|
|
||||||
"Invalid attachment.": "Ungültiger Datei-Anhang.",
|
"Invalid attachment.": "Ungültiger Datei-Anhang.",
|
||||||
"Options": "Optionen",
|
"Options": "Optionen",
|
||||||
"Shorten URL": "URL verkürzen",
|
"Shorten URL": "URL verkürzen",
|
||||||
"Editor": "Bearbeiten",
|
"Editor": "Bearbeiten",
|
||||||
"Preview": "Vorschau",
|
"Preview": "Vorschau",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "Der PATH muss bei %s mit einem \"%s\" enden. Bitte passe Deinen PATH in Deiner index.php an.",
|
||||||
"Der PATH muss bei %s mit einem \"%s\" enden. Bitte passe Deinen PATH in Deiner index.php an.",
|
"Decrypt": "Entschlüsseln",
|
||||||
"Decrypt":
|
"Enter password": "Passwort eingeben",
|
||||||
"Entschlüsseln",
|
|
||||||
"Enter password":
|
|
||||||
"Passwort eingeben",
|
|
||||||
"Loading…": "Lädt…",
|
"Loading…": "Lädt…",
|
||||||
"Decrypting paste…": "Entschlüssle Paste…",
|
"Decrypting paste…": "Entschlüssle Text…",
|
||||||
"Preparing new paste…": "Bereite neues Paste vor…",
|
"Preparing new paste…": "Bereite neuen Text vor…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Wenn diese Nachricht nicht mehr verschwindet, schau bitte in <a href=\"%s\">die FAQ</a> (Englisch), um zu sehen, wie der Fehler behoben werden kann.",
|
||||||
"Wenn diese Nachricht nicht mehr verschwindet, schau bitte in <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">die FAQ</a> (englisch), um zu sehen, wie der Fehler behoben werden kann.",
|
|
||||||
"+++ no paste text +++": "+++ kein Paste-Text +++",
|
"+++ no paste text +++": "+++ kein Paste-Text +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Text konnte nicht geladen werden: %s",
|
||||||
"Konnte Paste nicht laden: %s"
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Diese Webseite verwendet eine unsichere HTTP Verbindung! Bitte benutze sie nur zum Testen.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "<a href=\"%s\">Besuche diesen FAQ Eintrag</a> für weitere Informationen dazu.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Dein Browser benötigt möglicherweise eine HTTPS Verbindung um das WebCrypto API nutzen zu können. Versuche <a href=\"%s\">auf HTTPS zu wechseln</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Dein Browser unterstützt WebAssembly nicht, welches für zlib Komprimierung benötigt wird. Du kannst unkomprimierte Dokumente erzeugen, aber keine komprimierten lesen.",
|
||||||
|
"waiting on user to provide a password": "warte auf Passworteingabe durch Benutzer",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Konnte Daten nicht entschlüsseln. Hast Du das falsche Passwort eingegeben? Wiederhole den Vorgang mit dem oben stehenden Knopf.",
|
||||||
|
"Retry": "Wiederholen",
|
||||||
|
"Showing raw text…": "Rohtext wird angezeigt…",
|
||||||
|
"Notice:": "Hinweis:",
|
||||||
|
"This link will expire after %s.": "Diese Verknüpfung wird in %s ablaufen.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Diese Verknüpfung kann nur einmal geöffnet werden, verwende nicht den Zurück- oder Neu-laden-Knopf Deines Browsers.",
|
||||||
|
"Link:": "Verknüpfung:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Der Empfänger könnte Deine Zeitzone erfahren, möchtest Du die Zeit in UTC umwandeln?",
|
||||||
|
"Use Current Timezone": "Aktuelle Zeitzone verwenden",
|
||||||
|
"Convert To UTC": "In UTC umwandeln",
|
||||||
|
"Close": "Schliessen",
|
||||||
|
"Encrypted note on PrivateBin": "Verschlüsselte Notiz auf PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Besuche diese Verknüpfung um das Dokument zu sehen. Wird die URL an eine andere Person gegeben, so kann diese Person ebenfalls auf dieses Dokument zugreifen.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "Der URL-Verkürzer kann den Schlüssel in der URL enthüllen.",
|
||||||
|
"Save paste": "Text speichern"
|
||||||
}
|
}
|
||||||
189
i18n/el.json
Normal file
189
i18n/el.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "el",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/en.json
Normal file
189
i18n/en.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "en",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
308
i18n/es.json
308
i18n/es.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un \"pastebin\" en línea minimalista de código abierto, donde el servidor no tiene ningún conocimiento de los datos guardados. Los datos son cifrados/descifrados %sen el navegador%s usando 256 bits AES.",
|
||||||
"%s es un servicio de tipo \"Pastebin\" minimalista de código abierto, donde el servidor no tiene ningún conocimiento de los datos guardados. Los datos son cifrados/descifrados <i>en el navegador</i> usando 256 bits AES. Más información en la <a href=\"https://privatebin.info/\">página del proyecto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Más información en la <a href=\"https://privatebin.info/\">página del proyecto</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Porque la ignorancia es dicha",
|
||||||
"Porque la ignorancia es dicha",
|
|
||||||
"en": "es",
|
"en": "es",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "El \"paste\" no existe, ha caducado o ha sido eliminado.",
|
||||||
"El texto no existe, ha caducado o ha sido eliminado.",
|
"%s requires php %s or above to work. Sorry.": "%s requiere php %s o superior para funcionar. Lo siento.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requiere que la sección de configuración [%s] esté presente en el archivo de configuración.",
|
||||||
"%s requiere php %s o superior para funcionar. Lo siento.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Por favor espere %d segundo entre cada publicación.",
|
||||||
"%s requiere que la sección de configuración [%s] esté presente en el archivo de configuración.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Por favor espere %d segundos entre cada publicación.",
|
"Por favor espere %d segundos entre cada publicación.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Por favor espere %d segundos entre cada publicación.",
|
||||||
"El texto está limitado a %s de datos cifrados.",
|
"Por favor espere %d segundos entre cada publicación."
|
||||||
"Invalid data.":
|
],
|
||||||
"Datos inválidos.",
|
"Paste is limited to %s of encrypted data.": "El \"paste\" está limitado a %s de datos cifrados.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Datos inválidos.",
|
||||||
"Tienes mala suerte. Inténtalo de nuevo",
|
"You are unlucky. Try again.": "Tienes mala suerte. Inténtalo de nuevo",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Error al guardar el comentario. Lo siento.",
|
||||||
"Error al guardar el comentario. Lo siento.",
|
"Error saving paste. Sorry.": "Error al guardar el \"paste\". Lo siento",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "ID del \"paste\" inválido.",
|
||||||
"Error al guardar el texto. Lo siento",
|
"Paste is not of burn-after-reading type.": "El \"paste\" no es del tipo \"destruir despues de leer\".",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Token de eliminación erróneo. El \"paste\" no fue eliminado.",
|
||||||
"ID del texto inválido.",
|
"Paste was properly deleted.": "El \"paste\" se ha eliminado correctamente.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript es necesario para que %s funcione. Sentimos los inconvenientes ocasionados.",
|
||||||
"El texto no es del tipo \"destruir despues de leer\".",
|
"%s requires a modern browser to work.": "%s requiere un navegador moderno para funcionar.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Nuevo",
|
||||||
"Token de eliminación erróneo. El texto no fue eliminado.",
|
"Send": "Enviar",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Clonar",
|
||||||
"El texto se ha eliminado correctamente.",
|
"Raw text": "Texto sin formato",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Caducar en",
|
||||||
"JavaScript es necesario para que %s funcione.<br />Sentimos los inconvenientes ocasionados.",
|
"Burn after reading": "Destruir después de leer",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Discusión abierta",
|
||||||
"%s requiere un navegador moderno para funcionar.",
|
"Password (recommended)": "Contraseña (recomendado)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Discusión",
|
||||||
"¿Sigues usando Internet Explorer? Hazte un favor, cambia a un navegador moderno:",
|
"Toggle navigation": "Cambiar navegación",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Nuevo",
|
"%d segundo",
|
||||||
"Send":
|
"%d segundos",
|
||||||
"Enviar",
|
"%d segundos",
|
||||||
"Clone":
|
"%d segundos"
|
||||||
"Clonar",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Texto sin formato",
|
"%d minuto",
|
||||||
"Expires":
|
"%d minutos",
|
||||||
"Caducar en",
|
"%d minutos",
|
||||||
"Burn after reading":
|
"%d minutos"
|
||||||
"Destruir después de leer",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Discusión abierta",
|
"%d hora",
|
||||||
"Password (recommended)":
|
"%d horas",
|
||||||
"Contraseña (recomendado)",
|
"%d horas",
|
||||||
"Discussion":
|
"%d horas"
|
||||||
"Discusión",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Cambiar navegación",
|
"%d día",
|
||||||
"%d seconds": ["%d segundo", "%d segundos"],
|
"%d días",
|
||||||
"%d minutes": ["%d minuto", "%d minutos"],
|
"%d días",
|
||||||
"%d hours": ["%d hora", "%d horas"],
|
"%d días"
|
||||||
"%d days": ["%d día", "%d días"],
|
],
|
||||||
"%d weeks": ["%d semana", "%d semanas"],
|
"%d weeks": [
|
||||||
"%d months": ["%d mes", "%d meses"],
|
"%d semana",
|
||||||
"%d years": ["%d año", "%d años"],
|
"%d semanas",
|
||||||
"Never":
|
"%d semanas",
|
||||||
"Nunca",
|
"%d semanas"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Nota: Este es un servicio de prueba. Los datos pueden ser eliminados en cualquier momento. Gatitos morirán si se abusa de este servicio.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d mes",
|
||||||
["Este documento caducará en un segundo.", "Este documento caducará en %d segundos."],
|
"%d meses",
|
||||||
"This document will expire in %d minutes.":
|
"%d minutos",
|
||||||
["Este documento caducará en un minuto.", "Este documento caducará en %d minutos."],
|
"%d meses"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Este documento caducará en una hora.", "Este documento caducará en %d horas."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d año",
|
||||||
["Este documento caducará en un día.", "Este documento caducará en %d días."],
|
"%d años",
|
||||||
"This document will expire in %d months.":
|
"%d años",
|
||||||
["Este documento caducará en un mes.", "Este documento caducará en %d meses."],
|
"%d años"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Por favor ingrese la contraseña para este documento:",
|
"Never": "Nunca",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Nota: Este es un servicio de prueba. Los datos pueden ser eliminados en cualquier momento. Morirán gatitos si abusas de este servicio.",
|
||||||
"No fue posible descifrar los datos (¿Clave errónea?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Este documento caducará en un segundo.",
|
||||||
"No fue posible eliminar el documento, no fue guardado en modo \"destruir despues de leer\".",
|
"Este documento caducará en %d segundos.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Este documento caducará en %d segundos",
|
||||||
"SÓLO PARA TUS OJOS. No cierre esta ventana, este mensaje no se puede volver a mostrar.",
|
"Este documento caducará en %d segundos"
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"No se pudo descifrar el comentario; ¿Llave incorrecta?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Este documento caducará en un minuto.",
|
||||||
"Responder",
|
"Este documento caducará en %d minutos.",
|
||||||
"Anonymous":
|
"Este documento caducará en %d minutos",
|
||||||
"Anónimo",
|
"Este documento caducará en %d minutos"
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Avatar generado a partir de la dirección IP",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Este documento caducará en una hora.",
|
||||||
"Añadir comentario",
|
"Este documento caducará en %d horas.",
|
||||||
"Optional nickname…":
|
"Este documento caducará en %d horas",
|
||||||
"Seudónimo opcional…",
|
"Este documento caducará en %d horas"
|
||||||
"Post comment":
|
],
|
||||||
"Publicar comentario",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Este documento caducará en un día.",
|
||||||
"Enviando comentario…",
|
"Este documento caducará en %d días.",
|
||||||
"Comment posted.":
|
"Este documento caducará en %d días",
|
||||||
"Comentario publicado.",
|
"Este documento caducará en %d días"
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"No se pudo actualizar la vista: %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Este documento caducará en un mes.",
|
||||||
"Estado desconocido",
|
"Este documento caducará en %d meses.",
|
||||||
"server error or not responding":
|
"Este documento caducará en %d meses",
|
||||||
"Error del servidor o el servidor no responde",
|
"Este documento caducará en %d meses"
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"No fue posible publicar comentario: %s",
|
"Please enter the password for this paste:": "Por favor ingrese la contraseña para este \"paste\":",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "No fue posible descifrar los datos (¿Clave errónea?)",
|
||||||
"Por favor, mueva el ratón para mayor entropía…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "No fue posible eliminar el documento, no fue guardado en modo \"destruir despues de leer\".",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "SÓLO PARA TUS OJOS. No cierres esta ventana, este mensaje no se puede volver a mostrar.",
|
||||||
"Enviando texto…",
|
"Could not decrypt comment; Wrong key?": "No se pudo descifrar el comentario; ¿Llave incorrecta?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Responder",
|
||||||
"Su texto está en <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Presione [Ctrl]+[c] para copiar)</span>",
|
"Anonymous": "Anónimo",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Avatar generado a partir de la dirección IP",
|
||||||
"Eliminar datos",
|
"Add comment": "Añadir comentario",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Seudónimo opcional…",
|
||||||
"No fue posible crear el archivo: %s",
|
"Post comment": "Publicar comentario",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Enviando comentario…",
|
||||||
"No es posible descifrar el documento: Falta la clave de descifrado en la URL (¿Utilizó un redirector o un acortador de URL que quite parte de la URL?)",
|
"Comment posted.": "Comentario publicado.",
|
||||||
|
"Could not refresh display: %s": "No se pudo actualizar la vista: %s",
|
||||||
|
"unknown status": "Estado desconocido",
|
||||||
|
"server error or not responding": "Error del servidor o el servidor no responde",
|
||||||
|
"Could not post comment: %s": "No fue posible publicar comentario: %s",
|
||||||
|
"Sending paste…": "Enviando \"paste\"…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Su texto está en <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Presione [Ctrl]+[c] para copiar)</span>",
|
||||||
|
"Delete data": "Eliminar datos",
|
||||||
|
"Could not create paste: %s": "No fue posible crear el archivo: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "No es posible descifrar el documento: Falta la clave de descifrado en la URL (¿Utilizó un redirector o un acortador de URL que quite parte de la URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Formato",
|
"Format": "Formato",
|
||||||
"Plain Text": "Texto sin formato",
|
"Plain Text": "Texto sin formato",
|
||||||
"Source Code": "Código fuente",
|
"Source Code": "Código fuente",
|
||||||
@@ -132,28 +147,43 @@
|
|||||||
"Cloned: '%s'": "Clonado: '%s'.",
|
"Cloned: '%s'": "Clonado: '%s'.",
|
||||||
"The cloned file '%s' was attached to this paste.": "El archivo clonado '%s' ha sido adjuntado a este texto.",
|
"The cloned file '%s' was attached to this paste.": "El archivo clonado '%s' ha sido adjuntado a este texto.",
|
||||||
"Attach a file": "Adjuntar archivo",
|
"Attach a file": "Adjuntar archivo",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternativamente, arrastre y suelte un archivo o pegue una imagen desde el portapapeles",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "Archivo demasiado grande para mostrar una vista previa. Por favor, descargue el archivo adjunto.",
|
||||||
"Remove attachment": "Remover adjunto",
|
"Remove attachment": "Remover adjunto",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Tu navegador no admite la carga de archivos cifrados. Utilice un navegador más reciente.",
|
||||||
"Tu navegador no admite la carga de archivos cifrados. Utilice un navegador más reciente.",
|
|
||||||
"Invalid attachment.": "Adjunto inválido.",
|
"Invalid attachment.": "Adjunto inválido.",
|
||||||
"Options": "Opciones",
|
"Options": "Opciones",
|
||||||
"Shorten URL": "Acortar URL",
|
"Shorten URL": "Acortar URL",
|
||||||
"Editor": "Editor",
|
"Editor": "Editor",
|
||||||
"Preview": "Previsualización",
|
"Preview": "Previsualización",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requiere que el PATH termine en \"%s\". Por favor, actualice el PATH en su index.php.",
|
||||||
"%s requiere que el PATH termine en \"%s\". Por favor, actualice el PATH en su index.php.",
|
"Decrypt": "Descifrar",
|
||||||
"Decrypt":
|
"Enter password": "Ingrese contraseña",
|
||||||
"Descifrar",
|
|
||||||
"Enter password":
|
|
||||||
"Ingrese contraseña",
|
|
||||||
"Loading…": "Cargando…",
|
"Loading…": "Cargando…",
|
||||||
"Decrypting paste…": "Descifrando texto…",
|
"Decrypting paste…": "Descifrando \"paste\"…",
|
||||||
"Preparing new paste…": "Preparando texto nuevo…",
|
"Preparing new paste…": "Preparando \"paste\" nuevo…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "En caso de que este mensaje nunca desaparezca por favor revise <a href=\"%s\">este FAQ para obtener información para solucionar problemas</a>.",
|
||||||
"En caso de que este mensaje nunca desaparezca por favor revise <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">este FAQ para obtener información para solucionar problemas</a>.",
|
"+++ no paste text +++": "+++ \"paste\" sin texto +++",
|
||||||
"+++ no paste text +++": "+++ sin texto +++",
|
"Could not get paste data: %s": "No se pudieron obtener los datos: %s",
|
||||||
"Could not get paste data: %s":
|
"QR code": "Código QR",
|
||||||
"Could not get paste data: %s"
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "¡Este sitio está usando una conexión HTTP insegura! Por favor úselo solo para pruebas.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Para más información <a href=\"%s\">consulte esta entrada de las preguntas frecuentes</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Su navegador puede requerir una conexión HTTPS para soportar la API de WebCrypto. Intente <a href=\"%s\">cambiar a HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Su navegador no es compatible con WebAssembly, que se utiliza para la compresión zlib. Puede crear documentos sin comprimir, pero no puede leer los comprimidos.",
|
||||||
|
"waiting on user to provide a password": "esperando que el usuario proporcione una contraseña",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "No se pudieron descifrar los datos. ¿Ingresó una contraseña incorrecta? Vuelva a intentarlo con el botón de la parte superior.",
|
||||||
|
"Retry": "Reintentar",
|
||||||
|
"Showing raw text…": "Mostrando texto sin formato…",
|
||||||
|
"Notice:": "Aviso:",
|
||||||
|
"This link will expire after %s.": "Este enlace expirará después de %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Solo se puede acceder a este enlace una vez, no use el botón Atrás o Actualizar en su navegador.",
|
||||||
|
"Link:": "Enlace:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "El destinatario puede descubrir su zona horaria, ¿convertir la hora a UTC?",
|
||||||
|
"Use Current Timezone": "Usar Zona Horaria Actual",
|
||||||
|
"Convert To UTC": "Convertir A UTC",
|
||||||
|
"Close": "Cerrar",
|
||||||
|
"Encrypted note on PrivateBin": "Nota cifrada en PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visite este enlace para ver la nota. Dar la URL a cualquier persona también les permite acceder a la nota.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "El acortador de URL puede exponer su clave de descifrado en el URL.",
|
||||||
|
"Save paste": "Guardar \"paste\""
|
||||||
}
|
}
|
||||||
189
i18n/et.json
Normal file
189
i18n/et.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s on minimalistlik, avatud lähtekoodiga online pastebin, kus serveril pole kleebitud andmete kohta teadmist. Andmed krüpteeritakse/dekrüpteeritakse %sbrauseris%s kasutades 256-bitist AES-i.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Lisateave <a href=\"https://privatebin.info/\">projekti lehel</a>.",
|
||||||
|
"Because ignorance is bliss": "Kuna teadmatus on õndsus",
|
||||||
|
"en": "et",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Kleebet ei eksisteeri, on aegunud või on kustutatud.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s vajab, et oleks php %s või kõrgem, et töötada. Vabandame.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vajab, et [%s] seadistamise jaotis oleks olemas konfiguratsioonifailis.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Palun oota %d sekund iga postituse vahel.",
|
||||||
|
"Palun oota %d sekundit iga postituse vahel.",
|
||||||
|
"Palun oota %d sekundit iga postituse vahel.",
|
||||||
|
"Palun oota %d sekundit iga postituse vahel."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Kleepe limiit on %s krüpteeritud andmeid.",
|
||||||
|
"Invalid data.": "Valed andmed.",
|
||||||
|
"You are unlucky. Try again.": "Sul ei vea. Proovi uuesti.",
|
||||||
|
"Error saving comment. Sorry.": "Viga kommentaari salvestamisel. Vabandame.",
|
||||||
|
"Error saving paste. Sorry.": "Viga kleepe salvestamisel. Vabandame.",
|
||||||
|
"Invalid paste ID.": "Vale kleepe ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Kleebe ei ole põleta-pärast-lugemist tüüpi.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Vale kustutamiskood. Kleebet ei kustutatud.",
|
||||||
|
"Paste was properly deleted.": "Kleebe kustutati korralikult.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript on vajalik %s'i töötamiseks. Vabandame ebamugavuste pärast.",
|
||||||
|
"%s requires a modern browser to work.": "%s vajab töötamiseks kaasaegset brauserit.",
|
||||||
|
"New": "Uus",
|
||||||
|
"Send": "Saada",
|
||||||
|
"Clone": "Klooni",
|
||||||
|
"Raw text": "Lähtetekst",
|
||||||
|
"Expires": "Aegub",
|
||||||
|
"Burn after reading": "Põleta pärast lugemist",
|
||||||
|
"Open discussion": "Avatud arutelu",
|
||||||
|
"Password (recommended)": "Parool (soovitatav)",
|
||||||
|
"Discussion": "Arutelu",
|
||||||
|
"Toggle navigation": "Näita menüüd",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d sekund",
|
||||||
|
"%d sekundit",
|
||||||
|
"%d sekundit",
|
||||||
|
"%d sekundit"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minut",
|
||||||
|
"%d minutit",
|
||||||
|
"%d minutit",
|
||||||
|
"%d minutit"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d tund",
|
||||||
|
"%d tundi",
|
||||||
|
"%d tundi",
|
||||||
|
"%d tundi"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d päev",
|
||||||
|
"%d päeva",
|
||||||
|
"%d päeva",
|
||||||
|
"%d päeva"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d nädal",
|
||||||
|
"%d nädalat",
|
||||||
|
"%d nädalat",
|
||||||
|
"%d nädalat"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d kuu",
|
||||||
|
"%d kuud",
|
||||||
|
"%d kuud",
|
||||||
|
"%d kuud"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d aasta",
|
||||||
|
"%d aastat",
|
||||||
|
"%d aastat",
|
||||||
|
"%d aastat"
|
||||||
|
],
|
||||||
|
"Never": "Mitte kunagi",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Märge: See on testimisteenus: Andmeid võidakse igal ajal kustutada. Kiisupojad hukuvad, kui seda teenust kuritarvitad.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"See dokument aegub %d sekundi pärast.",
|
||||||
|
"See dokument aegub %d sekundi pärast.",
|
||||||
|
"See dokument aegub %d sekundi pärast.",
|
||||||
|
"See dokument aegub %d sekundi pärast."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"See dokument aegub %d minuti pärast.",
|
||||||
|
"See dokument aegub %d minuti pärast.",
|
||||||
|
"See dokument aegub %d minuti pärast.",
|
||||||
|
"See dokument aegub %d minuti pärast."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"See dokument aegub %d tunni pärast.",
|
||||||
|
"See dokument aegub %d tunni pärast.",
|
||||||
|
"See dokument aegub %d tunni pärast.",
|
||||||
|
"See dokument aegub %d tunni pärast."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"See dokument aegub %d päeva pärast.",
|
||||||
|
"See dokument aegub %d päeva pärast.",
|
||||||
|
"See dokument aegub %d päeva pärast.",
|
||||||
|
"See dokument aegub %d päeva pärast."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"See dokument aegub %d kuu pärast.",
|
||||||
|
"See dokument aegub %d kuu pärast.",
|
||||||
|
"See dokument aegub %d kuu pärast.",
|
||||||
|
"See dokument aegub %d kuu pärast."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Palun sisesta selle kleepe parool:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Ei suutnud andmeid dekrüpteerida (Vale võti?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Ei suutnud kleebet kustutada, seda ei salvestatud põleta pärast lugemist režiimis.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "AINULT SINU SILMADELE. Ära sulge seda akent, seda sõnumit ei saa enam kuvada.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Ei suutnud kommentaari dekrüpteerida; Vale võti?",
|
||||||
|
"Reply": "Vasta",
|
||||||
|
"Anonymous": "Anonüümne",
|
||||||
|
"Avatar generated from IP address": "Avatar genereeritud IP aadressi põhjal",
|
||||||
|
"Add comment": "Lisa kommentaar",
|
||||||
|
"Optional nickname…": "Valikuline hüüdnimi…",
|
||||||
|
"Post comment": "Postita kommentaar",
|
||||||
|
"Sending comment…": "Kommentaari saatmine…",
|
||||||
|
"Comment posted.": "Kommentaar postitatud.",
|
||||||
|
"Could not refresh display: %s": "Ei suutnud kuva värskendada: %s",
|
||||||
|
"unknown status": "tundmatu staatus",
|
||||||
|
"server error or not responding": "serveri viga või ei vasta",
|
||||||
|
"Could not post comment: %s": "Ei suutnud kommentaari postitada: %s",
|
||||||
|
"Sending paste…": "Kleepe saatmine…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Sinu kleebe on <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Kopeerimiseks vajuta [Ctrl]+[c])</span>",
|
||||||
|
"Delete data": "Kustuta andmed",
|
||||||
|
"Could not create paste: %s": "Ei suutnud kleebet luua: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Ei suutnud kleebet dekrüpteerida: Dekrüpteerimisvõti on URL-ist puudu (Kas kasutasid ümbersuunajat või URL-i lühendajat, mis eemaldab osa URL-ist?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Formaat",
|
||||||
|
"Plain Text": "Lihttekst",
|
||||||
|
"Source Code": "Lähtekood",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Laadi manus alla",
|
||||||
|
"Cloned: '%s'": "Kloonitud: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "Kloonitud fail '%s' manustati sellele kleepele.",
|
||||||
|
"Attach a file": "Manusta fail",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "teise võimalusena lohista fail või kleebi pilt lõikelaualt",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "Fail on eelvaate kuvamiseks liiga suur. Palun laadi manus alla.",
|
||||||
|
"Remove attachment": "Eemalda manus",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Sinu brauser ei toeta krüpteeritud failide üleslaadimist. Palun kasuta uuemat brauserit.",
|
||||||
|
"Invalid attachment.": "Sobimatu manus.",
|
||||||
|
"Options": "Valikud",
|
||||||
|
"Shorten URL": "Lühenda URL",
|
||||||
|
"Editor": "Toimetaja",
|
||||||
|
"Preview": "Eelvaade",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s vajab, et PATH lõppeks järgmisega: \"%s\". Palun uuenda PATH-i oma index.php failis.",
|
||||||
|
"Decrypt": "Dekrüpteeri",
|
||||||
|
"Enter password": "Sisesta parool",
|
||||||
|
"Loading…": "Laadimine…",
|
||||||
|
"Decrypting paste…": "Kleepe dekrüpteerimine…",
|
||||||
|
"Preparing new paste…": "Uue kleepe ettevalmistamine…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Kui see sõnum ei kao, palun vaata <a href=\"%s\">seda KKK-d, et saada tõrkeotsinguks teavet.</a>.",
|
||||||
|
"+++ no paste text +++": "+++ kleepe tekst puudub +++",
|
||||||
|
"Could not get paste data: %s": "Ei suutnud saada kleepe andmeid: %s",
|
||||||
|
"QR code": "QR kood",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "See veebisait kasutab ebaturvalist HTTP ühendust! Palun kasuta seda ainult katsetamiseks.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Lisateabe saamiseks <a href=\"%s\">vaata seda KKK sissekannet</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Sinu brauser võib vajada HTTPS ühendust, et toetada WebCrypto API-d. Proovi <a href=\"%s\">üle minna HTTPS-ile</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Sinu brauser ei toeta WebAssembly't, mida kasutatakse zlib tihendamiseks. Sa saad luua tihendamata dokumente, kuid ei saa lugeda tihendatuid.",
|
||||||
|
"waiting on user to provide a password": "ootan parooli sisestamist kasutajalt",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Ei suutnud andmeid dekrüpteerida. Kas sisestasid vale parooli? Proovi uuesti üleval asuva nupuga.",
|
||||||
|
"Retry": "Proovi uuesti",
|
||||||
|
"Showing raw text…": "Lähteteksti näitamine…",
|
||||||
|
"Notice:": "Teade:",
|
||||||
|
"This link will expire after %s.": "See link aegub: %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Sellele lingile saab vaid üks kord ligi pääseda, ära kasuta tagasi või värskenda nuppe sinu brauseris.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Saaja võib saada teada sinu ajavööndi, kas teisendada aeg UTC-ks?",
|
||||||
|
"Use Current Timezone": "Kasuta praegust ajavööndit",
|
||||||
|
"Convert To UTC": "Teisenda UTC-ks",
|
||||||
|
"Close": "Sulge",
|
||||||
|
"Encrypted note on PrivateBin": "Krüpteeritud kiri PrivateBin-is",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Kirja nägemiseks külasta seda linki. Teistele URL-i andmine lubab ka neil ligi pääseda kirjale.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL-i lühendaja võib paljastada sinu dekrüpteerimisvõtme URL-is.",
|
||||||
|
"Save paste": "Salvesta kleebe"
|
||||||
|
}
|
||||||
299
i18n/fr.json
299
i18n/fr.json
@@ -1,129 +1,135 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et open source, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées %sdans le navigateur%s par un chiffrement AES 256 bits.",
|
||||||
"%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et open source, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées <i>dans le navigateur</i> par un chiffrement AES 256 bits. Plus d'informations sur <a href=\"https://privatebin.info/\">la page du projet</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Plus d'informations sur <a href=\"https://privatebin.info/\">la page du projet</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Parce que l'ignorance c'est le bonheur",
|
||||||
"Parce que l'ignorance c'est le bonheur",
|
|
||||||
"en": "fr",
|
"en": "fr",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Le paste n'existe pas, a expiré, ou a été supprimé.",
|
||||||
"Le paste n'existe pas, a expiré, ou a été supprimé.",
|
"%s requires php %s or above to work. Sorry.": "Désolé, %s nécessite php %s ou supérieur pour fonctionner.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s a besoin de la section de configuration [%s] dans le fichier de configuration pour fonctionner.",
|
||||||
"Désolé, %s nécessite php %s ou supérieur pour fonctionner.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Merci d'attendre %d seconde entre chaque publication.",
|
||||||
"%s a besoin de la section de configuration [%s] dans le fichier de configuration pour fonctionner.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Merci d'attendre %d secondes entre chaque publication.",
|
"Merci d'attendre %d secondes entre chaque publication.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Merci d'attendre %d secondes entre chaque publication.",
|
||||||
"Le paste est limité à %s de données chiffrées.",
|
"Merci d'attendre %d secondes entre chaque publication."
|
||||||
"Invalid data.":
|
],
|
||||||
"Données invalides.",
|
"Paste is limited to %s of encrypted data.": "Le paste est limité à %s de données chiffrées.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Données invalides.",
|
||||||
"Pas de chance. Essayez encore.",
|
"You are unlucky. Try again.": "Pas de chance. Essayez encore.",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Erreur lors de la sauvegarde du commentaire.",
|
||||||
"Erreur lors de la sauvegarde du commentaire.",
|
"Error saving paste. Sorry.": "Erreur lors de la sauvegarde du paste. Désolé.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "ID du paste invalide.",
|
||||||
"Erreur lors de la sauvegarde du paste. Désolé.",
|
"Paste is not of burn-after-reading type.": "Le paste n'est pas de type \"Effacer après lecture\".",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Jeton de suppression incorrect. Le paste n'a pas été supprimé.",
|
||||||
"ID du paste invalide.",
|
"Paste was properly deleted.": "Le paste a été correctement supprimé.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript est requis pour faire fonctionner %s. Désolé pour cet inconvénient.",
|
||||||
"Le paste n'est pas de type \"Effacer après lecture\".",
|
"%s requires a modern browser to work.": "%s nécessite un navigateur moderne pour fonctionner.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Nouveau",
|
||||||
"Jeton de suppression incorrect. Le paste n'a pas été supprimé.",
|
"Send": "Envoyer",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Cloner",
|
||||||
"Le paste a été correctement supprimé.",
|
"Raw text": "Texte brut",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Expire",
|
||||||
"JavaScript est requis pour faire fonctionner %s. <br />Désolé pour cet inconvénient.",
|
"Burn after reading": "Effacer après lecture",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Autoriser la discussion",
|
||||||
"%s nécessite un navigateur moderne pour fonctionner.",
|
"Password (recommended)": "Mot de passe (recommandé)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Discussion",
|
||||||
"Encore sur Internet Explorer ? Faites-vous une faveur, passez à un navigateur moderne :",
|
"Toggle navigation": "Basculer la navigation",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Nouveau",
|
"%d seconde",
|
||||||
"Send":
|
"%d secondes",
|
||||||
"Envoyer",
|
"%d seconds (2nd plural)",
|
||||||
"Clone":
|
"%d seconds (3rd plural)"
|
||||||
"Cloner",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Texte brut",
|
"%d minute",
|
||||||
"Expires":
|
"%d minutes",
|
||||||
"Expire",
|
"%d minutes (2nd plural)",
|
||||||
"Burn after reading":
|
"%d minutes (3rd plural)"
|
||||||
"Effacer après lecture",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Autoriser la discussion",
|
"%d heure",
|
||||||
"Password (recommended)":
|
"%d heures",
|
||||||
"Mot de passe (recommandé)",
|
"%d hours (2nd plural)",
|
||||||
"Discussion":
|
"%d hours (3rd plural)"
|
||||||
"Discussion",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Basculer la navigation",
|
"%d jour",
|
||||||
"%d seconds": ["%d seconde", "%d secondes"],
|
"%d jours",
|
||||||
"%d minutes": ["%d minute", "%d minutes"],
|
"%d days (2nd plural)",
|
||||||
"%d hours": ["%d heure", "%d heures"],
|
"%d days (3rd plural)"
|
||||||
"%d days": ["%d jour", "%d jours"],
|
],
|
||||||
"%d weeks": ["%d semaine", "%d semaines"],
|
"%d weeks": [
|
||||||
"%d months": ["%d mois", "%d mois"],
|
"%d semaine",
|
||||||
"%d years": ["%d an", "%d ans"],
|
"%d semaines",
|
||||||
"Never":
|
"%d weeks (2nd plural)",
|
||||||
"Jamais",
|
"%d weeks (3rd plural)"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Note : Ceci est un service de test : les données peuvent être supprimées à tout moment. Des chatons mourront si vous utilisez ce service de manière abusive.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d mois",
|
||||||
["Ce document expirera dans %d seconde.", "Ce document expirera dans %d secondes."],
|
"%d mois",
|
||||||
"This document will expire in %d minutes.":
|
"%d months (2nd plural)",
|
||||||
["Ce document expirera dans %d minute.", "Ce document expirera dans %d minutes."],
|
"%d months (3rd plural)"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Ce document expirera dans %d heure.", "Ce document expirera dans %d heures."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d an",
|
||||||
["Ce document expirera dans %d jour.", "Ce document expirera dans %d jours."],
|
"%d ans",
|
||||||
"This document will expire in %d months.":
|
"%d years (2nd plural)",
|
||||||
["Ce document expirera dans %d mois.", "Ce document expirera dans %d mois."],
|
"%d years (3rd plural)"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Entrez le mot de passe pour ce paste:",
|
"Never": "Jamais",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note : Ceci est un service de test : les données peuvent être supprimées à tout moment. Des chatons mourront si vous utilisez ce service de manière abusive.",
|
||||||
"Impossible de déchiffrer les données (mauvaise clé ?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Ce document expirera dans %d seconde.",
|
||||||
"Impossible de supprimer le paste, car il n'a pas été stocké en mode \"Effacer après lecture\".",
|
"Ce document expirera dans %d secondes.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"This document will expire in %d seconds (2nd plural)",
|
||||||
"POUR VOS YEUX UNIQUEMENT. Ne fermez pas cette fenêtre, ce paste ne pourra plus être affiché.",
|
"This document will expire in %d seconds (3rd plural)"
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Impossible de déchiffrer le commentaire ; mauvaise clé ?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Ce document expirera dans %d minute.",
|
||||||
"Répondre",
|
"Ce document expirera dans %d minutes.",
|
||||||
"Anonymous":
|
"Ce document expirera dans %d minutes.",
|
||||||
"Anonyme",
|
"Ce document expirera dans %d minutes."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Avatar généré à partir de l'adresse IP",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Ce document expirera dans %d heure.",
|
||||||
"Ajouter un commentaire",
|
"Ce document expirera dans %d heures.",
|
||||||
"Optional nickname…":
|
"Ce document expirera dans %d heures.",
|
||||||
"Pseudonyme optionnel…",
|
"Ce document expirera dans %d heures."
|
||||||
"Post comment":
|
],
|
||||||
"Poster le commentaire",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Ce document expirera dans %d jour.",
|
||||||
"Envoi du commentaire…",
|
"Ce document expirera dans %d jours.",
|
||||||
"Comment posted.":
|
"Ce document expirera dans %d jours.",
|
||||||
"Commentaire posté.",
|
"Ce document expirera dans %d jours."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Impossible de rafraichir l'affichage : %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Ce document expirera dans %d mois.",
|
||||||
"Statut inconnu",
|
"Ce document expirera dans %d mois.",
|
||||||
"server error or not responding":
|
"Ce document expirera dans %d mois.",
|
||||||
"Le serveur ne répond pas ou a rencontré une erreur",
|
"Ce document expirera dans %d mois."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Impossible de poster le commentaire : %s",
|
"Please enter the password for this paste:": "Entrez le mot de passe pour ce paste:",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Impossible de déchiffrer les données (mauvaise clé ?)",
|
||||||
"Merci de bouger votre souris pour plus d'entropie…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Impossible de supprimer le paste, car il n'a pas été stocké en mode \"Effacer après lecture\".",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "POUR VOS YEUX UNIQUEMENT. Ne fermez pas cette fenêtre, ce paste ne pourra plus être affiché.",
|
||||||
"Envoi du paste…",
|
"Could not decrypt comment; Wrong key?": "Impossible de déchiffrer le commentaire; mauvaise clé ?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Répondre",
|
||||||
"Votre paste est disponible à l'adresse <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Appuyez sur [Ctrl]+[c] pour copier)</span>",
|
"Anonymous": "Anonyme",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Avatar généré à partir de l'adresse IP",
|
||||||
"Supprimer les données du paste",
|
"Add comment": "Ajouter un commentaire",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Pseudonyme optionnel…",
|
||||||
"Impossible de créer le paste : %s",
|
"Post comment": "Poster le commentaire",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Envoi du commentaire…",
|
||||||
"Impossible de déchiffrer le paste : Clé de déchiffrement manquante dans l'URL (Avez-vous utilisé un redirecteur ou un site de réduction d'URL qui supprime une partie de l'URL ?)",
|
"Comment posted.": "Commentaire posté.",
|
||||||
|
"Could not refresh display: %s": "Impossible de rafraichir l'affichage : %s",
|
||||||
|
"unknown status": "Statut inconnu",
|
||||||
|
"server error or not responding": "Le serveur ne répond pas ou a rencontré une erreur",
|
||||||
|
"Could not post comment: %s": "Impossible de poster le commentaire : %s",
|
||||||
|
"Sending paste…": "Envoi du paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Votre paste est disponible à l'adresse <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Appuyez sur [Ctrl]+[c] pour copier)</span>",
|
||||||
|
"Delete data": "Supprimer les données du paste",
|
||||||
|
"Could not create paste: %s": "Impossible de créer le paste : %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Impossible de déchiffrer le paste : Clé de déchiffrement manquante dans l'URL (Avez-vous utilisé un redirecteur ou un site de réduction d'URL qui supprime une partie de l'URL ?)",
|
||||||
"B": "o",
|
"B": "o",
|
||||||
"KiB": "Kio",
|
"KiB": "Kio",
|
||||||
"MiB": "Mio",
|
"MiB": "Mio",
|
||||||
@@ -141,28 +147,43 @@
|
|||||||
"Cloned: '%s'": "Cloner '%s'",
|
"Cloned: '%s'": "Cloner '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "Le fichier cloné '%s' a été attaché à ce paste.",
|
"The cloned file '%s' was attached to this paste.": "Le fichier cloné '%s' a été attaché à ce paste.",
|
||||||
"Attach a file": "Attacher un fichier",
|
"Attach a file": "Attacher un fichier",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "au choix, glisser & déposer un fichier ou coller une image à partir du presse-papiers",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "Fichier trop volumineux, pour afficher un aperçu. Veuillez télécharger la pièce jointe.",
|
||||||
"Remove attachment": "Enlever l'attachement",
|
"Remove attachment": "Enlever la pièce jointe",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Votre navigateur ne supporte pas l'envoi de fichiers chiffrés. Merci d'utiliser un navigateur plus récent.",
|
||||||
"Votre navigateur ne supporte pas l'envoi de fichiers chiffrés. Merci d'utiliser un navigateur plus récent.",
|
"Invalid attachment.": "Pièce jointe invalide.",
|
||||||
"Invalid attachment.": "Attachement invalide.",
|
|
||||||
"Options": "Options",
|
"Options": "Options",
|
||||||
"Shorten URL": "Raccourcir URL",
|
"Shorten URL": "Raccourcir URL",
|
||||||
"Editor": "Éditer",
|
"Editor": "Éditer",
|
||||||
"Preview": "Prévisualiser",
|
"Preview": "Prévisualiser",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requiert que le PATH se termine dans un \"%s\". Veuillez mettre à jour le PATH dans votre index.php.",
|
||||||
"%s requiert que le PATH se termine dans un \"%s\". Veuillez mettre à jour le PATH dans votre index.php.",
|
"Decrypt": "Déchiffrer",
|
||||||
"Decrypt":
|
"Enter password": "Entrez le mot de passe",
|
||||||
"Déchiffrer",
|
|
||||||
"Enter password":
|
|
||||||
"Entrez le mot de passe",
|
|
||||||
"Loading…": "Chargement…",
|
"Loading…": "Chargement…",
|
||||||
"Decrypting paste…": "Déchiffrement du paste…",
|
"Decrypting paste…": "Déchiffrement du paste…",
|
||||||
"Preparing new paste…": "Préparation du paste…",
|
"Preparing new paste…": "Préparation du paste…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Si ce message ne disparaîssait pas, jetez un oeil à <a href=\"%s\">cette FAQ pour des idées de résolution</a> (en Anglais).",
|
||||||
"Si ce message ne disparaîssait pas, jetez un oeil à <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">cette FAQ pour des idées de résolution</a> (en Anglais).",
|
"+++ no paste text +++": "+++ pas de texte copié +++",
|
||||||
"+++ no paste text +++": "+++ pas de paste-text +++",
|
"Could not get paste data: %s": "Impossible d'obtenir les données du paste: %s",
|
||||||
"Could not get paste data: %s":
|
"QR code": "QR code",
|
||||||
"Could not get paste data: %s"
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Ce site web utilise une connexion HTTP non sécurisée ! Veuillez l’utiliser uniquement pour des tests.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Pour plus d'informations <a href=\"%s\">consultez cette rubrique de la FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Votre navigateur peut nécessiter une connexion HTTPS pour prendre en charge l’API WebCrypto. Essayez <a href=\"%s\">de passer en HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Votre navigateur ne prend pas en charge WebAssembly, utilisé pour la compression zlib. Vous pouvez créer des documents non compressés, mais vous ne pouvez pas lire les documents compressés.",
|
||||||
|
"waiting on user to provide a password": "en attendant que l'utilisateur fournisse un mot de passe",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Impossible de décrypter les données. Vous avez saisi un mot de passe incorrect ? Réessayez avec le bouton en haut.",
|
||||||
|
"Retry": "Réessayer",
|
||||||
|
"Showing raw text…": "Affichage du texte brut…",
|
||||||
|
"Notice:": "Avertissement :",
|
||||||
|
"This link will expire after %s.": "Ce lien expire après le %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Vous ne pouvez accéder à ce lien qu'une seule fois, n'utilisez pas le bouton précédent ou rafraîchir de votre navigateur.",
|
||||||
|
"Link:": "Lien :",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Le destinataire peut connaître votre fuseau horaire, convertir l'heure au format UTC ?",
|
||||||
|
"Use Current Timezone": "Conserver l'actuel",
|
||||||
|
"Convert To UTC": "Convertir en UTC",
|
||||||
|
"Close": "Fermer",
|
||||||
|
"Encrypted note on PrivateBin": "Message chiffré sur PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visiter ce lien pour voir la note. Donner l'URL à une autre personne lui permet également d'accéder à la note.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "Raccourcir l'URL peut exposer votre clé de déchiffrement dans l'URL.",
|
||||||
|
"Save paste": "Sauver le paste"
|
||||||
}
|
}
|
||||||
189
i18n/he.json
Normal file
189
i18n/he.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "כיוון שבורות היא ברכה",
|
||||||
|
"en": "he",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "ההדבקה לא קיימת, פגה או נמחקה.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s דורש PHP %s כדי לפעול.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s דורש שסעיף ההגדרות [%s] יהיה קיים בקובץ ההגדרות.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"נא להמתין שנייה אחת בין פרסום לפרסום.",
|
||||||
|
"נא להמתין %d שניות בין פרסום לפרסום.",
|
||||||
|
"נא להמתין %d שניות בין פרסום לפרסום.",
|
||||||
|
"נא להמתין %d שניות בין פרסום לפרסום."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "ההדבקה מוגבלת ל־%s של נתונים מוצפנים.",
|
||||||
|
"Invalid data.": "נתונים שגויים.",
|
||||||
|
"You are unlucky. Try again.": "אין לך מזל. נא לנסות שוב.",
|
||||||
|
"Error saving comment. Sorry.": "שגיאה בשמירת המסמך. סליחה.",
|
||||||
|
"Error saving paste. Sorry.": "שגיאה בשמירת ההדבקה. סליחה.",
|
||||||
|
"Invalid paste ID.": "מזהה ההדבקה שגוי.",
|
||||||
|
"Paste is not of burn-after-reading type.": "ההדבקה היא לא מסוג קוראים-שורפים.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "אסימון מחיקה שגוי. ההדבקה לא נמחקה.",
|
||||||
|
"Paste was properly deleted.": "ההדבקה נמחקה כראוי.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "צריך JavaScript כדי לאפשר ל־%s לפעול. סליחה על חוסר הנוחות.",
|
||||||
|
"%s requires a modern browser to work.": "%s דורש דפדפן מודרני כדי לפעול.",
|
||||||
|
"New": "חדש",
|
||||||
|
"Send": "שליחה",
|
||||||
|
"Clone": "שכפול",
|
||||||
|
"Raw text": "טקסט גולמי",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "קוראים-שורפים",
|
||||||
|
"Open discussion": "פתיחת דיון",
|
||||||
|
"Password (recommended)": "ססמה (מומלץ)",
|
||||||
|
"Discussion": "דיון",
|
||||||
|
"Toggle navigation": "החלפת מצב ניווט",
|
||||||
|
"%d seconds": [
|
||||||
|
"שנייה אחת",
|
||||||
|
"%d שניות",
|
||||||
|
"%d שניות (צורת ריבוי 2)",
|
||||||
|
"%d שניות"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"דקה אחת",
|
||||||
|
"%d דקות",
|
||||||
|
"%d דקות",
|
||||||
|
"%d דקות"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"שעה אחת",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"יום אחד",
|
||||||
|
"%d ימים",
|
||||||
|
"%d ימים",
|
||||||
|
"%d ימים"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"שבוע אחד",
|
||||||
|
"%d שבועות",
|
||||||
|
"%d שבועות",
|
||||||
|
"%d שבועות"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"חודש אחד",
|
||||||
|
"%d חודשים",
|
||||||
|
"%d חודשים",
|
||||||
|
"%d חודשים"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"שנה אחת",
|
||||||
|
"%d שנים",
|
||||||
|
"%d שנים",
|
||||||
|
"%d שנים"
|
||||||
|
],
|
||||||
|
"Never": "לעולם לא",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "הערה: זהו שירות בדקה: המידע לא ישמר.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "נא למלא את הססמה להדבקה הזו:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "לא ניתן לפענח את הנתונים (מפתח שגוי?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "לא ניתן למחוק את ההדבקה, היא לא אוחסנה במצב קוראים-שורפים.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "לעיניך בלבד. לא לסגור את החלון הזה, ההודעה הזאת לא תופיע שוב.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "לא ניתן לפענח את ההערה, מפתח שגוי?",
|
||||||
|
"Reply": "תגובה",
|
||||||
|
"Anonymous": "אלמוני",
|
||||||
|
"Avatar generated from IP address": "התמונה הייצוגית נוצרה מכתובת ה־IP",
|
||||||
|
"Add comment": "הוספת תגובה",
|
||||||
|
"Optional nickname…": "כינוי כרשות…",
|
||||||
|
"Post comment": "פרסום תגובה",
|
||||||
|
"Sending comment…": "התגובה נשלחת…",
|
||||||
|
"Comment posted.": "פורסמה תגובה.",
|
||||||
|
"Could not refresh display: %s": "לא ניתן לרענן תצוגה: %s",
|
||||||
|
"unknown status": "מצב לא ידוע",
|
||||||
|
"server error or not responding": "שגיאת שרת או שהשרת לא מגיב",
|
||||||
|
"Could not post comment: %s": "לא ניתן לפרסם תגובה: %s",
|
||||||
|
"Sending paste…": "ההדבקה נשלחת…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "ההדבקה שלך היא <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(יש ללחוץ [Ctrl]+[c] כדי להעתיק)</span>",
|
||||||
|
"Delete data": "מחיקת נתונים",
|
||||||
|
"Could not create paste: %s": "לא ניתן ליצור הדבקה: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "לא ניתן לפענח הדבקה: מפתח הפענוח חסר בכתובת (השתמשת במערכת הפנייה או מקצר כתובות שחותכים חלק מהכתובת?)",
|
||||||
|
"B": "ב׳",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "פורמט",
|
||||||
|
"Plain Text": "טקסט פשוט",
|
||||||
|
"Source Code": "קוד מקור",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "הורדת קובץ מצורף",
|
||||||
|
"Cloned: '%s'": "שוכפל: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "צירוף קובץ",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "קובץ מצורף שגוי.",
|
||||||
|
"Options": "אפשרויות",
|
||||||
|
"Shorten URL": "קיצור כתובת",
|
||||||
|
"Editor": "עורך",
|
||||||
|
"Preview": "תצוגה מקדימה",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "פענוח",
|
||||||
|
"Enter password": "נא למלא ססמה",
|
||||||
|
"Loading…": "בטעינה…",
|
||||||
|
"Decrypting paste…": "ההדבקה מפוענחת…",
|
||||||
|
"Preparing new paste…": "ההדבקה החדשה בהכנות…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ אין טקסט להדבקה +++",
|
||||||
|
"Could not get paste data: %s": "לא ניתן לקבל את נתוני ההדבקה: %s",
|
||||||
|
"QR code": "קוד QR",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "האתר הזה משתמש בחיבור HTTP בלתי מאובטח! נא להשתמש בזה לבדיקות בלבד.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "יש מידע נוסף <a href=\"%s\">ברשומה הזאת בשו״ת</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "יכול להיות שהדפדפן שלך ידרוש חיבור HTTPS כדי לתמוך ב־API של WebCrypto. כדי לנסות <a href=\"%s\">לעבור ל־HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "הדפדפן שלך לא תומך ב־WebAssembly שמשמש לדחיסת zlib. אפשר ליצור מסמכים בלתי מוצפנים אך אין אפשרות לקרוא מסמכים מוצפנים.",
|
||||||
|
"waiting on user to provide a password": "בהמתנה למילוי הססמה מצד המשתמש",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "לא ניתן לפענח את הנתונים. יכול להיות שמילאת ססמה שגויה? כדאי לנסות עם הכפתור שלמעלה.",
|
||||||
|
"Retry": "לנסות שוב",
|
||||||
|
"Showing raw text…": "מוצג טקסט גולמי…",
|
||||||
|
"Notice:": "לתשומת לבך:",
|
||||||
|
"This link will expire after %s.": "הקישור הזה יפוג לאחר %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "אפשר לגשת לקישור הזה פעם אחת בלבד, לא לחזור אחורה או לרענן את הדפדפן.",
|
||||||
|
"Link:": "קישור:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "הנמען יוכל לדעת מה אזור הזמן שלך, להמיר ל־UTC?",
|
||||||
|
"Use Current Timezone": "להשתמש באזור הזמן הנוכחי",
|
||||||
|
"Convert To UTC": "המרה ל־UTC",
|
||||||
|
"Close": "סגירה",
|
||||||
|
"Encrypted note on PrivateBin": "הערה מוצפנת ב־PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "נא לבקר בקישור כדי לצפות בהערה. מסירת הקישור לאנשים כלשהם תאפשר גם להם לגשת להערה.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/hi.json
Normal file
189
i18n/hi.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "hi",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
300
i18n/hu.json
300
i18n/hu.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "A %s egy minimalista, nyílt forráskódú adattároló szoftver, ahol a szerver semmilyen információt nem tárol a feltett adatról. Azt ugyanis a %sböngésződ%s segítségével titkosítja és oldja fel 256 bit hosszú titkosítási kulcsú AES-t használva.",
|
||||||
"A %s egy minimalista, nyílt forráskódú adattároló szoftver, ahol a szerver semmilyen információt nem tárol a feltett adatról. Azt ugyanis a <i>böngésződ</i> segítségével titkosítja és oldja fel 256 bit hosszú titkosítási kulcsú AES-t használva. További információt a <a href=\"https://privatebin.info/\">projekt oldalán</a> találsz.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "További információt a <a href=\"https://privatebin.info/\">projekt oldalán</a> találsz.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "A titok egyfajta hatalom.",
|
||||||
"A titok egyfajta hatalom.",
|
|
||||||
"en": "hu",
|
"en": "hu",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "A bejegyzés nem létezik, lejárt vagy törölve lett.",
|
||||||
"A bejegyzés nem létezik, lejárt vagy törölve lett.",
|
"%s requires php %s or above to work. Sorry.": "Bocs, de a %s működéséhez %s vagy ezt meghaladó verziójú php-s környezet szükséges.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "A %s megfelelő működéséhez a konfigurációs fájlban a [%s] résznek léteznie kell.",
|
||||||
"Bocs, de a %s működéséhez %s vagy ezt meghaladó verziójú php-s környezet szükséges.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
|
||||||
"A %s megfelelő működéséhez a konfigurációs fájlban a [%s] résznek léteznie kell.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Kérlek várj %d másodpercet két beküldés között.",
|
"Kérlek várj %d másodpercet két beküldés között.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Kérlek várj %d másodpercet két beküldés között.",
|
||||||
"A bejegyzés maximális hossza: %s",
|
"Kérlek várj %d másodpercet két beküldés között.",
|
||||||
"Invalid data.":
|
"Kérlek várj %d másodpercet két beküldés között."
|
||||||
"Érvénytelen adat.",
|
],
|
||||||
"You are unlucky. Try again.":
|
"Paste is limited to %s of encrypted data.": "A bejegyzés maximális hossza: %s",
|
||||||
"Peched volt, próbáld újra.",
|
"Invalid data.": "Érvénytelen adat.",
|
||||||
"Error saving comment. Sorry.":
|
"You are unlucky. Try again.": "Peched volt, próbáld újra.",
|
||||||
"Nem sikerült menteni a hozzászólást. Bocs.",
|
"Error saving comment. Sorry.": "Nem sikerült menteni a hozzászólást. Bocs.",
|
||||||
"Error saving paste. Sorry.":
|
"Error saving paste. Sorry.": "Nem sikerült menteni a bejegyzést. Bocs.",
|
||||||
"Nem sikerült menteni a bejegyzést. Bocs.",
|
"Invalid paste ID.": "Érvénytelen bejegyzésazonosító.",
|
||||||
"Invalid paste ID.":
|
"Paste is not of burn-after-reading type.": "A bejegyzés nem semmisül meg azonnal olvasás után.",
|
||||||
"Érvénytelen bejegyzés azonosító.",
|
"Wrong deletion token. Paste was not deleted.": "Hibás törlési azonosító. A bejegyzés nem lett törölve.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"Paste was properly deleted.": "A bejegyzés sikeresen törölve.",
|
||||||
"A bejegyzés nem semmisül meg azonnal olvasás után.",
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript szükséges a %s működéséhez. Elnézést a fennakadásért.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"%s requires a modern browser to work.": "A %s működéséhez a jelenleginél újabb böngészőre van szükség.",
|
||||||
"Hibás törlési azonosító. A bejegyzés nem lett törölve.",
|
"New": "Új",
|
||||||
"Paste was properly deleted.":
|
"Send": "Beküldöm!",
|
||||||
"A bejegyzés sikeresen törölve.",
|
"Clone": "Másol",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Raw text": "A nyers szöveg",
|
||||||
"JavaScript szükséges a %s működéséhez. Elnézést a fennakadásért.",
|
"Expires": "Lejárati idő",
|
||||||
"%s requires a modern browser to work.":
|
"Burn after reading": "Törlés az első olvasás után",
|
||||||
"A %s működéséhez a jelenleginél újabb böngészőre van szükség.",
|
"Open discussion": "Hozzászólások engedélyezése",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Password (recommended)": "Jelszó (ajánlott)",
|
||||||
"Még mindig Internet Explorert használsz? Ideje váltani:",
|
"Discussion": "Hozzászólások",
|
||||||
"New":
|
"Toggle navigation": "Navigáció",
|
||||||
"Új",
|
"%d seconds": [
|
||||||
"Send":
|
"%d másodperc",
|
||||||
"Beküldöm!",
|
"%d másodperc",
|
||||||
"Clone":
|
"%d seconds (2nd plural)",
|
||||||
"Másol",
|
"%d seconds (3rd plural)"
|
||||||
"Raw text":
|
],
|
||||||
"A nyers szöveg",
|
"%d minutes": [
|
||||||
"Expires":
|
"%d perc",
|
||||||
"Lejárati idő",
|
"%d perc",
|
||||||
"Burn after reading":
|
"%d minutes (2nd plural)",
|
||||||
"Törlés az első olvasás után",
|
"%d minutes (3rd plural)"
|
||||||
"Open discussion":
|
],
|
||||||
"Hozzászólások engedélyezése",
|
"%d hours": [
|
||||||
"Password (recommended)":
|
"%d óra",
|
||||||
"Jelszó (ajánlott)",
|
"%d óra",
|
||||||
"Discussion":
|
"%d hours (2nd plural)",
|
||||||
"Hozzászólások",
|
"%d hours (3rd plural)"
|
||||||
"Toggle navigation":
|
],
|
||||||
"Navigáció",
|
"%d days": [
|
||||||
"%d seconds": ["%d másodperc", "%d másodperc"],
|
"%d nap",
|
||||||
"%d minutes": ["%d perc", "%d perc"],
|
"%d nap",
|
||||||
"%d hours": ["%d óra", "%d óra"],
|
"%d days (2nd plural)",
|
||||||
"%d days": ["%d nap", "%d nap"],
|
"%d days (3rd plural)"
|
||||||
"%d weeks": ["%d hét", "%d hét"],
|
],
|
||||||
"%d months": ["%d hónap", "%d hónap"],
|
"%d weeks": [
|
||||||
"%d years": ["%d év", "%d év"],
|
"%d hét",
|
||||||
"Never":
|
"%d hét",
|
||||||
"Soha",
|
"%d weeks (2nd plural)",
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d weeks (3rd plural)"
|
||||||
"Megjegyzés: ez egy teszt szolgáltatás, az adatok bármikor törlődhetnek. Ha visszaélsz vele, kiscicák bánhatják! :)",
|
],
|
||||||
"This document will expire in %d seconds.":
|
"%d months": [
|
||||||
["Ez a bejegyzés %d másodperc után megsemmisül.", "Ez a bejegyzés %d másodperc múlva megsemmisül."],
|
"%d hónap",
|
||||||
"This document will expire in %d minutes.":
|
"%d hónap",
|
||||||
["Ez a bejegyzés %d perc után megsemmisül.", "Ez a bejegyzés %d perc múlva megsemmisül."],
|
"%d months (2nd plural)",
|
||||||
"This document will expire in %d hours.":
|
"%d months (3rd plural)"
|
||||||
["Ez a bejegyzés %d óra után megsemmisül.", "Ez a bejegyzés %d óra múlva megsemmisül."],
|
],
|
||||||
"This document will expire in %d days.":
|
"%d years": [
|
||||||
["Ez a bejegyzés %d nap után megsemmisül.", "Ez a bejegyzés %d nap múlva megsemmisül."],
|
"%d év",
|
||||||
"This document will expire in %d months.":
|
"%d év",
|
||||||
["Ez a bejegyzés %d hónap múlva megsemmisül.", "Ez a bejegyzés %d hónap múlva megsemmisül."],
|
"%d years (2nd plural)",
|
||||||
"Please enter the password for this paste:":
|
"%d years (3rd plural)"
|
||||||
"Add meg a szükséges jelszót a bejegyzés megtekintéséhez:",
|
],
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Never": "Soha",
|
||||||
"Nem tudtuk dekódolni az adatot. Talán rossz kulcsot adtál meg?",
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Megjegyzés: ez egy teszt szolgáltatás, az adatok bármikor törlődhetnek. Ha visszaélsz vele, kiscicák bánhatják! :)",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"This document will expire in %d seconds.": [
|
||||||
"Nem tudtuk törölni a bejegyzést, mivel az olvasás után egyből megsemmisült. Így nem is volt tárolva.",
|
"Ez a bejegyzés %d másodperc múlva megsemmisül.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Ez a bejegyzés %d másodperc múlva megsemmisül.",
|
||||||
"EZT A BEJEGYZÉST CSAK TE LÁTHATOD!!! Ne csukd be ezt az ablakot, mivel nem tudod újra megnézni. Az ugyanis az első olvasás után rögtön megsemmisül.",
|
"Ez a bejegyzés %d másodperc múlva megsemmisül.",
|
||||||
"Could not decrypt comment; Wrong key?":
|
"Ez a bejegyzés %d másodperc múlva megsemmisül."
|
||||||
"Nem tudtuk dekódolni a hozzászólást. Talán rossz kulcsot adtál meg?",
|
],
|
||||||
"Reply":
|
"This document will expire in %d minutes.": [
|
||||||
"Válasz",
|
"Ez a bejegyzés %d perc múlva megsemmisül.",
|
||||||
"Anonymous":
|
"Ez a bejegyzés %d perc múlva megsemmisül.",
|
||||||
"Anonymous",
|
"Ez a bejegyzés %d perc múlva megsemmisül.",
|
||||||
"Avatar generated from IP address":
|
"Ez a bejegyzés %d perc múlva megsemmisül."
|
||||||
"Avatar (az IP cím alapján generáljuk)",
|
],
|
||||||
"Add comment":
|
"This document will expire in %d hours.": [
|
||||||
"Hozzászólok",
|
"Ez a bejegyzés %d óra múlva megsemmisül.",
|
||||||
"Optional nickname…":
|
"Ez a bejegyzés %d óra múlva megsemmisül.",
|
||||||
"Becenév (már ha meg akarod adni)",
|
"Ez a bejegyzés %d óra múlva megsemmisül.",
|
||||||
"Post comment":
|
"Ez a bejegyzés %d óra múlva megsemmisül."
|
||||||
"Beküld",
|
],
|
||||||
"Sending comment…":
|
"This document will expire in %d days.": [
|
||||||
"Beküldés alatt...",
|
"Ez a bejegyzés %d nap múlva megsemmisül.",
|
||||||
"Comment posted.":
|
"Ez a bejegyzés %d nap múlva megsemmisül.",
|
||||||
"A hozzászólás beküldve.",
|
"Ez a bejegyzés %d nap múlva megsemmisül.",
|
||||||
"Could not refresh display: %s":
|
"Ez a bejegyzés %d nap múlva megsemmisül."
|
||||||
"Nem tudtuk frissíteni: %s",
|
],
|
||||||
"unknown status":
|
"This document will expire in %d months.": [
|
||||||
"Ismeretlen státusz.",
|
"Ez a bejegyzés %d hónap múlva megsemmisül.",
|
||||||
"server error or not responding":
|
"Ez a bejegyzés %d hónap múlva megsemmisül.",
|
||||||
"A szerveren hiba lépett fel vagy nem válaszol.",
|
"Ez a bejegyzés %d hónap múlva megsemmisül.",
|
||||||
"Could not post comment: %s":
|
"Ez a bejegyzés %d hónap múlva megsemmisül."
|
||||||
"Nem tudtuk beküldeni a hozzászólást: %s",
|
],
|
||||||
"Please move your mouse for more entropy…":
|
"Please enter the password for this paste:": "Add meg a szükséges jelszót a bejegyzés megtekintéséhez:",
|
||||||
"Nincs elég véletlenszerűség a rendszerben. Mozgasd az egered, hogy növeld az entrópiát.",
|
"Could not decrypt data (Wrong key?)": "Nem tudtuk visszfejteni az adatot. Talán rossz kulcsot adtál meg?",
|
||||||
"Sending paste…":
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Nem tudtuk törölni a bejegyzést, mivel az olvasás után egyből megsemmisült. Így nem is volt tárolva.",
|
||||||
"Bejegyzés elküldése...",
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "EZT A BEJEGYZÉST CSAK TE LÁTHATOD!!! Ne csukd be ezt az ablakot, mivel nem tudod újra megnézni. Az ugyanis az első olvasás után rögtön megsemmisül.",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Could not decrypt comment; Wrong key?": "Nem tudtuk visszafejteni a hozzászólást. Talán rossz kulcsot adtál meg?",
|
||||||
"A bejegyzésed a <a id=\"pasteurl\" href=\"%s\">%s</a> címen elérhető. <span id=\"copyhint\"> [Ctrl]+[c]-vel tudod vágólapra másolni.</span>",
|
"Reply": "Válasz",
|
||||||
"Delete data":
|
"Anonymous": "Névtelen",
|
||||||
"Adat törlése",
|
"Avatar generated from IP address": "Avatar (az IP cím alapján generáljuk)",
|
||||||
"Could not create paste: %s":
|
"Add comment": "Hozzászólok",
|
||||||
"Nem tudtuk létrehozni a bejegyzést: %s",
|
"Optional nickname…": "Becenév (már ha meg akarod adni)",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Post comment": "Beküld",
|
||||||
"Nem tudjuk dekódolni a bejegyzést: a dekódoláshoz szükséges kulcs hiányzik a címből. Talán URL rövidítőt használtál ami kivágta azt belőle?",
|
"Sending comment…": "Beküldés alatt...",
|
||||||
|
"Comment posted.": "A hozzászólás beküldve.",
|
||||||
|
"Could not refresh display: %s": "Nem tudtuk frissíteni: %s",
|
||||||
|
"unknown status": "Ismeretlen státusz.",
|
||||||
|
"server error or not responding": "A szerveren hiba lépett fel vagy nem válaszol.",
|
||||||
|
"Could not post comment: %s": "Nem tudtuk beküldeni a hozzászólást: %s",
|
||||||
|
"Sending paste…": "Bejegyzés elküldése...",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "A bejegyzésed a <a id=\"pasteurl\" href=\"%s\">%s</a> címen elérhető. <span id=\"copyhint\"> [Ctrl]+[c]-vel tudod vágólapra másolni.</span>",
|
||||||
|
"Delete data": "Adat törlése",
|
||||||
|
"Could not create paste: %s": "Nem tudtuk létrehozni a bejegyzést: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Nem tudjuk visszafejteni a bejegyzést: a dekódoláshoz szükséges kulcs hiányzik a címből. Talán URL rövidítőt használtál ami kivágta azt belőle?",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Formátum",
|
"Format": "Formátum",
|
||||||
"Plain Text": "Egyszerű szöveg",
|
"Plain Text": "Egyszerű szöveg",
|
||||||
"Source Code": "Forráskód",
|
"Source Code": "Forráskód",
|
||||||
@@ -135,25 +150,40 @@
|
|||||||
"alternatively drag & drop a file or paste an image from the clipboard": "vagy húzz ide egy fájlt, netán illessz be egy képet a vágólapról.",
|
"alternatively drag & drop a file or paste an image from the clipboard": "vagy húzz ide egy fájlt, netán illessz be egy képet a vágólapról.",
|
||||||
"File too large, to display a preview. Please download the attachment.": "A fájl túl nagy ahhoz, hogy előnézete legyen. Töltsd le, hogy megtekinthesd.",
|
"File too large, to display a preview. Please download the attachment.": "A fájl túl nagy ahhoz, hogy előnézete legyen. Töltsd le, hogy megtekinthesd.",
|
||||||
"Remove attachment": "Csatolmány eltávolítása",
|
"Remove attachment": "Csatolmány eltávolítása",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "A böngésződ nem támogatja titkosított fájlok feltöltését. Használj újabbat.",
|
||||||
"A böngésződ nem támogatja titkosított fájlok feltöltését. Használj újabbat.",
|
|
||||||
"Invalid attachment.": "Érvénytelen csatolmány.",
|
"Invalid attachment.": "Érvénytelen csatolmány.",
|
||||||
"Options": "Opciók",
|
"Options": "Opciók",
|
||||||
"Shorten URL": "URL rövidítés",
|
"Shorten URL": "URL rövidítés",
|
||||||
"Editor": "Szerkesztő felület",
|
"Editor": "Szerkesztő felület",
|
||||||
"Preview": "Előnézet",
|
"Preview": "Előnézet",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s számára szükséges, hogy a PATH itt végződjön: \"%s\". Kérlek frissítsd a PATH értékét az index.php fájlban.",
|
||||||
"%s számára szükséges, hogy a PATH itt végződjön: \"%s\". Kérlek frissítsd a PATH értékét az index.php fájlban.",
|
"Decrypt": "Visszafejtés",
|
||||||
"Decrypt":
|
"Enter password": "Jelszó",
|
||||||
"Dekódolás",
|
|
||||||
"Enter password":
|
|
||||||
"Jelszó",
|
|
||||||
"Loading…": "Folyamatban...",
|
"Loading…": "Folyamatban...",
|
||||||
"Decrypting paste…": "Bejegyzés dekódolása...",
|
"Decrypting paste…": "Bejegyzés visszafejtése...",
|
||||||
"Preparing new paste…": "Új bejegyzés előkészítése...",
|
"Preparing new paste…": "Új bejegyzés előkészítése...",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Abban az esetben, ha ez az üzenet mindig látható lenne, látogass el a <a href=\"%s\">Gyakran Ismételt Kérdések szekcióba a megoldásához</a>.",
|
||||||
"Abban az esetben, ha ez az üzenet mindig látható lenne, látogass el a <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">Gyakran Ismételt Kérdések szekcióba a megoldásához</a>.",
|
|
||||||
"+++ no paste text +++": "+++ nincs beillesztett szöveg +++",
|
"+++ no paste text +++": "+++ nincs beillesztett szöveg +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Az adat megszerzése nem sikerült: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "QR kód",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Ez a weboldal nem biztonságos HTTP kapcsolatot használ! Emiatt csak teszt célokra ajánljuk.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "További információ <a href=\"%s\">ebben a GyIK bejegyzésben</a> található (angolul).",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "A WebCrypto API használatához a böngésződ számára esetleg HTTPS kapcsolat szükséges. Ezért próbálj meg <a href=\"%s\">HTTPS-re váltani</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "A böngésződ nem támogatja a WebAssemblyt, ami a zlib tömörítéshez kell. Létre tudsz hozni tömörítetlen dokumentumokat, de tömörítetteket nem tudsz olvasni.",
|
||||||
|
"waiting on user to provide a password": "Várakozás a felhasználóra jelszó megadása okán",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Nem lehetett visszafejteni az adatot. Rossz jelszót ütöttél be? Ismételd meg a fent található gombbal.",
|
||||||
|
"Retry": "Újrapróbálkozás",
|
||||||
|
"Showing raw text…": "Nyers szöveg mutatása…",
|
||||||
|
"Notice:": "Megjegyzés:",
|
||||||
|
"This link will expire after %s.": "Ez a hivatkozás %s múlva megsemmisül.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Ez a hivatkozás csak egyszeri alkalommal érhető el, ne használd a böngésződ \"Visszalépés\" vagy \"Újratöltés\" gombját.",
|
||||||
|
"Link:": "Hivatkozás:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "A címzett esetleg megtudhatja az időzónádat, átalakítsuk azt UTC-re?",
|
||||||
|
"Use Current Timezone": "Az aktuális időzóna használata",
|
||||||
|
"Convert To UTC": "Átalakítás UTC időzónára",
|
||||||
|
"Close": "Bezárás",
|
||||||
|
"Encrypted note on PrivateBin": "Titkosított jegyzet a PrivateBinen",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Látogasd meg ezt a hivatkozást a bejegyzés megtekintéséhez. Ha mások számára is megadod ezt a linket, azzal hozzáférnek ők is.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
189
i18n/id.json
Normal file
189
i18n/id.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s adalah sebuah pastebin online sumber terbuka dan minimalis, dimana servernya tersebut tidak punya pengetahuan tentang data yang ditempelkan. Data tersebut di enkrip/dekrip %sdi dalam browser%s menggunakan metode enkrip AES 256 bit.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Infomasi lebih lanjut pada <a href=\"https://privatebin.info/\">halaman proyek</a>.",
|
||||||
|
"Because ignorance is bliss": "Karena ketidaktahuan adalah kebahagiaan, gitu loh",
|
||||||
|
"en": "id",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste tidak ada, telah kedaluwarsa atau telah dihapus.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s memerlukan php %s atau versi diatasnya untuk dapat dijalankan. Maaf.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s membutuhkan bagian konfigurasi [%s] untuk ada di file konfigurasi.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Silahkan menunggu %d detik antara masing-masing postingan.",
|
||||||
|
"Silahkan menunggu %d detik antara masing-masing postingan.",
|
||||||
|
"Silahkan menunggu %d detik antara masing-masing postingan.",
|
||||||
|
"Silahkan menunggu %d detik antara masing-masing postingan."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste dibatasi sampai %s dari data yang dienskripsi.",
|
||||||
|
"Invalid data.": "Data tidak valid.",
|
||||||
|
"You are unlucky. Try again.": "Anda belum beruntung. Coba kembali ya Kaka.",
|
||||||
|
"Error saving comment. Sorry.": "Terjadi kesalahan saat menyimpan komentar. Maaf ya Kaka.",
|
||||||
|
"Error saving paste. Sorry.": "Terjadi kesalahan saat menyimpan paste. Maaf ya Kaka.",
|
||||||
|
"Invalid paste ID.": "ID paste tidak valid.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste bukan tipe hapus-setelah-membaca.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Token penghapusan salah. Paste belum terhapus.",
|
||||||
|
"Paste was properly deleted.": "Paste telah dihapus dengan benar.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript diperlukan agar %s bekerja. Maaf untuk ketidaknyamanannya.",
|
||||||
|
"%s requires a modern browser to work.": "%s memerlukan sebuah browser modern untuk bekerja.",
|
||||||
|
"New": "Baru",
|
||||||
|
"Send": "Kirim",
|
||||||
|
"Clone": "Klon",
|
||||||
|
"Raw text": "Teks mentah",
|
||||||
|
"Expires": "Kadaluarsa",
|
||||||
|
"Burn after reading": "Hapus setelah membaca",
|
||||||
|
"Open discussion": "Diskusi terbuka",
|
||||||
|
"Password (recommended)": "Kata Sandi (direkomendasikan)",
|
||||||
|
"Discussion": "Diskusi",
|
||||||
|
"Toggle navigation": "Alihkan navigasi",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d detik",
|
||||||
|
"%d detik",
|
||||||
|
"%d detik",
|
||||||
|
"%d detik"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d menit",
|
||||||
|
"%d menit",
|
||||||
|
"%d menit",
|
||||||
|
"%d menit"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d jam",
|
||||||
|
"%d jam",
|
||||||
|
"%d jam",
|
||||||
|
"%d jam"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d hari",
|
||||||
|
"%d hari",
|
||||||
|
"%d hari",
|
||||||
|
"%d hari"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d minggu",
|
||||||
|
"%d minggu",
|
||||||
|
"%d minggu",
|
||||||
|
"%d minggu"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d bulan",
|
||||||
|
"%d bulan",
|
||||||
|
"%d bulan",
|
||||||
|
"%d bulan"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d tahun",
|
||||||
|
"%d tahun",
|
||||||
|
"%d tahun",
|
||||||
|
"%d tahun"
|
||||||
|
],
|
||||||
|
"Never": "Jangan pernah",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Catatan: Ini adalah layanan percobaan: Data mungkin bisa terhapus kapanpun juga. Anak-anak kucing akan mati jika Anda mengekploitasi layanan ini.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"Dokumen ini kadaluarsa dalam %d detik.",
|
||||||
|
"Dokumen ini kadaluarsa dalam %d detik.",
|
||||||
|
"Dokumen ini kadaluarsa dalam %d detik.",
|
||||||
|
"Dokumen ini kadaluarsa dalam %d detik."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d menit.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d menit.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d menit.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d menit."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d jam.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d jam.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d jam.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d jam."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d hari.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d hari.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d hari.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d hari."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d bulan.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d bulan.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d bulan.",
|
||||||
|
"Dokumen ini akan kadaluarsa dalam %d bulan."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Silahkan masukkan kata sandi untuk paste ini:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Tidak dapat mendekrip data (Salah kunci?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Tidak dapat menghapus paste, ini dikarenakan data tidak tersimpan dalam mode hapus setelah membaca.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "HANYA UNTUK ANDA SAJA. Jangan tutup kolom jendela ini, pesan ini tidak akan dapat ditampilkan lagi.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Tidak dapat mendekrip komentar; Salah kunci?",
|
||||||
|
"Reply": "Balas",
|
||||||
|
"Anonymous": "Tanpa Nama",
|
||||||
|
"Avatar generated from IP address": "Avatar dihasilkan dari alamat IP",
|
||||||
|
"Add comment": "Tambah komentar",
|
||||||
|
"Optional nickname…": "Nama julukan tambahan…",
|
||||||
|
"Post comment": "Posting komentar",
|
||||||
|
"Sending comment…": "Mengirim komentar…",
|
||||||
|
"Comment posted.": "Komentar telah diposting.",
|
||||||
|
"Could not refresh display: %s": "Tidak dapat menyegarkan tampilan: %s",
|
||||||
|
"unknown status": "status tidak diketahui",
|
||||||
|
"server error or not responding": "kesalahan server atau server tidak merespon",
|
||||||
|
"Could not post comment: %s": "Tidak dapat memposting komentar: %s",
|
||||||
|
"Sending paste…": "Mengirim paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Paste Anda adalah <a id=\"pasteurl\" href=\"%s\">%s</a><span id=\"copyhint\">(Tekan [Ctrl]+[c] untuk menyalin)</span>",
|
||||||
|
"Delete data": "Hapus data",
|
||||||
|
"Could not create paste: %s": "Tidak dapat membuat paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Tidak dapat mendekripsi paste: Kunci dekripsi tidak ada di URL (Apakah Anda menggunakan redirector atau penyingkat URL yang menghapus bagian dari URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Teks Biasa",
|
||||||
|
"Source Code": "Kode Sumber",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Unduh lampiran",
|
||||||
|
"Cloned: '%s'": "Diklon: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "Berkas yang di-klon '%s' telah dilampirkan pada paste ini.",
|
||||||
|
"Attach a file": "Lampirkan sebuah berkas",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "sebagai alternatif, seret & jatuhkan berkas atau tempel sebuah gambar dari papan klip",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File terlalu besar untuk menampilkan pratinjau. Silakan unduh lampirannya.",
|
||||||
|
"Remove attachment": "Hapus lampiran",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Browser Anda tidak mendukung pengunggahan file terenkripsi. Harap gunakan browser yang lebih baru.",
|
||||||
|
"Invalid attachment.": "Lampiran tidak valid.",
|
||||||
|
"Options": "Pilihan",
|
||||||
|
"Shorten URL": "Pendekkan alamat URL",
|
||||||
|
"Editor": "Penyunting",
|
||||||
|
"Preview": "Pratinjau",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s memerlukan PATH berakhir dalam sebuah \"%s\". Silahkan perbarui PATH dalam index.php Anda.",
|
||||||
|
"Decrypt": "Dekrip",
|
||||||
|
"Enter password": "Masukkan kata sandi",
|
||||||
|
"Loading…": "Memuat…",
|
||||||
|
"Decrypting paste…": "Men-dekrip paste…",
|
||||||
|
"Preparing new paste…": "Menyiapkan paste baru…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Jika pesan ini tidak pernah menghilang, silahkan kunjungi dan lihat pada <a href=\"%s\">FAQ ini untuk informasi bagaimana menyelesaikan masalah tersebut</a>.",
|
||||||
|
"+++ no paste text +++": "+++ tidak ada teks paste +++",
|
||||||
|
"Could not get paste data: %s": "Tidak dapat mengambil/menampilkan data paste: %s",
|
||||||
|
"QR code": "Kode QR",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Situs web ini menggunakan koneksi HTTP yang tidak aman! Silahkan gunakan hanya untuk pengujian.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Untuk informasi lebih lanjut, <a href=\"%s\"> lihat entri FAQ ini </a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Browser Anda mungkin memerlukan koneksi HTTPS untuk mendukung API Webcrypto. Coba <a href=\"%s\"> beralih ke HTTPS </a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Browser Anda tidak mendukung Webassembly, yang digunakan untuk kompresi zlib. Anda dapat membuat dokumen yang tidak terkompresi, tetapi tidak akan dapat membaca berkas yang terkompresi.",
|
||||||
|
"waiting on user to provide a password": "menunggu pengguna untuk menyediakan kata sandi",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Tidak dapat mendekrip data. Apakah Anda memasukkan kata sandi yang salah? Silahkan coba lagi dengan tombol di bagian atas.",
|
||||||
|
"Retry": "Coba lagi",
|
||||||
|
"Showing raw text…": "Menampilkan teks mentah…",
|
||||||
|
"Notice:": "Pengumuman:",
|
||||||
|
"This link will expire after %s.": "Tautan ini akan kadaluarsa setelah %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Tautan ini hanya dapat diakses satu kali, jangan gunakan tombol Kembali atau tombol Segarkan di browser Anda.",
|
||||||
|
"Link:": "Tautan:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Penerima dapat mengetahui zona waktu Anda, ubah waktu menjadi UTC?",
|
||||||
|
"Use Current Timezone": "Gunakan Zonawaktu Saat Ini",
|
||||||
|
"Convert To UTC": "Konversi Ke UTC",
|
||||||
|
"Close": "Tutup",
|
||||||
|
"Encrypted note on PrivateBin": "Catatan ter-ekrip di PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Kunjungi tautan ini untuk melihat catatan. Memberikan alamat URL pada siapapun juga, akan mengizinkan mereka untuk mengakses catatan, so pasti gitu loh Kaka.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "Pemendek URL mungkin akan menampakkan kunci dekrip Anda dalam URL.",
|
||||||
|
"Save paste": "Simpan paste"
|
||||||
|
}
|
||||||
304
i18n/it.json
304
i18n/it.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s è un sistema di tipo \"Pastebin\" online, open source, minimalista. Il server non possiede alcuna conoscenza (\"Zero Knowledge\") del contenuto dei dati inviati. I dati sono cifrati/decifrati %snel Browser%s con algoritmo AES a 256 Bit.",
|
||||||
"%s è un sistema di tipo \"Pastebin\" online, open source, minimalista. Il server non possiede alcuna conoscenza (\"Zero Knowledge\") del contenuto dei dati inviati. I dati sono cifrati/decifrati <i>nel Browser</i> con algoritmo AES a 256 Bit. Per ulteriori informazioni, vedi <a href=\"https://privatebin.info/\">Sito del progetto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Per ulteriori informazioni, vedi <a href=\"https://privatebin.info/\">Sito del progetto</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Perché l'ignoranza è una benedizione (Because ignorance is bliss)",
|
||||||
"Perché l'ignoranza è una benedizione (Because ignorance is bliss)",
|
|
||||||
"en": "it",
|
"en": "it",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Questo messaggio non esiste, è scaduto o è stato cancellato.",
|
||||||
"Questo messaggio non esiste, è scaduto o è stato cancellato.",
|
"%s requires php %s or above to work. Sorry.": "%s richiede php %s o superiore per funzionare. Ci spiace.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s richiede la presenza della sezione [%s] nei file di configurazione.",
|
||||||
"%s richiede php %s o superiore per funzionare. Ci spiace.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Attendi per favore un secondo prima di ciascun invio.",
|
||||||
"%s richiede la presenza della sezione [%s] nei file di configurazione.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Attendi per favore %d secondi prima di ciascun invio.",
|
"Attendi per favore %d secondi prima di ciascun invio.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Attendi per favore %d secondi prima di ciascun invio.",
|
||||||
"La dimensione del messaggio è limitata a %s di dati cifrati.",
|
"Attendi per favore %d secondi prima di ciascun invio."
|
||||||
"Invalid data.":
|
],
|
||||||
"Dati non validi.",
|
"Paste is limited to %s of encrypted data.": "La dimensione del messaggio è limitata a %s di dati cifrati.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Dati non validi.",
|
||||||
"Ritenta, sarai più fortunato.",
|
"You are unlucky. Try again.": "Ritenta, sarai più fortunato.",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Errore durante il salvataggio del commento.",
|
||||||
"Errore durante il salvataggio del commento.",
|
"Error saving paste. Sorry.": "Errore durante il salvataggio del messaggio.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "ID-Messaggio non valido.",
|
||||||
"Errore durante il salvataggio del messaggio.",
|
"Paste is not of burn-after-reading type.": "Il messaggio non è di tipo Distruggi-dopo-lettura.",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Codice cancellazione errato. Il messaggio NON è stato cancellato.",
|
||||||
"ID-Messaggio non valido.",
|
"Paste was properly deleted.": "Il messaggio è stato correttamente cancellato.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "%s funziona solo con JavaScript attivo. Ci dispiace per l'inconveniente.",
|
||||||
"Il messaggio non è di tipo Distruggi-dopo-lettura.",
|
"%s requires a modern browser to work.": "%s richiede un browser moderno e aggiornato per funzionare.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Nuovo",
|
||||||
"Codice cancellazione errato. Il messaggio NON è stato cancellato.",
|
"Send": "Invia",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Clona",
|
||||||
"Il messaggio è stato correttamente cancellato.",
|
"Raw text": "Testo Raw",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Scade",
|
||||||
"%s funziona solo con JavaScript attivo.<br />Ci dispiace per l'inconveniente.",
|
"Burn after reading": "Distruggi dopo lettura",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Apri discussione",
|
||||||
"%s richiede un browser moderno e aggiornato per funzionare.",
|
"Password (recommended)": "Password (raccomandato)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Discussione",
|
||||||
"Usi ancora Internet Explorer? Ti consigliamo di passare ad un browser più sicuro:",
|
"Toggle navigation": "Scambia Navigazione",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Nuovo",
|
"%d secondo",
|
||||||
"Send":
|
"%d secondi",
|
||||||
"Invia",
|
"%d seconds (2nd plural)",
|
||||||
"Clone":
|
"%d seconds (3rd plural)"
|
||||||
"Clona",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Testo Raw",
|
"%d minuto",
|
||||||
"Expires":
|
"%d minuti",
|
||||||
"Scade",
|
"%d minutes (2nd plural)",
|
||||||
"Burn after reading":
|
"%d minutes (3rd plural)"
|
||||||
"Distruggi dopo lettura",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Apri discussione",
|
"%d ora",
|
||||||
"Password (recommended)":
|
"%d ore",
|
||||||
"Password (raccomandato)",
|
"%d hours (2nd plural)",
|
||||||
"Discussion":
|
"%d hours (3rd plural)"
|
||||||
"Discussione",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Scambia Navigazione",
|
"%d giorno",
|
||||||
"%d seconds": ["%d secondo", "%d secondi"],
|
"%d giorni",
|
||||||
"%d minutes": ["%d minuto", "%d minuti"],
|
"%d days (2nd plural)",
|
||||||
"%d hours": ["%d ora", "%d ore"],
|
"%d days (3rd plural)"
|
||||||
"%d days": ["%d giorno", "%d giorni"],
|
],
|
||||||
"%d weeks": ["%d settimana", "%d settimane"],
|
"%d weeks": [
|
||||||
"%d months": ["%d mese", "%d mesi"],
|
"%d settimana",
|
||||||
"%d years": ["%d anno", "%d anni"],
|
"%d settimane",
|
||||||
"Never":
|
"%d weeks (2nd plural)",
|
||||||
"Mai",
|
"%d weeks (3rd plural)"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Nota: questo è un servizio di prova, i messaggi salvati possono essere cancellati in qualsiasi momento. Moriranno dei gattini se abuserai di questo servizio.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d mese",
|
||||||
["Questo documento scadrà tra un secondo.", "Questo documento scadrà in %d secondi."],
|
"%d mesi",
|
||||||
"This document will expire in %d minutes.":
|
"%d months (2nd plural)",
|
||||||
["Questo documento scadrà tra un minuto.", "Questo documento scadrà in %d minuti."],
|
"%d months (3rd plural)"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Questo documento scadrà tra un'ora.", "Questo documento scadrà in %d ore."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d anno",
|
||||||
["Questo documento scadrà tra un giorno.", "Questo documento scadrà in %d giorni."],
|
"%d anni",
|
||||||
"This document will expire in %d months.":
|
"%d years (2nd plural)",
|
||||||
["Questo documento scadrà tra un mese.", "Questo documento scadrà in %d mesi."],
|
"%d years (3rd plural)"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Inserisci la password per questo messaggio:",
|
"Never": "Mai",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Nota: questo è un servizio di prova, i messaggi salvati possono essere cancellati in qualsiasi momento. Moriranno dei gattini se abuserai di questo servizio.",
|
||||||
"Non riesco a decifrari i dati (Chiave errata?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Questo documento scadrà tra un secondo.",
|
||||||
"Non riesco a cancellare il messaggio, non è stato salvato in modalità Distruggi-dopo-lettora.",
|
"Questo documento scadrà in %d secondi.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Questo documento scadrà in %d secondi.",
|
||||||
"FOR YOUR EYES ONLY. Non chiudere questa finestra, il messaggio non può essere visualizzato una seconda volta.",
|
"Questo documento scadrà in %d secondi."
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Non riesco a decifrare il commento (Chiave errata?)",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Questo documento scadrà tra un minuto.",
|
||||||
"Rispondi",
|
"Questo documento scadrà in %d minuti.",
|
||||||
"Anonymous":
|
"Questo documento scadrà in %d minuti.",
|
||||||
"Anonimo",
|
"Questo documento scadrà in %d minuti."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Avatar generato dall'indirizzo IP)",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Questo documento scadrà tra un'ora.",
|
||||||
"Aggiungi un commento",
|
"Questo documento scadrà in %d ore.",
|
||||||
"Optional nickname…":
|
"Questo documento scadrà in %d ore.",
|
||||||
"Nickname opzionale…",
|
"Questo documento scadrà in %d ore."
|
||||||
"Post comment":
|
],
|
||||||
"Invia commento",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Questo documento scadrà tra un giorno.",
|
||||||
"Commento in fase di invio…",
|
"Questo documento scadrà in %d giorni.",
|
||||||
"Comment posted.":
|
"Questo documento scadrà in %d giorni.",
|
||||||
"Commento inviato.",
|
"Questo documento scadrà in %d giorni."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Non riesco ad aggiornare il display: %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Questo documento scadrà tra un mese.",
|
||||||
"stato sconosciuto",
|
"Questo documento scadrà in %d mesi.",
|
||||||
"server error or not responding":
|
"Questo documento scadrà in %d mesi.",
|
||||||
"errore o mancata risposta dal server",
|
"Questo documento scadrà in %d mesi."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Impossibile inviare il commento: %s",
|
"Please enter the password for this paste:": "Inserisci la password per questo messaggio:",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Non riesco a decifrare i dati (chiave sbagliata?)",
|
||||||
"Muovi il mouse in modo casuale, per generare maggior entropia…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Non riesco a cancellare il messaggio, non è stato salvato in modalità Distruggi-dopo-lettora.",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Non chiudere questa finestra, il messaggio non può essere visualizzato una seconda volta.",
|
||||||
"Messaggio in fase di invio…",
|
"Could not decrypt comment; Wrong key?": "Non riesco a decifrare il commento (Chiave sbagliata?)",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Rispondi",
|
||||||
"Il tuo messaggio è qui: <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Premi [Ctrl]+[c] (Windows) o [Cmd]+[c] (Mac) per copiare il link)</span>",
|
"Anonymous": "Anonimo",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Avatar generato dall'indirizzo IP",
|
||||||
"Cancella i dati",
|
"Add comment": "Aggiungi un commento",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Nickname opzionale…",
|
||||||
"Non riesco a creare il messaggio: %s",
|
"Post comment": "Invia commento",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Commento in fase di invio…",
|
||||||
"Non riesco a decifrare il messaggio: manca la chiave di decifrazione nell'URL (La chiave è parte integrante dell'URL. Per caso hai usato un Redirector o un altro servizio che ha rimosso una parte dell'URL?)",
|
"Comment posted.": "Commento inviato.",
|
||||||
|
"Could not refresh display: %s": "Non riesco ad aggiornare il display: %s",
|
||||||
|
"unknown status": "stato sconosciuto",
|
||||||
|
"server error or not responding": "errore o mancata risposta dal server",
|
||||||
|
"Could not post comment: %s": "Impossibile inviare il commento: %s",
|
||||||
|
"Sending paste…": "Messaggio in fase di invio…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Il tuo messaggio è qui: <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Premi [Ctrl]+[c] (Windows) o [Cmd]+[c] (Mac) per copiare il link)</span>",
|
||||||
|
"Delete data": "Cancella i dati",
|
||||||
|
"Could not create paste: %s": "Non riesco a creare il messaggio: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Non riesco a decifrare il messaggio: manca la chiave di decifrazione nell'URL (La chiave è parte integrante dell'URL. Per caso hai usato un Redirector o un altro servizio che ha rimosso una parte dell'URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Formato",
|
"Format": "Formato",
|
||||||
"Plain Text": "Solo Testo",
|
"Plain Text": "Solo Testo",
|
||||||
"Source Code": "Codice Sorgente",
|
"Source Code": "Codice Sorgente",
|
||||||
@@ -132,28 +147,43 @@
|
|||||||
"Cloned: '%s'": "Clonato: '%s'",
|
"Cloned: '%s'": "Clonato: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "Il file clonato '%s' era allegato a questo messaggio.",
|
"The cloned file '%s' was attached to this paste.": "Il file clonato '%s' era allegato a questo messaggio.",
|
||||||
"Attach a file": "Allega un file",
|
"Attach a file": "Allega un file",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "in alternativa trascina e rilascia un file o incolla un'immagine dagli appunti",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "File troppo grande, per visualizzare un'anteprima. Sei pregato di scaricare l'allegato.",
|
||||||
"Remove attachment": "Rimuovi allegato",
|
"Remove attachment": "Rimuovi allegato",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Il tuo browser non supporta l'invio di file cifrati. Utilizza un browser più recente.",
|
||||||
"Il tuo browser non supporta l'invio di file cifrati. Utilizza un browser più recente.",
|
|
||||||
"Invalid attachment.": "Allegato non valido.",
|
"Invalid attachment.": "Allegato non valido.",
|
||||||
"Options": "Opzioni",
|
"Options": "Opzioni",
|
||||||
"Shorten URL": "Accorcia URL",
|
"Shorten URL": "Accorcia URL",
|
||||||
"Editor": "Editor",
|
"Editor": "Editor",
|
||||||
"Preview": "Preview",
|
"Preview": "Anteprima",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s necessita che PATH termini con \"%s\". Aggiorna la variabile PATH nel tuo index.php.",
|
||||||
"%s necessita che PATH termini con \"%s\". Aggiorna la variabile PATH nel tuo index.php.",
|
"Decrypt": "Decifra",
|
||||||
"Decrypt":
|
"Enter password": "Inserisci la password",
|
||||||
"Decifra",
|
|
||||||
"Enter password":
|
|
||||||
"Inserisci la password",
|
|
||||||
"Loading…": "Carico…",
|
"Loading…": "Carico…",
|
||||||
"Decrypting paste…": "Decifro il messaggio…",
|
"Decrypting paste…": "Decifro il messaggio…",
|
||||||
"Preparing new paste…": "Preparo il nuovo messaggio…",
|
"Preparing new paste…": "Preparo il nuovo messaggio…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Nel caso questo messaggio non scompaia, controlla questa <a href=\"%s\">FAQ</a> per trovare informazioni su come risolvere il problema (in Inglese).",
|
||||||
"Nel caso questo messaggio non scompaia, controlla questa <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">FAQ</a> per trovare informazioni su come risolvere il problema (in Inglese).",
|
|
||||||
"+++ no paste text +++": "+++ nessun testo nel messaggio +++",
|
"+++ no paste text +++": "+++ nessun testo nel messaggio +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Impossibile ottenere i dati di incolla: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Questo sito web sta usando una connessione HTTP non sicura! Si prega di usarlo solo per il test.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Per ulteriori informazioni <a href=\"%s\">vedi questa voce della FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Il tuo browser potrebbe richiedere una connessione HTTPS per supportare l'API WebCrypto. Prova <a href=\"%s\">a passare a HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Il tuo browser non supporta WebAssembly, utilizzato per la compressione di zlib. Puoi creare documenti non compressi, ma non è possibile leggere quelli compressi.",
|
||||||
|
"waiting on user to provide a password": "in attesa sull'utente di fornire una password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Impossibile decrittografare i dati. Hai inserito una password errata? Riprova con il pulsante in alto.",
|
||||||
|
"Retry": "Riprova",
|
||||||
|
"Showing raw text…": "Mostrando il testo grezzo…",
|
||||||
|
"Notice:": "Avviso:",
|
||||||
|
"This link will expire after %s.": "Questo collegamento scadrà dopo %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Questo collegamento è accessibile una sola volta, non usare il pulsante indietro o aggiorna nel tuo browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Il destinatario può essere a conoscenza del tuo fuso orario, convertire l'orario in UTC?",
|
||||||
|
"Use Current Timezone": "Usa Fuso Orario Corrente",
|
||||||
|
"Convert To UTC": "Converti a UTC",
|
||||||
|
"Close": "Chiudi",
|
||||||
|
"Encrypted note on PrivateBin": "Nota crittografata su PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visita questo collegamento per vedere la nota. Dare l'URL a chiunque consente anche a loro di accedere alla nota.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener può esporre la tua chiave decrittografata nell'URL.",
|
||||||
|
"Save paste": "Salva il messagio"
|
||||||
}
|
}
|
||||||
189
i18n/ja.json
Normal file
189
i18n/ja.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "ja",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/ku.json
Normal file
189
i18n/ku.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "ku",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/la.json
Normal file
189
i18n/la.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivatumVinariam",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "la",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
@@ -63,6 +63,7 @@
|
|||||||
"ho": ["Hiri Motu", "Hiri Motu"],
|
"ho": ["Hiri Motu", "Hiri Motu"],
|
||||||
"hu": ["magyar", "Hungarian"],
|
"hu": ["magyar", "Hungarian"],
|
||||||
"ia": ["Interlingua", "Interlingua"],
|
"ia": ["Interlingua", "Interlingua"],
|
||||||
|
"id": ["bahasa Indonesia","Indonesian"],
|
||||||
"ie": ["Interlingue", "Interlingue"],
|
"ie": ["Interlingue", "Interlingue"],
|
||||||
"ga": ["Gaeilge", "Irish"],
|
"ga": ["Gaeilge", "Irish"],
|
||||||
"ig": ["Asụsụ Igbo", "Igbo"],
|
"ig": ["Asụsụ Igbo", "Igbo"],
|
||||||
|
|||||||
189
i18n/lt.json
Normal file
189
i18n/lt.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s yra minimalistinis, atvirojo kodo internetinis įdėjimų dėklas, kurį naudojant, serveris nieko nenutuokia apie įdėtus duomenis. Duomenys yra šifruojami/iššifruojami %snaršyklėje%s naudojant 256 bitų AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daugiau informacijos rasite <a href=\"https://privatebin.info/\">projekto puslapyje</a>.",
|
||||||
|
"Because ignorance is bliss": "Nes nežinojimas yra palaima",
|
||||||
|
"en": "lt",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Įdėjimo nėra, jis nebegalioja arba buvo ištrintas.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s savo darbui reikalauja php %s arba naujesnės versijos. Apgailestaujame.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s reikalauja, kad konfigūracijos faile būtų [%s] konfigūracijos sekcija.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Tarp kiekvieno įrašo palaukite %d sekundę.",
|
||||||
|
"Tarp kiekvieno įrašo palaukite %d sekundes.",
|
||||||
|
"Tarp kiekvieno įrašo palaukite %d sekundžių.",
|
||||||
|
"Tarp kiekvieno įrašo palaukite %d sekundę."
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Įdėjimas yra apribotas iki %s šifruotų duomenų.",
|
||||||
|
"Invalid data.": "Neteisingi duomenys.",
|
||||||
|
"You are unlucky. Try again.": "Jums nesiseka. Bandykite dar kartą.",
|
||||||
|
"Error saving comment. Sorry.": "Klaida įrašant komentarą. Apgailestaujame.",
|
||||||
|
"Error saving paste. Sorry.": "Klaida įrašant įdėjimą. Apgailestaujame.",
|
||||||
|
"Invalid paste ID.": "Neteisingas įdėjimo ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Įdėjimo tipas nėra „Perskaičius sudeginti“.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Neteisingas ištrynimo prieigos raktas. Įdėjimas nebuvo ištrintas.",
|
||||||
|
"Paste was properly deleted.": "Įdėjimas buvo tinkamai ištrintas.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "%s darbui reikalinga JavaScript. Atsiprašome už nepatogumus.",
|
||||||
|
"%s requires a modern browser to work.": "%s savo darbui reikalauja šiuolaikinės naršyklės.",
|
||||||
|
"New": "Naujas",
|
||||||
|
"Send": "Siųsti",
|
||||||
|
"Clone": "Dubliuoti",
|
||||||
|
"Raw text": "Neapdorotas tekstas",
|
||||||
|
"Expires": "Baigs galioti po",
|
||||||
|
"Burn after reading": "Perskaičius sudeginti",
|
||||||
|
"Open discussion": "Atvira diskusija",
|
||||||
|
"Password (recommended)": "Slaptažodis (rekomenduojama)",
|
||||||
|
"Discussion": "Diskusija",
|
||||||
|
"Toggle navigation": "Perjungti naršymą",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d sekundės",
|
||||||
|
"%d sekundžių",
|
||||||
|
"%d sekundžių",
|
||||||
|
"%d sekundės"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minutės",
|
||||||
|
"%d minučių",
|
||||||
|
"%d minučių",
|
||||||
|
"%d minutės"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d valandos",
|
||||||
|
"%d valandų",
|
||||||
|
"%d valandų",
|
||||||
|
"%d valandos"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d dienos",
|
||||||
|
"%d dienų",
|
||||||
|
"%d dienų",
|
||||||
|
"%d dienos"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d savaitės",
|
||||||
|
"%d savaičių",
|
||||||
|
"%d savaičių",
|
||||||
|
"%d savaitės"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d mėnesio",
|
||||||
|
"%d mėnesių",
|
||||||
|
"%d mėnesių",
|
||||||
|
"%d mėnesio"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d metų",
|
||||||
|
"%d metų",
|
||||||
|
"%d metų",
|
||||||
|
"%d metų"
|
||||||
|
],
|
||||||
|
"Never": "Niekada",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Pastaba: Tai yra bandomoji paslauga. Duomenys bet kuriuo metu gali būti ištrinti. Kačiukai mirs, jei piktnaudžiausite šia paslauga.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"Šis dokumentas nustos galioti po %d sekundės.",
|
||||||
|
"Šis dokumentas nustos galioti po %d sekundžių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d sekundžių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d sekundės."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"Šis dokumentas nustos galioti po %d minutės.",
|
||||||
|
"Šis dokumentas nustos galioti po %d minučių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d minučių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d minutės."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"Šis dokumentas nustos galioti po %d valandos.",
|
||||||
|
"Šis dokumentas nustos galioti po %d valandų.",
|
||||||
|
"Šis dokumentas nustos galioti po %d valandų.",
|
||||||
|
"Šis dokumentas nustos galioti po %d valandos."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"Šis dokumentas nustos galioti po %d dienos.",
|
||||||
|
"Šis dokumentas nustos galioti po %d dienų.",
|
||||||
|
"Šis dokumentas nustos galioti po %d dienų.",
|
||||||
|
"Šis dokumentas nustos galioti po %d dienos."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"Šis dokumentas nustos galioti po %d mėnesio.",
|
||||||
|
"Šis dokumentas nustos galioti po %d mėnesių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d mėnesių.",
|
||||||
|
"Šis dokumentas nustos galioti po %d mėnesio."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Įveskite šio įdėjimo slaptažodį:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Nepavyko iššifruoti duomenų (Neteisingas raktas?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Nepavyko ištrinti įdėjimo, jis nebuvo saugomas „Perskaičius sudeginti“ veiksenoje.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "SKIRTA TIK JŪSŲ AKIMS. Neužverkite šio lango, šis pranešimas negalės būti rodomas dar kartą.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Nepavyko iššifruoti komentaro; Neteisingas raktas?",
|
||||||
|
"Reply": "Atsakyti",
|
||||||
|
"Anonymous": "Anonimas",
|
||||||
|
"Avatar generated from IP address": "Avataras sukurtas iš IP adreso",
|
||||||
|
"Add comment": "Pridėti komentarą",
|
||||||
|
"Optional nickname…": "Nebūtinas slapyvardis…",
|
||||||
|
"Post comment": "Skelbti komentarą",
|
||||||
|
"Sending comment…": "Siunčiamas komentaras…",
|
||||||
|
"Comment posted.": "Komentaras paskelbtas.",
|
||||||
|
"Could not refresh display: %s": "Nepavyko įkelti rodinio iš naujo: %s",
|
||||||
|
"unknown status": "nežinoma būsena",
|
||||||
|
"server error or not responding": "serverio klaida arba jis neatsako",
|
||||||
|
"Could not post comment: %s": "Nepavyko paskelbti komentaro: %s",
|
||||||
|
"Sending paste…": "Siunčiamas įdėjimas…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Jūsų įdėjimas yra <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Paspauskite [Vald]+[c] norėdami nukopijuoti)</span>",
|
||||||
|
"Delete data": "Ištrinti duomenis",
|
||||||
|
"Could not create paste: %s": "Nepavyko sukurti įdėjimo: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Nepavyksta iššifruoti įdėjimo: URL adrese trūksta iššifravimo rakto (Ar naudojote peradresavimo ar URL trumpinimo įrankį, kuris pašalina URL dalį?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Formatas",
|
||||||
|
"Plain Text": "Grynasis tekstas",
|
||||||
|
"Source Code": "Pirminis kodas",
|
||||||
|
"Markdown": "„Markdown“",
|
||||||
|
"Download attachment": "Atsisiųsti priedą",
|
||||||
|
"Cloned: '%s'": "Dubliuota: „%s“",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "Dubliuotas failas „%s“ buvo pridėtas į šį įdėjimą.",
|
||||||
|
"Attach a file": "Pridėti failą",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "arba kitaip - tempkite failą arba įdėkite paveikslą iš iškarpinės",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "Failas per didelis, kad būtų rodoma peržiūra. Atsisiųskite priedą.",
|
||||||
|
"Remove attachment": "Šalinti priedą",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Jūsų naršyklė nepalaiko šifruotų failų įkėlimo. Naudokite naujesnę naršyklę.",
|
||||||
|
"Invalid attachment.": "Neteisingas priedas.",
|
||||||
|
"Options": "Parinktys",
|
||||||
|
"Shorten URL": "Sutrumpinti URL",
|
||||||
|
"Editor": "Redaktorius",
|
||||||
|
"Preview": "Peržiūra",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s reikalauja, kad PATH baigtųsi „%s“. Atnaujinkite PATH savo index.php.",
|
||||||
|
"Decrypt": "Iššifruoti",
|
||||||
|
"Enter password": "Įveskite slaptažodį",
|
||||||
|
"Loading…": "Įkeliama…",
|
||||||
|
"Decrypting paste…": "Iššifruojamas įdėjimas…",
|
||||||
|
"Preparing new paste…": "Ruošiamas naujas įdėjimas…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Jeigu šis pranešimas niekada nedingsta, pasižiūrėkite <a href=\"%s\">šį DUK skyrių, kuriame yra informacija apie nesklandumų šalinimą</a>.",
|
||||||
|
"+++ no paste text +++": "+++ nėra įdėjimo teksto +++",
|
||||||
|
"Could not get paste data: %s": "Nepavyko gauti įdėjimo duomenų: %s",
|
||||||
|
"QR code": "QR kodas",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Ši internetinė svetainė naudoja nesaugų HTTP ryšį! Naudokite ją tik bandymams.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Išsamesnei informacijai, <a href=\"%s\">žiūrėkite šį DUK įrašą</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Jūsų naršyklei gali prireikti HTTPS ryšio, kad palaikytų „WebCrypto“ API. Pabandykite <a href=\"%s\">persijungti į HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Jūsų naršyklė nepalaiko „WebAssembly“, kuri naudojama zlib glaudinimui. Jūs galite kurti neglaudintus dokumentus, tačiau negalite skaityti glaudintų dokumentų.",
|
||||||
|
"waiting on user to provide a password": "laukiama, kol naudotojas pateiks slaptažodį",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Nepavyko iššifruoti duomenų. Ar įvedėte teisingą slaptažodį? Bandykite iš naujo pasinaudodami mygtuku viršuje.",
|
||||||
|
"Retry": "Bandyti dar kartą",
|
||||||
|
"Showing raw text…": "Rodomas neapdorotas tekstas…",
|
||||||
|
"Notice:": "Pranešimas:",
|
||||||
|
"This link will expire after %s.": "Ši nuoroda nustos galioti po %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Ši nuoroda gali būti atverta tik vieną kartą, nenaudokite savo naršyklėje mygtuko „Grįžti“ ar „Įkelti iš naujo“.",
|
||||||
|
"Link:": "Nuoroda:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Gavėjas gali sužinoti jūsų laiko juostą, konvertuoti laiką į suderintąjį pasaulinį laiką (UTC)?",
|
||||||
|
"Use Current Timezone": "Naudoti esamą laiko juostą",
|
||||||
|
"Convert To UTC": "Konvertuoti į UTC",
|
||||||
|
"Close": "Užverti",
|
||||||
|
"Encrypted note on PrivateBin": "Šifruoti užrašai ties PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Norėdami matyti užrašus, aplankykite šį tinklalapį. Pasidalinus šiuo URL adresu su kitais žmonėmis, jiems taip pat bus leidžiama prieiga prie šių užrašų.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL trumpinimo įrankis gali atskleisti URL adrese jūsų iššifravimo raktą.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
300
i18n/nl.json
300
i18n/nl.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is een minimalistische, open source online pastebin waarbij de server geen kennis heeft van de geplakte gegevens. Gegevens worden gecodeerd/gedecodeerd %s in de browser %s met behulp van 256 bits AES.",
|
||||||
"%s is een minimalistische, open source online pastebin waarbij de server geen kennis heeft van de geplakte gegevens. Gegevens worden gecodeerd/gedecodeerd <i> in de browser </i> met behulp van 256 bits AES. Meer informatie is te vinden op de <a href=\"https://privatebin.info/\">projectpagina</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Meer informatie is te vinden op de <a href=\"https://privatebin.info/\">projectpagina</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Onwetendheid is een zegen",
|
||||||
"Onwetendheid is een zegen",
|
|
||||||
"en": "nl",
|
"en": "nl",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Geplakte tekst bestaat niet, is verlopen of verwijderd.",
|
||||||
"Geplakte tekst bestaat niet, is verlopen of verwijderd.",
|
"%s requires php %s or above to work. Sorry.": "%s vereist PHP %s of hoger om te kunnen werken. Sorry",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s vereist dat de configuratiesectie [%s] aanwezig is in het configuratiebestand",
|
||||||
"%s vereist PHP %s of hoger om te kunnen werken. Sorry",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Alstublieft %d second wachten tussen elk bericht.",
|
||||||
"%s vereist dat de configuratiesectie [%s] aanwezig is in het configuratiebestand",
|
"Alstublieft %d seconden wachten tussen elk bericht.",
|
||||||
"Please wait %d seconds between each post.":
|
"Alstublieft %d seconden wachten tussen elk bericht.",
|
||||||
"Alstublieft %d seconden wachten tussen elk bericht",
|
"Alstublieft %d seconden wachten tussen elk bericht."
|
||||||
"Paste is limited to %s of encrypted data.":
|
],
|
||||||
"Geplakte tekst is beperkt tot %s aan versleutelde gegevens",
|
"Paste is limited to %s of encrypted data.": "Geplakte tekst is beperkt tot %s aan versleutelde gegevens",
|
||||||
"Invalid data.":
|
"Invalid data.": "Ongeldige gegevens",
|
||||||
"Ongeldige gegevens",
|
"You are unlucky. Try again.": "Helaas. Probeer het nog eens",
|
||||||
"You are unlucky. Try again.":
|
"Error saving comment. Sorry.": "Fout bij het opslaan van het commentaar. Sorry",
|
||||||
"Helaas. Probeer het nog eens",
|
"Error saving paste. Sorry.": "Fout bij het opslaan van de geplakte tekst. Sorry.",
|
||||||
"Error saving comment. Sorry.":
|
"Invalid paste ID.": "Ongeldige ID.",
|
||||||
"Fout bij het opslaan van het commentaar. Sorry",
|
"Paste is not of burn-after-reading type.": "Geplakte tekst is geen 'vernietig na lezen' type",
|
||||||
"Error saving paste. Sorry.":
|
"Wrong deletion token. Paste was not deleted.": "Foutieve verwijdercode. Geplakte tekst is niet verwijderd.",
|
||||||
"Fout bij het opslaan van de geplakte tekst. Sorry.",
|
"Paste was properly deleted.": "Geplakte tekst is correct verwijderd.",
|
||||||
"Invalid paste ID.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript vereist om %s te laten werken. Sorry voor het ongemak.",
|
||||||
"Ongeldige ID.",
|
"%s requires a modern browser to work.": "%s vereist een moderne browser om te kunnen werken ",
|
||||||
"Paste is not of burn-after-reading type.":
|
"New": "Nieuw",
|
||||||
"Geplakte tekst is geen 'vernietig na lezen' type",
|
"Send": "Verzenden",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"Clone": "Clonen",
|
||||||
"Foutieve verwijdercode. Geplakte tekst is niet verwijderd.",
|
"Raw text": "Onbewerkte tekst",
|
||||||
"Paste was properly deleted.":
|
"Expires": "Verloopt",
|
||||||
"Geplakte tekst is correct verwijderd.",
|
"Burn after reading": "Vernietig na lezen",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Open discussion": "Open discussie",
|
||||||
"JavaScript vereist om %s te laten werken.<br />Sorry voor het ongemak.",
|
"Password (recommended)": "Wachtwoord (aanbevolen)",
|
||||||
"%s requires a modern browser to work.":
|
"Discussion": "Discussie",
|
||||||
"%s vereist een moderne browser om te kunnen werken ",
|
"Toggle navigation": "Navigatie openen/sluiten",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"%d seconds": [
|
||||||
"Gebruik je nog steeds Internet explorer? Doe jezelf een plezier en maak gebruik van een moderne browser:",
|
"%d second",
|
||||||
"New":
|
"%d seconden",
|
||||||
"Nieuw",
|
"%d seconds (2nd plural)",
|
||||||
"Send":
|
"%d seconds (3rd plural)"
|
||||||
"Verzenden",
|
],
|
||||||
"Clone":
|
"%d minutes": [
|
||||||
"Clonen",
|
"%d minuut",
|
||||||
"Raw text":
|
"%d minuten",
|
||||||
"Onbewerkte tekst",
|
"%d minutes (2nd plural)",
|
||||||
"Expires":
|
"%d minutes (3rd plural)"
|
||||||
"Verloopt",
|
],
|
||||||
"Burn after reading":
|
"%d hours": [
|
||||||
"Vernietig na lezen",
|
"%d uur",
|
||||||
"Open discussion":
|
"%d uren",
|
||||||
"Open discussie",
|
"%d hours (2nd plural)",
|
||||||
"Password (recommended)":
|
"%d hours (3rd plural)"
|
||||||
"Wachtwoord (aanbevolen)",
|
],
|
||||||
"Discussion":
|
"%d days": [
|
||||||
"Discussie",
|
"%d dag",
|
||||||
"Toggle navigation":
|
"%d dagen",
|
||||||
"Navigatie openen/sluiten",
|
"%d days (2nd plural)",
|
||||||
"%d seconds": ["%d second", "%d seconden"],
|
"%d days (3rd plural)"
|
||||||
"%d minutes": ["%d minuut", "%d minuten"],
|
],
|
||||||
"%d hours": ["%d uur"],
|
"%d weeks": [
|
||||||
"%d days": ["%d dag", "%d dagen"],
|
"%d week",
|
||||||
"%d weeks": ["%d week", "%d weken"],
|
"%d weken",
|
||||||
"%d months": ["%d maand", "%d maanden"],
|
"%d weeks (2nd plural)",
|
||||||
"%d years": ["%d jaar"],
|
"%d weeks (3rd plural)"
|
||||||
"Never":
|
],
|
||||||
"Nooit",
|
"%d months": [
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d maand",
|
||||||
"Opmerking: Dit is een testservice: Gegevens kunnen op elk gegeven moment verwijderd worden.",
|
"%d maanden",
|
||||||
"This document will expire in %d seconds.":
|
"%d months (2nd plural)",
|
||||||
["Dit document verloopt over %d second.", "Dit document verloopt over %d seconden."],
|
"%d months (3rd plural)"
|
||||||
"This document will expire in %d minutes.":
|
],
|
||||||
["Dit document verloopt over %d minuut.", "Dit document verloopt over %d minuten"],
|
"%d years": [
|
||||||
"This document will expire in %d hours.":
|
"%d jaar",
|
||||||
["Dit document verloopt over %d uur."],
|
"%d jaaren",
|
||||||
"This document will expire in %d days.":
|
"%d years (2nd plural)",
|
||||||
["Dit document verloopt over %d dag.", "Dit document verloopt over %d dagen."],
|
"%d years (3rd plural)"
|
||||||
"This document will expire in %d months.":
|
],
|
||||||
["Dit document verloopt over %d maand.", "Dit document verloopt over %d maanden."],
|
"Never": "Nooit",
|
||||||
"Please enter the password for this paste:":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Opmerking: Dit is een testservice: Gegevens kunnen op elk gegeven moment verwijderd worden.",
|
||||||
"Voer het wachtwoord in voor deze geplakte tekst:",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Dit document verloopt over %d second.",
|
||||||
"Kon de gegevens niet decoderen (verkeerde sleutel?)",
|
"Dit document verloopt over %d seconden.",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Dit document verloopt over %d seconden.",
|
||||||
"Verwijderen van de geplakte tekst niet mogelijk, deze werd niet opgeslagen in 'vernietig na lezen' modus.",
|
"Dit document verloopt over %d seconden."
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
],
|
||||||
"FOR YOUR EYES ONLY. Sluit dit venster niet, dit bericht kan niet opnieuw worden weergegeven.",
|
"This document will expire in %d minutes.": [
|
||||||
"Could not decrypt comment; Wrong key?":
|
"Dit document verloopt over %d minuut.",
|
||||||
"Kon het commentaar niet decoderen; Verkeerde sleutel?",
|
"Dit document verloopt over %d minuten.",
|
||||||
"Reply":
|
"Dit document verloopt over %d minuten.",
|
||||||
"Beantwoorden",
|
"Dit document verloopt over %d minuten."
|
||||||
"Anonymous":
|
],
|
||||||
"Anoniem",
|
"This document will expire in %d hours.": [
|
||||||
"Avatar generated from IP address":
|
"Dit document verloopt over %d uur.",
|
||||||
"Anonieme avatar (van het IP adres)",
|
"Dit document verloopt over %d uren.",
|
||||||
"Add comment":
|
"Dit document verloopt over %d uren.",
|
||||||
"Commentaar toevoegen",
|
"Dit document verloopt over %d uren."
|
||||||
"Optional nickname…":
|
],
|
||||||
"Optionele bijnaam…",
|
"This document will expire in %d days.": [
|
||||||
"Post comment":
|
"Dit document verloopt over %d dag.",
|
||||||
"Plaats een commentaar",
|
"Dit document verloopt over %d dagen.",
|
||||||
"Sending comment…":
|
"Dit document verloopt over %d dagen.",
|
||||||
"Commentaar verzenden…",
|
"Dit document verloopt over %d dagen."
|
||||||
"Comment posted.":
|
],
|
||||||
"Commentaar geplaatst.",
|
"This document will expire in %d months.": [
|
||||||
"Could not refresh display: %s":
|
"Dit document verloopt over %d maand.",
|
||||||
"Kon de weergave niet vernieuwen: %s",
|
"Dit document verloopt over %d maanden.",
|
||||||
"unknown status":
|
"Dit document verloopt over %d maanden.",
|
||||||
"Onbekende status",
|
"Dit document verloopt over %d maanden."
|
||||||
"server error or not responding":
|
],
|
||||||
"Serverfout of server reageert niet",
|
"Please enter the password for this paste:": "Voer het wachtwoord in voor deze geplakte tekst:",
|
||||||
"Could not post comment: %s":
|
"Could not decrypt data (Wrong key?)": "Kon de gegevens niet decoderen (verkeerde sleutel?)",
|
||||||
"Kon het commentaar niet plaatsen: %s",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Verwijderen van de geplakte tekst niet mogelijk, deze werd niet opgeslagen in 'vernietig na lezen' modus.",
|
||||||
"Please move your mouse for more entropy…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Sluit dit venster niet, dit bericht kan niet opnieuw worden weergegeven.",
|
||||||
"Aub uw muis bewegen voor meer entropie…",
|
"Could not decrypt comment; Wrong key?": "Kon het commentaar niet decoderen; Verkeerde sleutel?",
|
||||||
"Sending paste…":
|
"Reply": "Beantwoorden",
|
||||||
"Geplakte tekst verzenden…",
|
"Anonymous": "Anoniem",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Avatar generated from IP address": "Anonieme avatar (van het IP adres)",
|
||||||
"Uw geplakte tekst is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Druk [Ctrl]+[c] om te kopiëren)</span>",
|
"Add comment": "Commentaar toevoegen",
|
||||||
"Delete data":
|
"Optional nickname…": "Optionele bijnaam…",
|
||||||
"Gegevens wissen",
|
"Post comment": "Plaats een commentaar",
|
||||||
"Could not create paste: %s":
|
"Sending comment…": "Commentaar verzenden…",
|
||||||
"Kon de geplakte tekst niet aanmaken: %s",
|
"Comment posted.": "Commentaar geplaatst.",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Could not refresh display: %s": "Kon de weergave niet vernieuwen: %s",
|
||||||
"Kon de geplakte tekst niet decoderen: Decoderingssleutel ontbreekt in URL (Hebt u een redirector of een URL-verkorter gebruikt die een deel van de URL verwijdert?)",
|
"unknown status": "Onbekende status",
|
||||||
|
"server error or not responding": "Serverfout of server reageert niet",
|
||||||
|
"Could not post comment: %s": "Kon het commentaar niet plaatsen: %s",
|
||||||
|
"Sending paste…": "Geplakte tekst verzenden…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Uw geplakte tekst is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Druk [Ctrl]+[c] om te kopiëren)</span>",
|
||||||
|
"Delete data": "Gegevens wissen",
|
||||||
|
"Could not create paste: %s": "Kon de geplakte tekst niet aanmaken: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Kon de geplakte tekst niet decoderen: Decoderingssleutel ontbreekt in URL (Hebt u een redirector of een URL-verkorter gebruikt die een deel van de URL verwijdert?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Formaat",
|
"Format": "Formaat",
|
||||||
"Plain Text": "Platte tekst",
|
"Plain Text": "Platte tekst",
|
||||||
"Source Code": "Broncode",
|
"Source Code": "Broncode",
|
||||||
@@ -135,25 +150,40 @@
|
|||||||
"alternatively drag & drop a file or paste an image from the clipboard": "U kunt ook een bestand slepen en neerzetten of een afbeelding plakken van het klembord",
|
"alternatively drag & drop a file or paste an image from the clipboard": "U kunt ook een bestand slepen en neerzetten of een afbeelding plakken van het klembord",
|
||||||
"File too large, to display a preview. Please download the attachment.": "Het bestand is te groot om voorbeeld weer te geven. Aub de bijlage downloaden",
|
"File too large, to display a preview. Please download the attachment.": "Het bestand is te groot om voorbeeld weer te geven. Aub de bijlage downloaden",
|
||||||
"Remove attachment": "Bijlage verwijderen",
|
"Remove attachment": "Bijlage verwijderen",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Uw browser biedt geen ondersteuning voor het uploaden van gecodeerde bestanden. Gebruik alstublieft een nieuwere browser",
|
||||||
"Uw browser biedt geen ondersteuning voor het uploaden van gecodeerde bestanden. Gebruik alstublieft een nieuwere browser",
|
|
||||||
"Invalid attachment.": "Ongeldige bijlage",
|
"Invalid attachment.": "Ongeldige bijlage",
|
||||||
"Options": "Opties",
|
"Options": "Opties",
|
||||||
"Shorten URL": "URL verkorten",
|
"Shorten URL": "URL verkorten",
|
||||||
"Editor": "Editor",
|
"Editor": "Editor",
|
||||||
"Preview": "Preview",
|
"Preview": "Preview",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s vereist dat het PATH eindigt in een '%s'. Aub het PATH updaten in uw index.php.",
|
||||||
"%s vereist dat het PATH eindigt in een '%s'. Aub het PATH updaten in uw index.php.",
|
"Decrypt": "Decoderen",
|
||||||
"Decrypt":
|
"Enter password": "Voer het wachtwoord in",
|
||||||
"Decoderen",
|
|
||||||
"Enter password":
|
|
||||||
"Voer het wachtwoord in",
|
|
||||||
"Loading…": "Laden…",
|
"Loading…": "Laden…",
|
||||||
"Decrypting paste…": "Geplakte tekst decoderen…",
|
"Decrypting paste…": "Geplakte tekst decoderen…",
|
||||||
"Preparing new paste…": "Nieuwe geplakte tekst voorbereiden…",
|
"Preparing new paste…": "Nieuwe geplakte tekst voorbereiden…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In het geval dat dit bericht nooit verdwijnt, kijkt u dan eens naar <a href=\"%s\"> veelgestelde vragen voor informatie over het oplossen van problemen </a>.",
|
||||||
"In het geval dat dit bericht nooit verdwijnt, kijkt u dan eens naar <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\"> veelgestelde vragen voor informatie over het oplossen van problemen </a>.",
|
|
||||||
"+++ no paste text +++": "+++ geen geplakte tekst +++",
|
"+++ no paste text +++": "+++ geen geplakte tekst +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
304
i18n/no.json
304
i18n/no.json
@@ -1,159 +1,189 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s er en minimalistisk, åpen kildekode, elektronisk tilgjengelig pastebin hvor serveren ikke har kunnskap om dataene som limes inn. Dataene krypteres/dekrypteres %si nettleseren%s ved hjelp av 256 bits AES.",
|
||||||
"%s er en minimalistisk, åpen kildekode, elektronisk tilgjengelig pastebin hvor serveren ikke har kunnskap om dataene som limes inn. Dataene krypteres/dekrypteres <i>i nettleseren</i> ved hjelp av 256 bits AES. Mer informasjon om prosjektet på <a href=\"https://privatebin.info/\">prosjektsiden</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mer informasjon om prosjektet på <a href=\"https://privatebin.info/\">prosjektsiden</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Fordi uvitenhet er lykke",
|
||||||
"Fordi uvitenhet er lykke",
|
|
||||||
"en": "no",
|
"en": "no",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Innlegget eksisterer ikke, er utløpt eller har blitt slettet.",
|
||||||
"Innlegget eksisterer ikke, er utløpt eller har blitt slettet.",
|
"%s requires php %s or above to work. Sorry.": "Beklager, %s krever php %s eller nyere for å kjøre.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s krever konfigurasjonsdel [%s] å være til stede i konfigurasjonsfilen .",
|
||||||
"Beklager, %s krever php %s eller nyere for å kjøre.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Vennligst vent %d sekund mellom hvert innlegg.",
|
||||||
"%s krever konfigurasjonsdel [%s] å være til stede i konfigurasjonsfilen .",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Vennligst vent %d sekunder mellom hvert innlegg.",
|
"Vennligst vent %d sekunder mellom hvert innlegg.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Vennligst vent %d sekunder mellom hvert innlegg.",
|
||||||
"Innlegg er begrenset til %s av kryptert data.",
|
"Vennligst vent %d sekunder mellom hvert innlegg."
|
||||||
"Invalid data.":
|
],
|
||||||
"Ugyldige data.",
|
"Paste is limited to %s of encrypted data.": "Innlegg er begrenset til %s av kryptert data.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Ugyldige data.",
|
||||||
"Du er uheldig. Prøv igjen.",
|
"You are unlucky. Try again.": "Du er uheldig. Prøv igjen.",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Beklager, det oppstod en feil ved lagring kommentar.",
|
||||||
"Beklager, det oppstod en feil ved lagring kommentar.",
|
"Error saving paste. Sorry.": "Beklager, det oppstod en feil ved lagring innlegg.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "Feil innlegg ID.",
|
||||||
"Beklager, det oppstod en feil ved lagring innlegg.",
|
"Paste is not of burn-after-reading type.": "Innlegg er ikke av typen slett etter lesing.",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Feil slettingsnøkkel. Innlegg ble ikke fjernet.",
|
||||||
"Feil innlegg ID.",
|
"Paste was properly deleted.": "Innlegget er slettet.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Javascript kreves for at %s skal fungere. Beklager.",
|
||||||
"Innlegg er ikke av typen slett etter lesing.",
|
"%s requires a modern browser to work.": "%s krever en moderne nettleser for å fungere.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Ny",
|
||||||
"Feil slettingsnøkkel. Innlegg ble ikke fjernet.",
|
"Send": "Send",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Kopier",
|
||||||
"Innlegget er slettet.",
|
"Raw text": "Ren tekst",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Utgår",
|
||||||
"Javascript kreves for at %s skal fungere<br />Beklager.",
|
"Burn after reading": "Slett etter lesing",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Åpen diskusjon",
|
||||||
"%s krever en moderne nettleser for å fungere.",
|
"Password (recommended)": "Passord (anbefalt)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Diskusjon",
|
||||||
"Fortsatt bruker av Internet Explorer? Gjør deg selv en tjeneste og bytt til en moderne nettleser:",
|
"Toggle navigation": "Veksle navigasjon",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Ny",
|
"%d sekund",
|
||||||
"Send":
|
"%d sekunder",
|
||||||
"Send",
|
"%d sekunder",
|
||||||
"Clone":
|
"%d sekunder"
|
||||||
"Kopier",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Ren tekst",
|
"%d minutt",
|
||||||
"Expires":
|
"%d minutter",
|
||||||
"Utgår",
|
"%d minutter",
|
||||||
"Burn after reading":
|
"%d minutter"
|
||||||
"Slett etter lesing",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Åpen diskusjon",
|
"%d time",
|
||||||
"Password (recommended)":
|
"%d timer",
|
||||||
"Passord (anbefalt)",
|
"%d timer",
|
||||||
"Discussion":
|
"%d timer"
|
||||||
"Diskusjon",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Veksle navigasjon",
|
"%d dag",
|
||||||
"%d seconds": ["%d sekund", "%d sekunder"],
|
"%d dager",
|
||||||
"%d minutes": ["%d minutt", "%d minutter"],
|
"%d dager",
|
||||||
"%d hours": ["%d time", "%d timer"],
|
"%d dager"
|
||||||
"%d days": ["%d dag", "%d dager"],
|
],
|
||||||
"%d weeks": ["%d uke", "%d uker"],
|
"%d weeks": [
|
||||||
"%d months": ["%d måned", "%d måneder"],
|
"%d uke",
|
||||||
"%d years": ["%d år", "%d år"],
|
"%d uker",
|
||||||
"Never":
|
"%d uker",
|
||||||
"Aldri",
|
"%d uker"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Merk: Dette er en test tjeneste: Data kan slettes når som helst. Kattunger vil dø hvis du misbruker denne tjenesten.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d måned",
|
||||||
["Dette dokumentet vil utløpe om %d sekund.", "Dette dokumentet vil utløpe om %d sekunder."],
|
"%d måneder",
|
||||||
"This document will expire in %d minutes.":
|
"%d måneder",
|
||||||
["Dette dokumentet vil utløpe om %d minutt.", "Dette dokumentet vil utløpe om %d minutter."],
|
"%d måneder"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Dette dokumentet vil utløpe om %d time.", "Dette dokumentet vil utløpe om %d timer."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d år",
|
||||||
["Dette dokumentet vil utløpe om %d dag.", "Dette dokumentet vil utløpe om %d dager."],
|
"%d år",
|
||||||
"This document will expire in %d months.":
|
"%d år",
|
||||||
["Dette dokumentet vil utløpe om %d måned.", "Dette dokumentet vil utløpe om %d måneder."],
|
"%d år"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Vennligst skriv inn passordet for dette innlegget:",
|
"Never": "Aldri",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Merk: Dette er en test tjeneste: Data kan slettes når som helst. Kattunger vil dø hvis du misbruker denne tjenesten.",
|
||||||
"Kunne ikke dekryptere data (Feil nøkkel?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Dette dokumentet vil utløpe om %d sekund.",
|
||||||
"Kan ikke slette innlegget, det ble ikke lagret som 'slett etter les' type.",
|
"Dette dokumentet vil utløpe om %d sekunder.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Dette dokumentet vil utløpe om %d sekunder.",
|
||||||
"KUN FOR DINE ØYNE. Ikke lukk dette vinduet, denne meldingen kan ikke bli vist igjen.",
|
"Dette dokumentet vil utløpe om %d sekunder."
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Kan ikke dekryptere kommentar; Feil nøkkel?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Dette dokumentet vil utløpe om %d minutt.",
|
||||||
"Svar",
|
"Dette dokumentet vil utløpe om %d minutter.",
|
||||||
"Anonymous":
|
"Dette dokumentet vil utløpe om %d minutter.",
|
||||||
"Anonym",
|
"Dette dokumentet vil utløpe om %d minutter."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Anonym avatar generert med data fra IP adressen)",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Dette dokumentet vil utløpe om %d time.",
|
||||||
"Legg til kommentar",
|
"Dette dokumentet vil utløpe om %d timer.",
|
||||||
"Optional nickname…":
|
"Dette dokumentet vil utløpe om %d timer.",
|
||||||
"Valgfritt kallenavn…",
|
"Dette dokumentet vil utløpe om %d timer."
|
||||||
"Post comment":
|
],
|
||||||
"Send kommentar",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Dette dokumentet vil utløpe om %d dag.",
|
||||||
"Sender Kommentar…",
|
"Dette dokumentet vil utløpe om %d dager.",
|
||||||
"Comment posted.":
|
"Dette dokumentet vil utløpe om %d dager.",
|
||||||
"Kommentar sendt.",
|
"Dette dokumentet vil utløpe om %d dager."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Kunne ikke oppdatere bildet: %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Dette dokumentet vil utløpe om %d måned.",
|
||||||
"ukjent status",
|
"Dette dokumentet vil utløpe om %d måneder.",
|
||||||
"server error or not responding":
|
"Dette dokumentet vil utløpe om %d måneder.",
|
||||||
"tjener feilet eller svarer ikke",
|
"Dette dokumentet vil utløpe om %d måneder."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Kunne ikke sende kommentar: %s",
|
"Please enter the password for this paste:": "Vennligst skriv inn passordet for dette innlegget:",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Kunne ikke dekryptere data (Feil nøkkel?)",
|
||||||
"Flytt musen for mer entropi…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Kan ikke slette innlegget, det ble ikke lagret som 'slett etter les' type.",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "KUN FOR DINE ØYNE. Ikke lukk dette vinduet, denne meldingen kan ikke bli vist igjen.",
|
||||||
"Sender innlegg…",
|
"Could not decrypt comment; Wrong key?": "Kan ikke dekryptere kommentar; Feil nøkkel?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Svar",
|
||||||
"Ditt innlegg er <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Trykk [Ctrl]+[c] for å kopiere)</span>",
|
"Anonymous": "Anonym",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Anonym avatar generert med data fra IP adressen)",
|
||||||
"Slett data",
|
"Add comment": "Legg til kommentar",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Valgfritt kallenavn…",
|
||||||
"Kunne ikke opprette innlegg: %s",
|
"Post comment": "Send kommentar",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Sender Kommentar…",
|
||||||
"Kan ikke dekryptere innlegg: Dekrypteringsnøkkelen mangler i adressen (Har du bruket en redirector eller en URL forkorter som fjerner en del av addressen?)",
|
"Comment posted.": "Kommentar sendt.",
|
||||||
|
"Could not refresh display: %s": "Kunne ikke oppdatere bildet: %s",
|
||||||
|
"unknown status": "ukjent status",
|
||||||
|
"server error or not responding": "tjener feilet eller svarer ikke",
|
||||||
|
"Could not post comment: %s": "Kunne ikke sende kommentar: %s",
|
||||||
|
"Sending paste…": "Sender innlegg…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Ditt innlegg er <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Trykk [Ctrl]+[c] for å kopiere)</span>",
|
||||||
|
"Delete data": "Slett data",
|
||||||
|
"Could not create paste: %s": "Kunne ikke opprette innlegg: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Kan ikke dekryptere innlegg: Dekrypteringsnøkkelen mangler i adressen (Har du bruket en redirector eller en URL forkorter som fjerner en del av addressen?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Format",
|
"Format": "Format",
|
||||||
"Plain Text": "Ren Tekst",
|
"Plain Text": "Ren Tekst",
|
||||||
"Source Code": "Kildekode",
|
"Source Code": "Kildekode",
|
||||||
"Markdown": "Oppmerket",
|
"Markdown": "Oppmerket",
|
||||||
"Download attachment": "Last ned vedlegg",
|
"Download attachment": "Last ned vedlegg",
|
||||||
"Cloned: '%s'": "Kopiert: '%s'",
|
"Cloned: '%s'": "Kopiert: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
"The cloned file '%s' was attached to this paste.": "Den klonede filen '%s' var koblet til denne innlimingen.",
|
||||||
"Attach a file": "Legg til fil",
|
"Attach a file": "Legg til fil",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternativt dra og slipp en fil, eller lim inn et bilde fra utklippstavlen",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "Filen er for stor, for å vise en forhåndsvisning. Last ned vedlegget.",
|
||||||
"Remove attachment": "Slett vedlegg",
|
"Remove attachment": "Slett vedlegg",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Nettleseren din støtter ikke å laste opp krypterte filer. Vennligst bruk en nyere nettleser.",
|
||||||
"Nettleseren din støtter ikke å laste opp krypterte filer. Vennligst bruk en nyere nettleser.",
|
|
||||||
"Invalid attachment.": "Ugyldig vedlegg.",
|
"Invalid attachment.": "Ugyldig vedlegg.",
|
||||||
"Options": "Alternativer",
|
"Options": "Alternativer",
|
||||||
"Shorten URL": "Adresse forkorter",
|
"Shorten URL": "Adresse forkorter",
|
||||||
"Editor": "Rediger",
|
"Editor": "Rediger",
|
||||||
"Preview": "Forhåndsvis",
|
"Preview": "Forhåndsvis",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s krever at PATH ender på \"%s\". Vennligst oppdater PATH i index.php.",
|
||||||
"%s krever at PATH ender på \"%s\". Vennligst oppdater PATH i index.php.",
|
"Decrypt": "Dekrypter",
|
||||||
"Decrypt":
|
"Enter password": "Skriv inn passord",
|
||||||
"Dekrypter",
|
|
||||||
"Enter password":
|
|
||||||
"Skriv inn passord",
|
|
||||||
"Loading…": "Laster…",
|
"Loading…": "Laster…",
|
||||||
"Decrypting paste…": "Dekrypterer innlegg…",
|
"Decrypting paste…": "Dekrypterer innlegg…",
|
||||||
"Preparing new paste…": "Klargjør nytt innlegg…",
|
"Preparing new paste…": "Klargjør nytt innlegg…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Hvis denne meldingen ikke forsvinner kan du ta en titt på siden med <a href=\"%s\">ofte stilte spørsmål</a> for informasjon om feilsøking.",
|
||||||
"Hvis denne meldingen ikke forsvinner kan du ta en titt på siden med <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">ofte stilte spørsmål</a> for informasjon om feilsøking.",
|
|
||||||
"+++ no paste text +++": "+++ ingen innleggstekst +++",
|
"+++ no paste text +++": "+++ ingen innleggstekst +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Kunne ikke hente utklippsdata: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "QR kode",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Denne websiden bruker usikker HTTP tilkobling! Bruk den kun for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For mer informasjon <a href=\"%s\">se ofte stilte spørsmål</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Din nettleser har behov for HTTPS tilkobling for å støtte WebCrypto biblioteket. Prøv å <a href=\"%s\">bytt til HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Nettleseren din støtter ikke WebAssembly som brukes for zlib komprimering. Du kan lage ukomprimerte dokumenter, men du kan ikke lese komprimerte.",
|
||||||
|
"waiting on user to provide a password": "venter på at bruker skal skrive passord",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Kunne ikke dekryptere data. Har du tastet riktig pssord? Prøv igjen med knappen på toppen.",
|
||||||
|
"Retry": "Prøv igjen",
|
||||||
|
"Showing raw text…": "Viser rå-tekst…",
|
||||||
|
"Notice:": "Notat:",
|
||||||
|
"This link will expire after %s.": "Denne lenken vil bli inaktiv etter %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Denne addressen kan kun bli besøkt en gang, ikke trykk på tilbake eller oppdater knappene i nettleseren.",
|
||||||
|
"Link:": "Lenke:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Mottaker kan bli kjent med din tidssone, ønsker du å konvertere til UTC?",
|
||||||
|
"Use Current Timezone": "Bruk gjeldende tidssone",
|
||||||
|
"Convert To UTC": "Konverter til UTC",
|
||||||
|
"Close": "Steng",
|
||||||
|
"Encrypted note on PrivateBin": "Kryptert notat på PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Besøk denne lenken for å se notatet. Hvis lenken deles med andre, vil de også kunne se notatet.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL forkorter kan avsløre dekrypteringsnøkkelen.",
|
||||||
|
"Save paste": "Lagre utklipp"
|
||||||
}
|
}
|
||||||
289
i18n/oc.json
289
i18n/oc.json
@@ -1,129 +1,135 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s es un 'pastebin' (o gestionari d’extrachs de tèxte e còdi font) minimalista e open source, dins lo qual lo servidor a pas cap de coneissença de las donadas mandadas. Las donadas son chifradas/deschifradas %sdins lo navigator%s per un chiframent AES 256 bits.",
|
||||||
"%s es un 'pastebin' (o gestionari d’extrachs de tèxte e còdi font) minimalista e open source, dins lo qual lo servidor a pas cap de coneissença de las donadas mandadas. Las donadas son chifradas/deschifradas <i>dins lo navigator</i> per un chiframent AES 256 bits. Mai informacions sus <a href=\"https://privatebin.info/\">la pagina del projècte</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mai informacions sus <a href=\"https://privatebin.info/\">la pagina del projècte</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Perque lo bonaür es l’ignorància",
|
||||||
"Perque lo bonaür es l’ignorància",
|
|
||||||
"en": "oc",
|
"en": "oc",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Lo tèxte existís pas, a expirat, o es estat suprimit.",
|
||||||
"Lo tèxte existís pas, a expirat, o es estat suprimit.",
|
"%s requires php %s or above to work. Sorry.": "O planhèm, %s necessita php %s o superior per foncionar.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s fa besonh de la seccion de configuracion [%s] dins lo fichièr de configuracion per foncionar.",
|
||||||
"O planhèm, %s necessita php %s o superior per foncionar.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Mercés d'esperar %d segonda entre cada publicacion.",
|
||||||
"%s fa besonh de la seccion de configuracion [%s] dins lo fichièr de configuracion per foncionar.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Mercés d'esperar %d segondas entre cada publicacion.",
|
"Mercés d'esperar %d segondas entre cada publicacion.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Mercés d'esperar %d segondas entre cada publicacion.",
|
||||||
"Lo tèxte es limitat a %s de donadas chifradas.",
|
"Mercés d'esperar %d segondas entre cada publicacion."
|
||||||
"Invalid data.":
|
],
|
||||||
"Donadas invalidas.",
|
"Paste is limited to %s of encrypted data.": "Lo tèxte es limitat a %s de donadas chifradas.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Donadas invalidas.",
|
||||||
"Pas cap de fortuna. Tornatz ensajar.",
|
"You are unlucky. Try again.": "Pas cap de fortuna. Tornatz ensajar.",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Error al moment de salvagardar lo comentari. O planhèm.",
|
||||||
"Error al moment de salvagardar lo comentari. O planhèm.",
|
"Error saving paste. Sorry.": "Error al moment de salvagardar lo tèxte. O planhèm.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "ID del tèxte invalid.",
|
||||||
"Error al moment de salvagardar lo tèxte. O planhèm.",
|
"Paste is not of burn-after-reading type.": "Lo tèxte es pas del tipe « Escafar aprèp lectura ».",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Geton de supression incorrècte. Lo tèxte es pas estat suprimit.",
|
||||||
"ID del tèxte invalid.",
|
"Paste was properly deleted.": "Lo tèxte es estat corrèctament suprimit.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript es requesit per far foncionar %s. O planhèm per l’inconvenient.",
|
||||||
"Lo tèxte es pas del tip \"Escafar aprèp lectura\".",
|
"%s requires a modern browser to work.": "%s requerís un navigator modèrn per foncionar.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Nòu",
|
||||||
"Geton de supression incorrècte. Lo tèxte es pas estat suprimit.",
|
"Send": "Mandar",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Clonar",
|
||||||
"Lo tèxte es estat correctament suprimit.",
|
"Raw text": "Tèxte brut",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Expira",
|
||||||
"JavaScript es requesit per far foncionar %s. <br />O planhèm per l’inconvenient.",
|
"Burn after reading": "Escafar aprèp lectura",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Autorizar la discussion",
|
||||||
"%s necessita un navigator modèrn per foncionar.",
|
"Password (recommended)": "Senhal (recomandat)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Discussion",
|
||||||
"Encora sus Internet Explorer ? Fasètz-vos una favor, passatz a un navigator modèrn :",
|
"Toggle navigation": "Virar la navigacion",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Nòu",
|
"%d segonda",
|
||||||
"Send":
|
"%d segondas",
|
||||||
"Mandar",
|
"%d seconds (2nd plural)",
|
||||||
"Clone":
|
"%d seconds (3rd plural)"
|
||||||
"Clonar",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Tèxte brut",
|
"%d minuta",
|
||||||
"Expires":
|
"%d minutas",
|
||||||
"Expira",
|
"%d minutes (2nd plural)",
|
||||||
"Burn after reading":
|
"%d minutes (3rd plural)"
|
||||||
"Escafar aprèp lectura",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Autorizar la discussion",
|
"%d ora",
|
||||||
"Password (recommended)":
|
"%d oras",
|
||||||
"Senhal (recomandat)",
|
"%d hours (2nd plural)",
|
||||||
"Discussion":
|
"%d hours (3rd plural)"
|
||||||
"Discussion",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Virar la navigacion",
|
"%d jorn",
|
||||||
"%d seconds": ["%d segonda", "%d segondas"],
|
"%d jorns",
|
||||||
"%d minutes": ["%d minuta", "%d minutas"],
|
"%d days (2nd plural)",
|
||||||
"%d hours": ["%d ora", "%d oras"],
|
"%d days (3rd plural)"
|
||||||
"%d days": ["%d jorn", "%d jorns"],
|
],
|
||||||
"%d weeks": ["%d setmana", "%d setmanas"],
|
"%d weeks": [
|
||||||
"%d months": ["%d mes", "%d meses"],
|
"%d setmana",
|
||||||
"%d years": ["%d an", "%d ans"],
|
"%d setmanas",
|
||||||
"Never":
|
"%d weeks (2nd plural)",
|
||||||
"Jamai",
|
"%d weeks (3rd plural)"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Nota : Aquò es un servici d’espròva : las donadas pòdon èsser suprimidas a cada moment. De catons moriràn s’abusatz d’aqueste servici.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d mes",
|
||||||
["Ce document expirera dans %d seconde.", "Aqueste document expirarà dins %d segondas."],
|
"%d meses",
|
||||||
"This document will expire in %d minutes.":
|
"%d months (2nd plural)",
|
||||||
["Ce document expirera dans %d minute.", "Aqueste document expirarà dins %d minutas."],
|
"%d months (3rd plural)"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Ce document expirera dans %d heure.", "Aqueste document expirarà dins %d oras."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d an",
|
||||||
["Ce document expirera dans %d jour.", "Aqueste document expirarà dins %d jorns."],
|
"%d ans",
|
||||||
"This document will expire in %d months.":
|
"%d years (2nd plural)",
|
||||||
["Ce document expirera dans %d mois.", "Aqueste document expirarà dins %d meses."],
|
"%d years (3rd plural)"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Picatz lo senhal per aqueste tèxte :",
|
"Never": "Jamai",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Nota : Aquò es un servici d’espròva : las donadas pòdon èsser suprimidas a cada moment. De catons moriràn s’abusatz d’aqueste servici.",
|
||||||
"Impossible de deschifrar las donadas (marrida clau ?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Ce document expirera dans %d seconde.",
|
||||||
"Impossible de suprimir lo tèxte, perque es pas estat gardat en mòde \"Escafar aprèp lectura\".",
|
"Aqueste document expirarà dins %d segondas.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Aqueste document expirarà dins %d segondas.",
|
||||||
"PER VÒSTRES UÈLHS SOLAMENT. Tampetz pas aquesta fenèstra, aqueste tèxte poirà pas mai èsser afichat.",
|
"Aqueste document expirarà dins %d segondas."
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Impossible de deschifrar lo comentari ; marrida clau ?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Ce document expirera dans %d minute.",
|
||||||
"Respondre",
|
"Aqueste document expirarà dins %d minutas.",
|
||||||
"Anonymous":
|
"Aqueste document expirarà dins %d minutas.",
|
||||||
"Anonime",
|
"Aqueste document expirarà dins %d minutas."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Avatar anonime (Vizhash de l’adreça IP)",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Ce document expirera dans %d heure.",
|
||||||
"Apondre un comentari",
|
"Aqueste document expirarà dins %d oras.",
|
||||||
"Optional nickname…":
|
"Aqueste document expirarà dins %d oras.",
|
||||||
"Escais opcional…",
|
"Aqueste document expirarà dins %d oras."
|
||||||
"Post comment":
|
],
|
||||||
"Mandar lo comentari",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Ce document expirera dans %d jour.",
|
||||||
"Mandadís del comentari…",
|
"Aqueste document expirarà dins %d jorns.",
|
||||||
"Comment posted.":
|
"Aqueste document expirarà dins %d jorns.",
|
||||||
"Comentari mandat.",
|
"Aqueste document expirarà dins %d jorns."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Impossible d’actualizar l’afichatge : %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Ce document expirera dans %d mois.",
|
||||||
"Estatut desconegut",
|
"Aqueste document expirarà dins %d meses.",
|
||||||
"server error or not responding":
|
"Aqueste document expirarà dins %d meses.",
|
||||||
"Lo servidor respond pas o a rencontrat una error",
|
"Aqueste document expirarà dins %d meses."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Impossible de mandar lo comentari : %s",
|
"Please enter the password for this paste:": "Picatz lo senhal per aqueste tèxte :",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Impossible de deschifrar las donadas (marrida clau ?)",
|
||||||
"Mercés de bolegar vòstra mirga per mai entropia…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Impossible de suprimir lo tèxte, perque es pas estat gardat en mòde \"Escafar aprèp lectura\".",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "PER VÒSTRES UÈLHS SOLAMENT. Tampetz pas aquesta fenèstra, aqueste tèxte poirà pas mai èsser afichat.",
|
||||||
"Mandadís del tèxte…",
|
"Could not decrypt comment; Wrong key?": "Impossible de deschifrar lo comentari ; marrida clau ?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Respondre",
|
||||||
"Vòstre tèxte es disponible a l’adreça <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Picatz sus [Ctrl]+[c] per copiar)</span>",
|
"Anonymous": "Anonime",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Avatar anonime (Vizhash de l’adreça IP)",
|
||||||
"Supprimir las donadas del tèxte",
|
"Add comment": "Apondre un comentari",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Escais opcional…",
|
||||||
"Impossible de crear lo tèxte : %s",
|
"Post comment": "Mandar lo comentari",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Mandadís del comentari…",
|
||||||
"Impossible de deschifrar lo tèxte : clau de deschiframent absenta de l’URL (Avètz utilizat un redirector o un site de reduccion d’URL que suprimís una partida de l’URL ?)",
|
"Comment posted.": "Comentari mandat.",
|
||||||
|
"Could not refresh display: %s": "Impossible d’actualizar l’afichatge : %s",
|
||||||
|
"unknown status": "Estatut desconegut",
|
||||||
|
"server error or not responding": "Lo servidor respond pas o a rescontrat una error",
|
||||||
|
"Could not post comment: %s": "Impossible de mandar lo comentari : %s",
|
||||||
|
"Sending paste…": "Mandadís del tèxte…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Vòstre tèxte es disponible a l’adreça <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Picatz sus [Ctrl]+[c] per copiar)</span>",
|
||||||
|
"Delete data": "Supprimir las donadas del tèxte",
|
||||||
|
"Could not create paste: %s": "Impossible de crear lo tèxte : %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Impossible de deschifrar lo tèxte : clau de deschiframent absenta de l’URL (Avètz utilizat un redirector o un site de reduccion d’URL que suprimís una partida de l’URL ?)",
|
||||||
"B": "o",
|
"B": "o",
|
||||||
"KiB": "Kio",
|
"KiB": "Kio",
|
||||||
"MiB": "Mio",
|
"MiB": "Mio",
|
||||||
@@ -144,25 +150,40 @@
|
|||||||
"alternatively drag & drop a file or paste an image from the clipboard": "autrament lisatz lo fichièr o pegatz l’imatge del quichapapièrs",
|
"alternatively drag & drop a file or paste an image from the clipboard": "autrament lisatz lo fichièr o pegatz l’imatge del quichapapièrs",
|
||||||
"File too large, to display a preview. Please download the attachment.": "Fichièr tròp pesuc per mostrar un apercebut. Telecargatz la pèca junta.",
|
"File too large, to display a preview. Please download the attachment.": "Fichièr tròp pesuc per mostrar un apercebut. Telecargatz la pèca junta.",
|
||||||
"Remove attachment": "Levar la pèça junta",
|
"Remove attachment": "Levar la pèça junta",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Vòstre navigator es pas compatible amb lo mandadís de fichièrs chifrats. Mercés d’emplegar un navigator mai recent.",
|
||||||
"Vòstre navigator es pas compatible amb lo mandadís de fichièrs chifrats. Mercés d’emplegar un navigator mai recent.",
|
|
||||||
"Invalid attachment.": "Pèça junta invalida.",
|
"Invalid attachment.": "Pèça junta invalida.",
|
||||||
"Options": "Opcions",
|
"Options": "Opcions",
|
||||||
"Shorten URL": "Acorchir l’URL",
|
"Shorten URL": "Acorchir l’URL",
|
||||||
"Editor": "Editar",
|
"Editor": "Editar",
|
||||||
"Preview": "Previsualizar",
|
"Preview": "Previsualizar",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s demanda que lo PATH termine en \"%s\". Mercés de metre a jorn lo PATH dins vòstre index.php.",
|
||||||
"%s demanda que lo PATH termine en \"%s\". Mercés de metre a jorn lo PATH dins vòstre index.php.",
|
"Decrypt": "Deschifrar",
|
||||||
"Decrypt":
|
"Enter password": "Picatz lo senhal",
|
||||||
"Deschifrar",
|
|
||||||
"Enter password":
|
|
||||||
"Picatz lo senhal",
|
|
||||||
"Loading…": "Cargament…",
|
"Loading…": "Cargament…",
|
||||||
"Decrypting paste…": "Deschirament del tèxte…",
|
"Decrypting paste…": "Deschirament del tèxte…",
|
||||||
"Preparing new paste…": "Preparacion…",
|
"Preparing new paste…": "Preparacion…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Se per cas aqueste messatge quite pas de s’afichar mercés de gaitar <a href=\"%s\">aquesta FAQ per las solucions</a> (en anglés).",
|
||||||
"Se per cas aqueste messatge quita pas de s’afichar mercés de gaitar <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">aquesta FAQ per las solucions</a> (en anglés).",
|
|
||||||
"+++ no paste text +++": "+++ cap de tèxte pegat +++",
|
"+++ no paste text +++": "+++ cap de tèxte pegat +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Recuperacion impossibla de las donadas copiadas : %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "Còdi QR",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Aqueste site utiliza una connexion HTTP pas segura ! Mercés de l’utilizar pas que per d’ensages.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Per mai d’informacions <a href=\"%s\">vejatz aqueste article de FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Se pòt que vòstre navigator faga besonh d’una connexion HTTPS per èsser compatible amb l’API WebCrypto. Ensajatz de <a href=\"%s\">passar al HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Vòstre navigator es pas compatible amb WebAssembly, utilizat per la compression zlib. Podètz crear de documents pas compressat, mas ne podètz pas legir de compressats.",
|
||||||
|
"waiting on user to provide a password": "en espèra que l’utilizaire fornisca un senhal",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Deschiframent de las donadas impossible. Avètz picat un marrit senhal ? Tornatz ensajar amb lo boton ennaut.",
|
||||||
|
"Retry": "Tornar ensajar",
|
||||||
|
"Showing raw text…": "Afichatge del tèxte brut…",
|
||||||
|
"Notice:": "Avertiment :",
|
||||||
|
"This link will expire after %s.": "Aqueste ligam expirarà aprèp %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Òm pòt pas qu’accedir a aqueste ligam qu’un còp, utilizetz pas lo boton precedent o actualizar del navigator.",
|
||||||
|
"Link:": "Ligam :",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Lo destinatari pòt s’avisar de vòstre fus orari, convertir en UTC ?",
|
||||||
|
"Use Current Timezone": "Utilizar l’actual",
|
||||||
|
"Convert To UTC": "Convertir en UTC",
|
||||||
|
"Close": "Tampar",
|
||||||
|
"Encrypted note on PrivateBin": "Nòtas chifradas sus PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visitatz aqueste ligam per veire la nòta. Fornir lo ligam a qualqu’un mai li permet tanben d’accedir a la nòta.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
314
i18n/pl.json
314
i18n/pl.json
@@ -1,159 +1,189 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s jest minimalistycznym, otwartoźródłowym serwisem typu pastebin, w którym serwer nie ma jakichkolwiek informacji o tym, co jest wklejane. Dane są szyfrowane i deszyfrowane %sw przeglądarce%s z użyciem 256-bitowego klucza AES.",
|
||||||
"%s jest minimalistycznym, otwartoźródłowym serwisem typu pastebin, w którym serwer nie ma jakichkolwiek informacji o tym, co jest wklejane. Dane są szyfrowane i deszyfrowane <i>w przeglądarce</i> z użyciem 256-bitowego klucza AES. Więcej informacji na <a href=\"https://privatebin.info/\">stronie projektu</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Więcej informacji na <a href=\"https://privatebin.info/\">stronie projektu</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Ponieważ ignorancja jest cnotą",
|
||||||
"Ponieważ ignorancja jest cnotą",
|
|
||||||
"en": "pl",
|
"en": "pl",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Wklejka nie istnieje, wygasła albo została usunięta.",
|
||||||
"Wklejka nie istnieje, wygasła albo została usunięta.",
|
"%s requires php %s or above to work. Sorry.": "%s wymaga PHP w wersji %s lub nowszej. Przykro mi.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s wymaga obecności sekcji [%s] w pliku konfiguracyjnym.",
|
||||||
"%s wymaga PHP w wersji %s lub nowszej, sorry.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Poczekaj %d sekundę pomiędzy każdą wklejką.",
|
||||||
"%s wymaga obecności sekcji [%s] w pliku konfiguracyjnym.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Poczekaj %d sekund pomiędzy każdą wklejką.",
|
"Poczekaj %d sekund pomiędzy każdą wklejką.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Poczekaj %d sekund pomiędzy każdą wklejką.",
|
||||||
"Wklejka jest limitowana do %s zaszyfrowanych danych.",
|
"Poczekaj %d sekund pomiędzy każdą wklejką."
|
||||||
"Invalid data.":
|
],
|
||||||
"Nieprawidłowe dane.",
|
"Paste is limited to %s of encrypted data.": "Wklejka jest limitowana do %s zaszyfrowanych danych.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Nieprawidłowe dane.",
|
||||||
"Miałeś pecha. Spróbuj ponownie.",
|
"You are unlucky. Try again.": "Miałeś pecha. Spróbuj ponownie.",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Błąd przy zapisywaniu komentarza, sorry.",
|
||||||
"Błąd przy zapisywaniu komentarza, sorry.",
|
"Error saving paste. Sorry.": "Błąd przy zapisywaniu wklejki, sorry.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "Nieprawidłowe ID wklejki.",
|
||||||
"Błąd przy zapisywaniu wklejki, sorry.",
|
"Paste is not of burn-after-reading type.": "Ta wklejka nie ulega autodestrukcji po przeczytaniu.",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Nieprawidłowy token usuwania. Wklejka nie została usunięta.",
|
||||||
"Nieprawidłowe ID wklejki.",
|
"Paste was properly deleted.": "Wklejka usunięta poprawnie.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Do działania %sa jest wymagany JavaScript. Przepraszamy za tę niedogodność.",
|
||||||
"Ta wklejka nie ulega autodestrukcji po przeczytaniu.",
|
"%s requires a modern browser to work.": "%s wymaga do działania nowoczesnej przeglądarki.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Nowa",
|
||||||
"Nieprawidłowy token usuwania. Wklejka nie została usunięta.",
|
"Send": "Wyślij",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Sklonuj",
|
||||||
"Wklejka usunięta poprawnie.",
|
"Raw text": "Czysty tekst",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Wygasa za",
|
||||||
"Do działania %sa jest wymagany JavaScript. Przepraszamy za tę niedogodność.",
|
"Burn after reading": "Zniszcz po przeczytaniu",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Otwarta dyskusja",
|
||||||
"%s wymaga do działania nowoczesnej przeglądarki.",
|
"Password (recommended)": "Hasło (zalecane)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Dyskusja",
|
||||||
"Cały czas używasz Internet Explorera? Zrób sobie przysługę, przesiądź się na nowoczesną przeglądarkę:",
|
"Toggle navigation": "Przełącz nawigację",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Nowa",
|
"%d second",
|
||||||
"Send":
|
"%d second",
|
||||||
"Wyślij",
|
"%d second",
|
||||||
"Clone":
|
"%d second"
|
||||||
"Sklonuj",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Czysty tekst",
|
"%d minut",
|
||||||
"Expires":
|
"%d minut",
|
||||||
"Wygasa za",
|
"%d minut",
|
||||||
"Burn after reading":
|
"%d minut"
|
||||||
"Zniszcz po przeczytaniu",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Otwarta dyskusja",
|
"%d godzina",
|
||||||
"Password (recommended)":
|
"%d godzina",
|
||||||
"Hasło (zalecane)",
|
"%d godzinę",
|
||||||
"Discussion":
|
"%d godzinę"
|
||||||
"Dyskusja",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Przełącz nawigację",
|
"%d dzień",
|
||||||
"%d seconds": ["%d second", "%d second", "%d second"],
|
"%d dzień",
|
||||||
"%d minutes": ["%d minut", "%d minut", "%d minut"],
|
"%d dzień",
|
||||||
"%d hours": ["%d godzina", "%d godzina", "%d godzinę"],
|
"%d dzień"
|
||||||
"%d days": ["%d dzień", "%d dzień", "%d dzień"],
|
],
|
||||||
"%d weeks": ["%d tydzień", "%d tydzień", "%d tydzień"],
|
"%d weeks": [
|
||||||
"%d months": ["%d miesiąc", "%d miesiąc", "%d miesiąc"],
|
"%d tydzień",
|
||||||
"%d years": ["%d rok", "%d rok", "%d rok"],
|
"%d tydzień",
|
||||||
"Never":
|
"%d tydzień",
|
||||||
"nigdy",
|
"%d tydzień"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Notka: To jest usługa testowa. Dane mogą zostać usunięte w dowolnym momencie. Kociątka umrą, jeśli nadużyjesz tej usługi.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d miesiąc",
|
||||||
["Ten dokument wygaśnie za %d sekundę.", "Ten dokument wygaśnie za %d sekund."],
|
"%d miesiąc",
|
||||||
"This document will expire in %d minutes.":
|
"%d miesiąc",
|
||||||
["Ten dokument wygaśnie za %d minutę.", "Ten dokument wygaśnie za %d minut."],
|
"%d miesiąc"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Ten dokument wygaśnie za godzinę.", "Ten dokument wygaśnie za %d godzin."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d rok",
|
||||||
["Ten dokument wygaśnie za %d dzień.", "Ten dokument wygaśnie za %d dni."],
|
"%d rok",
|
||||||
"This document will expire in %d months.":
|
"%d rok",
|
||||||
["Ten dokument wygaśnie za miesiąc.", "Ten dokument wygaśnie za %d miesięcy."],
|
"%d rok"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Wpisz hasło dla tej wklejki:",
|
"Never": "nigdy",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Notka: To jest usługa testowa. Dane mogą zostać usunięte w dowolnym momencie. Kociątka umrą, jeśli nadużyjesz tej usługi.",
|
||||||
"Nie udało się odszyfrować danych (zły klucz?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Ten dokument wygaśnie za %d sekundę.",
|
||||||
"Nie udało się usunąć wklejki, nie została zapisana w trybie zniszczenia po przeczytaniu.",
|
"Ten dokument wygaśnie za %d sekund.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Ten dokument wygaśnie za %d sekund.",
|
||||||
"TYLKO DO TWOJEGO WGLĄDU. Nie zamykaj tego okna, ta wiadomość nie będzie mogła być wyświetlona ponownie.",
|
"Ten dokument wygaśnie za %d sekund."
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Nie udało się odszyfrować komentarza; zły klucz?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Ten dokument wygaśnie za %d minutę.",
|
||||||
"Odpowiedz",
|
"Ten dokument wygaśnie za %d minut.",
|
||||||
"Anonymous":
|
"Ten dokument wygaśnie za %d minut.",
|
||||||
"Anonim",
|
"Ten dokument wygaśnie za %d minut."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Anonimowy avatar (Vizhash z adresu IP)",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Ten dokument wygaśnie za godzinę.",
|
||||||
"Dodaj komentarz",
|
"Ten dokument wygaśnie za %d godzin.",
|
||||||
"Optional nickname…":
|
"Ten dokument wygaśnie za %d godzin.",
|
||||||
"Opcjonalny nick…",
|
"Ten dokument wygaśnie za %d godzin."
|
||||||
"Post comment":
|
],
|
||||||
"Wyślij komentarz",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Ten dokument wygaśnie za %d dzień.",
|
||||||
"Wysyłanie komentarza…",
|
"Ten dokument wygaśnie za %d dni.",
|
||||||
"Comment posted.":
|
"Ten dokument wygaśnie za %d dni.",
|
||||||
"Wysłano komentarz.",
|
"Ten dokument wygaśnie za %d dni."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Nie można odświeżyć widoku: %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Ten dokument wygaśnie za miesiąc.",
|
||||||
"nieznany status",
|
"Ten dokument wygaśnie za %d miesięcy.",
|
||||||
"server error or not responding":
|
"Ten dokument wygaśnie za %d miesięcy.",
|
||||||
"bląd serwera lub brak odpowiedzi",
|
"Ten dokument wygaśnie za %d miesięcy."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Nie udało się wysłać komentarza: %s",
|
"Please enter the password for this paste:": "Wpisz hasło dla tej wklejki:",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Nie udało się odszyfrować danych (zły klucz?)",
|
||||||
"Proszę poruszać myszą aby uzyskać większą entropię…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Nie udało się usunąć wklejki, nie została zapisana w trybie zniszczenia po przeczytaniu.",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "TYLKO DO TWOJEGO WGLĄDU. Nie zamykaj tego okna, ta wiadomość nie będzie mogła być wyświetlona ponownie.",
|
||||||
"Wysyłanie wklejki…",
|
"Could not decrypt comment; Wrong key?": "Nie udało się odszyfrować komentarza; zły klucz?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Odpowiedz",
|
||||||
"Twoja wklejka to <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(wciśnij [Ctrl]+[c] aby skopiować)</span>",
|
"Anonymous": "Anonim",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Anonimowy avatar (Vizhash z adresu IP)",
|
||||||
"Skasuj dane",
|
"Add comment": "Dodaj komentarz",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Opcjonalny nick…",
|
||||||
"Nie udało się utworzyć wklejki: %s",
|
"Post comment": "Wyślij komentarz",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Wysyłanie komentarza…",
|
||||||
"Nie udało się odszyfrować wklejki - brak klucza deszyfrującego w adresie (użyłeś skracacza linków, który ucina część adresu?)",
|
"Comment posted.": "Wysłano komentarz.",
|
||||||
|
"Could not refresh display: %s": "Nie można odświeżyć widoku: %s",
|
||||||
|
"unknown status": "nieznany status",
|
||||||
|
"server error or not responding": "błąd serwera lub brak odpowiedzi",
|
||||||
|
"Could not post comment: %s": "Nie udało się wysłać komentarza: %s",
|
||||||
|
"Sending paste…": "Wysyłanie wklejki…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Twoja wklejka to <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(wciśnij [Ctrl]+[c] aby skopiować)</span>",
|
||||||
|
"Delete data": "Skasuj dane",
|
||||||
|
"Could not create paste: %s": "Nie udało się utworzyć wklejki: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Nie udało się odszyfrować wklejki - brak klucza deszyfrującego w adresie (użyłeś skracacza linków, który ucina część adresu?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Format",
|
"Format": "Format",
|
||||||
"Plain Text": "Czysty tekst",
|
"Plain Text": "Czysty tekst",
|
||||||
"Source Code": "Kod źródłowy",
|
"Source Code": "Kod źródłowy",
|
||||||
"Markdown": "Markdown",
|
"Markdown": "Markdown",
|
||||||
"Download attachment": "Pobierz załącznik",
|
"Download attachment": "Pobierz załącznik",
|
||||||
"Cloned: '%s'": "Sklonowano: '%s'",
|
"Cloned: '%s'": "Sklonowano: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
"The cloned file '%s' was attached to this paste.": "Sklonowany plik '%s' był dołączony do tej wklejki.",
|
||||||
"Attach a file": "Załącz plik",
|
"Attach a file": "Załącz plik",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "Alternatywnie przeciągnij i upuść plik albo wklej obraz ze schowka",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "Plik zbyt duży aby wyświetlić podgląd. Proszę pobrać załącznik.",
|
||||||
"Remove attachment": "Usuń załącznik",
|
"Remove attachment": "Usuń załącznik",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Twoja przeglądarka nie wspiera wysyłania zaszyfrowanych plików. Użyj nowszej przeglądarki.",
|
||||||
"Twoja przeglądarka nie wspiera wysyłania zaszyfrowanych plików. Użyj nowszej przeglądarki.",
|
|
||||||
"Invalid attachment.": "Nieprawidłowy załącznik.",
|
"Invalid attachment.": "Nieprawidłowy załącznik.",
|
||||||
"Options": "Opcje",
|
"Options": "Opcje",
|
||||||
"Shorten URL": "Skróć adres URL",
|
"Shorten URL": "Skróć adres URL",
|
||||||
"Editor": "Edytować",
|
"Editor": "Edytować",
|
||||||
"Preview": "Zapowiedź",
|
"Preview": "Podgląd",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
"Decrypt": "Odszyfruj",
|
||||||
"Decrypt":
|
"Enter password": "Wpisz hasło",
|
||||||
"Decrypt",
|
"Loading…": "Wczytywanie…",
|
||||||
"Enter password":
|
"Decrypting paste…": "Odszyfrowywanie wklejki…",
|
||||||
"Wpisz hasło",
|
"Preparing new paste…": "Przygotowywanie nowej wklejki…",
|
||||||
"Loading…": "Loading…",
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "W przypadku gdy ten komunikat nigdy nie znika, proszę spójrz na <a href=\"%s\">to FAQ aby rozwiązać problem</a> (po angielsku).",
|
||||||
"Decrypting paste…": "Decrypting paste…",
|
"+++ no paste text +++": "+++ brak wklejonego tekstu +++",
|
||||||
"Preparing new paste…": "Preparing new paste…",
|
"Could not get paste data: %s": "Nie można było pobrać danych wklejki: %s",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"QR code": "Kod QR",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a> (in English).",
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
"+++ no paste text +++": "+++ no paste text +++",
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
"Could not get paste data: %s":
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
"Could not get paste data: %s"
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
302
i18n/pt.json
302
i18n/pt.json
@@ -1,129 +1,144 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s é um serviço minimalista e de código aberto do tipo \"pastebin\", em que o servidor tem zero conhecimento dos dados copiados. Os dados são cifrados e decifrados %sno navegador%s usando 256 bits AES.",
|
||||||
"%s é um serviço minimalista e de código aberto do tipo \"pastebin\", em que o servidor tem zero conhecimento dos dados copiados. Os dados são cifrados e decifrados <i>no navegador</i> usando 256 bits AES. Mais informações na <a href=\"https://privatebin.info/\">página do projeto</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Mais informações na <a href=\"https://privatebin.info/\">página do projeto</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Porque a ignorância é uma benção",
|
||||||
"Porque a ignorância é uma benção",
|
|
||||||
"en": "pt",
|
"en": "pt",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "A cópia não existe, expirou ou já foi excluída.",
|
||||||
"A cópia não existe, expirou ou já foi excluída.",
|
"%s requires php %s or above to work. Sorry.": "%s requer php %s ou superior para funcionar. Desculpa.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requer que a seção de configuração [% s] esteja no arquivo de configuração.",
|
||||||
"%s requer php %s ou superior para funcionar. Desculpa.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Por favor espere %d segundo entre cada publicação.",
|
||||||
"%s requer que a seção de configuração [% s] esteja no arquivo de configuração.",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"Por favor espere %d segundos entre cada publicação.",
|
"Por favor espere %d segundos entre cada publicação.",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"Por favor espere %d segundos entre cada publicação.",
|
||||||
"A cópia está limitada a %s de dados cifrados.",
|
"Por favor espere %d segundos entre cada publicação."
|
||||||
"Invalid data.":
|
],
|
||||||
"Dados inválidos.",
|
"Paste is limited to %s of encrypted data.": "A cópia está limitada a %s de dados cifrados.",
|
||||||
"You are unlucky. Try again.":
|
"Invalid data.": "Dados inválidos.",
|
||||||
"Você é azarado. Tente novamente",
|
"You are unlucky. Try again.": "Você é azarado. Tente novamente",
|
||||||
"Error saving comment. Sorry.":
|
"Error saving comment. Sorry.": "Erro ao salvar comentário. Desculpa.",
|
||||||
"Erro ao salvar comentário. Desculpa.",
|
"Error saving paste. Sorry.": "Erro ao salvar cópia. Desculpa.",
|
||||||
"Error saving paste. Sorry.":
|
"Invalid paste ID.": "ID de cópia inválido.",
|
||||||
"Erro ao salvar cópia. Desculpa.",
|
"Paste is not of burn-after-reading type.": "Cópia não é do tipo \"queime após ler\".",
|
||||||
"Invalid paste ID.":
|
"Wrong deletion token. Paste was not deleted.": "Token de remoção inválido. A cópia não foi excluída.",
|
||||||
"ID de cópia inválido.",
|
"Paste was properly deleted.": "A cópia foi devidamente excluída.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript é necessário para que %s funcione. Pedimos desculpas pela inconveniência.",
|
||||||
"Cópia não é do tipo \"queime após ler\".",
|
"%s requires a modern browser to work.": "%s requer um navegador moderno para funcionar.",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"New": "Novo",
|
||||||
"Token de remoção inválido. A cópia não foi excluída.",
|
"Send": "Enviar",
|
||||||
"Paste was properly deleted.":
|
"Clone": "Clonar",
|
||||||
"A cópia foi devidamente excluída.",
|
"Raw text": "Texto sem formato",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Expires": "Expirar em",
|
||||||
"JavaScript é necessário para que %s funcione.<br />Pedimos desculpas pela inconveniência.",
|
"Burn after reading": "Queime após ler",
|
||||||
"%s requires a modern browser to work.":
|
"Open discussion": "Discussão aberta",
|
||||||
"%s requer um navegador moderno para funcionar.",
|
"Password (recommended)": "Senha (recomendada)",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Discussion": "Discussão",
|
||||||
"Ainda usando Internet Explorer? Faça-se um favor, mude para um navegador moderno:",
|
"Toggle navigation": "Mudar navegação",
|
||||||
"New":
|
"%d seconds": [
|
||||||
"Novo",
|
"%d segundo",
|
||||||
"Send":
|
"%d segundos",
|
||||||
"Enviar",
|
"%d segundos",
|
||||||
"Clone":
|
"%d segundos"
|
||||||
"Clonar",
|
],
|
||||||
"Raw text":
|
"%d minutes": [
|
||||||
"Texto sem formato",
|
"%d minuto",
|
||||||
"Expires":
|
"%d minutos",
|
||||||
"Expirar em",
|
"%d minutos",
|
||||||
"Burn after reading":
|
"%d minutos"
|
||||||
"Queime após ler",
|
],
|
||||||
"Open discussion":
|
"%d hours": [
|
||||||
"Discussão aberta",
|
"%d hora",
|
||||||
"Password (recommended)":
|
"%d horas",
|
||||||
"Senha (recomendada)",
|
"%d horas (2° plural)",
|
||||||
"Discussion":
|
"%d horas"
|
||||||
"Discussão",
|
],
|
||||||
"Toggle navigation":
|
"%d days": [
|
||||||
"Mudar navegação",
|
"%d dia",
|
||||||
"%d seconds": ["%d segundo", "%d segundos"],
|
"%d dias",
|
||||||
"%d minutes": ["%d minuto", "%d minutos"],
|
"%d dias",
|
||||||
"%d hours": ["%d hora", "%d horas"],
|
"%d dias"
|
||||||
"%d days": ["%d dia", "%d dias"],
|
],
|
||||||
"%d weeks": ["%d semana", "%d semanas"],
|
"%d weeks": [
|
||||||
"%d months": ["%d mês", "%d meses"],
|
"%d semana",
|
||||||
"%d years": ["%d ano", "%d anos"],
|
"%d semanas",
|
||||||
"Never":
|
"%d semanas",
|
||||||
"Nunca",
|
"%d semanas"
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
],
|
||||||
"Nota: Este é um serviço de teste. Dados podem ser perdidos a qualquer momento. Gatinhos morrerão se você abusar desse serviço.",
|
"%d months": [
|
||||||
"This document will expire in %d seconds.":
|
"%d mês",
|
||||||
["Este documento irá expirar em um segundo.", "Este documento irá expirar em %d segundos."],
|
"%d meses",
|
||||||
"This document will expire in %d minutes.":
|
"%d meses",
|
||||||
["Este documento irá expirar em um minuto.", "Este documento irá expirar em %d minutos."],
|
"%d meses"
|
||||||
"This document will expire in %d hours.":
|
],
|
||||||
["Este documento irá expirar em uma hora.", "Este documento irá expirar em %d horas."],
|
"%d years": [
|
||||||
"This document will expire in %d days.":
|
"%d ano",
|
||||||
["Este documento irá expirar em um dia.", "Este documento irá expirar em %d dias."],
|
"%d anos",
|
||||||
"This document will expire in %d months.":
|
"%d anos",
|
||||||
["Este documento irá expirar em um mês.", "Este documento irá expirar em %d meses."],
|
"%d anos"
|
||||||
"Please enter the password for this paste:":
|
],
|
||||||
"Por favor, digite a senha para essa cópia:",
|
"Never": "Nunca",
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Nota: Este é um serviço de teste. Dados podem ser perdidos a qualquer momento. Gatinhos morrerão se você abusar desse serviço.",
|
||||||
"Não foi possível decifrar os dados (Chave errada?)",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Este documento irá expirar em um segundo.",
|
||||||
"Não foi possível excluir a cópia, ela não foi salva no modo de \"queime após ler\".",
|
"Este documento irá expirar em %d segundos.",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"Este documento irá expirar em %d segundos.",
|
||||||
"APENAS PARA SEUS OLHOS. Não feche essa janela, essa mensagem não pode ser exibida novamente.",
|
"Este documento irá expirar em %d segundos."
|
||||||
"Could not decrypt comment; Wrong key?":
|
],
|
||||||
"Não foi possível decifrar o comentário; Chave errada?",
|
"This document will expire in %d minutes.": [
|
||||||
"Reply":
|
"Este documento irá expirar em um minuto.",
|
||||||
"Responder",
|
"Este documento irá expirar em %d minutos.",
|
||||||
"Anonymous":
|
"Este documento irá expirar em %d minutos.",
|
||||||
"Anônimo",
|
"Este documento irá expirar em %d minutos."
|
||||||
"Avatar generated from IP address":
|
],
|
||||||
"Avatar gerado à partir do endereço IP",
|
"This document will expire in %d hours.": [
|
||||||
"Add comment":
|
"Este documento irá expirar em uma hora.",
|
||||||
"Adicionar comentário",
|
"Este documento irá expirar em %d horas.",
|
||||||
"Optional nickname…":
|
"Este documento irá expirar em %d horas.",
|
||||||
"Apelido opcional…",
|
"Este documento irá expirar em %d horas."
|
||||||
"Post comment":
|
],
|
||||||
"Publicar comentário",
|
"This document will expire in %d days.": [
|
||||||
"Sending comment…":
|
"Este documento irá expirar em um dia.",
|
||||||
"Enviando comentário…",
|
"Este documento irá expirar em %d dias.",
|
||||||
"Comment posted.":
|
"Este documento irá expirar em %d dias.",
|
||||||
"Comentário publicado.",
|
"Este documento irá expirar em %d dias."
|
||||||
"Could not refresh display: %s":
|
],
|
||||||
"Não foi possível atualizar a tela: %s",
|
"This document will expire in %d months.": [
|
||||||
"unknown status":
|
"Este documento irá expirar em um mês.",
|
||||||
"Estado desconhecido",
|
"Este documento irá expirar em %d meses.",
|
||||||
"server error or not responding":
|
"Este documento irá expirar em %d meses.",
|
||||||
"Servidor em erro ou não responsivo",
|
"Este documento irá expirar em %d meses."
|
||||||
"Could not post comment: %s":
|
],
|
||||||
"Não foi possível publicar o comentário: %s",
|
"Please enter the password for this paste:": "Por favor, digite a senha para essa cópia:",
|
||||||
"Please move your mouse for more entropy…":
|
"Could not decrypt data (Wrong key?)": "Não foi possível decifrar os dados (Chave errada?)",
|
||||||
"Por favor, mova o mouse para maior entropia…",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Não foi possível excluir a cópia, ela não foi salva no modo de \"queime após ler\".",
|
||||||
"Sending paste…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "APENAS PARA SEUS OLHOS. Não feche essa janela, essa mensagem não pode ser exibida novamente.",
|
||||||
"Enviando cópia…",
|
"Could not decrypt comment; Wrong key?": "Não foi possível decifrar o comentário; Chave errada?",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Reply": "Responder",
|
||||||
"Sua cópia é <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Pressione [Ctrl]+[c] para copiar)</span>",
|
"Anonymous": "Anônimo",
|
||||||
"Delete data":
|
"Avatar generated from IP address": "Avatar gerado à partir do endereço IP",
|
||||||
"Excluir dados",
|
"Add comment": "Adicionar comentário",
|
||||||
"Could not create paste: %s":
|
"Optional nickname…": "Apelido opcional…",
|
||||||
"Não foi possível criar cópia: %s",
|
"Post comment": "Publicar comentário",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Sending comment…": "Enviando comentário…",
|
||||||
"Não foi possível decifrar a cópia: chave de decriptografia ausente na URL (Você utilizou um redirecionador ou encurtador de URL que removeu parte dela?)",
|
"Comment posted.": "Comentário publicado.",
|
||||||
|
"Could not refresh display: %s": "Não foi possível atualizar a tela: %s",
|
||||||
|
"unknown status": "Estado desconhecido",
|
||||||
|
"server error or not responding": "Servidor em erro ou não responsivo",
|
||||||
|
"Could not post comment: %s": "Não foi possível publicar o comentário: %s",
|
||||||
|
"Sending paste…": "Enviando cópia…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Sua cópia é <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Pressione [Ctrl]+[c] para copiar)</span>",
|
||||||
|
"Delete data": "Excluir dados",
|
||||||
|
"Could not create paste: %s": "Não foi possível criar cópia: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Não foi possível decifrar a cópia: chave de decriptografia ausente na URL (Você utilizou um redirecionador ou encurtador de URL que removeu parte dela?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "Formato",
|
"Format": "Formato",
|
||||||
"Plain Text": "Texto sem formato",
|
"Plain Text": "Texto sem formato",
|
||||||
"Source Code": "Código fonte",
|
"Source Code": "Código fonte",
|
||||||
@@ -132,28 +147,43 @@
|
|||||||
"Cloned: '%s'": "Clonado: '%s'",
|
"Cloned: '%s'": "Clonado: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.": "O arquivo clonado '%s' foi anexado a essa cópia.",
|
"The cloned file '%s' was attached to this paste.": "O arquivo clonado '%s' foi anexado a essa cópia.",
|
||||||
"Attach a file": "Anexar um arquivo",
|
"Attach a file": "Anexar um arquivo",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternativamente, arraste e solte um arquivo ou cole uma imagem da área de transferência",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "Arquivo muito grande para exibir uma prévia. Por favor, faça o download do anexo.",
|
||||||
"Remove attachment": "Remover anexo",
|
"Remove attachment": "Remover anexo",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Seu navegador não permite subir arquivos cifrados. Por favor, utilize um navegador mais recente.",
|
||||||
"Seu navegador não permite subir arquivos cifrados. Por favor, utilize um navegador mais recente.",
|
|
||||||
"Invalid attachment.": "Anexo inválido.",
|
"Invalid attachment.": "Anexo inválido.",
|
||||||
"Options": "Opções",
|
"Options": "Opções",
|
||||||
"Shorten URL": "Encurtar URL",
|
"Shorten URL": "Encurtar URL",
|
||||||
"Editor": "Editor",
|
"Editor": "Editor",
|
||||||
"Preview": "Visualizar",
|
"Preview": "Visualizar",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requer que o PATH termine em \"%s\". Por favor, atualize o PATH em seu index.php.",
|
||||||
"%s requer que o PATH termine em \"%s\". Por favor, atualize o PATH em seu index.php.",
|
"Decrypt": "Decifrar",
|
||||||
"Decrypt":
|
"Enter password": "Digite a senha",
|
||||||
"Decifrar",
|
|
||||||
"Enter password":
|
|
||||||
"Digite a senha",
|
|
||||||
"Loading…": "Carregando…",
|
"Loading…": "Carregando…",
|
||||||
"Decrypting paste…": "Decifrando cópia…",
|
"Decrypting paste…": "Decifrando cópia…",
|
||||||
"Preparing new paste…": "Preparando nova cópia…",
|
"Preparing new paste…": "Preparando nova cópia…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Caso essa mensagem nunca desapareça, por favor veja <a href=\"%s\">este FAQ para saber como resolver os problemas</a>.",
|
||||||
"Caso essa mensagem nunca desapareça, por favor veja <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">este FAQ para saber como resolver os problemas</a>.",
|
|
||||||
"+++ no paste text +++": "+++ sem texto de cópia +++",
|
"+++ no paste text +++": "+++ sem texto de cópia +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Não foi possível obter dados de cópia: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "Código QR",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Esse site usa uma conexão HTTP insegura! Use-o apenas para testes.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Para mais informações <a href=\"%s\">veja esse item do FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Seu navegador pode exigir uma conexão HTTPS para dar suporte à API WebCrypto. Tente <a href=\"%s\">mudar para HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Seu navagador não suporta WebAssembly, usado para compressão zlib. Você pode criar documentos não compactados, mas não pode lê-los.",
|
||||||
|
"waiting on user to provide a password": "esperando que o usuário digite uma senha",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Não foi possível decifrar os dados. Você digitou a senha corretamente? Tente novamente com o botão ao topo.",
|
||||||
|
"Retry": "Tentar Novamente",
|
||||||
|
"Showing raw text…": "Mostrando texto bruto…",
|
||||||
|
"Notice:": "Aviso:",
|
||||||
|
"This link will expire after %s.": "Esse link vai expirar após %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Esse link só pode ser acessado uma vez, não utilize o botão de voltar ou atualizar do seu navegador.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "O recipiente pode ter ciência de seu fuso horário, converter hora para UTC?",
|
||||||
|
"Use Current Timezone": "Usar Fuso Horário Atual",
|
||||||
|
"Convert To UTC": "Converter para UTC",
|
||||||
|
"Close": "Fechar",
|
||||||
|
"Encrypted note on PrivateBin": "Nota criptografada no PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visite esse link para ver a nota. Dar a URL para qualquer um permite que eles também acessem a nota.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
296
i18n/ru.json
296
i18n/ru.json
@@ -1,129 +1,135 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s это минималистичный Open Source проект для создания заметок, где сервер не знает ничего о сохраняемых данных. Данные шифруются/расшифровываются %sв браузере%s с использованием 256 битного шифрования AES.",
|
||||||
"%s это минималистичный Open Source проект для создания заметок, где сервер не знает ничего о сохраняемых данных. Данные шифруются/расшифровываются <i>в браузере</i> с использованием 256 битного шифрования AES. Подробнее можно узнать на <a href=\"https://privatebin.info/\">сайте проекта</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробнее можно узнать на <a href=\"https://privatebin.info/\">сайте проекта</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Потому что неведение - благо",
|
||||||
"Потому что неведение - благо",
|
|
||||||
"en": "ru",
|
"en": "ru",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Запись не существует, просрочена или была удалена.",
|
||||||
"Запись не существует, просрочена или была удалена.",
|
"%s requires php %s or above to work. Sorry.": "Для работы %s требуется php %s или выше. Извините.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s необходимо наличие секции [%s] в конфигурационном файле.",
|
||||||
"Для работы %s требуется php %s или выше. Извините.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Пожалуйста, ожидайте %d секунду между каждыми записями.",
|
||||||
"%s необходимо наличие секции [%s] в конфигурационном файле.",
|
"Пожалуйста, ожидайте %d секунды между каждыми записями.",
|
||||||
"Please wait %d seconds between each post.":
|
"Пожалуйста, ожидайте %d секунд между каждыми записями.",
|
||||||
["Пожалуйста ожидайте %d секунду между каждыми записями.", "Пожалуйста ожидайте %d секунды между каждыми записями.", "Пожалуйста ожидайте %d секунд между каждыми записями."],
|
"Пожалуйста, ожидайте %d секунд между каждыми записями."
|
||||||
"Paste is limited to %s of encrypted data.":
|
],
|
||||||
"Размер записи ограничен %s зашифрованных данных.",
|
"Paste is limited to %s of encrypted data.": "Размер записи ограничен %s зашифрованных данных.",
|
||||||
"Invalid data.":
|
"Invalid data.": "Неверные данные.",
|
||||||
"Неверные данные.",
|
"You are unlucky. Try again.": "Вам не повезло. Попробуйте еще раз.",
|
||||||
"You are unlucky. Try again.":
|
"Error saving comment. Sorry.": "Ошибка при сохранении комментария. Извините.",
|
||||||
"Вам не повезло. Попробуйте еще раз.",
|
"Error saving paste. Sorry.": "Ошибка при сохранении записи. Извините.",
|
||||||
"Error saving comment. Sorry.":
|
"Invalid paste ID.": "Неверный ID записи.",
|
||||||
"Ошибка при сохранении комментария. Извините.",
|
"Paste is not of burn-after-reading type.": "Тип записи не \"Удалить после прочтения\".",
|
||||||
"Error saving paste. Sorry.":
|
"Wrong deletion token. Paste was not deleted.": "Неверный ключ удаления записи. Запись не удалена.",
|
||||||
"Ошибка при сохранении записи. Извините.",
|
"Paste was properly deleted.": "Запись была успешно удалена.",
|
||||||
"Invalid paste ID.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Для работы %s требуется включенный JavaScript. Приносим извинения за неудобства.",
|
||||||
"Неверный ID записи.",
|
"%s requires a modern browser to work.": "Для работы %s требуется более современный браузер.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"New": "Новая запись",
|
||||||
"Тип записи не \"Удалить после прочтения\".",
|
"Send": "Отправить",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"Clone": "Дублировать",
|
||||||
"Неверный ключ удаления записи. Запись не удалена",
|
"Raw text": "Исходный текст",
|
||||||
"Paste was properly deleted.":
|
"Expires": "Удалить через",
|
||||||
"Запись была успешно удалена.",
|
"Burn after reading": "Удалить после прочтения",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Open discussion": "Открыть обсуждение",
|
||||||
"Для работы %s требуется включенный JavaScript.<br />Приносим извинения за неудобства.",
|
"Password (recommended)": "Пароль (рекомендуется)",
|
||||||
"%s requires a modern browser to work.":
|
"Discussion": "Обсуждение",
|
||||||
"Для работы %s требуется более современный браузер.",
|
"Toggle navigation": "Переключить навигацию",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"%d seconds": [
|
||||||
"До сих пор используете Internet Explorer? Пожалейте себя, перейдите на более современный браузер:",
|
"%d секунду",
|
||||||
"New":
|
"%d секунды",
|
||||||
"Новая запись",
|
"%d секунд",
|
||||||
"Send":
|
"%d секунд"
|
||||||
"Отправить",
|
],
|
||||||
"Clone":
|
"%d minutes": [
|
||||||
"Дублировать",
|
"%d минуту",
|
||||||
"Raw text":
|
"%d минуты",
|
||||||
"Исходный текст",
|
"%d минут",
|
||||||
"Expires":
|
"%d минут"
|
||||||
"Удалить через",
|
],
|
||||||
"Burn after reading":
|
"%d hours": [
|
||||||
"Удалить после прочтения",
|
"%d час",
|
||||||
"Open discussion":
|
"%d часа",
|
||||||
"Открыть обсуждение",
|
"%d часов",
|
||||||
"Password (recommended)":
|
"%d часов"
|
||||||
"Пароль (рекомендуется)",
|
],
|
||||||
"Discussion":
|
"%d days": [
|
||||||
"Обсуждение",
|
"%d день",
|
||||||
"Toggle navigation":
|
"%d дня",
|
||||||
"Переключить навигацию",
|
"%d дней",
|
||||||
"%d seconds": ["%d секунду", "%d секунды", "%d секунд"],
|
"%d дней"
|
||||||
"%d minutes": ["%d минуту", "%d минуты", "%d минут"],
|
],
|
||||||
"%d hours": ["%d час", "%d часа", "%d часов"],
|
"%d weeks": [
|
||||||
"%d days": ["%d день", "%d дня", "%d дней"],
|
"%d неделю",
|
||||||
"%d weeks": ["%d неделю", "%d недели", "%d недель"],
|
"%d недели",
|
||||||
"%d months": ["%d месяц", "%d месяца", "%d месяцев"],
|
"%d недель",
|
||||||
"%d years": ["%d год", "%d года", "%d лет"],
|
"%d недель"
|
||||||
"Never":
|
],
|
||||||
"Никогда",
|
"%d months": [
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d месяц",
|
||||||
"Примечание: Этот сервис тестовый: Данные могут быть удалены в любое время. Котята умрут, если вы будете злоупотреблять серсисом.",
|
"%d месяца",
|
||||||
"This document will expire in %d seconds.":
|
"%d месяцев",
|
||||||
["Документ будет удален через %d секунду.", "Документ будет удален через %d секунды.", "Документ будет удален через %d секунд."],
|
"%d месяцев"
|
||||||
"This document will expire in %d minutes.":
|
],
|
||||||
["Документ будет удален через %d минуту.", "Документ будет удален через %d минуты.", "Документ будет удален через %d минут."],
|
"%d years": [
|
||||||
"This document will expire in %d hours.":
|
"%d год",
|
||||||
["Документ будет удален через %d час.", "Документ будет удален через %d часа.", "Документ будет удален через %d часов."],
|
"%d года",
|
||||||
"This document will expire in %d days.":
|
"%d лет",
|
||||||
["Документ будет удален через %d день.", "Документ будет удален через %d дня.", "Документ будет удален через %d дней."],
|
"%d лет"
|
||||||
"This document will expire in %d months.":
|
],
|
||||||
["Документ будет удален через %d месяц.", "Документ будет удален через %d месяца.", "Документ будет удален через %d месяцев."],
|
"Never": "Никогда",
|
||||||
"Please enter the password for this paste:":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Примечание: Этот сервис тестовый: Данные могут быть удалены в любое время. Котята умрут, если вы будете злоупотреблять сервисом.",
|
||||||
"Пожалуйста введите пароль от записи:",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Документ будет удален через %d секунду.",
|
||||||
"Невозможно расшифровать данные (Неверный ключ?)",
|
"Документ будет удален через %d секунды.",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Документ будет удален через %d секунд.",
|
||||||
"Невозможно удалить запись, она не была сохранена в режиме удаления после прочтения",
|
"Документ будет удален через %d секунд."
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
],
|
||||||
"ТОЛЬКО ДЛЯ ВАШИХ ГЛАЗ. Не закрывайте это окно, это сообщение не может быть показано снова.",
|
"This document will expire in %d minutes.": [
|
||||||
"Could not decrypt comment; Wrong key?":
|
"Документ будет удален через %d минуту.",
|
||||||
"Невозможно расшифровать комментарий; Неверный ключ?",
|
"Документ будет удален через %d минуты.",
|
||||||
"Reply":
|
"Документ будет удален через %d минут.",
|
||||||
"Ответить",
|
"Документ будет удален через %d минут."
|
||||||
"Anonymous":
|
],
|
||||||
"Аноним",
|
"This document will expire in %d hours.": [
|
||||||
"Avatar generated from IP address":
|
"Документ будет удален через %d час.",
|
||||||
"Аватар, сгенерированный из IP-адреса",
|
"Документ будет удален через %d часа.",
|
||||||
"Add comment":
|
"Документ будет удален через %d часов.",
|
||||||
"Добавить комментарий",
|
"Документ будет удален через %d часов."
|
||||||
"Optional nickname…":
|
],
|
||||||
"Опциональный никнейм…",
|
"This document will expire in %d days.": [
|
||||||
"Post comment":
|
"Документ будет удален через %d день.",
|
||||||
"Отправить комментарий",
|
"Документ будет удален через %d дня.",
|
||||||
"Sending comment…":
|
"Документ будет удален через %d дней.",
|
||||||
"Отправка комментария…",
|
"Документ будет удален через %d дней."
|
||||||
"Comment posted.":
|
],
|
||||||
"Комментарий опубликован.",
|
"This document will expire in %d months.": [
|
||||||
"Could not refresh display: %s":
|
"Документ будет удален через %d месяц.",
|
||||||
"Не удалось обновить отображение: %s",
|
"Документ будет удален через %d месяца.",
|
||||||
"unknown status":
|
"Документ будет удален через %d месяцев.",
|
||||||
"неизвестная причина",
|
"Документ будет удален через %d месяцев."
|
||||||
"server error or not responding":
|
],
|
||||||
"ошибка сервера или нет ответа",
|
"Please enter the password for this paste:": "Пожалуйста, введите пароль от записи:",
|
||||||
"Could not post comment: %s":
|
"Could not decrypt data (Wrong key?)": "Невозможно расшифровать данные (Неверный ключ?)",
|
||||||
"Не удалось опубликовать комментарий: %s",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Невозможно удалить запись, она не была сохранена в режиме удаления после прочтения.",
|
||||||
"Please move your mouse for more entropy…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "ТОЛЬКО ДЛЯ ВАШИХ ГЛАЗ. Не закрывайте это окно, это сообщение не может быть показано снова.",
|
||||||
"Пожалуйста двигайте мышкой для большей энтропии…",
|
"Could not decrypt comment; Wrong key?": "Невозможно расшифровать комментарий; Неверный ключ?",
|
||||||
"Sending paste…":
|
"Reply": "Ответить",
|
||||||
"Отправка записи…",
|
"Anonymous": "Аноним",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Avatar generated from IP address": "Аватар, сгенерированный из IP-адреса",
|
||||||
"Ссылка на запись <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Нажмите [Ctrl]+[c] чтобы скопировать ссылку)</span>",
|
"Add comment": "Добавить комментарий",
|
||||||
"Delete data":
|
"Optional nickname…": "Опциональный никнейм…",
|
||||||
"Удалить запись",
|
"Post comment": "Отправить комментарий",
|
||||||
"Could not create paste: %s":
|
"Sending comment…": "Отправка комментария…",
|
||||||
"Не удалось опубликовать запись: %s",
|
"Comment posted.": "Комментарий опубликован.",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Could not refresh display: %s": "Не удалось обновить отображение: %s",
|
||||||
"Невозможно расшифровать запись: Ключ расшифровки отсутствует в ссылке (Может быть вы используете сокращатель ссылок, который удаляет часть ссылки?)",
|
"unknown status": "неизвестная причина",
|
||||||
|
"server error or not responding": "ошибка сервера или нет ответа",
|
||||||
|
"Could not post comment: %s": "Не удалось опубликовать комментарий: %s",
|
||||||
|
"Sending paste…": "Отправка записи…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Ссылка на запись <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Нажмите [Ctrl]+[c], чтобы скопировать ссылку)</span>",
|
||||||
|
"Delete data": "Удалить запись",
|
||||||
|
"Could not create paste: %s": "Не удалось опубликовать запись: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Невозможно расшифровать запись: Ключ расшифровки отсутствует в ссылке (Может быть, вы используете сокращатель ссылок, который удаляет часть ссылки?)",
|
||||||
"B": "байт",
|
"B": "байт",
|
||||||
"KiB": "Кбайт",
|
"KiB": "Кбайт",
|
||||||
"MiB": "Мбайт",
|
"MiB": "Мбайт",
|
||||||
@@ -139,31 +145,45 @@
|
|||||||
"Markdown": "Язык разметки",
|
"Markdown": "Язык разметки",
|
||||||
"Download attachment": "Скачать прикрепленный файл",
|
"Download attachment": "Скачать прикрепленный файл",
|
||||||
"Cloned: '%s'": "Дублировано: '%s'",
|
"Cloned: '%s'": "Дублировано: '%s'",
|
||||||
"The cloned file '%s' was attached to this paste.":
|
"The cloned file '%s' was attached to this paste.": "Дубликат файла '%s' был прикреплен к этой записи.",
|
||||||
"Дубликат файла '%s' был прикреплен к этой записи.",
|
|
||||||
"Attach a file": "Прикрепить файл",
|
"Attach a file": "Прикрепить файл",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "так же можно перенести файл в окно браузера или вставить изображение из буфера",
|
"alternatively drag & drop a file or paste an image from the clipboard": "так же можно перенести файл в окно браузера или вставить изображение из буфера",
|
||||||
"File too large, to display a preview. Please download the attachment.": "Файл слишком большой для отображения предпросмотра. Пожалуйста скачайте прикрепленный файл.",
|
"File too large, to display a preview. Please download the attachment.": "Файл слишком большой для отображения предпросмотра. Пожалуйста, скачайте прикрепленный файл.",
|
||||||
"Remove attachment": "Удалить вложение",
|
"Remove attachment": "Удалить вложение",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Ваш браузер не поддерживает отправку зашифрованных файлов. Используйте более новый браузер.",
|
||||||
"Ваш браузер не поддерживает отправку зашифрованных файлов. Используйте более новый браузер.",
|
|
||||||
"Invalid attachment.": "Неизвестное вложение.",
|
"Invalid attachment.": "Неизвестное вложение.",
|
||||||
"Options": "Опции",
|
"Options": "Опции",
|
||||||
"Shorten URL": "Короткая ссылка",
|
"Shorten URL": "Короткая ссылка",
|
||||||
"Editor": "Редактор",
|
"Editor": "Редактор",
|
||||||
"Preview": "Предпросмотр",
|
"Preview": "Предпросмотр",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "Переменная PATH необходима %s в конце \"%s\". Пожалуйста, обновите переменную PATH в вашем index.php.",
|
||||||
"Переменная PATH необходима %s в конце \"%s\". Пожалуйста обновите переменную PATH в вашем index.php.",
|
"Decrypt": "Расшифровать",
|
||||||
"Decrypt":
|
"Enter password": "Введите пароль",
|
||||||
"Расшифровать",
|
|
||||||
"Enter password":
|
|
||||||
"Введите пароль",
|
|
||||||
"Loading…": "Загрузка…",
|
"Loading…": "Загрузка…",
|
||||||
"Decrypting paste…": "Расшифровка записи…",
|
"Decrypting paste…": "Расшифровка записи…",
|
||||||
"Preparing new paste…": "Подготовка новой записи…",
|
"Preparing new paste…": "Подготовка новой записи…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Если данное сообщение не исчезает длительное время, посмотрите <a href=\"%s\">этот FAQ с информацией о возможном решении проблемы (на английском)</a>.",
|
||||||
"Если данное сообщение не исчезает длительное время, посмотрите <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">этот FAQ с информацией о возможном решении проблемы (на английском)</a>.",
|
|
||||||
"+++ no paste text +++": "+++ в записи нет текста +++",
|
"+++ no paste text +++": "+++ в записи нет текста +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Не удалось получить данные записи: %s",
|
||||||
"Не удалось получить данные записи: %s"
|
"QR code": "QR код",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Данный сайт использует незащищенное HTTP подключение! Пожалуйста используйте его только для тестирования.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Для продробностей <a href=\"%s\">прочтите информацию в FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Ваш браузер требует использования HTTPS подключения для поддержки WebCrypto API. Попробуйте <a href=\"%s\">переключиться на HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Ваш браузер не поддерживает WebAssembly используемый для сжатия с помощью zlib. Вы можете создавать новые записи без сжатия, но не сможете открыть записи с сжатием.",
|
||||||
|
"waiting on user to provide a password": "ожидаем ввода пароля пользователем",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Не удалось расшифровать данные. Может быть вы ввели не верный пароль? Попробуйте снова с помощью кнопки вверху.",
|
||||||
|
"Retry": "Повторить",
|
||||||
|
"Showing raw text…": "Показываем исходный текст…",
|
||||||
|
"Notice:": "Уведомление:",
|
||||||
|
"This link will expire after %s.": "Срок жизни ссылки истечет через %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "Данная ссылка доступна только один раз, не нажимайте кнопку назад или обновления страницы в вашем браузере.",
|
||||||
|
"Link:": "Ссылка:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Получатель узнает ваш часовой пояс, сконвертировать время в UTC?",
|
||||||
|
"Use Current Timezone": "Использовать текущий часовой пояс",
|
||||||
|
"Convert To UTC": "Конвертировать в UTC",
|
||||||
|
"Close": "Закрыть",
|
||||||
|
"Encrypted note on PrivateBin": "Зашифрованная запись на PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Посетите эту ссылку чтобы просмотреть запись. Передача ссылки кому либо позволит им получить доступ к записи тоже.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "Сервис сокращения ссылок может получить ваш ключ расшифровки из ссылки.",
|
||||||
|
"Save paste": "Сохранить запись"
|
||||||
}
|
}
|
||||||
|
|||||||
291
i18n/sl.json
291
i18n/sl.json
@@ -1,129 +1,135 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s je minimalističen, odprtokodni spletni 'pastebin', kjer server ne ve ničesar o prilepljenih podatkih. Podatki so zakodirani/odkodirani %sv brskalniku%s z uporabo 256 bitnega AES.",
|
||||||
"%s je minimalističen, odprtokodni spletni 'pastebin', kjer server ne ve ničesar o prilepljenih podatkih. Podatki so zakodirani/odkodirani <i>v brskalniku</i> z uporabo 256 bitnega AES. Več informacij na < href=\"https://privatebin.info/\">spletni strani projekta.</a>.",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Več informacij na <a href=\"https://privatebin.info/\">spletni strani projekta.</a>.",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "Ker kar ne veš ne boli.",
|
||||||
"Ker kar ne veš ne boli.",
|
|
||||||
"en": "sl",
|
"en": "sl",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "Prilepek ne obstaja, mu je potekla življenjska doba, ali pa je izbrisan.",
|
||||||
"Prilepek ne obstaja, mu je potekla življenjska doba, ali pa je izbrisan.",
|
"%s requires php %s or above to work. Sorry.": "Oprosti, %s za delovanje potrebuje vsaj php %s.",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s potrebuje sekcijo konfiguracij [%s] v konfiguracijski datoteki.",
|
||||||
"Oprosti, %s za delovanje potrebuje vsaj php %s.",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
"Prosim počakaj vsaj %d sekundo pred vsako naslednjo objavo.",
|
||||||
"%s potrebuje sekcijo konfiguracij [%s] v konfiguracijski datoteki.",
|
"Prosim počakaj vsaj %d sekundi pred vsako naslednjo objavo.",
|
||||||
"Please wait %d seconds between each post.":
|
"Prosim počakaj vsaj %d sekunde pred vsako naslednjo objavo.",
|
||||||
"Prosim počakaj vsaj %d sekund pred vsako naslednjo objavo.",
|
"Prosim počakaj vsaj %d sekund pred vsako naslednjo objavo."
|
||||||
"Paste is limited to %s of encrypted data.":
|
],
|
||||||
"Velikost prilepka je omejena na %s zakodiranih podatkov.",
|
"Paste is limited to %s of encrypted data.": "Velikost prilepka je omejena na %s zakodiranih podatkov.",
|
||||||
"Invalid data.":
|
"Invalid data.": "Neveljavni podatki.",
|
||||||
"Neveljavni podatki.",
|
"You are unlucky. Try again.": "Nimaš sreče, poskusi ponovno.",
|
||||||
"You are unlucky. Try again.":
|
"Error saving comment. Sorry.": "Nekaj je šlo narobe pri shranjevanju komentarja. Oprosti.",
|
||||||
"Nimaš sreče, poskusi ponovno.",
|
"Error saving paste. Sorry.": "Nekaj je šlo narobe pri shranjevanju prilepka. Oprosti.",
|
||||||
"Error saving comment. Sorry.":
|
"Invalid paste ID.": "Napačen ID prilepka.",
|
||||||
"Nekaj je šlo narobe pri shranjevanju komentarja. Oprosti.",
|
"Paste is not of burn-after-reading type.": "Prilepek ni tipa zažgi-po-branju.",
|
||||||
"Error saving paste. Sorry.":
|
"Wrong deletion token. Paste was not deleted.": "Napačen token za izbris. Prilepek ni bil izbrisan..",
|
||||||
"Nekaj je šlo narobe pri shranjevanju prilepka. Oprosti.",
|
"Paste was properly deleted.": "Prilepek je uspešno izbrisan.",
|
||||||
"Invalid paste ID.":
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Da %s deluje, moraš vklopiti JavaScript. Oprosti za povročene nevšečnosti.",
|
||||||
"Napačen ID prilepka.",
|
"%s requires a modern browser to work.": "%s za svoje delovanje potrebuje moderen brskalnik.",
|
||||||
"Paste is not of burn-after-reading type.":
|
"New": "Nov prilepek",
|
||||||
"Prilepek ni tipa zažgi-po-branju.",
|
"Send": "Pošlji",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"Clone": "Kloniraj",
|
||||||
"Napačen token za izbris. Prilepek ni bil izbrisan..",
|
"Raw text": "Surov tekst",
|
||||||
"Paste was properly deleted.":
|
"Expires": "Poteče",
|
||||||
"Prilepek je uspešno izbrisan.",
|
"Burn after reading": "Zažgi (pobriši) po branju",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Open discussion": "Dovoli razpravo",
|
||||||
"Da %s deluje, moraš vklopiti JavaScript.<br />Oprosti za povročene nevšečnosti.",
|
"Password (recommended)": "Geslo (priporočeno)",
|
||||||
"%s requires a modern browser to work.":
|
"Discussion": "Razprava",
|
||||||
"%s za svoje delovanje potrebuje moderen brskalnik.",
|
"Toggle navigation": "Preklopi navigacijo",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"%d seconds": [
|
||||||
"Še vedno uporabljaš Internet Explorer? Naredi si uslugo, preklopi na moderen brskalnik:",
|
"%d sekunda",
|
||||||
"New":
|
"%d sekundi",
|
||||||
"Nov prilepek",
|
"%d sekunde",
|
||||||
"Send":
|
"%d sekund"
|
||||||
"Pošlji",
|
],
|
||||||
"Clone":
|
"%d minutes": [
|
||||||
"Kloniraj",
|
"%d minuta",
|
||||||
"Raw text":
|
"%d minuti",
|
||||||
"Surov tekst",
|
"%d minute",
|
||||||
"Expires":
|
"%d minut"
|
||||||
"Poteče",
|
],
|
||||||
"Burn after reading":
|
"%d hours": [
|
||||||
"Zažgi (pobriši) po branju",
|
"%d ura",
|
||||||
"Open discussion":
|
"%d uri",
|
||||||
"Dovoli razpravo",
|
"%d ure",
|
||||||
"Password (recommended)":
|
"%d ur"
|
||||||
"Geslo (priporočeno)",
|
],
|
||||||
"Discussion":
|
"%d days": [
|
||||||
"Razprava",
|
"%d dan",
|
||||||
"Toggle navigation":
|
"%d dneva",
|
||||||
"Preklopi navigacijo",
|
"%d dnevi",
|
||||||
"%d seconds": ["%d sekunda", "%d sekundi", "%d sekunde", "%d sekund"],
|
"%d dni"
|
||||||
"%d minutes": ["%d minuta", "%d minuti", "%d minute", "%d minut"],
|
],
|
||||||
"%d hours": ["%d ura", "%d uri", "%d ure", "%d ur"],
|
"%d weeks": [
|
||||||
"%d days": ["%d dan", "%d dneva", "%d dnevi", "%d dni"],
|
"%d teden",
|
||||||
"%d weeks": ["%d teden", "%d tedna", "%d tedni", "%d tednov"],
|
"%d tedna",
|
||||||
"%d months": ["%d mesec", "%d meseca", "%d meseci", "%d mesecev"],
|
"%d tedni",
|
||||||
"%d years": ["%d leto", "%d leti", "%d leta", "%d let"],
|
"%d tednov"
|
||||||
"Never":
|
],
|
||||||
"Nikoli",
|
"%d months": [
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d mesec",
|
||||||
"Ne pozabi: To je testna storitev: Podatki so lahko kadarkoli pobrisani. Mucki bodo umrli, če boš zlorabljala to storitev.",
|
"%d meseca",
|
||||||
"This document will expire in %d seconds.":
|
"%d meseci",
|
||||||
["Ta dokument bo potekel čez %d sekundo.", "Ta dokument bo potekel čez %d sekundi.", "Ta dokument bo potekel čez %d sekunde.", "Ta dokument bo potekel čez %d sekund."],
|
"%d mesecev"
|
||||||
"This document will expire in %d minutes.":
|
],
|
||||||
["Ta dokument bo potekel čez %d minuto.", "Ta dokument bo potekel čez %d minuti.", "Ta dokument bo potekel čez %d minute.", "Ta dokument bo potekel čez %d minut."],
|
"%d years": [
|
||||||
"This document will expire in %d hours.":
|
"%d leto",
|
||||||
["Ta dokument bo potekel čez %d uro.", "Ta dokument bo potekel čez %d uri.", "Ta dokument bo potekel čez %d ure.", "Ta dokument bo potekel čez %d ur."],
|
"%d leti",
|
||||||
"This document will expire in %d days.":
|
"%d leta",
|
||||||
["Ta dokument bo potekel čez %d dan.", "Ta dokument bo potekel čez %d dni.", "Ta dokument bo potekel čez %d dni.", "Ta dokument bo potekel čez %d dni."],
|
"%d let"
|
||||||
"This document will expire in %d months.":
|
],
|
||||||
["Ta dokument bo potekel čez %d mesec.", "Ta dokument bo potekel čez %d meseca.", "Ta dokument bo potekel čez %d mesece.", "Ta dokument bo potekel čez %d mesecev."],
|
"Never": "Nikoli",
|
||||||
"Please enter the password for this paste:":
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Ne pozabi: To je testna storitev: Podatki so lahko kadarkoli pobrisani. Mucki bodo umrli, če boš zlorabljala to storitev.",
|
||||||
"Prosim vnesi geslo tega prilepka:",
|
"This document will expire in %d seconds.": [
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Ta dokument bo potekel čez %d sekundo.",
|
||||||
"Nemogoče odkodirati podakte (Imaš napačen ključ?)",
|
"Ta dokument bo potekel čez %d sekundi.",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"Ta dokument bo potekel čez %d sekunde.",
|
||||||
"Prilepek je nemogoče izbrisati, ni bil shranjen v načinu \"zažgi po branju\".",
|
"Ta dokument bo potekel čez %d sekund."
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
],
|
||||||
"SAMO ZA TVOJE OČI. Ne zapri tega okna (zavihka), to sporočilo ne bo prikazano nikoli več.",
|
"This document will expire in %d minutes.": [
|
||||||
"Could not decrypt comment; Wrong key?":
|
"Ta dokument bo potekel čez %d minuto.",
|
||||||
"Ne morem odkodirati komentarja: Imaš napačen ključ?",
|
"Ta dokument bo potekel čez %d minuti.",
|
||||||
"Reply":
|
"Ta dokument bo potekel čez %d minute.",
|
||||||
"Odgovori",
|
"Ta dokument bo potekel čez %d minut."
|
||||||
"Anonymous":
|
],
|
||||||
"Aninomno",
|
"This document will expire in %d hours.": [
|
||||||
"Avatar generated from IP address":
|
"Ta dokument bo potekel čez %d uro.",
|
||||||
"Anonimen avatar (Vizhash IP naslova)",
|
"Ta dokument bo potekel čez %d uri.",
|
||||||
"Add comment":
|
"Ta dokument bo potekel čez %d ure.",
|
||||||
"Dodaj komentar",
|
"Ta dokument bo potekel čez %d ur."
|
||||||
"Optional nickname…":
|
],
|
||||||
"Uporabniško ime (lahko izpustiš)",
|
"This document will expire in %d days.": [
|
||||||
"Post comment":
|
"Ta dokument bo potekel čez %d dan.",
|
||||||
"Objavi komentar",
|
"Ta dokument bo potekel čez %d dni.",
|
||||||
"Sending comment…":
|
"Ta dokument bo potekel čez %d dni.",
|
||||||
"Pošiljam komentar …",
|
"Ta dokument bo potekel čez %d dni."
|
||||||
"Comment posted.":
|
],
|
||||||
"Komentar poslan.",
|
"This document will expire in %d months.": [
|
||||||
"Could not refresh display: %s":
|
"Ta dokument bo potekel čez %d mesec.",
|
||||||
"Ne morem osvežiti zaslona : %s",
|
"Ta dokument bo potekel čez %d meseca.",
|
||||||
"unknown status":
|
"Ta dokument bo potekel čez %d mesece.",
|
||||||
"neznan status",
|
"Ta dokument bo potekel čez %d mesecev."
|
||||||
"server error or not responding":
|
],
|
||||||
"napaka na strežniku, ali pa se strežnik ne odziva",
|
"Please enter the password for this paste:": "Prosim vnesi geslo tega prilepka:",
|
||||||
"Could not post comment: %s":
|
"Could not decrypt data (Wrong key?)": "Nemogoče odkodirati podakte (Imaš napačen ključ?)",
|
||||||
"Komentarja ni bilo mogoče objaviti : %s",
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Prilepek je nemogoče izbrisati, ni bil shranjen v načinu \"zažgi po branju\".",
|
||||||
"Please move your mouse for more entropy…":
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "SAMO ZA TVOJE OČI. Ne zapri tega okna (zavihka), to sporočilo ne bo prikazano nikoli več.",
|
||||||
"Prosim premakni svojo miško za več entropije…",
|
"Could not decrypt comment; Wrong key?": "Ne morem odkodirati komentarja: Imaš napačen ključ?",
|
||||||
"Sending paste…":
|
"Reply": "Odgovori",
|
||||||
"Pošiljam prilepek…",
|
"Anonymous": "Aninomno",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Avatar generated from IP address": "Anonimen avatar (Vizhash IP naslova)",
|
||||||
"Tvoj prilepek je dostopen na naslovu: <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Pritisni [Ctrl]+[c] ali [Cmd] + [c] in skopiraj)</span>",
|
"Add comment": "Dodaj komentar",
|
||||||
"Delete data":
|
"Optional nickname…": "Uporabniško ime (lahko izpustiš)",
|
||||||
"Izbriši podatke",
|
"Post comment": "Objavi komentar",
|
||||||
"Could not create paste: %s":
|
"Sending comment…": "Pošiljam komentar …",
|
||||||
"Ne morem ustvariti prilepka: %s",
|
"Comment posted.": "Komentar poslan.",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Could not refresh display: %s": "Ne morem osvežiti zaslona : %s",
|
||||||
"Ne morem odkodirati prilepka: V URL-ju manjka ključ (A si uporabil krajšalnik URL-jev, ki odstrani del URL-ja?)",
|
"unknown status": "neznan status",
|
||||||
|
"server error or not responding": "napaka na strežniku, ali pa se strežnik ne odziva",
|
||||||
|
"Could not post comment: %s": "Komentarja ni bilo mogoče objaviti : %s",
|
||||||
|
"Sending paste…": "Pošiljam prilepek…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Tvoj prilepek je dostopen na naslovu: <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Pritisni [Ctrl]+[c] ali [Cmd] + [c] in skopiraj)</span>",
|
||||||
|
"Delete data": "Izbriši podatke",
|
||||||
|
"Could not create paste: %s": "Ne morem ustvariti prilepka: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Ne morem odkodirati prilepka: V URL-ju manjka ključ (A si uporabil krajšalnik URL-jev, ki odstrani del URL-ja?)",
|
||||||
"B": "o",
|
"B": "o",
|
||||||
"KiB": "KB",
|
"KiB": "KB",
|
||||||
"MiB": "MB",
|
"MiB": "MB",
|
||||||
@@ -144,25 +150,40 @@
|
|||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
"Remove attachment": "Odstrani priponko",
|
"Remove attachment": "Odstrani priponko",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Tvoj brskalnik ne omogoča nalaganje zakodiranih datotek. Prosim uporabi novejši brskalnik.",
|
||||||
"Tvoj brskalnik ne omogoča nalaganje zakodiranih datotek. Prosim uporabi novejši brskalnik.",
|
|
||||||
"Invalid attachment.": "Neveljavna priponka.",
|
"Invalid attachment.": "Neveljavna priponka.",
|
||||||
"Options": "Možnosti",
|
"Options": "Možnosti",
|
||||||
"Shorten URL": "Skrajšajte URL",
|
"Shorten URL": "Skrajšajte URL",
|
||||||
"Editor": "Uredi",
|
"Editor": "Uredi",
|
||||||
"Preview": "Predogled",
|
"Preview": "Predogled",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
"Decrypt": "Decrypt",
|
||||||
"Decrypt":
|
"Enter password": "Prosim vnesi geslo",
|
||||||
"Decrypt",
|
|
||||||
"Enter password":
|
|
||||||
"Prosim vnesi geslo",
|
|
||||||
"Loading…": "Loading…",
|
"Loading…": "Loading…",
|
||||||
"Decrypting paste…": "Decrypting paste…",
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
"Preparing new paste…": "Preparing new paste…",
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a> (in English).",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a> (in English).",
|
|
||||||
"+++ no paste text +++": "+++ no paste text +++",
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
"Could not get paste data: %s":
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
"Could not get paste data: %s"
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
}
|
}
|
||||||
|
|||||||
189
i18n/sv.json
Normal file
189
i18n/sv.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "More information on the <a href=\"https://privatebin.info/\">project page</a>.",
|
||||||
|
"Because ignorance is bliss": "Because ignorance is bliss",
|
||||||
|
"en": "sv",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Invalid data.",
|
||||||
|
"You are unlucky. Try again.": "You are unlucky. Try again.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "New",
|
||||||
|
"Send": "Send",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d week (singular)",
|
||||||
|
"%d weeks (1st plural)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/tr.json
Normal file
189
i18n/tr.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Daha fazla bilgi için <a href=\"https://privatebin.info/\">proje sayfası</a>'na göz atabilirsiniz.",
|
||||||
|
"Because ignorance is bliss": "Çünkü, cehalet mutluluktur",
|
||||||
|
"en": "tr",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Paste does not exist, has expired or has been deleted.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "%s requires php %s or above to work. Sorry.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s requires configuration section [%s] to be present in configuration file.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Paste is limited to %s of encrypted data.",
|
||||||
|
"Invalid data.": "Geçersiz veri.",
|
||||||
|
"You are unlucky. Try again.": "Lütfen tekrar deneyiniz.",
|
||||||
|
"Error saving comment. Sorry.": "Error saving comment. Sorry.",
|
||||||
|
"Error saving paste. Sorry.": "Error saving paste. Sorry.",
|
||||||
|
"Invalid paste ID.": "Invalid paste ID.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Paste is not of burn-after-reading type.",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Wrong deletion token. Paste was not deleted.",
|
||||||
|
"Paste was properly deleted.": "Paste was properly deleted.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "JavaScript is required for %s to work. Sorry for the inconvenience.",
|
||||||
|
"%s requires a modern browser to work.": "%s requires a modern browser to work.",
|
||||||
|
"New": "Yeni",
|
||||||
|
"Send": "Gönder",
|
||||||
|
"Clone": "Clone",
|
||||||
|
"Raw text": "Raw text",
|
||||||
|
"Expires": "Expires",
|
||||||
|
"Burn after reading": "Burn after reading",
|
||||||
|
"Open discussion": "Open discussion",
|
||||||
|
"Password (recommended)": "Password (recommended)",
|
||||||
|
"Discussion": "Discussion",
|
||||||
|
"Toggle navigation": "Toggle navigation",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d second (singular)",
|
||||||
|
"%d seconds (1st plural)",
|
||||||
|
"%d seconds (2nd plural)",
|
||||||
|
"%d seconds (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d minute (singular)",
|
||||||
|
"%d minutes (1st plural)",
|
||||||
|
"%d minutes (2nd plural)",
|
||||||
|
"%d minutes (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d hour (singular)",
|
||||||
|
"%d hours (1st plural)",
|
||||||
|
"%d hours (2nd plural)",
|
||||||
|
"%d hours (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d day (singular)",
|
||||||
|
"%d days (1st plural)",
|
||||||
|
"%d days (2nd plural)",
|
||||||
|
"%d days (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d hafta (tekil)",
|
||||||
|
"%d haftalar (çoğul)",
|
||||||
|
"%d weeks (2nd plural)",
|
||||||
|
"%d weeks (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d month (singular)",
|
||||||
|
"%d months (1st plural)",
|
||||||
|
"%d months (2nd plural)",
|
||||||
|
"%d months (3rd plural)"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d year (singular)",
|
||||||
|
"%d years (1st plural)",
|
||||||
|
"%d years (2nd plural)",
|
||||||
|
"%d years (3rd plural)"
|
||||||
|
],
|
||||||
|
"Never": "Never",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"This document will expire in %d second. (singular)",
|
||||||
|
"This document will expire in %d seconds. (1st plural)",
|
||||||
|
"This document will expire in %d seconds. (2nd plural)",
|
||||||
|
"This document will expire in %d seconds. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"This document will expire in %d minute. (singular)",
|
||||||
|
"This document will expire in %d minutes. (1st plural)",
|
||||||
|
"This document will expire in %d minutes. (2nd plural)",
|
||||||
|
"This document will expire in %d minutes. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"This document will expire in %d hour. (singular)",
|
||||||
|
"This document will expire in %d hours. (1st plural)",
|
||||||
|
"This document will expire in %d hours. (2nd plural)",
|
||||||
|
"This document will expire in %d hours. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"This document will expire in %d day. (singular)",
|
||||||
|
"This document will expire in %d days. (1st plural)",
|
||||||
|
"This document will expire in %d days. (2nd plural)",
|
||||||
|
"This document will expire in %d days. (3rd plural)"
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"This document will expire in %d month. (singular)",
|
||||||
|
"This document will expire in %d months. (1st plural)",
|
||||||
|
"This document will expire in %d months. (2nd plural)",
|
||||||
|
"This document will expire in %d months. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Please enter the password for this paste:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Could not decrypt data (Wrong key?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Could not delete the paste, it was not stored in burn after reading mode.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Could not decrypt comment; Wrong key?",
|
||||||
|
"Reply": "Reply",
|
||||||
|
"Anonymous": "Anonymous",
|
||||||
|
"Avatar generated from IP address": "Avatar generated from IP address",
|
||||||
|
"Add comment": "Add comment",
|
||||||
|
"Optional nickname…": "Optional nickname…",
|
||||||
|
"Post comment": "Post comment",
|
||||||
|
"Sending comment…": "Sending comment…",
|
||||||
|
"Comment posted.": "Comment posted.",
|
||||||
|
"Could not refresh display: %s": "Could not refresh display: %s",
|
||||||
|
"unknown status": "unknown status",
|
||||||
|
"server error or not responding": "server error or not responding",
|
||||||
|
"Could not post comment: %s": "Could not post comment: %s",
|
||||||
|
"Sending paste…": "Sending paste…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>",
|
||||||
|
"Delete data": "Delete data",
|
||||||
|
"Could not create paste: %s": "Could not create paste: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
|
"Format": "Format",
|
||||||
|
"Plain Text": "Plain Text",
|
||||||
|
"Source Code": "Source Code",
|
||||||
|
"Markdown": "Markdown",
|
||||||
|
"Download attachment": "Download attachment",
|
||||||
|
"Cloned: '%s'": "Cloned: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "The cloned file '%s' was attached to this paste.",
|
||||||
|
"Attach a file": "Attach a file",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
||||||
|
"Remove attachment": "Remove attachment",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Your browser does not support uploading encrypted files. Please use a newer browser.",
|
||||||
|
"Invalid attachment.": "Invalid attachment.",
|
||||||
|
"Options": "Options",
|
||||||
|
"Shorten URL": "Shorten URL",
|
||||||
|
"Editor": "Editor",
|
||||||
|
"Preview": "Preview",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.",
|
||||||
|
"Decrypt": "Decrypt",
|
||||||
|
"Enter password": "Enter password",
|
||||||
|
"Loading…": "Loading…",
|
||||||
|
"Decrypting paste…": "Decrypting paste…",
|
||||||
|
"Preparing new paste…": "Preparing new paste…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.",
|
||||||
|
"+++ no paste text +++": "+++ no paste text +++",
|
||||||
|
"Could not get paste data: %s": "Could not get paste data: %s",
|
||||||
|
"QR code": "QR code",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "This website is using an insecure HTTP connection! Please use it only for testing.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "For more information <a href=\"%s\">see this FAQ entry</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
189
i18n/uk.json
Normal file
189
i18n/uk.json
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
{
|
||||||
|
"PrivateBin": "PrivateBin",
|
||||||
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s це мінімалістичний Open Source проєкт для створення нотаток, де сервер не знає нічого про дані, що зберігаються. Дані шифруються/розшифровуються %sу переглядачі%s з використанням 256-бітного шифрувания AES.",
|
||||||
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "Подробиці можна дізнатися на <a href=\"https://privatebin.info/\">сайті проєкту</a>.",
|
||||||
|
"Because ignorance is bliss": "Бо незнання - благо",
|
||||||
|
"en": "uk",
|
||||||
|
"Paste does not exist, has expired or has been deleted.": "Допис не існує, протермінований чи був видалений.",
|
||||||
|
"%s requires php %s or above to work. Sorry.": "Для роботи %s потрібен php %s и вище. Вибачте.",
|
||||||
|
"%s requires configuration section [%s] to be present in configuration file.": "%s потрібна секція [%s] в конфігураційному файлі.",
|
||||||
|
"Please wait %d seconds between each post.": [
|
||||||
|
"Please wait %d second between each post. (singular)",
|
||||||
|
"Please wait %d seconds between each post. (1st plural)",
|
||||||
|
"Please wait %d seconds between each post. (2nd plural)",
|
||||||
|
"Please wait %d seconds between each post. (3rd plural)"
|
||||||
|
],
|
||||||
|
"Paste is limited to %s of encrypted data.": "Розмір допису обмежений %s зашифрованих даних.",
|
||||||
|
"Invalid data.": "Неправильні дані.",
|
||||||
|
"You are unlucky. Try again.": "Вам не пощастило. Спробуйте ще раз.",
|
||||||
|
"Error saving comment. Sorry.": "Помилка при збереженні коментаря. Вибачте.",
|
||||||
|
"Error saving paste. Sorry.": "Помилка при збереженні допису. Вибачте.",
|
||||||
|
"Invalid paste ID.": "Неправильний ID допису.",
|
||||||
|
"Paste is not of burn-after-reading type.": "Тип допису не \"Знищити після прочитання\".",
|
||||||
|
"Wrong deletion token. Paste was not deleted.": "Неправильний ключ вилучення допису. Допис не вилучено.",
|
||||||
|
"Paste was properly deleted.": "Допис був вилучений повністю.",
|
||||||
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "Для роботи %s потрібен увімкнутий JavaScript. Вибачте.",
|
||||||
|
"%s requires a modern browser to work.": "Для роботи %s потрібен більш сучасний переглядач.",
|
||||||
|
"New": "Новий допис",
|
||||||
|
"Send": "Відправити",
|
||||||
|
"Clone": "Дублювати",
|
||||||
|
"Raw text": "Початковий текст",
|
||||||
|
"Expires": "Вилучити через",
|
||||||
|
"Burn after reading": "Знищити після прочитання",
|
||||||
|
"Open discussion": "Відкрити обговорення",
|
||||||
|
"Password (recommended)": "Пароль (рекомендується)",
|
||||||
|
"Discussion": "Обговорення",
|
||||||
|
"Toggle navigation": "Перемкнути навігацію",
|
||||||
|
"%d seconds": [
|
||||||
|
"%d секунду",
|
||||||
|
"%d секунди",
|
||||||
|
"%d секунд",
|
||||||
|
"%d секунд"
|
||||||
|
],
|
||||||
|
"%d minutes": [
|
||||||
|
"%d хвилину",
|
||||||
|
"%d хвилини",
|
||||||
|
"%d хвилин",
|
||||||
|
"%d хвилин"
|
||||||
|
],
|
||||||
|
"%d hours": [
|
||||||
|
"%d годину",
|
||||||
|
"%d години",
|
||||||
|
"%d годин",
|
||||||
|
"%d годин"
|
||||||
|
],
|
||||||
|
"%d days": [
|
||||||
|
"%d день",
|
||||||
|
"%d дні",
|
||||||
|
"%d днів",
|
||||||
|
"%d днів"
|
||||||
|
],
|
||||||
|
"%d weeks": [
|
||||||
|
"%d тиждень",
|
||||||
|
"%d тижні",
|
||||||
|
"%d тижнів",
|
||||||
|
"%d тижнів"
|
||||||
|
],
|
||||||
|
"%d months": [
|
||||||
|
"%d місяць",
|
||||||
|
"%d місяці",
|
||||||
|
"%d місяців",
|
||||||
|
"%d місяців"
|
||||||
|
],
|
||||||
|
"%d years": [
|
||||||
|
"%d рік",
|
||||||
|
"%d роки",
|
||||||
|
"%d років",
|
||||||
|
"%d років"
|
||||||
|
],
|
||||||
|
"Never": "Ніколи",
|
||||||
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "Примітка: Це тестовий сервіс: Дані можуть бути вилучені в будь який момент. Кошенята помруть, якщо ви будете зловживати сервісом.",
|
||||||
|
"This document will expire in %d seconds.": [
|
||||||
|
"Документ буде вилучений через %d секунду.",
|
||||||
|
"Документ буде вилучений через %d секунди.",
|
||||||
|
"Документ буде вилучений через %d секунд.",
|
||||||
|
"Документ буде вилучений через %d секунд."
|
||||||
|
],
|
||||||
|
"This document will expire in %d minutes.": [
|
||||||
|
"Документ буде вилучений через %d хвилину.",
|
||||||
|
"Документ буде вилучений через %d хвилини.",
|
||||||
|
"Документ буде вилучений через %d хвилин.",
|
||||||
|
"Документ буде вилучений через %d хвилин."
|
||||||
|
],
|
||||||
|
"This document will expire in %d hours.": [
|
||||||
|
"Документ буде вилучений через %d годину.",
|
||||||
|
"Документ буде вилучений через %d години.",
|
||||||
|
"Документ буде вилучений через %d годин.",
|
||||||
|
"Документ буде вилучений через %d годин."
|
||||||
|
],
|
||||||
|
"This document will expire in %d days.": [
|
||||||
|
"Документ буде вилучений через %d день.",
|
||||||
|
"Документ буде вилучений через %d дні.",
|
||||||
|
"Документ буде вилучений через %d днів.",
|
||||||
|
"Документ буде вилучений через %d днів."
|
||||||
|
],
|
||||||
|
"This document will expire in %d months.": [
|
||||||
|
"Документ буде вилучений через %d місяць.",
|
||||||
|
"Документ буде вилучений через %d місяці.",
|
||||||
|
"Документ буде вилучений через %d місяців.",
|
||||||
|
"Документ буде вилучений через %d місяців."
|
||||||
|
],
|
||||||
|
"Please enter the password for this paste:": "Будь ласка, введіть пароль від допису:",
|
||||||
|
"Could not decrypt data (Wrong key?)": "Неможливо розшифрувати дані (Неправильний ключ?)",
|
||||||
|
"Could not delete the paste, it was not stored in burn after reading mode.": "Неможливо вилучити допис, він не був збережений в режимі знищити після прочитання.",
|
||||||
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "ЛИШЕ ДЛЯ ВАШИХ ОЧЕЙ. Не закривайте це вікно, це повідомлення не може бути показано знову.",
|
||||||
|
"Could not decrypt comment; Wrong key?": "Неможливо розшифрувати коментар; Неправильний ключ?",
|
||||||
|
"Reply": "Відповісти",
|
||||||
|
"Anonymous": "Анонім",
|
||||||
|
"Avatar generated from IP address": "Аватар зґенерований з IP-адреси",
|
||||||
|
"Add comment": "Додати коментар",
|
||||||
|
"Optional nickname…": "Необов’язкове прізвисько…",
|
||||||
|
"Post comment": "Відправити коментар",
|
||||||
|
"Sending comment…": "Відправка коментаря…",
|
||||||
|
"Comment posted.": "Коментар опублікований.",
|
||||||
|
"Could not refresh display: %s": "Не вдалося оновити екран: %s",
|
||||||
|
"unknown status": "невідома причина",
|
||||||
|
"server error or not responding": "помилка на сервері чи немає відповіді",
|
||||||
|
"Could not post comment: %s": "Не вдалося опублікувати коментар: %s",
|
||||||
|
"Sending paste…": "Відправка допису…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "Посилання на допис <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Тисніть [Ctrl]+[c], щоб скопіювати посилання)</span>",
|
||||||
|
"Delete data": "Видалити допис",
|
||||||
|
"Could not create paste: %s": "Не вдалося опублікувати допис: %s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "Неможливо розшифрувати запис: Ключ дешифрування відсутній в посиланні (Можливо, ви використовуєте скорочувач посилань, що видаляє частину посилання?)",
|
||||||
|
"B": "байт",
|
||||||
|
"KiB": "Кбайт",
|
||||||
|
"MiB": "Мбайт",
|
||||||
|
"GiB": "Гбайт",
|
||||||
|
"TiB": "Тбайт",
|
||||||
|
"PiB": "Пбайт",
|
||||||
|
"EiB": "Ебайт",
|
||||||
|
"ZiB": "Збайт",
|
||||||
|
"YiB": "Йбайт",
|
||||||
|
"Format": "Формат",
|
||||||
|
"Plain Text": "Звичайний текст",
|
||||||
|
"Source Code": "Джерельний код",
|
||||||
|
"Markdown": "Мова розмітки",
|
||||||
|
"Download attachment": "Звантажити прикріплений файл",
|
||||||
|
"Cloned: '%s'": "Дубльовано: '%s'",
|
||||||
|
"The cloned file '%s' was attached to this paste.": "Дублікат файлу '%s' був прикріплений до цього запису.",
|
||||||
|
"Attach a file": "Прикріпити файл",
|
||||||
|
"alternatively drag & drop a file or paste an image from the clipboard": "також можна перенести файл у вікно переглядача чи вставити зображення з буфера",
|
||||||
|
"File too large, to display a preview. Please download the attachment.": "Файл завеликий для відображення передогляду. Будь ласка, звантажте прикріплений файл.",
|
||||||
|
"Remove attachment": "Видалити вкладення",
|
||||||
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "Ваш переглядач не підтримує відправлення зашифрованих файлів. Використовуйте сучасніший переглядач.",
|
||||||
|
"Invalid attachment.": "Невідоме вкладення.",
|
||||||
|
"Options": "Опції",
|
||||||
|
"Shorten URL": "Коротке посилання",
|
||||||
|
"Editor": "Редактор",
|
||||||
|
"Preview": "Передогляд",
|
||||||
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "Змінна PATH необхідна %s в конці \"%s\". Будь ласка, оновіть змінну PATH у вашому index.php.",
|
||||||
|
"Decrypt": "Розшифрувати",
|
||||||
|
"Enter password": "Введіть пароль",
|
||||||
|
"Loading…": "Завантаження…",
|
||||||
|
"Decrypting paste…": "Розшифровування допису…",
|
||||||
|
"Preparing new paste…": "Приготування нового допису…",
|
||||||
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "Якщо це повідомлення не зникатиме тривалий час, подивіться <a href=\"%s\">цей FAQ з інформацією про можливе вирішення проблеми</a>.",
|
||||||
|
"+++ no paste text +++": "+++ у дописі немає тексту +++",
|
||||||
|
"Could not get paste data: %s": "Не вдалося отримати дані допису: %s",
|
||||||
|
"QR code": "QR код",
|
||||||
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "Цей сайт використовує незахищене HTTP підключення! Будь ласка, використовуйте його лише для тестування.",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "Для подробиць <a href=\"%s\">дивіться інформацію в FAQ</a>.",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "Ваш переглядач вимагає підключення HTTPS для підтримки WebCrypto API. Спробуйте <a href=\"%s\">перемкнутися на HTTPS</a>.",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "Ваш переглядач не підтримує WebAssembly, що використовується для стиснення zlib. Ви можете створювати нестиснені документи, але не зможете читати стиснені.",
|
||||||
|
"waiting on user to provide a password": "waiting on user to provide a password",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.",
|
||||||
|
"Retry": "Retry",
|
||||||
|
"Showing raw text…": "Showing raw text…",
|
||||||
|
"Notice:": "Notice:",
|
||||||
|
"This link will expire after %s.": "This link will expire after %s.",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "This link can only be accessed once, do not use back or refresh button in your browser.",
|
||||||
|
"Link:": "Link:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "Recipient may become aware of your timezone, convert time to UTC?",
|
||||||
|
"Use Current Timezone": "Use Current Timezone",
|
||||||
|
"Convert To UTC": "Convert To UTC",
|
||||||
|
"Close": "Close",
|
||||||
|
"Encrypted note on PrivateBin": "Encrypted note on PrivateBin",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "URL shortener may expose your decrypt key in URL.",
|
||||||
|
"Save paste": "Save paste"
|
||||||
|
}
|
||||||
310
i18n/zh.json
310
i18n/zh.json
@@ -1,159 +1,189 @@
|
|||||||
{
|
{
|
||||||
"PrivateBin": "PrivateBin",
|
"PrivateBin": "PrivateBin",
|
||||||
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted <i>in the browser</i> using 256 bits AES. More information on the <a href=\"https://privatebin.info/\">project page</a>.":
|
"%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted %sin the browser%s using 256 bits AES.": "%s 是一个极简、开源、对粘贴内容毫不知情的在线粘贴板,数据%s在浏览器内%s进行 AES-256 加密和解密。",
|
||||||
"%s是一个极简,开源,对粘贴内容毫不知情的在线粘贴板,数据<i>在浏览器内</i>进行AES-256加密。更多信息请查看<a href=\"https://privatebin.info/\">项目主页</a>。",
|
"More information on the <a href=\"https://privatebin.info/\">project page</a>.": "更多信息请查看<a href=\"https://privatebin.info/\">项目主页</a>。",
|
||||||
"Because ignorance is bliss":
|
"Because ignorance is bliss": "因为无知是福",
|
||||||
"因为无知是福",
|
|
||||||
"en": "zh",
|
"en": "zh",
|
||||||
"Paste does not exist, has expired or has been deleted.":
|
"Paste does not exist, has expired or has been deleted.": "粘贴内容不存在、已过期或已被删除。",
|
||||||
"粘贴不存在,已过期或者已被删除。",
|
"%s requires php %s or above to work. Sorry.": "抱歉,%s 需要 PHP %s 及以上版本才能运行。",
|
||||||
"%s requires php %s or above to work. Sorry.":
|
"%s requires configuration section [%s] to be present in configuration file.": "%s 需要设置配置文件中的 [%s] 部分。",
|
||||||
"%s需要工作于PHP %s及以上版本,抱歉。",
|
"Please wait %d seconds between each post.": [
|
||||||
"%s requires configuration section [%s] to be present in configuration file.":
|
|
||||||
"%s需要设置配置文件中 [%s] 的部分。",
|
|
||||||
"Please wait %d seconds between each post.":
|
|
||||||
"每 %d 秒只能粘贴一次。",
|
"每 %d 秒只能粘贴一次。",
|
||||||
"Paste is limited to %s of encrypted data.":
|
"每 %d 秒只能粘贴一次。",
|
||||||
"粘贴受限于 %s 加密数据。",
|
"每 %d 秒只能粘贴一次。",
|
||||||
"Invalid data.":
|
"每 %d 秒只能粘贴一次。"
|
||||||
"无效的数据。",
|
],
|
||||||
"You are unlucky. Try again.":
|
"Paste is limited to %s of encrypted data.": "对于加密数据,上限为 %s。",
|
||||||
"请再试一次。",
|
"Invalid data.": "无效的数据。",
|
||||||
"Error saving comment. Sorry.":
|
"You are unlucky. Try again.": "请再试一次。",
|
||||||
"存储评论时出现错误,抱歉。",
|
"Error saving comment. Sorry.": "保存评论时出现错误,抱歉。",
|
||||||
"Error saving paste. Sorry.":
|
"Error saving paste. Sorry.": "保存粘贴内容时出现错误,抱歉。",
|
||||||
"存储粘贴时出现错误,抱歉。",
|
"Invalid paste ID.": "无效的 ID。",
|
||||||
"Invalid paste ID.":
|
"Paste is not of burn-after-reading type.": "粘贴内容不是阅后即焚类型。",
|
||||||
"无效的ID。",
|
"Wrong deletion token. Paste was not deleted.": "错误的删除token,粘贴内容没有被删除。",
|
||||||
"Paste is not of burn-after-reading type.":
|
"Paste was properly deleted.": "粘贴内容已被正确删除。",
|
||||||
"粘贴不是阅后即焚类型。",
|
"JavaScript is required for %s to work. Sorry for the inconvenience.": "%s 需要 JavaScript 来进行加解密。 给你带来的不便敬请谅解。",
|
||||||
"Wrong deletion token. Paste was not deleted.":
|
"%s requires a modern browser to work.": "%s 需要在现代浏览器上工作。",
|
||||||
"错误的删除token,粘贴没有被删除。",
|
"New": "新建",
|
||||||
"Paste was properly deleted.":
|
"Send": "送出",
|
||||||
"粘贴已被正确删除。",
|
"Clone": "复制",
|
||||||
"JavaScript is required for %s to work.<br />Sorry for the inconvenience.":
|
"Raw text": "纯文本",
|
||||||
"%s需要JavaScript来进行加解密。<br />带来的不便敬请谅解。",
|
"Expires": "有效期",
|
||||||
"%s requires a modern browser to work.":
|
"Burn after reading": "阅后即焚",
|
||||||
"%s需要工作于现代化的浏览器。",
|
"Open discussion": "开放讨论",
|
||||||
"Still using Internet Explorer? Do yourself a favor, switch to a modern browser:":
|
"Password (recommended)": "密码(推荐)",
|
||||||
"还在使用Internet Explorer?帮自己个忙,换上一个现代化的浏览器:",
|
"Discussion": "讨论",
|
||||||
"New":
|
"Toggle navigation": "切换导航栏",
|
||||||
"新建",
|
"%d seconds": [
|
||||||
"Send":
|
"%d 秒",
|
||||||
"送出",
|
"%d 秒",
|
||||||
"Clone":
|
"%d 秒",
|
||||||
"克隆",
|
"%d 秒"
|
||||||
"Raw text":
|
],
|
||||||
"纯文本",
|
"%d minutes": [
|
||||||
"Expires":
|
"%d 分钟",
|
||||||
"有效期",
|
"%d 分钟",
|
||||||
"Burn after reading":
|
"%d 秒",
|
||||||
"阅后即焚",
|
"%d 秒"
|
||||||
"Open discussion":
|
],
|
||||||
"开放讨论",
|
"%d hours": [
|
||||||
"Password (recommended)":
|
"%d 小时",
|
||||||
"密码 (推荐)",
|
"%d 小时",
|
||||||
"Discussion":
|
"%d 小时",
|
||||||
"讨论",
|
"%d 小时"
|
||||||
"Toggle navigation":
|
],
|
||||||
"切换导航栏",
|
"%d days": [
|
||||||
"%d seconds": ["%d 秒", "%d 秒"],
|
"%d 天",
|
||||||
"%d minutes": ["%d 分钟", "%d 分钟"],
|
"%d 天",
|
||||||
"%d hours": ["%d 小时", "%d 小时"],
|
"%d 天",
|
||||||
"%d days": ["%d 天", "%d 天"],
|
"%d 天"
|
||||||
"%d weeks": ["%d 周", "%d 周"],
|
],
|
||||||
"%d months": ["%d 个月", "%d 个月"],
|
"%d weeks": [
|
||||||
"%d years": ["%d 年", "%d 年"],
|
"%d 周",
|
||||||
"Never":
|
"%d 周",
|
||||||
"永不过期",
|
"%d 周",
|
||||||
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.":
|
"%d 周"
|
||||||
"注意:这是一个测试服务,数据随时可能被删除。如果你滥用这个服务的话,小猫咪会死的。",
|
],
|
||||||
"This document will expire in %d seconds.":
|
"%d months": [
|
||||||
["这份文档将在一秒后过期。", "这份文档将在 %d 秒后过期"],
|
"%d 个月",
|
||||||
"This document will expire in %d minutes.":
|
"%d 个月",
|
||||||
["这份文档将在一分钟后过期。", "这份文档将在 %d 分钟后过期。"],
|
"%d 个月",
|
||||||
"This document will expire in %d hours.":
|
"%d 个月"
|
||||||
["这份文档将在一小时后过期。", "这份文档将在 %d 小时后过期。"],
|
],
|
||||||
"This document will expire in %d days.":
|
"%d years": [
|
||||||
["这份文档将在一天后过期。", "这份文档将在 %d 天后过期。"],
|
"%d 年",
|
||||||
"This document will expire in %d months.":
|
"%d 年",
|
||||||
["这份文档将在一个月后过期。", "这份文档将在 %d 个月后过期。"],
|
"%d 年",
|
||||||
"Please enter the password for this paste:":
|
"%d 年"
|
||||||
"请输入这份粘贴的密码:",
|
],
|
||||||
"Could not decrypt data (Wrong key?)":
|
"Never": "永不过期",
|
||||||
"无法解密数据 (密钥错误?)",
|
"Note: This is a test service: Data may be deleted anytime. Kittens will die if you abuse this service.": "注意:这是一个测试服务,数据随时可能被删除。如果你滥用这个服务的话,小猫咪会死的。",
|
||||||
"Could not delete the paste, it was not stored in burn after reading mode.":
|
"This document will expire in %d seconds.": [
|
||||||
"无法删除此粘贴,它没有以阅后即焚模式存储。",
|
"这份文档将在一秒后过期。",
|
||||||
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.":
|
"这份文档将在 %d 秒后过期。",
|
||||||
"看!仔!细!了! 不要关闭窗口,否则你再也见不到这条消息了。",
|
"这份文档将在 %d 秒后过期。",
|
||||||
"Could not decrypt comment; Wrong key?":
|
"这份文档将在 %d 秒后过期。"
|
||||||
"无法解密评论; 密钥错误?",
|
],
|
||||||
"Reply":
|
"This document will expire in %d minutes.": [
|
||||||
"回复",
|
"这份文档将在一分钟后过期。",
|
||||||
"Anonymous":
|
"这份文档将在 %d 分钟后过期。",
|
||||||
"匿名",
|
"这份文档将在 %d 分钟后过期。",
|
||||||
"Avatar generated from IP address":
|
"这份文档将在 %d 分钟后过期。"
|
||||||
"由IP生成的头像",
|
],
|
||||||
"Add comment":
|
"This document will expire in %d hours.": [
|
||||||
"添加评论",
|
"这份文档将在一小时后过期。",
|
||||||
"Optional nickname…":
|
"这份文档将在 %d 小时后过期。",
|
||||||
"可选昵称…",
|
"这份文档将在 %d 小时后过期。",
|
||||||
"Post comment":
|
"这份文档将在 %d 小时后过期。"
|
||||||
"评论",
|
],
|
||||||
"Sending comment…":
|
"This document will expire in %d days.": [
|
||||||
"评论发送中…",
|
"这份文档将在一天后过期。",
|
||||||
"Comment posted.":
|
"这份文档将在 %d 天后过期。",
|
||||||
"评论已发送。",
|
"这份文档将在 %d 天后过期。",
|
||||||
"Could not refresh display: %s":
|
"这份文档将在 %d 天后过期。"
|
||||||
"无法刷新显示: %s",
|
],
|
||||||
"unknown status":
|
"This document will expire in %d months.": [
|
||||||
"未知状态",
|
"这份文档将在一个月后过期。",
|
||||||
"server error or not responding":
|
"这份文档将在 %d 个月后过期。",
|
||||||
"服务器错误或无回应",
|
"这份文档将在 %d 个月后过期。",
|
||||||
"Could not post comment: %s":
|
"这份文档将在 %d 个月后过期。"
|
||||||
"无法发送评论: %s",
|
],
|
||||||
"Please move your mouse for more entropy…":
|
"Please enter the password for this paste:": "请输入这份粘贴内容的密码:",
|
||||||
"请移动鼠标增加随机性…",
|
"Could not decrypt data (Wrong key?)": "无法解密数据(密钥错误?)",
|
||||||
"Sending paste…":
|
"Could not delete the paste, it was not stored in burn after reading mode.": "无法删除此粘贴内容,它没有以阅后即焚模式保存。",
|
||||||
"粘贴提交中…",
|
"FOR YOUR EYES ONLY. Don't close this window, this message can't be displayed again.": "看!仔!细!了!不要关闭窗口,否则你再也见不到这条消息了。",
|
||||||
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>":
|
"Could not decrypt comment; Wrong key?": "无法解密评论;密钥错误?",
|
||||||
"您的粘贴的链接是<a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(按下 [Ctrl]+[c] 以复制)</span>",
|
"Reply": "回复",
|
||||||
"Delete data":
|
"Anonymous": "匿名",
|
||||||
"删除数据",
|
"Avatar generated from IP address": "由IP生成的头像",
|
||||||
"Could not create paste: %s":
|
"Add comment": "添加评论",
|
||||||
"无法创建粘贴: %s",
|
"Optional nickname…": "可选昵称…",
|
||||||
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)":
|
"Post comment": "评论",
|
||||||
"无法解密粘贴: URL中缺失解密密钥 (是否使用了重定向或者短链接导致密钥丢失?)",
|
"Sending comment…": "评论发送中…",
|
||||||
|
"Comment posted.": "评论已发送。",
|
||||||
|
"Could not refresh display: %s": "无法刷新显示:%s",
|
||||||
|
"unknown status": "未知状态",
|
||||||
|
"server error or not responding": "服务器错误或无回应",
|
||||||
|
"Could not post comment: %s": "无法发送评论: %s",
|
||||||
|
"Sending paste…": "粘贴内容提交中…",
|
||||||
|
"Your paste is <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(Hit [Ctrl]+[c] to copy)</span>": "您粘贴内容的链接是 <a id=\"pasteurl\" href=\"%s\">%s</a> <span id=\"copyhint\">(按下 [Ctrl]+[C] 以复制)</span>",
|
||||||
|
"Delete data": "删除数据",
|
||||||
|
"Could not create paste: %s": "无法创建粘贴:%s",
|
||||||
|
"Cannot decrypt paste: Decryption key missing in URL (Did you use a redirector or an URL shortener which strips part of the URL?)": "无法解密粘贴:URL中缺失解密密钥(是否使用了重定向或者短链接导致密钥丢失?)",
|
||||||
|
"B": "B",
|
||||||
|
"KiB": "KiB",
|
||||||
|
"MiB": "MiB",
|
||||||
|
"GiB": "GiB",
|
||||||
|
"TiB": "TiB",
|
||||||
|
"PiB": "PiB",
|
||||||
|
"EiB": "EiB",
|
||||||
|
"ZiB": "ZiB",
|
||||||
|
"YiB": "YiB",
|
||||||
"Format": "格式",
|
"Format": "格式",
|
||||||
"Plain Text": "纯文本",
|
"Plain Text": "纯文本",
|
||||||
"Source Code": "源代码",
|
"Source Code": "源代码",
|
||||||
"Markdown": "Markdown",
|
"Markdown": "Markdown",
|
||||||
"Download attachment": "下载附件",
|
"Download attachment": "下载附件",
|
||||||
"Cloned: '%s'": "克隆: '%s'",
|
"Cloned: '%s'": "副本:“%s”",
|
||||||
"The cloned file '%s' was attached to this paste.": "克隆文件 '%s' 已附加到此粘贴。",
|
"The cloned file '%s' was attached to this paste.": "副本“%s”已附加到此粘贴内容。",
|
||||||
"Attach a file": "添加一个附件",
|
"Attach a file": "添加一个附件",
|
||||||
"alternatively drag & drop a file or paste an image from the clipboard": "alternatively drag & drop a file or paste an image from the clipboard",
|
"alternatively drag & drop a file or paste an image from the clipboard": "拖放文件或从剪贴板粘贴图片",
|
||||||
"File too large, to display a preview. Please download the attachment.": "File too large, to display a preview. Please download the attachment.",
|
"File too large, to display a preview. Please download the attachment.": "文件过大,无法显示预览。请下载附件。",
|
||||||
"Remove attachment": "移除附件",
|
"Remove attachment": "移除附件",
|
||||||
"Your browser does not support uploading encrypted files. Please use a newer browser.":
|
"Your browser does not support uploading encrypted files. Please use a newer browser.": "您的浏览器不支持上传加密的文件,请使用新版本的浏览器。",
|
||||||
"您的浏览器不支持上传加密的文件,请使用更新的浏览器。",
|
|
||||||
"Invalid attachment.": "无效的附件",
|
"Invalid attachment.": "无效的附件",
|
||||||
"Options": "选项",
|
"Options": "选项",
|
||||||
"Shorten URL": "缩短链接",
|
"Shorten URL": "缩短链接",
|
||||||
"Editor": "编辑",
|
"Editor": "编辑",
|
||||||
"Preview": "预览",
|
"Preview": "预览",
|
||||||
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.":
|
"%s requires the PATH to end in a \"%s\". Please update the PATH in your index.php.": "%s 的 PATH 变量必须结束于“%s”。 请修改你的 index.php 中的 PATH 变量。",
|
||||||
"%s 的 PATH 变量必须结束于 \"%s\"。 请修改你的 index.php 中的 PATH 变量。",
|
"Decrypt": "解密",
|
||||||
"Decrypt":
|
"Enter password": "输入密码",
|
||||||
"解密",
|
|
||||||
"Enter password":
|
|
||||||
"输入密码",
|
|
||||||
"Loading…": "载入中…",
|
"Loading…": "载入中…",
|
||||||
"Decrypting paste…": "正在解密",
|
"Decrypting paste…": "正在解密",
|
||||||
"Preparing new paste…": "正在准备新的粘贴",
|
"Preparing new paste…": "正在准备新的粘贴内容",
|
||||||
"In case this message never disappears please have a look at <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">this FAQ for information to troubleshoot</a>.":
|
"In case this message never disappears please have a look at <a href=\"%s\">this FAQ for information to troubleshoot</a>.": "如果此消息一直存在,请参考 <a href=\"%s\">这里的 FAQ(英文版)</a>排除故障。",
|
||||||
"如果这个消息一直不消失,请参考 <a href=\"https://github.com/PrivateBin/PrivateBin/wiki/FAQ#why-does-not-the-loading-message-go-away\">这里的 FAQ 进行故障排除</a> (英文版)。",
|
"+++ no paste text +++": "+++ 无粘贴内容 +++",
|
||||||
"+++ no paste text +++": "+++ 没有粘贴内容 +++",
|
"Could not get paste data: %s": "无法获取粘贴数据:%s",
|
||||||
"Could not get paste data: %s":
|
"QR code": "二维码",
|
||||||
"Could not get paste data: %s"
|
"This website is using an insecure HTTP connection! Please use it only for testing.": "该网站使用了不安全的 HTTP 连接!请仅将其用于测试。",
|
||||||
|
"For more information <a href=\"%s\">see this FAQ entry</a>.": "有关更多信息,请参阅<a href=\"%s\">此常见问题解答</a>。",
|
||||||
|
"Your browser may require an HTTPS connection to support the WebCrypto API. Try <a href=\"%s\">switching to HTTPS</a>.": "您的浏览器可能需要 HTTPS 连接才能支持 WebCrypto API。 尝试<a href=\"%s\">切换到 HTTPS</a>。",
|
||||||
|
"Your browser doesn't support WebAssembly, used for zlib compression. You can create uncompressed documents, but can't read compressed ones.": "您的浏览器不支持用于 zlib 压缩的 WebAssembly。 您可以创建未压缩的文档,但不能读取压缩的文档。",
|
||||||
|
"waiting on user to provide a password": "请输入密码",
|
||||||
|
"Could not decrypt data. Did you enter a wrong password? Retry with the button at the top.": "无法解密数据。您是否输入了错误的密码?按顶部的按钮重试。",
|
||||||
|
"Retry": "重试",
|
||||||
|
"Showing raw text…": "显示原始文字…",
|
||||||
|
"Notice:": "注意:",
|
||||||
|
"This link will expire after %s.": "这个链接将会在 %s 过期。",
|
||||||
|
"This link can only be accessed once, do not use back or refresh button in your browser.": "此链接只能被访问一次,请勿使用浏览器中的返回和刷新按钮。",
|
||||||
|
"Link:": "链接:",
|
||||||
|
"Recipient may become aware of your timezone, convert time to UTC?": "收件人可能会知道您的时区,将时间转换为 UTC?",
|
||||||
|
"Use Current Timezone": "使用当前时区",
|
||||||
|
"Convert To UTC": "转换为 UTC",
|
||||||
|
"Close": "关闭",
|
||||||
|
"Encrypted note on PrivateBin": "PrivateBin 上的加密笔记",
|
||||||
|
"Visit this link to see the note. Giving the URL to anyone allows them to access the note, too.": "访问此链接来查看该笔记。将此 URL 发送给任何人即可允许其访问该笔记。",
|
||||||
|
"URL shortener may expose your decrypt key in URL.": "短链接服务可能会暴露您在 URL 中的解密密钥。",
|
||||||
|
"Save paste": "保存内容"
|
||||||
}
|
}
|
||||||
|
|||||||
90
img/browserstack.svg
Normal file
90
img/browserstack.svg
Normal file
@@ -0,0 +1,90 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||||
|
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||||
|
viewBox="0 0 490.1 105.6" style="enable-background:new 0 0 490.1 105.6;" xml:space="preserve">
|
||||||
|
<style type="text/css">
|
||||||
|
.st0{fill:#F4B960;}
|
||||||
|
.st1{fill:#E66F32;}
|
||||||
|
.st2{fill:#E43C41;}
|
||||||
|
.st3{fill:#BDD041;}
|
||||||
|
.st4{fill:#6DB54C;}
|
||||||
|
.st5{fill:#AEDAE6;}
|
||||||
|
.st6{fill:#56B8DE;}
|
||||||
|
.st7{fill:#00B1D5;}
|
||||||
|
.st8{fill:url(#SVGID_1_);}
|
||||||
|
.st9{fill:#221F1F;}
|
||||||
|
.st10{fill:#FFFFFF;}
|
||||||
|
.st11{fill:#000111;}
|
||||||
|
</style>
|
||||||
|
<title>Browserstack-logo-white</title>
|
||||||
|
<circle class="st0" cx="52.8" cy="52.8" r="52.8"/>
|
||||||
|
<circle class="st1" cx="47.5" cy="47.5" r="47.5"/>
|
||||||
|
<circle class="st2" cx="53.8" cy="41.1" r="41.1"/>
|
||||||
|
<circle class="st3" cx="57.1" cy="44.4" r="37.8"/>
|
||||||
|
<circle class="st4" cx="54.3" cy="47.2" r="35.1"/>
|
||||||
|
<circle class="st5" cx="48.8" cy="41.7" r="29.5"/>
|
||||||
|
<circle class="st6" cx="53.6" cy="36.8" r="24.7"/>
|
||||||
|
<circle class="st7" cx="56.6" cy="39.9" r="21.7"/>
|
||||||
|
<radialGradient id="SVGID_1_" cx="53.45" cy="63.02" r="18.57" gradientTransform="matrix(1 0 0 -1 0 106)" gradientUnits="userSpaceOnUse">
|
||||||
|
<stop offset="0" style="stop-color:#797979"/>
|
||||||
|
<stop offset="1" style="stop-color:#4C4C4C"/>
|
||||||
|
</radialGradient>
|
||||||
|
<circle class="st8" cx="53.5" cy="43" r="18.6"/>
|
||||||
|
<circle class="st9" cx="53.5" cy="43" r="18.6"/>
|
||||||
|
<ellipse transform="matrix(0.4094 -0.9123 0.9123 0.4094 2.8913 76.9251)" class="st10" cx="60.9" cy="36.2" rx="5.7" ry="3.7"/>
|
||||||
|
<path class="st11" d="M122.5,32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h16.6c9.5,0,13.9,4.4,13.9,11c0.2,3.7-1.8,7.2-5.2,8.8v0.1
|
||||||
|
c3.7,1.5,6.1,5.2,6,9.3c0,8.2-5.6,12.2-15.4,12.2h-16c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1L122.5,32.6L122.5,32.6z M139.6,49.1
|
||||||
|
c3.9,0,6.4-2.2,6.4-5.4s-2.4-5.5-6.4-5.5h-8.9c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.2c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0
|
||||||
|
H139.6L139.6,49.1z M130.6,66.9h9.3c4.3,0,6.8-2.3,6.8-5.8s-2.4-5.7-6.7-5.7h-9.3c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1v10.7
|
||||||
|
C130.3,66.8,130.4,66.9,130.6,66.9C130.6,66.9,130.6,66.9,130.6,66.9L130.6,66.9z"/>
|
||||||
|
<path class="st11" d="M159.9,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
|
||||||
|
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
|
||||||
|
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
|
||||||
|
H159.9L159.9,73.3z"/>
|
||||||
|
<path class="st11" d="M182.9,65.8c-0.8-2.3-1.1-4.8-1.1-7.2c-0.1-2.5,0.3-4.9,1.1-7.2c1.8-5.1,6.6-8.1,13.1-8.1s11.2,3,13,8.1
|
||||||
|
c0.8,2.3,1.1,4.8,1.1,7.2c0.1,2.5-0.3,4.9-1.1,7.2c-1.8,5.1-6.6,8.1-13,8.1S184.7,71,182.9,65.8z M201.9,64c0.5-1.7,0.8-3.6,0.7-5.4
|
||||||
|
c0.1-1.8-0.1-3.7-0.7-5.4c-0.9-2.5-3.3-4-5.9-3.8c-2.6-0.2-5.1,1.4-6,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.4
|
||||||
|
c0.9,2.5,3.4,4,6,3.8C198.6,68,201,66.5,201.9,64L201.9,64z"/>
|
||||||
|
<path class="st11" d="M241.9,73.3c-0.4,0-0.7-0.3-0.8-0.6L235,53.9h-0.1l-6.2,18.7c-0.1,0.4-0.4,0.6-0.8,0.6h-5.4
|
||||||
|
c-0.4,0-0.7-0.3-0.8-0.6l-10-28.1c-0.1-0.2,0-0.5,0.2-0.6c0.1,0,0.2-0.1,0.3,0h6.3c0.4,0,0.8,0.2,0.9,0.6l6.1,19.3h0.1l6-19.3
|
||||||
|
c0.1-0.4,0.5-0.6,0.9-0.6h4.7c0.4,0,0.7,0.2,0.9,0.6l6.4,19.3h0.1l5.8-19.3c0.1-0.4,0.5-0.7,0.9-0.6h6.3c0.2-0.1,0.5,0.1,0.5,0.3
|
||||||
|
c0,0.1,0,0.2,0,0.3l-10,28.1c-0.1,0.4-0.4,0.6-0.8,0.6L241.9,73.3L241.9,73.3z"/>
|
||||||
|
<path class="st11" d="M259.3,69.3c-0.2-0.2-0.3-0.6-0.1-0.8c0,0,0,0,0.1-0.1l3.7-3.6c0.3-0.2,0.7-0.2,0.9,0c2.6,2.1,5.9,3.3,9.3,3.3
|
||||||
|
c3.9,0,5.9-1.5,5.9-3.5c0-1.8-1.1-2.9-5.2-3.2l-3.4-0.3c-6.4-0.6-9.7-3.6-9.7-8.6c0-5.7,4.4-9.2,12.3-9.2c4.2-0.1,8.4,1.2,11.9,3.6
|
||||||
|
c0.3,0.2,0.3,0.5,0.2,0.8c0,0,0,0,0,0.1l-3.2,3.6c-0.2,0.3-0.6,0.3-0.9,0.1c-2.5-1.5-5.4-2.4-8.3-2.4c-3.1,0-4.8,1.3-4.8,3
|
||||||
|
s1.1,2.7,5.2,3.1l3.4,0.3c6.6,0.6,9.8,3.8,9.8,8.6c0,5.8-4.6,9.9-13.3,9.9C268,74,263.2,72.4,259.3,69.3z"/>
|
||||||
|
<path class="st11" d="M291.2,65.8c-0.8-2.3-1.2-4.7-1.1-7.2c-0.1-2.5,0.3-4.9,1-7.2c1.8-5.1,6.6-8.1,12.9-8.1c6.5,0,11.2,3.1,13,8.1
|
||||||
|
c0.7,2.1,1,4.1,1,8.8c0,0.3-0.3,0.6-0.6,0.6c0,0-0.1,0-0.1,0h-19.5c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1c0,0.8,0.2,1.5,0.5,2.2
|
||||||
|
c1,2.9,3.5,4.4,7.1,4.4c2.7,0.1,5.4-0.9,7.4-2.8c0.2-0.3,0.7-0.4,1-0.1c0,0,0,0,0,0l3.9,3.2c0.2,0.1,0.3,0.5,0.2,0.7
|
||||||
|
c0,0.1-0.1,0.1-0.1,0.1c-2.7,2.9-7.2,5-13,5C297.8,73.9,293,70.9,291.2,65.8z M310.4,52.8c-0.9-2.4-3.2-3.8-6.2-3.8
|
||||||
|
s-5.4,1.4-6.2,3.8c-0.3,0.8-0.4,1.6-0.4,2.5c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h12.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1
|
||||||
|
C310.8,54.5,310.6,53.6,310.4,52.8L310.4,52.8z"/>
|
||||||
|
<path class="st11" d="M323.6,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V44.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6
|
||||||
|
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v2.5h0.1c1.5-2.2,4.2-3.8,8.2-3.8c2.4,0,4.8,0.8,6.6,2.4c0.3,0.3,0.4,0.5,0.1,0.8l-3.5,4.1
|
||||||
|
c-0.2,0.3-0.6,0.4-0.9,0.2c0,0,0,0-0.1,0c-1.4-0.9-3-1.4-4.7-1.4c-4.1,0-6,2.7-6,7.4v15.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0
|
||||||
|
H323.6L323.6,73.3z"/>
|
||||||
|
<path class="st11" d="M346.5,68.5c-0.3-0.2-0.4-0.6-0.2-0.9c0,0,0,0,0,0l4.1-4.4c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0
|
||||||
|
c3.5,2.7,7.7,4.2,12.1,4.4c5.3,0,8.4-2.5,8.4-6c0-3-2-4.9-8.1-5.7l-2.4-0.3c-8.6-1.1-13.5-4.9-13.5-11.8c0-7.5,5.9-12.4,15.1-12.4
|
||||||
|
c5.1-0.1,10.1,1.4,14.5,4.2c0.3,0.1,0.4,0.4,0.2,0.7c0,0.1-0.1,0.1-0.1,0.2l-3.1,4.5c-0.2,0.3-0.6,0.4-0.9,0.2
|
||||||
|
c-3.2-2.1-6.9-3.2-10.7-3.2c-4.5,0-7,2.3-7,5.5c0,2.9,2.2,4.8,8.2,5.6l2.4,0.3c8.6,1.1,13.3,4.9,13.3,12c0,7.3-5.7,12.8-16.8,12.8
|
||||||
|
C356.3,73.9,350,71.5,346.5,68.5z"/>
|
||||||
|
<path class="st11" d="M393.3,73.8c-6.4,0-8.8-2.9-8.8-8.6V49.8c0-0.2-0.1-0.3-0.3-0.4c0,0,0,0-0.1,0H382c-0.3,0-0.6-0.2-0.7-0.5
|
||||||
|
c0,0,0,0,0-0.1v-4.1c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h2.1c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-8c0-0.3,0.3-0.6,0.6-0.6
|
||||||
|
c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v8c0,0.2,0.1,0.3,0.3,0.4c0,0,0,0,0.1,0h4.2c0.3,0,0.6,0.2,0.7,0.5
|
||||||
|
c0,0,0,0,0,0.1v4.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-4.2c-0.2,0-0.4,0.1-0.4,0.3c0,0,0,0,0,0.1V65c0,2.1,0.9,2.7,3,2.7h1.6
|
||||||
|
c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v4.9c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0L393.3,73.8L393.3,73.8z"/>
|
||||||
|
<path class="st11" d="M421.2,73.3c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1v-2.1h0c-1.5,2-4.5,3.4-8.9,3.4c-5.8,0-10.6-2.8-10.6-8.9
|
||||||
|
c0-6.4,4.9-9.3,12.7-9.3h6.4c0.2,0,0.4-0.1,0.4-0.3c0,0,0,0,0-0.1v-1.4c0-3.3-1.7-4.9-7-4.9c-2.6-0.1-5.1,0.6-7.2,2
|
||||||
|
c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1l-2.4-4c-0.2-0.2-0.1-0.6,0.1-0.8c0,0,0,0,0,0c2.6-1.7,6-2.9,11.2-2.9
|
||||||
|
c9.6,0,13.2,3,13.2,10.2v19.1c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0H421.2L421.2,73.3z M420.4,63.4v-2.2c0-0.2-0.1-0.3-0.3-0.4
|
||||||
|
c0,0,0,0-0.1,0h-5.2c-4.7,0-6.8,1.2-6.8,3.9c0,2.4,1.9,3.6,5.5,3.6C417.9,68.4,420.4,66.8,420.4,63.4L420.4,63.4z"/>
|
||||||
|
<path class="st11" d="M433.1,65.8c-0.7-2.3-1.1-4.8-1-7.2c-0.1-2.4,0.3-4.9,1-7.2c1.8-5.2,6.7-8.1,13.1-8.1c4.2-0.2,8.2,1.5,11,4.6
|
||||||
|
c0.2,0.2,0.2,0.6,0,0.8c0,0,0,0-0.1,0.1l-4.1,3.3c-0.3,0.2-0.7,0.2-0.9-0.1c0,0,0,0,0-0.1c-1.5-1.7-3.6-2.6-5.9-2.5
|
||||||
|
c-2.8,0-5,1.3-5.9,3.8c-0.5,1.8-0.8,3.6-0.7,5.4c-0.1,1.8,0.1,3.7,0.7,5.5c0.9,2.5,3.1,3.8,5.9,3.8c2.2,0.1,4.4-0.9,5.9-2.6
|
||||||
|
c0.2-0.3,0.6-0.3,0.9-0.1c0,0,0,0,0,0l4.1,3.3c0.3,0.2,0.3,0.5,0.1,0.8c0,0,0,0-0.1,0.1c-2.9,3-6.9,4.6-11,4.5
|
||||||
|
C439.8,73.9,435,71.1,433.1,65.8z"/>
|
||||||
|
<path class="st11" d="M482.8,73.3c-0.4,0-0.8-0.2-1-0.6l-8-12.3l-4.3,4.6v7.7c0,0.3-0.3,0.6-0.6,0.6c0,0,0,0-0.1,0h-6
|
||||||
|
c-0.3,0-0.6-0.2-0.7-0.5c0,0,0,0,0-0.1V32.6c0-0.3,0.3-0.6,0.6-0.6c0,0,0,0,0.1,0h6c0.3,0,0.6,0.2,0.7,0.5c0,0,0,0,0,0.1v23.8
|
||||||
|
l10.8-11.8c0.3-0.4,0.8-0.6,1.2-0.6h6.7c0.2,0,0.4,0.1,0.4,0.3c0,0.1,0,0.3-0.1,0.3l-10.1,10.7L490,72.7c0.1,0.2,0.1,0.4,0,0.5
|
||||||
|
c-0.1,0.1-0.2,0.1-0.3,0.1H482.8L482.8,73.3z"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 7.4 KiB |
BIN
img/icon_email.png
Normal file
BIN
img/icon_email.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 253 B |
@@ -7,7 +7,7 @@
|
|||||||
* @link https://github.com/PrivateBin/PrivateBin
|
* @link https://github.com/PrivateBin/PrivateBin
|
||||||
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
* @copyright 2012 Sébastien SAUVAGE (sebsauvage.net)
|
||||||
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
* @license https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License
|
||||||
* @version 1.2.1
|
* @version 1.3.5
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// change this, if your php files and data is outside of your webservers document root
|
// change this, if your php files and data is outside of your webservers document root
|
||||||
|
|||||||
9
js/.nycrc.yml
Normal file
9
js/.nycrc.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
include:
|
||||||
|
- legacy.js
|
||||||
|
- privatebin.js
|
||||||
|
reporter:
|
||||||
|
- text
|
||||||
|
- html
|
||||||
|
report-dir: ../tst/log/js-coverage-report
|
||||||
|
temp-dir: /tmp/nyc-output
|
||||||
120
js/base-x-3.0.7.js
Normal file
120
js/base-x-3.0.7.js
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
'use strict';
|
||||||
|
// base-x encoding / decoding
|
||||||
|
// based on https://github.com/cryptocoinjs/base-x 3.0.7
|
||||||
|
// modification: removed Buffer dependency and node.modules entry
|
||||||
|
// Copyright (c) 2018 base-x contributors
|
||||||
|
// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp)
|
||||||
|
// Distributed under the MIT software license, see the accompanying
|
||||||
|
// file LICENSE or http://www.opensource.org/licenses/mit-license.php.
|
||||||
|
|
||||||
|
(function(){
|
||||||
|
this.baseX = function base (ALPHABET) {
|
||||||
|
if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') }
|
||||||
|
var BASE_MAP = new Uint8Array(256)
|
||||||
|
BASE_MAP.fill(255)
|
||||||
|
for (var i = 0; i < ALPHABET.length; i++) {
|
||||||
|
var x = ALPHABET.charAt(i)
|
||||||
|
var xc = x.charCodeAt(0)
|
||||||
|
if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') }
|
||||||
|
BASE_MAP[xc] = i
|
||||||
|
}
|
||||||
|
var BASE = ALPHABET.length
|
||||||
|
var LEADER = ALPHABET.charAt(0)
|
||||||
|
var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up
|
||||||
|
var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up
|
||||||
|
function encode (source) {
|
||||||
|
if (source.length === 0) { return '' }
|
||||||
|
// Skip & count leading zeroes.
|
||||||
|
var zeroes = 0
|
||||||
|
var length = 0
|
||||||
|
var pbegin = 0
|
||||||
|
var pend = source.length
|
||||||
|
while (pbegin !== pend && source[pbegin] === 0) {
|
||||||
|
pbegin++
|
||||||
|
zeroes++
|
||||||
|
}
|
||||||
|
// Allocate enough space in big-endian base58 representation.
|
||||||
|
var size = ((pend - pbegin) * iFACTOR + 1) >>> 0
|
||||||
|
var b58 = new Uint8Array(size)
|
||||||
|
// Process the bytes.
|
||||||
|
while (pbegin !== pend) {
|
||||||
|
var carry = source[pbegin]
|
||||||
|
// Apply "b58 = b58 * 256 + ch".
|
||||||
|
var i = 0
|
||||||
|
for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) {
|
||||||
|
carry += (256 * b58[it1]) >>> 0
|
||||||
|
b58[it1] = (carry % BASE) >>> 0
|
||||||
|
carry = (carry / BASE) >>> 0
|
||||||
|
}
|
||||||
|
if (carry !== 0) { throw new Error('Non-zero carry') }
|
||||||
|
length = i
|
||||||
|
pbegin++
|
||||||
|
}
|
||||||
|
// Skip leading zeroes in base58 result.
|
||||||
|
var it2 = size - length
|
||||||
|
while (it2 !== size && b58[it2] === 0) {
|
||||||
|
it2++
|
||||||
|
}
|
||||||
|
// Translate the result into a string.
|
||||||
|
var str = LEADER.repeat(zeroes)
|
||||||
|
for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) }
|
||||||
|
return str
|
||||||
|
}
|
||||||
|
function decodeUnsafe (source) {
|
||||||
|
if (typeof source !== 'string') { throw new TypeError('Expected String') }
|
||||||
|
if (source.length === 0) { return '' }
|
||||||
|
var psz = 0
|
||||||
|
// Skip leading spaces.
|
||||||
|
if (source[psz] === ' ') { return }
|
||||||
|
// Skip and count leading '1's.
|
||||||
|
var zeroes = 0
|
||||||
|
var length = 0
|
||||||
|
while (source[psz] === LEADER) {
|
||||||
|
zeroes++
|
||||||
|
psz++
|
||||||
|
}
|
||||||
|
// Allocate enough space in big-endian base256 representation.
|
||||||
|
var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up.
|
||||||
|
var b256 = new Uint8Array(size)
|
||||||
|
// Process the characters.
|
||||||
|
while (source[psz]) {
|
||||||
|
// Decode character
|
||||||
|
var carry = BASE_MAP[source.charCodeAt(psz)]
|
||||||
|
// Invalid character
|
||||||
|
if (carry === 255) { return }
|
||||||
|
var i = 0
|
||||||
|
for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) {
|
||||||
|
carry += (BASE * b256[it3]) >>> 0
|
||||||
|
b256[it3] = (carry % 256) >>> 0
|
||||||
|
carry = (carry / 256) >>> 0
|
||||||
|
}
|
||||||
|
if (carry !== 0) { throw new Error('Non-zero carry') }
|
||||||
|
length = i
|
||||||
|
psz++
|
||||||
|
}
|
||||||
|
// Skip trailing spaces.
|
||||||
|
if (source[psz] === ' ') { return }
|
||||||
|
// Skip leading zeroes in b256.
|
||||||
|
var it4 = size - length
|
||||||
|
while (it4 !== size && b256[it4] === 0) {
|
||||||
|
it4++
|
||||||
|
}
|
||||||
|
var vch = []
|
||||||
|
var j = zeroes
|
||||||
|
while (it4 !== size) {
|
||||||
|
vch[j++] = b256[it4++]
|
||||||
|
}
|
||||||
|
return vch
|
||||||
|
}
|
||||||
|
function decode (string) {
|
||||||
|
var buffer = decodeUnsafe(string)
|
||||||
|
if (buffer) { return buffer }
|
||||||
|
throw new Error('Non-base' + BASE + ' character')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
encode: encode,
|
||||||
|
decodeUnsafe: decodeUnsafe,
|
||||||
|
decode: decode
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).call(this);
|
||||||
@@ -1 +0,0 @@
|
|||||||
(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?module.exports=factory(global):typeof define==="function"&&define.amd?define(factory):factory(global)})(typeof self!=="undefined"?self:typeof window!=="undefined"?window:typeof global!=="undefined"?global:this,function(global){"use strict";var _Base64=global.Base64;var version="2.4.5";var buffer;if(typeof module!=="undefined"&&module.exports){try{buffer=require("buffer").Buffer}catch(err){}}var b64chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var b64tab=function(bin){var t={};for(var i=0,l=bin.length;i<l;i++)t[bin.charAt(i)]=i;return t}(b64chars);var fromCharCode=String.fromCharCode;var cb_utob=function(c){if(c.length<2){var cc=c.charCodeAt(0);return cc<128?c:cc<2048?fromCharCode(192|cc>>>6)+fromCharCode(128|cc&63):fromCharCode(224|cc>>>12&15)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}else{var cc=65536+(c.charCodeAt(0)-55296)*1024+(c.charCodeAt(1)-56320);return fromCharCode(240|cc>>>18&7)+fromCharCode(128|cc>>>12&63)+fromCharCode(128|cc>>>6&63)+fromCharCode(128|cc&63)}};var re_utob=/[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;var utob=function(u){return u.replace(re_utob,cb_utob)};var cb_encode=function(ccc){var padlen=[0,2,1][ccc.length%3],ord=ccc.charCodeAt(0)<<16|(ccc.length>1?ccc.charCodeAt(1):0)<<8|(ccc.length>2?ccc.charCodeAt(2):0),chars=[b64chars.charAt(ord>>>18),b64chars.charAt(ord>>>12&63),padlen>=2?"=":b64chars.charAt(ord>>>6&63),padlen>=1?"=":b64chars.charAt(ord&63)];return chars.join("")};var btoa=global.btoa?function(b){return global.btoa(b)}:function(b){return b.replace(/[\s\S]{1,3}/g,cb_encode)};var _encode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(u){return(u.constructor===buffer.constructor?u:buffer.from(u)).toString("base64")}:function(u){return(u.constructor===buffer.constructor?u:new buffer(u)).toString("base64")}:function(u){return btoa(utob(u))};var encode=function(u,urisafe){return!urisafe?_encode(String(u)):_encode(String(u)).replace(/[+\/]/g,function(m0){return m0=="+"?"-":"_"}).replace(/=/g,"")};var encodeURI=function(u){return encode(u,true)};var re_btou=new RegExp(["[À-ß][-¿]","[à-ï][-¿]{2}","[ð-÷][-¿]{3}"].join("|"),"g");var cb_btou=function(cccc){switch(cccc.length){case 4:var cp=(7&cccc.charCodeAt(0))<<18|(63&cccc.charCodeAt(1))<<12|(63&cccc.charCodeAt(2))<<6|63&cccc.charCodeAt(3),offset=cp-65536;return fromCharCode((offset>>>10)+55296)+fromCharCode((offset&1023)+56320);case 3:return fromCharCode((15&cccc.charCodeAt(0))<<12|(63&cccc.charCodeAt(1))<<6|63&cccc.charCodeAt(2));default:return fromCharCode((31&cccc.charCodeAt(0))<<6|63&cccc.charCodeAt(1))}};var btou=function(b){return b.replace(re_btou,cb_btou)};var cb_decode=function(cccc){var len=cccc.length,padlen=len%4,n=(len>0?b64tab[cccc.charAt(0)]<<18:0)|(len>1?b64tab[cccc.charAt(1)]<<12:0)|(len>2?b64tab[cccc.charAt(2)]<<6:0)|(len>3?b64tab[cccc.charAt(3)]:0),chars=[fromCharCode(n>>>16),fromCharCode(n>>>8&255),fromCharCode(n&255)];chars.length-=[0,0,2,1][padlen];return chars.join("")};var atob=global.atob?function(a){return global.atob(a)}:function(a){return a.replace(/[\s\S]{1,4}/g,cb_decode)};var _decode=buffer?buffer.from&&Uint8Array&&buffer.from!==Uint8Array.from?function(a){return(a.constructor===buffer.constructor?a:buffer.from(a,"base64")).toString()}:function(a){return(a.constructor===buffer.constructor?a:new buffer(a,"base64")).toString()}:function(a){return btou(atob(a))};var decode=function(a){return _decode(String(a).replace(/[-_]/g,function(m0){return m0=="-"?"+":"/"}).replace(/[^A-Za-z0-9\+\/]/g,""))};var noConflict=function(){var Base64=global.Base64;global.Base64=_Base64;return Base64};global.Base64={VERSION:version,atob:atob,btoa:btoa,fromBase64:decode,toBase64:encode,utob:utob,encode:encode,encodeURI:encodeURI,btou:btou,decode:decode,noConflict:noConflict};if(typeof Object.defineProperty==="function"){var noEnum=function(v){return{value:v,enumerable:false,writable:true,configurable:true}};global.Base64.extendString=function(){Object.defineProperty(String.prototype,"fromBase64",noEnum(function(){return decode(this)}));Object.defineProperty(String.prototype,"toBase64",noEnum(function(urisafe){return encode(this,urisafe)}));Object.defineProperty(String.prototype,"toBase64URI",noEnum(function(){return encode(this,true)}))}}if(global["Meteor"]){Base64=global.Base64}if(typeof module!=="undefined"&&module.exports){module.exports.Base64=global.Base64}else if(typeof define==="function"&&define.amd){define([],function(){return global.Base64})}return{Base64:global.Base64}});
|
|
||||||
@@ -1,16 +1,35 @@
|
|||||||
{
|
{
|
||||||
"@context": {
|
"@context": {
|
||||||
"so": "https://schema.org/",
|
"so": "https://schema.org/",
|
||||||
"status": "so:Integer",
|
"pb": "?jsonld=types#",
|
||||||
"id": "so:name",
|
"cm": "?jsonld=commentmeta#",
|
||||||
"parentid": "so:name",
|
"status": {
|
||||||
"url: {
|
"@type": "so:Integer"
|
||||||
"@id": "so:url",
|
},
|
||||||
"@type": "@id"
|
"id": {
|
||||||
|
"@type": "so:name"
|
||||||
|
},
|
||||||
|
"pasteid": {
|
||||||
|
"@type": "so:name"
|
||||||
|
},
|
||||||
|
"parentid": {
|
||||||
|
"@type": "so:name"
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"@type": "so:url"
|
||||||
|
},
|
||||||
|
"v": {
|
||||||
|
"@type": "so:Integer",
|
||||||
|
"@value": 2
|
||||||
|
},
|
||||||
|
"ct": {
|
||||||
|
"@type": "pb:CipherText"
|
||||||
|
},
|
||||||
|
"adata": {
|
||||||
|
"@type": "pb:CipherParameters"
|
||||||
},
|
},
|
||||||
"data": "so:Text",
|
|
||||||
"meta": {
|
"meta": {
|
||||||
"@id": "?jsonld=commentmeta"
|
"@type": "cm:MetaData"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,14 @@
|
|||||||
{
|
{
|
||||||
"@context": {
|
"@context": {
|
||||||
"so": "https://schema.org/",
|
"so": "https://schema.org/",
|
||||||
"postdate": "so:Integer",
|
"pb": "?jsonld=types#"
|
||||||
"nickname": "so:Text",
|
},
|
||||||
"vizhash": "so:Text"
|
"MetaData": {
|
||||||
|
"created": {
|
||||||
|
"@type": "CreationTime"
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"@type": "so:url"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
66
js/common.js
66
js/common.js
@@ -5,26 +5,30 @@ global.assert = require('assert');
|
|||||||
global.jsc = require('jsverify');
|
global.jsc = require('jsverify');
|
||||||
global.jsdom = require('jsdom-global');
|
global.jsdom = require('jsdom-global');
|
||||||
global.cleanup = global.jsdom();
|
global.cleanup = global.jsdom();
|
||||||
|
global.URL = require('jsdom-url').URL;
|
||||||
global.fs = require('fs');
|
global.fs = require('fs');
|
||||||
|
global.WebCrypto = require('@peculiar/webcrypto').Crypto;
|
||||||
|
|
||||||
// application libraries to test
|
// application libraries to test
|
||||||
global.$ = global.jQuery = require('./jquery-3.3.1');
|
global.$ = global.jQuery = require('./jquery-3.4.1');
|
||||||
global.sjcl = require('./sjcl-1.0.7');
|
global.RawDeflate = require('./rawinflate-0.3').RawDeflate;
|
||||||
global.Base64 = require('./base64-2.4.5').Base64;
|
global.zlib = require('./zlib-1.2.11').zlib;
|
||||||
global.RawDeflate = require('./rawdeflate-0.5').RawDeflate;
|
|
||||||
global.RawDeflate.inflate = require('./rawinflate-0.3').RawDeflate.inflate;
|
|
||||||
require('./prettify');
|
require('./prettify');
|
||||||
global.prettyPrint = window.PR.prettyPrint;
|
global.prettyPrint = window.PR.prettyPrint;
|
||||||
global.prettyPrintOne = window.PR.prettyPrintOne;
|
global.prettyPrintOne = window.PR.prettyPrintOne;
|
||||||
global.showdown = require('./showdown-1.8.6');
|
global.showdown = require('./showdown-1.9.1');
|
||||||
global.DOMPurify = require('./purify-1.0.7');
|
global.DOMPurify = require('./purify-2.2.7');
|
||||||
|
global.baseX = require('./base-x-3.0.7').baseX;
|
||||||
|
global.Legacy = require('./legacy').Legacy;
|
||||||
require('./bootstrap-3.3.7');
|
require('./bootstrap-3.3.7');
|
||||||
require('./privatebin');
|
require('./privatebin');
|
||||||
|
|
||||||
// internal variables
|
// internal variables
|
||||||
var a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
var a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
||||||
'n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
'n','o','p','q','r','s','t','u','v','w','x','y','z'],
|
||||||
alnumString = a2zString.concat(['0','1','2','3','4','5','6','7','8','9']),
|
digitString = ['0','1','2','3','4','5','6','7','8','9'],
|
||||||
|
alnumString = a2zString.concat(digitString),
|
||||||
|
hexString = digitString.concat(['a','b','c','d','e','f']),
|
||||||
queryString = alnumString.concat(['+','%','&','.','*','-','_']),
|
queryString = alnumString.concat(['+','%','&','.','*','-','_']),
|
||||||
hashString = queryString.concat(['!']),
|
hashString = queryString.concat(['!']),
|
||||||
base64String = alnumString.concat(['+','/','=']).concat(
|
base64String = alnumString.concat(['+','/','=']).concat(
|
||||||
@@ -32,34 +36,13 @@ var a2zString = ['a','b','c','d','e','f','g','h','i','j','k','l','m',
|
|||||||
return c.toUpperCase();
|
return c.toUpperCase();
|
||||||
})
|
})
|
||||||
),
|
),
|
||||||
schemas = ['ftp','gopher','http','https','ws','wss'],
|
schemas = ['ftp','http','https'],
|
||||||
supportedLanguages = ['de', 'es', 'fr', 'it', 'no', 'pl', 'pt', 'oc', 'ru', 'sl', 'zh'],
|
supportedLanguages = ['de', 'es', 'fr', 'it', 'no', 'pl', 'pt', 'oc', 'ru', 'sl', 'zh'],
|
||||||
mimeTypes = ['image/png', 'application/octet-stream'],
|
mimeTypes = ['image/png', 'application/octet-stream'],
|
||||||
formats = ['plaintext', 'markdown', 'syntaxhighlighting'],
|
formats = ['plaintext', 'markdown', 'syntaxhighlighting'],
|
||||||
/**
|
|
||||||
* character to HTML entity lookup table
|
|
||||||
*
|
|
||||||
* @see {@link https://github.com/janl/mustache.js/blob/master/mustache.js#L60}
|
|
||||||
*/
|
|
||||||
entityMap = {
|
|
||||||
'&': '&',
|
|
||||||
'<': '<',
|
|
||||||
'>': '>',
|
|
||||||
'"': '"',
|
|
||||||
"'": ''',
|
|
||||||
'/': '/',
|
|
||||||
'`': '`',
|
|
||||||
'=': '='
|
|
||||||
},
|
|
||||||
logFile = fs.createWriteStream('test.log'),
|
|
||||||
mimeFile = fs.createReadStream('/etc/mime.types'),
|
mimeFile = fs.createReadStream('/etc/mime.types'),
|
||||||
mimeLine = '';
|
mimeLine = '';
|
||||||
|
|
||||||
// redirect console messages to log file
|
|
||||||
console.info = console.warn = console.error = function () {
|
|
||||||
logFile.write(Array.prototype.slice.call(arguments).join('') + '\n');
|
|
||||||
};
|
|
||||||
|
|
||||||
// populate mime types from environment
|
// populate mime types from environment
|
||||||
mimeFile.on('data', function(data) {
|
mimeFile.on('data', function(data) {
|
||||||
mimeLine += data;
|
mimeLine += data;
|
||||||
@@ -96,22 +79,8 @@ function parseMime(line) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// common testing helper functions
|
// common testing helper functions
|
||||||
|
exports.atob = atob;
|
||||||
/**
|
exports.btoa = btoa;
|
||||||
* convert all applicable characters to HTML entities
|
|
||||||
*
|
|
||||||
* @see {@link https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet#RULE_.231_-_HTML_Escape_Before_Inserting_Untrusted_Data_into_HTML_Element_Content}
|
|
||||||
* @name htmlEntities
|
|
||||||
* @function
|
|
||||||
* @param {string} str
|
|
||||||
* @return {string} escaped HTML
|
|
||||||
*/
|
|
||||||
exports.htmlEntities = function(str) {
|
|
||||||
return String(str).replace(
|
|
||||||
/[&<>"'`=\/]/g, function(s) {
|
|
||||||
return entityMap[s];
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
// provides random lowercase characters from a to z
|
// provides random lowercase characters from a to z
|
||||||
exports.jscA2zString = function() {
|
exports.jscA2zString = function() {
|
||||||
@@ -123,6 +92,11 @@ exports.jscAlnumString = function() {
|
|||||||
return jsc.elements(alnumString);
|
return jsc.elements(alnumString);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//provides random characters allowed in hexadecimal notation
|
||||||
|
exports.jscHexString = function() {
|
||||||
|
return jsc.elements(hexString);
|
||||||
|
};
|
||||||
|
|
||||||
// provides random characters allowed in GET queries
|
// provides random characters allowed in GET queries
|
||||||
exports.jscQueryString = function() {
|
exports.jscQueryString = function() {
|
||||||
return jsc.elements(queryString);
|
return jsc.elements(queryString);
|
||||||
|
|||||||
2
js/jquery-3.3.1.js
vendored
2
js/jquery-3.3.1.js
vendored
File diff suppressed because one or more lines are too long
2
js/jquery-3.4.1.js
vendored
Normal file
2
js/jquery-3.4.1.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
js/kjua-0.9.0.js
Normal file
2
js/kjua-0.9.0.js
Normal file
File diff suppressed because one or more lines are too long
311
js/legacy.js
Normal file
311
js/legacy.js
Normal file
@@ -0,0 +1,311 @@
|
|||||||
|
/**
|
||||||
|
* PrivateBin
|
||||||
|
*
|
||||||
|
* a zero-knowledge paste bin
|
||||||
|
*
|
||||||
|
* @see {@link https://github.com/PrivateBin/PrivateBin}
|
||||||
|
* @copyright 2012 Sébastien SAUVAGE ({@link http://sebsauvage.net})
|
||||||
|
* @license {@link https://www.opensource.org/licenses/zlib-license.php The zlib/libpng License}
|
||||||
|
* @version 1.3.1
|
||||||
|
* @name Legacy
|
||||||
|
* @namespace
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* IMPORTANT NOTICE FOR DEVELOPERS:
|
||||||
|
* The logic in this file is intended to run in legacy browsers. Avoid any use of:
|
||||||
|
* - jQuery (doesn't work in older browsers)
|
||||||
|
* - ES5 or newer in general
|
||||||
|
* - const/let, use the traditional var declarations instead
|
||||||
|
* - async/await or Promises, use traditional callbacks
|
||||||
|
* - shorthand function notation "() => output", use the full "function() {return output;}" style
|
||||||
|
* - IE doesn't support:
|
||||||
|
* - URL(), use the traditional window.location object
|
||||||
|
* - endsWith(), use indexof()
|
||||||
|
* - yes, this logic needs to support IE 6, to at least display the error message
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
(function() {
|
||||||
|
/**
|
||||||
|
* compatibility check
|
||||||
|
*
|
||||||
|
* @name Check
|
||||||
|
* @class
|
||||||
|
*/
|
||||||
|
var Check = (function () {
|
||||||
|
var me = {};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Status of the initial check, true means it passed
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @prop {bool}
|
||||||
|
*/
|
||||||
|
var status = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initialization check did run
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @prop {bool}
|
||||||
|
*/
|
||||||
|
var init = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* blacklist of UserAgents (parts) known to belong to a bot
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @enum {Array}
|
||||||
|
* @readonly
|
||||||
|
*/
|
||||||
|
var badBotUA = [
|
||||||
|
'Bot',
|
||||||
|
'bot'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* whitelist of top level domains to consider a secure context,
|
||||||
|
* regardless of protocol
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @enum {Array}
|
||||||
|
* @readonly
|
||||||
|
*/
|
||||||
|
var tld = [
|
||||||
|
'.onion',
|
||||||
|
'.i2p'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* whitelist of hostnames to consider a secure context,
|
||||||
|
* regardless of protocol
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @enum {Array}
|
||||||
|
* @readonly
|
||||||
|
*/
|
||||||
|
// whitelists of TLDs & local hostnames
|
||||||
|
var hostname = [
|
||||||
|
'localhost',
|
||||||
|
'127.0.0.1',
|
||||||
|
'[::1]'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* check if the context is secure
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @name Check.isSecureContext
|
||||||
|
* @function
|
||||||
|
* @return {bool}
|
||||||
|
*/
|
||||||
|
function isSecureContext()
|
||||||
|
{
|
||||||
|
// use .isSecureContext if available
|
||||||
|
if (window.isSecureContext === true || window.isSecureContext === false) {
|
||||||
|
return window.isSecureContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
// HTTP is obviously insecure
|
||||||
|
if (window.location.protocol !== 'http:') {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// filter out actually secure connections over HTTP
|
||||||
|
for (var i = 0; i < tld.length; i++) {
|
||||||
|
if (
|
||||||
|
window.location.hostname.indexOf(
|
||||||
|
tld[i],
|
||||||
|
window.location.hostname.length - tld[i].length
|
||||||
|
) !== -1
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// whitelist localhost for development
|
||||||
|
for (var j = 0; j < hostname.length; j++) {
|
||||||
|
if (window.location.hostname === hostname[j]) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// totally INSECURE http protocol!
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks whether this is a bot we dislike
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @name Check.isBadBot
|
||||||
|
* @function
|
||||||
|
* @return {bool}
|
||||||
|
*/
|
||||||
|
function isBadBot() {
|
||||||
|
// check whether a bot user agent part can be found in the current
|
||||||
|
// user agent
|
||||||
|
for (var i = 0; i < badBotUA.length; i++) {
|
||||||
|
if (navigator.userAgent.indexOf(badBotUA[i]) !== -1) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* checks whether this is an unsupported browser, via feature detection
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @name Check.isOldBrowser
|
||||||
|
* @function
|
||||||
|
* @return {bool}
|
||||||
|
*/
|
||||||
|
function isOldBrowser() {
|
||||||
|
// webcrypto support
|
||||||
|
if (!(
|
||||||
|
'crypto' in window &&
|
||||||
|
'getRandomValues' in window.crypto &&
|
||||||
|
'subtle' in window.crypto &&
|
||||||
|
'encrypt' in window.crypto.subtle &&
|
||||||
|
'decrypt' in window.crypto.subtle &&
|
||||||
|
'Uint8Array' in window &&
|
||||||
|
'Uint32Array' in window
|
||||||
|
)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// async & ES6 support
|
||||||
|
try {
|
||||||
|
eval('async () => {}');
|
||||||
|
} catch (e) {
|
||||||
|
if (e instanceof SyntaxError) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
throw e; // throws CSP error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* shows an error message
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @name Check.showError
|
||||||
|
* @param {string} message
|
||||||
|
* @function
|
||||||
|
*/
|
||||||
|
function showError(message)
|
||||||
|
{
|
||||||
|
var element = document.getElementById('errormessage');
|
||||||
|
if (message.indexOf('<a') === -1) {
|
||||||
|
element.appendChild(
|
||||||
|
document.createTextNode(message)
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
element.innerHTML = message;
|
||||||
|
}
|
||||||
|
removeHiddenFromId('errormessage');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* removes "hidden" CSS class from element with given ID
|
||||||
|
*
|
||||||
|
* @private
|
||||||
|
* @name Check.removeHiddenFromId
|
||||||
|
* @param {string} id
|
||||||
|
* @function
|
||||||
|
*/
|
||||||
|
function removeHiddenFromId(id)
|
||||||
|
{
|
||||||
|
var element = document.getElementById(id);
|
||||||
|
if (element) {
|
||||||
|
element.className = element.className.replace(/\bhidden\b/g, '');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns if the check has concluded
|
||||||
|
*
|
||||||
|
* @name Check.getInit
|
||||||
|
* @function
|
||||||
|
* @return {bool}
|
||||||
|
*/
|
||||||
|
me.getInit = function()
|
||||||
|
{
|
||||||
|
return init;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* returns the current status of the check
|
||||||
|
*
|
||||||
|
* @name Check.getStatus
|
||||||
|
* @function
|
||||||
|
* @return {bool}
|
||||||
|
*/
|
||||||
|
me.getStatus = function()
|
||||||
|
{
|
||||||
|
return status;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* init on application start, returns an all-clear signal
|
||||||
|
*
|
||||||
|
* @name Check.init
|
||||||
|
* @function
|
||||||
|
*/
|
||||||
|
me.init = function()
|
||||||
|
{
|
||||||
|
// prevent bots from viewing a paste and potentially deleting data
|
||||||
|
// when burn-after-reading is set
|
||||||
|
if (isBadBot()) {
|
||||||
|
showError('I love you too, bot…');
|
||||||
|
init = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isOldBrowser()) {
|
||||||
|
// some browsers (Chrome based ones) would have webcrypto support if using HTTPS
|
||||||
|
if (!isSecureContext()) {
|
||||||
|
removeHiddenFromId('insecurecontextnotice');
|
||||||
|
}
|
||||||
|
removeHiddenFromId('oldnotice');
|
||||||
|
init = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!isSecureContext()) {
|
||||||
|
removeHiddenFromId('httpnotice');
|
||||||
|
}
|
||||||
|
init = true;
|
||||||
|
|
||||||
|
// only if everything passed, we set the status to true
|
||||||
|
status = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
return me;
|
||||||
|
})();
|
||||||
|
|
||||||
|
// main application start, called when DOM is fully loaded
|
||||||
|
if (document.readyState === 'complete' || (!document.attachEvent && document.readyState === 'interactive')) {
|
||||||
|
Check.init();
|
||||||
|
} else {
|
||||||
|
if (document.addEventListener) {
|
||||||
|
// first choice is DOMContentLoaded event
|
||||||
|
document.addEventListener('DOMContentLoaded', Check.init, false);
|
||||||
|
// backup is window load event
|
||||||
|
window.addEventListener('load', Check.init, false);
|
||||||
|
} else {
|
||||||
|
// must be IE
|
||||||
|
document.attachEvent('onreadystatechange', Check.init);
|
||||||
|
window.attachEvent('onload', Check.init);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.Legacy = {
|
||||||
|
Check: Check
|
||||||
|
};
|
||||||
|
}).call(this);
|
||||||
43
js/package.json
Normal file
43
js/package.json
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
{
|
||||||
|
"name": "privatebin",
|
||||||
|
"version": "1.3.0",
|
||||||
|
"description": "PrivateBin is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bit AES in Galois Counter mode (GCM).",
|
||||||
|
"main": "privatebin.js",
|
||||||
|
"directories": {
|
||||||
|
"test": "test"
|
||||||
|
},
|
||||||
|
"dependencies": {},
|
||||||
|
"devDependencies": {
|
||||||
|
"jsdom": "^9.12.0",
|
||||||
|
"jsdom-global": "^2.1.1",
|
||||||
|
"jsdom-url": "^2.2.1",
|
||||||
|
"jsverify": "^0.8.3",
|
||||||
|
"@peculiar/webcrypto": "^1.1.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "mocha"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/PrivateBin/PrivateBin.git"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"private",
|
||||||
|
"secure",
|
||||||
|
"end-to-end-encrypted",
|
||||||
|
"e2e",
|
||||||
|
"paste",
|
||||||
|
"pastebin",
|
||||||
|
"zero",
|
||||||
|
"zero-knowledge",
|
||||||
|
"encryption",
|
||||||
|
"encrypted",
|
||||||
|
"AES"
|
||||||
|
],
|
||||||
|
"author": "",
|
||||||
|
"license": "zlib-acknowledgement",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/PrivateBin/PrivateBin/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://privatebin.info/"
|
||||||
|
}
|
||||||
@@ -1,24 +1,42 @@
|
|||||||
{
|
{
|
||||||
"@context": {
|
"@context": {
|
||||||
"so": "https://schema.org/",
|
"so": "https://schema.org/",
|
||||||
"status": {"@id": "so:Integer"},
|
"pb": "?jsonld=types#",
|
||||||
"id": {"@id": "so:name"},
|
"pm": "?jsonld=pastemeta#",
|
||||||
"deletetoken": {"@id": "so:Text"},
|
"status": {
|
||||||
"url": {
|
"@type": "so:Integer"
|
||||||
"@type": "@id",
|
},
|
||||||
"@id": "so:url"
|
"id": {
|
||||||
|
"@type": "so:name"
|
||||||
|
},
|
||||||
|
"deletetoken": {
|
||||||
|
"@type": "so:Text"
|
||||||
|
},
|
||||||
|
"url": {
|
||||||
|
"@type": "so:url"
|
||||||
|
},
|
||||||
|
"v": {
|
||||||
|
"@type": "so:Integer",
|
||||||
|
"@value": 2
|
||||||
|
},
|
||||||
|
"ct": {
|
||||||
|
"@type": "pb:CipherText"
|
||||||
|
},
|
||||||
|
"adata": {
|
||||||
|
"@type": "pm:AuthenticatedData"
|
||||||
},
|
},
|
||||||
"data": {"@id": "so:Text"},
|
|
||||||
"attachment": {"@id": "so:Text"},
|
|
||||||
"attachmentname": {"@id": "so:Text"},
|
|
||||||
"meta": {
|
"meta": {
|
||||||
"@id": "?jsonld=pastemeta"
|
"@type": "pm:MetaData"
|
||||||
},
|
},
|
||||||
"comments": {
|
"comments": {
|
||||||
"@id": "?jsonld=comment",
|
"@type": "?jsonld=comment",
|
||||||
"@container": "@list"
|
"@container": "@list"
|
||||||
},
|
},
|
||||||
"comment_count": {"@id": "so:Integer"},
|
"comment_count": {
|
||||||
"comment_offset": {"@id": "so:Integer"}
|
"@type": "so:Integer"
|
||||||
|
},
|
||||||
|
"comment_offset": {
|
||||||
|
"@type": "so:Integer"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,11 +1,31 @@
|
|||||||
{
|
{
|
||||||
"@context": {
|
"@context": {
|
||||||
"so": "https://schema.org/",
|
"so": "https://schema.org/",
|
||||||
"formatter": {"@id": "so:Text"},
|
"pb": "?jsonld=types#"
|
||||||
"postdate": {"@id": "so:Integer"},
|
},
|
||||||
"opendiscussion": {"@id": "so:True"},
|
"AuthenticatedData": {
|
||||||
"burnafterreading": {"@id": "so:True"},
|
"@container": "@list",
|
||||||
"expire_date": {"@id": "so:Integer"},
|
"@value": [
|
||||||
"remaining_time": {"@id": "so:Integer"}
|
{
|
||||||
|
"@type": "pb:CipherParameters"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "pb:Formatter"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "pb:OpenDiscussion"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"@type": "pb:BurnAfterReading"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"MetaData": {
|
||||||
|
"expire": {
|
||||||
|
"@type": "pb:Expiration"
|
||||||
|
},
|
||||||
|
"time_to_live": {
|
||||||
|
"@type": "pb:RemainingSeconds"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
2737
js/privatebin.js
2737
js/privatebin.js
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
2
js/purify-2.2.7.js
Normal file
2
js/purify-2.2.7.js
Normal file
File diff suppressed because one or more lines are too long
1675
js/rawdeflate-0.5.js
1675
js/rawdeflate-0.5.js
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
2
js/showdown-1.9.1.js
Normal file
2
js/showdown-1.9.1.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1,60 +0,0 @@
|
|||||||
"use strict";var sjcl={cipher:{},hash:{},keyexchange:{},mode:{},misc:{},codec:{},exception:{corrupt:function(a){this.toString=function(){return"CORRUPT: "+this.message};this.message=a},invalid:function(a){this.toString=function(){return"INVALID: "+this.message};this.message=a},bug:function(a){this.toString=function(){return"BUG: "+this.message};this.message=a},notReady:function(a){this.toString=function(){return"NOT READY: "+this.message};this.message=a}}};
|
|
||||||
sjcl.cipher.aes=function(a){this.s[0][0][0]||this.O();var b,c,d,e,f=this.s[0][4],g=this.s[1];b=a.length;var h=1;if(4!==b&&6!==b&&8!==b)throw new sjcl.exception.invalid("invalid aes key size");this.b=[d=a.slice(0),e=[]];for(a=b;a<4*b+28;a++){c=d[a-1];if(0===a%b||8===b&&4===a%b)c=f[c>>>24]<<24^f[c>>16&255]<<16^f[c>>8&255]<<8^f[c&255],0===a%b&&(c=c<<8^c>>>24^h<<24,h=h<<1^283*(h>>7));d[a]=d[a-b]^c}for(b=0;a;b++,a--)c=d[b&3?a:a-4],e[b]=4>=a||4>b?c:g[0][f[c>>>24]]^g[1][f[c>>16&255]]^g[2][f[c>>8&255]]^g[3][f[c&
|
|
||||||
255]]};
|
|
||||||
sjcl.cipher.aes.prototype={encrypt:function(a){return t(this,a,0)},decrypt:function(a){return t(this,a,1)},s:[[[],[],[],[],[]],[[],[],[],[],[]]],O:function(){var a=this.s[0],b=this.s[1],c=a[4],d=b[4],e,f,g,h=[],k=[],l,n,m,p;for(e=0;0x100>e;e++)k[(h[e]=e<<1^283*(e>>7))^e]=e;for(f=g=0;!c[f];f^=l||1,g=k[g]||1)for(m=g^g<<1^g<<2^g<<3^g<<4,m=m>>8^m&255^99,c[f]=m,d[m]=f,n=h[e=h[l=h[f]]],p=0x1010101*n^0x10001*e^0x101*l^0x1010100*f,n=0x101*h[m]^0x1010100*m,e=0;4>e;e++)a[e][f]=n=n<<24^n>>>8,b[e][m]=p=p<<24^p>>>8;for(e=
|
|
||||||
0;5>e;e++)a[e]=a[e].slice(0),b[e]=b[e].slice(0)}};
|
|
||||||
function t(a,b,c){if(4!==b.length)throw new sjcl.exception.invalid("invalid aes block size");var d=a.b[c],e=b[0]^d[0],f=b[c?3:1]^d[1],g=b[2]^d[2];b=b[c?1:3]^d[3];var h,k,l,n=d.length/4-2,m,p=4,r=[0,0,0,0];h=a.s[c];a=h[0];var q=h[1],v=h[2],w=h[3],x=h[4];for(m=0;m<n;m++)h=a[e>>>24]^q[f>>16&255]^v[g>>8&255]^w[b&255]^d[p],k=a[f>>>24]^q[g>>16&255]^v[b>>8&255]^w[e&255]^d[p+1],l=a[g>>>24]^q[b>>16&255]^v[e>>8&255]^w[f&255]^d[p+2],b=a[b>>>24]^q[e>>16&255]^v[f>>8&255]^w[g&255]^d[p+3],p+=4,e=h,f=k,g=l;for(m=
|
|
||||||
0;4>m;m++)r[c?3&-m:m]=x[e>>>24]<<24^x[f>>16&255]<<16^x[g>>8&255]<<8^x[b&255]^d[p++],h=e,e=f,f=g,g=b,b=h;return r}
|
|
||||||
sjcl.bitArray={bitSlice:function(a,b,c){a=sjcl.bitArray.$(a.slice(b/32),32-(b&31)).slice(1);return void 0===c?a:sjcl.bitArray.clamp(a,c-b)},extract:function(a,b,c){var d=Math.floor(-b-c&31);return((b+c-1^b)&-32?a[b/32|0]<<32-d^a[b/32+1|0]>>>d:a[b/32|0]>>>d)&(1<<c)-1},concat:function(a,b){if(0===a.length||0===b.length)return a.concat(b);var c=a[a.length-1],d=sjcl.bitArray.getPartial(c);return 32===d?a.concat(b):sjcl.bitArray.$(b,d,c|0,a.slice(0,a.length-1))},bitLength:function(a){var b=a.length;return 0===
|
|
||||||
b?0:32*(b-1)+sjcl.bitArray.getPartial(a[b-1])},clamp:function(a,b){if(32*a.length<b)return a;a=a.slice(0,Math.ceil(b/32));var c=a.length;b=b&31;0<c&&b&&(a[c-1]=sjcl.bitArray.partial(b,a[c-1]&2147483648>>b-1,1));return a},partial:function(a,b,c){return 32===a?b:(c?b|0:b<<32-a)+0x10000000000*a},getPartial:function(a){return Math.round(a/0x10000000000)||32},equal:function(a,b){if(sjcl.bitArray.bitLength(a)!==sjcl.bitArray.bitLength(b))return!1;var c=0,d;for(d=0;d<a.length;d++)c|=a[d]^b[d];return 0===
|
|
||||||
c},$:function(a,b,c,d){var e;e=0;for(void 0===d&&(d=[]);32<=b;b-=32)d.push(c),c=0;if(0===b)return d.concat(a);for(e=0;e<a.length;e++)d.push(c|a[e]>>>b),c=a[e]<<32-b;e=a.length?a[a.length-1]:0;a=sjcl.bitArray.getPartial(e);d.push(sjcl.bitArray.partial(b+a&31,32<b+a?c:d.pop(),1));return d},i:function(a,b){return[a[0]^b[0],a[1]^b[1],a[2]^b[2],a[3]^b[3]]},byteswapM:function(a){var b,c;for(b=0;b<a.length;++b)c=a[b],a[b]=c>>>24|c>>>8&0xff00|(c&0xff00)<<8|c<<24;return a}};
|
|
||||||
sjcl.codec.utf8String={fromBits:function(a){var b="",c=sjcl.bitArray.bitLength(a),d,e;for(d=0;d<c/8;d++)0===(d&3)&&(e=a[d/4]),b+=String.fromCharCode(e>>>8>>>8>>>8),e<<=8;return decodeURIComponent(escape(b))},toBits:function(a){a=unescape(encodeURIComponent(a));var b=[],c,d=0;for(c=0;c<a.length;c++)d=d<<8|a.charCodeAt(c),3===(c&3)&&(b.push(d),d=0);c&3&&b.push(sjcl.bitArray.partial(8*(c&3),d));return b}};
|
|
||||||
sjcl.codec.hex={fromBits:function(a){var b="",c;for(c=0;c<a.length;c++)b+=((a[c]|0)+0xf00000000000).toString(16).substr(4);return b.substr(0,sjcl.bitArray.bitLength(a)/4)},toBits:function(a){var b,c=[],d;a=a.replace(/\s|0x/g,"");d=a.length;a=a+"00000000";for(b=0;b<a.length;b+=8)c.push(parseInt(a.substr(b,8),16)^0);return sjcl.bitArray.clamp(c,4*d)}};
|
|
||||||
sjcl.codec.base32={B:"ABCDEFGHIJKLMNOPQRSTUVWXYZ234567",X:"0123456789ABCDEFGHIJKLMNOPQRSTUV",BITS:32,BASE:5,REMAINING:27,fromBits:function(a,b,c){var d=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f="",g=0,h=sjcl.codec.base32.B,k=0,l=sjcl.bitArray.bitLength(a);c&&(h=sjcl.codec.base32.X);for(c=0;f.length*d<l;)f+=h.charAt((k^a[c]>>>g)>>>e),g<d?(k=a[c]<<d-g,g+=e,c++):(k<<=d,g-=d);for(;f.length&7&&!b;)f+="=";return f},toBits:function(a,b){a=a.replace(/\s|=/g,"").toUpperCase();var c=sjcl.codec.base32.BITS,
|
|
||||||
d=sjcl.codec.base32.BASE,e=sjcl.codec.base32.REMAINING,f=[],g,h=0,k=sjcl.codec.base32.B,l=0,n,m="base32";b&&(k=sjcl.codec.base32.X,m="base32hex");for(g=0;g<a.length;g++){n=k.indexOf(a.charAt(g));if(0>n){if(!b)try{return sjcl.codec.base32hex.toBits(a)}catch(p){}throw new sjcl.exception.invalid("this isn't "+m+"!");}h>e?(h-=e,f.push(l^n>>>h),l=n<<c-h):(h+=d,l^=n<<c-h)}h&56&&f.push(sjcl.bitArray.partial(h&56,l,1));return f}};
|
|
||||||
sjcl.codec.base32hex={fromBits:function(a,b){return sjcl.codec.base32.fromBits(a,b,1)},toBits:function(a){return sjcl.codec.base32.toBits(a,1)}};
|
|
||||||
sjcl.codec.base64={B:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",fromBits:function(a,b,c){var d="",e=0,f=sjcl.codec.base64.B,g=0,h=sjcl.bitArray.bitLength(a);c&&(f=f.substr(0,62)+"-_");for(c=0;6*d.length<h;)d+=f.charAt((g^a[c]>>>e)>>>26),6>e?(g=a[c]<<6-e,e+=26,c++):(g<<=6,e-=6);for(;d.length&3&&!b;)d+="=";return d},toBits:function(a,b){a=a.replace(/\s|=/g,"");var c=[],d,e=0,f=sjcl.codec.base64.B,g=0,h;b&&(f=f.substr(0,62)+"-_");for(d=0;d<a.length;d++){h=f.indexOf(a.charAt(d));
|
|
||||||
if(0>h)throw new sjcl.exception.invalid("this isn't base64!");26<e?(e-=26,c.push(g^h>>>e),g=h<<32-e):(e+=6,g^=h<<32-e)}e&56&&c.push(sjcl.bitArray.partial(e&56,g,1));return c}};sjcl.codec.base64url={fromBits:function(a){return sjcl.codec.base64.fromBits(a,1,1)},toBits:function(a){return sjcl.codec.base64.toBits(a,1)}};sjcl.hash.sha256=function(a){this.b[0]||this.O();a?(this.F=a.F.slice(0),this.A=a.A.slice(0),this.l=a.l):this.reset()};sjcl.hash.sha256.hash=function(a){return(new sjcl.hash.sha256).update(a).finalize()};
|
|
||||||
sjcl.hash.sha256.prototype={blockSize:512,reset:function(){this.F=this.Y.slice(0);this.A=[];this.l=0;return this},update:function(a){"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));var b,c=this.A=sjcl.bitArray.concat(this.A,a);b=this.l;a=this.l=b+sjcl.bitArray.bitLength(a);if(0x1fffffffffffff<a)throw new sjcl.exception.invalid("Cannot hash more than 2^53 - 1 bits");if("undefined"!==typeof Uint32Array){var d=new Uint32Array(c),e=0;for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,d.subarray(16*e,
|
|
||||||
16*(e+1))),e+=1;c.splice(0,16*e)}else for(b=512+b-(512+b&0x1ff);b<=a;b+=512)u(this,c.splice(0,16));return this},finalize:function(){var a,b=this.A,c=this.F,b=sjcl.bitArray.concat(b,[sjcl.bitArray.partial(1,1)]);for(a=b.length+2;a&15;a++)b.push(0);b.push(Math.floor(this.l/0x100000000));for(b.push(this.l|0);b.length;)u(this,b.splice(0,16));this.reset();return c},Y:[],b:[],O:function(){function a(a){return 0x100000000*(a-Math.floor(a))|0}for(var b=0,c=2,d,e;64>b;c++){e=!0;for(d=2;d*d<=c;d++)if(0===c%d){e=
|
|
||||||
!1;break}e&&(8>b&&(this.Y[b]=a(Math.pow(c,.5))),this.b[b]=a(Math.pow(c,1/3)),b++)}}};
|
|
||||||
function u(a,b){var c,d,e,f=a.F,g=a.b,h=f[0],k=f[1],l=f[2],n=f[3],m=f[4],p=f[5],r=f[6],q=f[7];for(c=0;64>c;c++)16>c?d=b[c]:(d=b[c+1&15],e=b[c+14&15],d=b[c&15]=(d>>>7^d>>>18^d>>>3^d<<25^d<<14)+(e>>>17^e>>>19^e>>>10^e<<15^e<<13)+b[c&15]+b[c+9&15]|0),d=d+q+(m>>>6^m>>>11^m>>>25^m<<26^m<<21^m<<7)+(r^m&(p^r))+g[c],q=r,r=p,p=m,m=n+d|0,n=l,l=k,k=h,h=d+(k&l^n&(k^l))+(k>>>2^k>>>13^k>>>22^k<<30^k<<19^k<<10)|0;f[0]=f[0]+h|0;f[1]=f[1]+k|0;f[2]=f[2]+l|0;f[3]=f[3]+n|0;f[4]=f[4]+m|0;f[5]=f[5]+p|0;f[6]=f[6]+r|0;f[7]=
|
|
||||||
f[7]+q|0}
|
|
||||||
sjcl.mode.ccm={name:"ccm",G:[],listenProgress:function(a){sjcl.mode.ccm.G.push(a)},unListenProgress:function(a){a=sjcl.mode.ccm.G.indexOf(a);-1<a&&sjcl.mode.ccm.G.splice(a,1)},fa:function(a){var b=sjcl.mode.ccm.G.slice(),c;for(c=0;c<b.length;c+=1)b[c](a)},encrypt:function(a,b,c,d,e){var f,g=b.slice(0),h=sjcl.bitArray,k=h.bitLength(c)/8,l=h.bitLength(g)/8;e=e||64;d=d||[];if(7>k)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(f=2;4>f&&l>>>8*f;f++);f<15-k&&(f=15-k);c=h.clamp(c,
|
|
||||||
8*(15-f));b=sjcl.mode.ccm.V(a,b,c,d,e,f);g=sjcl.mode.ccm.C(a,g,c,b,e,f);return h.concat(g.data,g.tag)},decrypt:function(a,b,c,d,e){e=e||64;d=d||[];var f=sjcl.bitArray,g=f.bitLength(c)/8,h=f.bitLength(b),k=f.clamp(b,h-e),l=f.bitSlice(b,h-e),h=(h-e)/8;if(7>g)throw new sjcl.exception.invalid("ccm: iv must be at least 7 bytes");for(b=2;4>b&&h>>>8*b;b++);b<15-g&&(b=15-g);c=f.clamp(c,8*(15-b));k=sjcl.mode.ccm.C(a,k,c,l,e,b);a=sjcl.mode.ccm.V(a,k.data,c,d,e,b);if(!f.equal(k.tag,a))throw new sjcl.exception.corrupt("ccm: tag doesn't match");
|
|
||||||
return k.data},na:function(a,b,c,d,e,f){var g=[],h=sjcl.bitArray,k=h.i;d=[h.partial(8,(b.length?64:0)|d-2<<2|f-1)];d=h.concat(d,c);d[3]|=e;d=a.encrypt(d);if(b.length)for(c=h.bitLength(b)/8,65279>=c?g=[h.partial(16,c)]:0xffffffff>=c&&(g=h.concat([h.partial(16,65534)],[c])),g=h.concat(g,b),b=0;b<g.length;b+=4)d=a.encrypt(k(d,g.slice(b,b+4).concat([0,0,0])));return d},V:function(a,b,c,d,e,f){var g=sjcl.bitArray,h=g.i;e/=8;if(e%2||4>e||16<e)throw new sjcl.exception.invalid("ccm: invalid tag length");
|
|
||||||
if(0xffffffff<d.length||0xffffffff<b.length)throw new sjcl.exception.bug("ccm: can't deal with 4GiB or more data");c=sjcl.mode.ccm.na(a,d,c,e,g.bitLength(b)/8,f);for(d=0;d<b.length;d+=4)c=a.encrypt(h(c,b.slice(d,d+4).concat([0,0,0])));return g.clamp(c,8*e)},C:function(a,b,c,d,e,f){var g,h=sjcl.bitArray;g=h.i;var k=b.length,l=h.bitLength(b),n=k/50,m=n;c=h.concat([h.partial(8,f-1)],c).concat([0,0,0]).slice(0,4);d=h.bitSlice(g(d,a.encrypt(c)),0,e);if(!k)return{tag:d,data:[]};for(g=0;g<k;g+=4)g>n&&(sjcl.mode.ccm.fa(g/
|
|
||||||
k),n+=m),c[3]++,e=a.encrypt(c),b[g]^=e[0],b[g+1]^=e[1],b[g+2]^=e[2],b[g+3]^=e[3];return{tag:d,data:h.clamp(b,l)}}};
|
|
||||||
sjcl.mode.ocb2={name:"ocb2",encrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");var g,h=sjcl.mode.ocb2.S,k=sjcl.bitArray,l=k.i,n=[0,0,0,0];c=h(a.encrypt(c));var m,p=[];d=d||[];e=e||64;for(g=0;g+4<b.length;g+=4)m=b.slice(g,g+4),n=l(n,m),p=p.concat(l(c,a.encrypt(l(c,m)))),c=h(c);m=b.slice(g);b=k.bitLength(m);g=a.encrypt(l(c,[0,0,0,b]));m=k.clamp(l(m.concat([0,0,0]),g),b);n=l(n,l(m.concat([0,0,0]),g));n=a.encrypt(l(n,l(c,h(c))));
|
|
||||||
d.length&&(n=l(n,f?d:sjcl.mode.ocb2.pmac(a,d)));return p.concat(k.concat(m,k.clamp(n,e)))},decrypt:function(a,b,c,d,e,f){if(128!==sjcl.bitArray.bitLength(c))throw new sjcl.exception.invalid("ocb iv must be 128 bits");e=e||64;var g=sjcl.mode.ocb2.S,h=sjcl.bitArray,k=h.i,l=[0,0,0,0],n=g(a.encrypt(c)),m,p,r=sjcl.bitArray.bitLength(b)-e,q=[];d=d||[];for(c=0;c+4<r/32;c+=4)m=k(n,a.decrypt(k(n,b.slice(c,c+4)))),l=k(l,m),q=q.concat(m),n=g(n);p=r-32*c;m=a.encrypt(k(n,[0,0,0,p]));m=k(m,h.clamp(b.slice(c),p).concat([0,
|
|
||||||
0,0]));l=k(l,m);l=a.encrypt(k(l,k(n,g(n))));d.length&&(l=k(l,f?d:sjcl.mode.ocb2.pmac(a,d)));if(!h.equal(h.clamp(l,e),h.bitSlice(b,r)))throw new sjcl.exception.corrupt("ocb: tag doesn't match");return q.concat(h.clamp(m,p))},pmac:function(a,b){var c,d=sjcl.mode.ocb2.S,e=sjcl.bitArray,f=e.i,g=[0,0,0,0],h=a.encrypt([0,0,0,0]),h=f(h,d(d(h)));for(c=0;c+4<b.length;c+=4)h=d(h),g=f(g,a.encrypt(f(h,b.slice(c,c+4))));c=b.slice(c);128>e.bitLength(c)&&(h=f(h,d(h)),c=e.concat(c,[-2147483648,0,0,0]));g=f(g,c);
|
|
||||||
return a.encrypt(f(d(f(h,d(h))),g))},S:function(a){return[a[0]<<1^a[1]>>>31,a[1]<<1^a[2]>>>31,a[2]<<1^a[3]>>>31,a[3]<<1^135*(a[0]>>>31)]}};
|
|
||||||
sjcl.mode.gcm={name:"gcm",encrypt:function(a,b,c,d,e){var f=b.slice(0);b=sjcl.bitArray;d=d||[];a=sjcl.mode.gcm.C(!0,a,f,d,c,e||128);return b.concat(a.data,a.tag)},decrypt:function(a,b,c,d,e){var f=b.slice(0),g=sjcl.bitArray,h=g.bitLength(f);e=e||128;d=d||[];e<=h?(b=g.bitSlice(f,h-e),f=g.bitSlice(f,0,h-e)):(b=f,f=[]);a=sjcl.mode.gcm.C(!1,a,f,d,c,e);if(!g.equal(a.tag,b))throw new sjcl.exception.corrupt("gcm: tag doesn't match");return a.data},ka:function(a,b){var c,d,e,f,g,h=sjcl.bitArray.i;e=[0,0,
|
|
||||||
0,0];f=b.slice(0);for(c=0;128>c;c++){(d=0!==(a[Math.floor(c/32)]&1<<31-c%32))&&(e=h(e,f));g=0!==(f[3]&1);for(d=3;0<d;d--)f[d]=f[d]>>>1|(f[d-1]&1)<<31;f[0]>>>=1;g&&(f[0]^=-0x1f000000)}return e},j:function(a,b,c){var d,e=c.length;b=b.slice(0);for(d=0;d<e;d+=4)b[0]^=0xffffffff&c[d],b[1]^=0xffffffff&c[d+1],b[2]^=0xffffffff&c[d+2],b[3]^=0xffffffff&c[d+3],b=sjcl.mode.gcm.ka(b,a);return b},C:function(a,b,c,d,e,f){var g,h,k,l,n,m,p,r,q=sjcl.bitArray;m=c.length;p=q.bitLength(c);r=q.bitLength(d);h=q.bitLength(e);
|
|
||||||
g=b.encrypt([0,0,0,0]);96===h?(e=e.slice(0),e=q.concat(e,[1])):(e=sjcl.mode.gcm.j(g,[0,0,0,0],e),e=sjcl.mode.gcm.j(g,e,[0,0,Math.floor(h/0x100000000),h&0xffffffff]));h=sjcl.mode.gcm.j(g,[0,0,0,0],d);n=e.slice(0);d=h.slice(0);a||(d=sjcl.mode.gcm.j(g,h,c));for(l=0;l<m;l+=4)n[3]++,k=b.encrypt(n),c[l]^=k[0],c[l+1]^=k[1],c[l+2]^=k[2],c[l+3]^=k[3];c=q.clamp(c,p);a&&(d=sjcl.mode.gcm.j(g,h,c));a=[Math.floor(r/0x100000000),r&0xffffffff,Math.floor(p/0x100000000),p&0xffffffff];d=sjcl.mode.gcm.j(g,d,a);k=b.encrypt(e);
|
|
||||||
d[0]^=k[0];d[1]^=k[1];d[2]^=k[2];d[3]^=k[3];return{tag:q.bitSlice(d,0,f),data:c}}};sjcl.misc.hmac=function(a,b){this.W=b=b||sjcl.hash.sha256;var c=[[],[]],d,e=b.prototype.blockSize/32;this.w=[new b,new b];a.length>e&&(a=b.hash(a));for(d=0;d<e;d++)c[0][d]=a[d]^909522486,c[1][d]=a[d]^1549556828;this.w[0].update(c[0]);this.w[1].update(c[1]);this.R=new b(this.w[0])};
|
|
||||||
sjcl.misc.hmac.prototype.encrypt=sjcl.misc.hmac.prototype.mac=function(a){if(this.aa)throw new sjcl.exception.invalid("encrypt on already updated hmac called!");this.update(a);return this.digest(a)};sjcl.misc.hmac.prototype.reset=function(){this.R=new this.W(this.w[0]);this.aa=!1};sjcl.misc.hmac.prototype.update=function(a){this.aa=!0;this.R.update(a)};sjcl.misc.hmac.prototype.digest=function(){var a=this.R.finalize(),a=(new this.W(this.w[1])).update(a).finalize();this.reset();return a};
|
|
||||||
sjcl.misc.pbkdf2=function(a,b,c,d,e){c=c||1E4;if(0>d||0>c)throw new sjcl.exception.invalid("invalid params to pbkdf2");"string"===typeof a&&(a=sjcl.codec.utf8String.toBits(a));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));e=e||sjcl.misc.hmac;a=new e(a);var f,g,h,k,l=[],n=sjcl.bitArray;for(k=1;32*l.length<(d||1);k++){e=f=a.encrypt(n.concat(b,[k]));for(g=1;g<c;g++)for(f=a.encrypt(f),h=0;h<f.length;h++)e[h]^=f[h];l=l.concat(e)}d&&(l=n.clamp(l,d));return l};
|
|
||||||
sjcl.prng=function(a){this.c=[new sjcl.hash.sha256];this.m=[0];this.P=0;this.H={};this.N=0;this.U={};this.Z=this.f=this.o=this.ha=0;this.b=[0,0,0,0,0,0,0,0];this.h=[0,0,0,0];this.L=void 0;this.M=a;this.D=!1;this.K={progress:{},seeded:{}};this.u=this.ga=0;this.I=1;this.J=2;this.ca=0x10000;this.T=[0,48,64,96,128,192,0x100,384,512,768,1024];this.da=3E4;this.ba=80};
|
|
||||||
sjcl.prng.prototype={randomWords:function(a,b){var c=[],d;d=this.isReady(b);var e;if(d===this.u)throw new sjcl.exception.notReady("generator isn't seeded");if(d&this.J){d=!(d&this.I);e=[];var f=0,g;this.Z=e[0]=(new Date).valueOf()+this.da;for(g=0;16>g;g++)e.push(0x100000000*Math.random()|0);for(g=0;g<this.c.length&&(e=e.concat(this.c[g].finalize()),f+=this.m[g],this.m[g]=0,d||!(this.P&1<<g));g++);this.P>=1<<this.c.length&&(this.c.push(new sjcl.hash.sha256),this.m.push(0));this.f-=f;f>this.o&&(this.o=
|
|
||||||
f);this.P++;this.b=sjcl.hash.sha256.hash(this.b.concat(e));this.L=new sjcl.cipher.aes(this.b);for(d=0;4>d&&(this.h[d]=this.h[d]+1|0,!this.h[d]);d++);}for(d=0;d<a;d+=4)0===(d+1)%this.ca&&y(this),e=z(this),c.push(e[0],e[1],e[2],e[3]);y(this);return c.slice(0,a)},setDefaultParanoia:function(a,b){if(0===a&&"Setting paranoia=0 will ruin your security; use it only for testing"!==b)throw new sjcl.exception.invalid("Setting paranoia=0 will ruin your security; use it only for testing");this.M=a},addEntropy:function(a,
|
|
||||||
b,c){c=c||"user";var d,e,f=(new Date).valueOf(),g=this.H[c],h=this.isReady(),k=0;d=this.U[c];void 0===d&&(d=this.U[c]=this.ha++);void 0===g&&(g=this.H[c]=0);this.H[c]=(this.H[c]+1)%this.c.length;switch(typeof a){case "number":void 0===b&&(b=1);this.c[g].update([d,this.N++,1,b,f,1,a|0]);break;case "object":c=Object.prototype.toString.call(a);if("[object Uint32Array]"===c){e=[];for(c=0;c<a.length;c++)e.push(a[c]);a=e}else for("[object Array]"!==c&&(k=1),c=0;c<a.length&&!k;c++)"number"!==typeof a[c]&&
|
|
||||||
(k=1);if(!k){if(void 0===b)for(c=b=0;c<a.length;c++)for(e=a[c];0<e;)b++,e=e>>>1;this.c[g].update([d,this.N++,2,b,f,a.length].concat(a))}break;case "string":void 0===b&&(b=a.length);this.c[g].update([d,this.N++,3,b,f,a.length]);this.c[g].update(a);break;default:k=1}if(k)throw new sjcl.exception.bug("random: addEntropy only supports number, array of numbers or string");this.m[g]+=b;this.f+=b;h===this.u&&(this.isReady()!==this.u&&A("seeded",Math.max(this.o,this.f)),A("progress",this.getProgress()))},
|
|
||||||
isReady:function(a){a=this.T[void 0!==a?a:this.M];return this.o&&this.o>=a?this.m[0]>this.ba&&(new Date).valueOf()>this.Z?this.J|this.I:this.I:this.f>=a?this.J|this.u:this.u},getProgress:function(a){a=this.T[a?a:this.M];return this.o>=a?1:this.f>a?1:this.f/a},startCollectors:function(){if(!this.D){this.a={loadTimeCollector:B(this,this.ma),mouseCollector:B(this,this.oa),keyboardCollector:B(this,this.la),accelerometerCollector:B(this,this.ea),touchCollector:B(this,this.qa)};if(window.addEventListener)window.addEventListener("load",
|
|
||||||
this.a.loadTimeCollector,!1),window.addEventListener("mousemove",this.a.mouseCollector,!1),window.addEventListener("keypress",this.a.keyboardCollector,!1),window.addEventListener("devicemotion",this.a.accelerometerCollector,!1),window.addEventListener("touchmove",this.a.touchCollector,!1);else if(document.attachEvent)document.attachEvent("onload",this.a.loadTimeCollector),document.attachEvent("onmousemove",this.a.mouseCollector),document.attachEvent("keypress",this.a.keyboardCollector);else throw new sjcl.exception.bug("can't attach event");
|
|
||||||
this.D=!0}},stopCollectors:function(){this.D&&(window.removeEventListener?(window.removeEventListener("load",this.a.loadTimeCollector,!1),window.removeEventListener("mousemove",this.a.mouseCollector,!1),window.removeEventListener("keypress",this.a.keyboardCollector,!1),window.removeEventListener("devicemotion",this.a.accelerometerCollector,!1),window.removeEventListener("touchmove",this.a.touchCollector,!1)):document.detachEvent&&(document.detachEvent("onload",this.a.loadTimeCollector),document.detachEvent("onmousemove",
|
|
||||||
this.a.mouseCollector),document.detachEvent("keypress",this.a.keyboardCollector)),this.D=!1)},addEventListener:function(a,b){this.K[a][this.ga++]=b},removeEventListener:function(a,b){var c,d,e=this.K[a],f=[];for(d in e)e.hasOwnProperty(d)&&e[d]===b&&f.push(d);for(c=0;c<f.length;c++)d=f[c],delete e[d]},la:function(){C(this,1)},oa:function(a){var b,c;try{b=a.x||a.clientX||a.offsetX||0,c=a.y||a.clientY||a.offsetY||0}catch(d){c=b=0}0!=b&&0!=c&&this.addEntropy([b,c],2,"mouse");C(this,0)},qa:function(a){a=
|
|
||||||
a.touches[0]||a.changedTouches[0];this.addEntropy([a.pageX||a.clientX,a.pageY||a.clientY],1,"touch");C(this,0)},ma:function(){C(this,2)},ea:function(a){a=a.accelerationIncludingGravity.x||a.accelerationIncludingGravity.y||a.accelerationIncludingGravity.z;if(window.orientation){var b=window.orientation;"number"===typeof b&&this.addEntropy(b,1,"accelerometer")}a&&this.addEntropy(a,2,"accelerometer");C(this,0)}};
|
|
||||||
function A(a,b){var c,d=sjcl.random.K[a],e=[];for(c in d)d.hasOwnProperty(c)&&e.push(d[c]);for(c=0;c<e.length;c++)e[c](b)}function C(a,b){"undefined"!==typeof window&&window.performance&&"function"===typeof window.performance.now?a.addEntropy(window.performance.now(),b,"loadtime"):a.addEntropy((new Date).valueOf(),b,"loadtime")}function y(a){a.b=z(a).concat(z(a));a.L=new sjcl.cipher.aes(a.b)}function z(a){for(var b=0;4>b&&(a.h[b]=a.h[b]+1|0,!a.h[b]);b++);return a.L.encrypt(a.h)}
|
|
||||||
function B(a,b){return function(){b.apply(a,arguments)}}sjcl.random=new sjcl.prng(6);
|
|
||||||
a:try{var D,E,F,G;if(G="undefined"!==typeof module&&module.exports){var H;try{H=require("crypto")}catch(a){H=null}G=E=H}if(G&&E.randomBytes)D=E.randomBytes(128),D=new Uint32Array((new Uint8Array(D)).buffer),sjcl.random.addEntropy(D,1024,"crypto['randomBytes']");else if("undefined"!==typeof window&&"undefined"!==typeof Uint32Array){F=new Uint32Array(32);if(window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(F);else if(window.msCrypto&&window.msCrypto.getRandomValues)window.msCrypto.getRandomValues(F);
|
|
||||||
else break a;sjcl.random.addEntropy(F,1024,"crypto['getRandomValues']")}}catch(a){"undefined"!==typeof window&&window.console&&(console.log("There was an error collecting entropy from the browser:"),console.log(a))}
|
|
||||||
sjcl.json={defaults:{v:1,iter:1E4,ks:128,ts:64,mode:"ccm",adata:"",cipher:"aes"},ja:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json,f=e.g({iv:sjcl.random.randomWords(4,0)},e.defaults),g;e.g(f,c);c=f.adata;"string"===typeof f.salt&&(f.salt=sjcl.codec.base64.toBits(f.salt));"string"===typeof f.iv&&(f.iv=sjcl.codec.base64.toBits(f.iv));if(!sjcl.mode[f.mode]||!sjcl.cipher[f.cipher]||"string"===typeof a&&100>=f.iter||64!==f.ts&&96!==f.ts&&128!==f.ts||128!==f.ks&&192!==f.ks&&0x100!==f.ks||2>f.iv.length||
|
|
||||||
4<f.iv.length)throw new sjcl.exception.invalid("json encrypt: invalid parameters");"string"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,f),a=g.key.slice(0,f.ks/32),f.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.publicKey&&(g=a.kem(),f.kemtag=g.tag,a=g.key.slice(0,f.ks/32));"string"===typeof b&&(b=sjcl.codec.utf8String.toBits(b));"string"===typeof c&&(f.adata=c=sjcl.codec.utf8String.toBits(c));g=new sjcl.cipher[f.cipher](a);e.g(d,f);d.key=a;f.ct="ccm"===f.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&
|
|
||||||
b instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.encrypt(g,b,f.iv,c,f.ts):sjcl.mode[f.mode].encrypt(g,b,f.iv,c,f.ts);return f},encrypt:function(a,b,c,d){var e=sjcl.json,f=e.ja.apply(e,arguments);return e.encode(f)},ia:function(a,b,c,d){c=c||{};d=d||{};var e=sjcl.json;b=e.g(e.g(e.g({},e.defaults),b),c,!0);var f,g;f=b.adata;"string"===typeof b.salt&&(b.salt=sjcl.codec.base64.toBits(b.salt));"string"===typeof b.iv&&(b.iv=sjcl.codec.base64.toBits(b.iv));if(!sjcl.mode[b.mode]||!sjcl.cipher[b.cipher]||"string"===
|
|
||||||
typeof a&&100>=b.iter||64!==b.ts&&96!==b.ts&&128!==b.ts||128!==b.ks&&192!==b.ks&&0x100!==b.ks||!b.iv||2>b.iv.length||4<b.iv.length)throw new sjcl.exception.invalid("json decrypt: invalid parameters");"string"===typeof a?(g=sjcl.misc.cachedPbkdf2(a,b),a=g.key.slice(0,b.ks/32),b.salt=g.salt):sjcl.ecc&&a instanceof sjcl.ecc.elGamal.secretKey&&(a=a.unkem(sjcl.codec.base64.toBits(b.kemtag)).slice(0,b.ks/32));"string"===typeof f&&(f=sjcl.codec.utf8String.toBits(f));g=new sjcl.cipher[b.cipher](a);f="ccm"===
|
|
||||||
b.mode&&sjcl.arrayBuffer&&sjcl.arrayBuffer.ccm&&b.ct instanceof ArrayBuffer?sjcl.arrayBuffer.ccm.decrypt(g,b.ct,b.iv,b.tag,f,b.ts):sjcl.mode[b.mode].decrypt(g,b.ct,b.iv,f,b.ts);e.g(d,b);d.key=a;return 1===c.raw?f:sjcl.codec.utf8String.fromBits(f)},decrypt:function(a,b,c,d){var e=sjcl.json;return e.ia(a,e.decode(b),c,d)},encode:function(a){var b,c="{",d="";for(b in a)if(a.hasOwnProperty(b)){if(!b.match(/^[a-z0-9]+$/i))throw new sjcl.exception.invalid("json encode: invalid property name");c+=d+'"'+
|
|
||||||
b+'":';d=",";switch(typeof a[b]){case "number":case "boolean":c+=a[b];break;case "string":c+='"'+escape(a[b])+'"';break;case "object":c+='"'+sjcl.codec.base64.fromBits(a[b],0)+'"';break;default:throw new sjcl.exception.bug("json encode: unsupported type");}}return c+"}"},decode:function(a){a=a.replace(/\s/g,"");if(!a.match(/^\{.*\}$/))throw new sjcl.exception.invalid("json decode: this isn't json!");a=a.replace(/^\{|\}$/g,"").split(/,/);var b={},c,d;for(c=0;c<a.length;c++){if(!(d=a[c].match(/^\s*(?:(["']?)([a-z][a-z0-9]*)\1)\s*:\s*(?:(-?\d+)|"([a-z0-9+\/%*_.@=\-]*)"|(true|false))$/i)))throw new sjcl.exception.invalid("json decode: this isn't json!");
|
|
||||||
null!=d[3]?b[d[2]]=parseInt(d[3],10):null!=d[4]?b[d[2]]=d[2].match(/^(ct|adata|salt|iv)$/)?sjcl.codec.base64.toBits(d[4]):unescape(d[4]):null!=d[5]&&(b[d[2]]="true"===d[5])}return b},g:function(a,b,c){void 0===a&&(a={});if(void 0===b)return a;for(var d in b)if(b.hasOwnProperty(d)){if(c&&void 0!==a[d]&&a[d]!==b[d])throw new sjcl.exception.invalid("required parameter overridden");a[d]=b[d]}return a},sa:function(a,b){var c={},d;for(d in a)a.hasOwnProperty(d)&&a[d]!==b[d]&&(c[d]=a[d]);return c},ra:function(a,
|
|
||||||
b){var c={},d;for(d=0;d<b.length;d++)void 0!==a[b[d]]&&(c[b[d]]=a[b[d]]);return c}};sjcl.encrypt=sjcl.json.encrypt;sjcl.decrypt=sjcl.json.decrypt;sjcl.misc.pa={};sjcl.misc.cachedPbkdf2=function(a,b){var c=sjcl.misc.pa,d;b=b||{};d=b.iter||1E3;c=c[a]=c[a]||{};d=c[d]=c[d]||{firstSalt:b.salt&&b.salt.length?b.salt.slice(0):sjcl.random.randomWords(2,0)};c=void 0===b.salt?d.firstSalt:b.salt;d[c]=d[c]||sjcl.misc.pbkdf2(a,c,b.iter);return{key:d[c].slice(0),salt:c.slice(0)}};
|
|
||||||
"undefined"!==typeof module&&module.exports&&(module.exports=sjcl);"function"===typeof define&&define([],function(){return sjcl});
|
|
||||||
250
js/test/Alert.js
250
js/test/Alert.js
@@ -3,21 +3,56 @@ var common = require('../common');
|
|||||||
|
|
||||||
describe('Alert', function () {
|
describe('Alert', function () {
|
||||||
describe('showStatus', function () {
|
describe('showStatus', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'shows a status message',
|
'shows a status message (basic)',
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
function (icon, message) {
|
function (icon, message) {
|
||||||
icon = icon.join('');
|
icon = icon.join('');
|
||||||
message = message.join('');
|
message = message.join('');
|
||||||
var expected = '<div id="status" role="alert" ' +
|
const expected = '<div id="status">' + message + '</div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="status"></div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showStatus(message, icon);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows a status message (bootstrap)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (message) {
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="status" role="alert" ' +
|
||||||
|
'class="statusmessage alert alert-info"><span ' +
|
||||||
|
'class="glyphicon glyphicon-info-sign" ' +
|
||||||
|
'aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="status" role="alert" class="statusmessage ' +
|
||||||
|
'alert alert-info hidden"><span class="glyphicon ' +
|
||||||
|
'glyphicon-info-sign" aria-hidden="true"></span> </div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showStatus(message);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows a status message (bootstrap, custom icon)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (icon, message) {
|
||||||
|
icon = icon.join('');
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="status" role="alert" ' +
|
||||||
'class="statusmessage alert alert-info"><span ' +
|
'class="statusmessage alert alert-info"><span ' +
|
||||||
'class="glyphicon glyphicon-' + icon +
|
'class="glyphicon glyphicon-' + icon +
|
||||||
'" aria-hidden="true"></span> ' + message + '</div>';
|
'" aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
$('body').html(
|
$('body').html(
|
||||||
'<div id="status" role="alert" class="statusmessage ' +
|
'<div id="status" role="alert" class="statusmessage ' +
|
||||||
'alert alert-info hidden"><span class="glyphicon ' +
|
'alert alert-info hidden"><span class="glyphicon ' +
|
||||||
@@ -25,28 +60,129 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.showStatus(message, icon);
|
$.PrivateBin.Alert.showStatus(message, icon);
|
||||||
var result = $('body').html();
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('showWarning', function () {
|
||||||
|
jsc.property(
|
||||||
|
'shows a warning message (basic)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (icon, message) {
|
||||||
|
icon = icon.join('');
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="errormessage">' + message + '</div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="errormessage"></div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showWarning(message, icon);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows a warning message (bootstrap)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (message) {
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="errormessage" role="alert" ' +
|
||||||
|
'class="statusmessage alert alert-danger"><span ' +
|
||||||
|
'class="glyphicon glyphicon-warning-sign" ' +
|
||||||
|
'aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="errormessage" role="alert" class="statusmessage ' +
|
||||||
|
'alert alert-danger hidden"><span class="glyphicon ' +
|
||||||
|
'glyphicon-alert" aria-hidden="true"></span> </div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showWarning(message);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows a warning message (bootstrap, custom icon)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (icon, message) {
|
||||||
|
icon = icon.join('');
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="errormessage" role="alert" ' +
|
||||||
|
'class="statusmessage alert alert-danger"><span ' +
|
||||||
|
'class="glyphicon glyphicon-' + icon +
|
||||||
|
'" aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="errormessage" role="alert" class="statusmessage ' +
|
||||||
|
'alert alert-danger hidden"><span class="glyphicon ' +
|
||||||
|
'glyphicon-alert" aria-hidden="true"></span> </div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showWarning(message, icon);
|
||||||
|
const result = $('body').html();
|
||||||
return expected === result;
|
return expected === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('showError', function () {
|
describe('showError', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'shows an error message',
|
'shows an error message (basic)',
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
function (icon, message) {
|
function (icon, message) {
|
||||||
icon = icon.join('');
|
icon = icon.join('');
|
||||||
message = message.join('');
|
message = message.join('');
|
||||||
var expected = '<div id="errormessage" role="alert" ' +
|
const expected = '<div id="errormessage">' + message + '</div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="errormessage"></div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showError(message, icon);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows an error message (bootstrap)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (icon, message) {
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="errormessage" role="alert" ' +
|
||||||
|
'class="statusmessage alert alert-danger"><span ' +
|
||||||
|
'class="glyphicon glyphicon-alert" ' +
|
||||||
|
'aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="errormessage" role="alert" class="statusmessage ' +
|
||||||
|
'alert alert-danger hidden"><span class="glyphicon ' +
|
||||||
|
'glyphicon-alert" aria-hidden="true"></span> </div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showError(message);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows an error message (bootstrap, custom icon)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (icon, message) {
|
||||||
|
icon = icon.join('');
|
||||||
|
message = message.join('');
|
||||||
|
const expected = '<div id="errormessage" role="alert" ' +
|
||||||
'class="statusmessage alert alert-danger"><span ' +
|
'class="statusmessage alert alert-danger"><span ' +
|
||||||
'class="glyphicon glyphicon-' + icon +
|
'class="glyphicon glyphicon-' + icon +
|
||||||
'" aria-hidden="true"></span> ' + message + '</div>';
|
'" aria-hidden="true"></span> <span>' + message + '</span></div>';
|
||||||
$('body').html(
|
$('body').html(
|
||||||
'<div id="errormessage" role="alert" class="statusmessage ' +
|
'<div id="errormessage" role="alert" class="statusmessage ' +
|
||||||
'alert alert-danger hidden"><span class="glyphicon ' +
|
'alert alert-danger hidden"><span class="glyphicon ' +
|
||||||
@@ -54,29 +190,44 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.showError(message, icon);
|
$.PrivateBin.Alert.showError(message, icon);
|
||||||
var result = $('body').html();
|
const result = $('body').html();
|
||||||
return expected === result;
|
return expected === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('showRemaining', function () {
|
describe('showRemaining', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'shows remaining time',
|
'shows remaining time (basic)',
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
'integer',
|
'integer',
|
||||||
function (message, string, number) {
|
function (message, string, number) {
|
||||||
message = message.join('');
|
message = message.join('');
|
||||||
string = string.join('');
|
string = string.join('');
|
||||||
var expected = '<div id="remainingtime" role="alert" ' +
|
const expected = '<div id="remainingtime" class="">' + string + message + number + '</div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="remainingtime" class="hidden"></div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showRemaining(['%s' + message + '%d', string, number]);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows remaining time (bootstrap)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
'integer',
|
||||||
|
function (message, string, number) {
|
||||||
|
message = message.join('');
|
||||||
|
string = string.join('');
|
||||||
|
const expected = '<div id="remainingtime" role="alert" ' +
|
||||||
'class="alert alert-info"><span ' +
|
'class="alert alert-info"><span ' +
|
||||||
'class="glyphicon glyphicon-fire" aria-hidden="true">' +
|
'class="glyphicon glyphicon-fire" aria-hidden="true">' +
|
||||||
'</span> ' + string + message + number + '</div>';
|
'</span> <span>' + string + message + number + '</span></div>';
|
||||||
$('body').html(
|
$('body').html(
|
||||||
'<div id="remainingtime" role="alert" class="hidden ' +
|
'<div id="remainingtime" role="alert" class="hidden ' +
|
||||||
'alert alert-info"><span class="glyphicon ' +
|
'alert alert-info"><span class="glyphicon ' +
|
||||||
@@ -84,32 +235,50 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.showRemaining(['%s' + message + '%d', string, number]);
|
$.PrivateBin.Alert.showRemaining(['%s' + message + '%d', string, number]);
|
||||||
var result = $('body').html();
|
const result = $('body').html();
|
||||||
return expected === result;
|
return expected === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('showLoading', function () {
|
describe('showLoading', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'shows a loading message',
|
'shows a loading message (basic)',
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
function (message, icon) {
|
function (message, icon) {
|
||||||
message = message.join('');
|
message = message.join('');
|
||||||
icon = icon.join('');
|
icon = icon.join('');
|
||||||
var defaultMessage = 'Loading…';
|
const defaultMessage = 'Loading…';
|
||||||
if (message.length === 0) {
|
if (message.length === 0) {
|
||||||
message = defaultMessage;
|
message = defaultMessage;
|
||||||
}
|
}
|
||||||
var expected = '<ul class="nav navbar-nav"><li ' +
|
const expected = '<div id="loadingindicator" class="">' + message + '</div>';
|
||||||
|
$('body').html(
|
||||||
|
'<div id="loadingindicator" class="hidden">' + defaultMessage + '</div>'
|
||||||
|
);
|
||||||
|
$.PrivateBin.Alert.init();
|
||||||
|
$.PrivateBin.Alert.showLoading(message, icon);
|
||||||
|
const result = $('body').html();
|
||||||
|
return expected === result;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows a loading message (bootstrap)',
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
jsc.array(common.jscAlnumString()),
|
||||||
|
function (message, icon) {
|
||||||
|
message = message.join('');
|
||||||
|
icon = icon.join('');
|
||||||
|
const defaultMessage = 'Loading…';
|
||||||
|
if (message.length === 0) {
|
||||||
|
message = defaultMessage;
|
||||||
|
}
|
||||||
|
const expected = '<ul class="nav navbar-nav"><li ' +
|
||||||
'id="loadingindicator" class="navbar-text"><span ' +
|
'id="loadingindicator" class="navbar-text"><span ' +
|
||||||
'class="glyphicon glyphicon-' + icon +
|
'class="glyphicon glyphicon-' + icon +
|
||||||
'" aria-hidden="true"></span> ' + message + '</li></ul>';
|
'" aria-hidden="true"></span> <span>' + message + '</span></li></ul>';
|
||||||
$('body').html(
|
$('body').html(
|
||||||
'<ul class="nav navbar-nav"><li id="loadingindicator" ' +
|
'<ul class="nav navbar-nav"><li id="loadingindicator" ' +
|
||||||
'class="navbar-text hidden"><span class="glyphicon ' +
|
'class="navbar-text hidden"><span class="glyphicon ' +
|
||||||
@@ -118,17 +287,13 @@ describe('Alert', function () {
|
|||||||
);
|
);
|
||||||
$.PrivateBin.Alert.init();
|
$.PrivateBin.Alert.init();
|
||||||
$.PrivateBin.Alert.showLoading(message, icon);
|
$.PrivateBin.Alert.showLoading(message, icon);
|
||||||
var result = $('body').html();
|
const result = $('body').html();
|
||||||
return expected === result;
|
return expected === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('hideLoading', function () {
|
describe('hideLoading', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
it(
|
it(
|
||||||
'hides the loading message',
|
'hides the loading message',
|
||||||
function() {
|
function() {
|
||||||
@@ -150,10 +315,6 @@ describe('Alert', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('hideMessages', function () {
|
describe('hideMessages', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
it(
|
it(
|
||||||
'hides all messages',
|
'hides all messages',
|
||||||
function() {
|
function() {
|
||||||
@@ -176,17 +337,13 @@ describe('Alert', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('setCustomHandler', function () {
|
describe('setCustomHandler', function () {
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'calls a given handler function',
|
'calls a given handler function',
|
||||||
'nat 3',
|
'nat 3',
|
||||||
jsc.array(common.jscAlnumString()),
|
jsc.array(common.jscAlnumString()),
|
||||||
function (trigger, message) {
|
function (trigger, message) {
|
||||||
message = message.join('');
|
message = message.join('');
|
||||||
var handlerCalled = false,
|
let handlerCalled = false,
|
||||||
defaultMessage = 'Loading…',
|
defaultMessage = 'Loading…',
|
||||||
functions = [
|
functions = [
|
||||||
$.PrivateBin.Alert.showStatus,
|
$.PrivateBin.Alert.showStatus,
|
||||||
@@ -218,6 +375,7 @@ describe('Alert', function () {
|
|||||||
return jsc.random(0, 1) ? true : $element;
|
return jsc.random(0, 1) ? true : $element;
|
||||||
});
|
});
|
||||||
functions[trigger](message);
|
functions[trigger](message);
|
||||||
|
$.PrivateBin.Alert.setCustomHandler(null);
|
||||||
return handlerCalled;
|
return handlerCalled;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -4,27 +4,25 @@ var common = require('../common');
|
|||||||
describe('AttachmentViewer', function () {
|
describe('AttachmentViewer', function () {
|
||||||
describe('setAttachment, showAttachment, removeAttachment, hideAttachment, hideAttachmentPreview, hasAttachment, getAttachment & moveAttachmentTo', function () {
|
describe('setAttachment, showAttachment, removeAttachment, hideAttachment, hideAttachmentPreview, hasAttachment, getAttachment & moveAttachmentTo', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'displays & hides data as requested',
|
'displays & hides data as requested',
|
||||||
common.jscMimeTypes(),
|
common.jscMimeTypes(),
|
||||||
jsc.nearray(common.jscBase64String()),
|
|
||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
function (mimeType, base64, filename, prefix, postfix) {
|
'string',
|
||||||
var clean = jsdom(),
|
function (mimeType, rawdata, filename, prefix, postfix) {
|
||||||
data = 'data:' + mimeType + ';base64,' + base64.join(''),
|
let clean = jsdom(),
|
||||||
|
data = 'data:' + mimeType + ';base64,' + btoa(rawdata),
|
||||||
previewSupported = (
|
previewSupported = (
|
||||||
mimeType.substring(0, 6) === 'image/' ||
|
mimeType.substring(0, 6) === 'image/' ||
|
||||||
mimeType.substring(0, 6) === 'audio/' ||
|
mimeType.substring(0, 6) === 'audio/' ||
|
||||||
mimeType.substring(0, 6) === 'video/' ||
|
mimeType.substring(0, 6) === 'video/' ||
|
||||||
mimeType.match(/\/pdf/i)
|
mimeType.match(/\/pdf/i)
|
||||||
),
|
),
|
||||||
results = [];
|
results = [],
|
||||||
|
result = '';
|
||||||
prefix = prefix.replace(/%(s|d)/g, '%%');
|
prefix = prefix.replace(/%(s|d)/g, '%%');
|
||||||
postfix = postfix.replace(/%(s|d)/g, '%%');
|
postfix = postfix.replace(/%(s|d)/g, '%%');
|
||||||
$('body').html(
|
$('body').html(
|
||||||
@@ -34,6 +32,16 @@ describe('AttachmentViewer', function () {
|
|||||||
'Download attachment</a></div><div id="attachmentPrevie' +
|
'Download attachment</a></div><div id="attachmentPrevie' +
|
||||||
'w" class="hidden"></div>'
|
'w" class="hidden"></div>'
|
||||||
);
|
);
|
||||||
|
// mock createObjectURL for jsDOM
|
||||||
|
if (typeof window.URL.createObjectURL === 'undefined') {
|
||||||
|
Object.defineProperty(
|
||||||
|
window.URL,
|
||||||
|
'createObjectURL',
|
||||||
|
{value: function(blob) {
|
||||||
|
return 'blob:' + location.origin + '/1b9d6bcd-bbfd-4b2d-9b5d-ab8dfbbd4bed';
|
||||||
|
}}
|
||||||
|
)
|
||||||
|
}
|
||||||
$.PrivateBin.AttachmentViewer.init();
|
$.PrivateBin.AttachmentViewer.init();
|
||||||
results.push(
|
results.push(
|
||||||
!$.PrivateBin.AttachmentViewer.hasAttachment() &&
|
!$.PrivateBin.AttachmentViewer.hasAttachment() &&
|
||||||
@@ -45,7 +53,9 @@ describe('AttachmentViewer', function () {
|
|||||||
} else {
|
} else {
|
||||||
$.PrivateBin.AttachmentViewer.setAttachment(data);
|
$.PrivateBin.AttachmentViewer.setAttachment(data);
|
||||||
}
|
}
|
||||||
var attachment = $.PrivateBin.AttachmentViewer.getAttachment();
|
// beyond this point we will get the blob URL instead of the data
|
||||||
|
data = window.URL.createObjectURL(data);
|
||||||
|
const attachment = $.PrivateBin.AttachmentViewer.getAttachment();
|
||||||
results.push(
|
results.push(
|
||||||
$.PrivateBin.AttachmentViewer.hasAttachment() &&
|
$.PrivateBin.AttachmentViewer.hasAttachment() &&
|
||||||
$('#attachment').hasClass('hidden') &&
|
$('#attachment').hasClass('hidden') &&
|
||||||
@@ -72,13 +82,24 @@ describe('AttachmentViewer', function () {
|
|||||||
!$('#attachment').hasClass('hidden') &&
|
!$('#attachment').hasClass('hidden') &&
|
||||||
(previewSupported ? !$('#attachmentPreview').hasClass('hidden') : $('#attachmentPreview').hasClass('hidden'))
|
(previewSupported ? !$('#attachmentPreview').hasClass('hidden') : $('#attachmentPreview').hasClass('hidden'))
|
||||||
);
|
);
|
||||||
var element = $('<div></div>');
|
let element = $('<div>');
|
||||||
$.PrivateBin.AttachmentViewer.moveAttachmentTo(element, prefix + '%s' + postfix);
|
$.PrivateBin.AttachmentViewer.moveAttachmentTo(element, prefix + '%s' + postfix);
|
||||||
|
// messageIDs with links get a relaxed treatment
|
||||||
|
if (prefix.indexOf('<a') === -1 && postfix.indexOf('<a') === -1) {
|
||||||
|
result = $('<textarea>').text((prefix + filename + postfix)).text();
|
||||||
|
} else {
|
||||||
|
result = DOMPurify.sanitize(
|
||||||
|
prefix + $.PrivateBin.Helper.htmlEntities(filename) + postfix, {
|
||||||
|
ALLOWED_TAGS: ['a', 'i', 'span'],
|
||||||
|
ALLOWED_ATTR: ['href', 'id']
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
if (filename.length) {
|
if (filename.length) {
|
||||||
results.push(
|
results.push(
|
||||||
element.children()[0].href === data &&
|
element.children()[0].href === data &&
|
||||||
element.children()[0].getAttribute('download') === filename &&
|
element.children()[0].getAttribute('download') === filename &&
|
||||||
element.children()[0].text === prefix + filename + postfix
|
element.children()[0].text === result
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
results.push(element.children()[0].href === data);
|
results.push(element.children()[0].href === data);
|
||||||
|
|||||||
80
js/test/Check.js
Normal file
80
js/test/Check.js
Normal file
@@ -0,0 +1,80 @@
|
|||||||
|
'use strict';
|
||||||
|
var common = require('../common');
|
||||||
|
/* global Legacy, WebCrypto */
|
||||||
|
|
||||||
|
describe('Check', function () {
|
||||||
|
describe('init', function () {
|
||||||
|
this.timeout(30000);
|
||||||
|
|
||||||
|
it('returns false and shows error, if a bot UA is detected', function () {
|
||||||
|
jsc.assert(jsc.forall(
|
||||||
|
'string',
|
||||||
|
jsc.elements(['Bot', 'bot']),
|
||||||
|
'string',
|
||||||
|
function (prefix, botBit, suffix) {
|
||||||
|
const clean = jsdom(
|
||||||
|
'<html><body><div id="errormessage" class="hidden"></div>' +
|
||||||
|
'</body></html>', {
|
||||||
|
'userAgent': prefix + botBit + suffix
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Legacy.Check.init();
|
||||||
|
const result1 = Legacy.Check.getInit() && !Legacy.Check.getStatus(),
|
||||||
|
result2 = (document.getElementById('errormessage').className !== 'hidden');
|
||||||
|
clean();
|
||||||
|
return result1 && result2;
|
||||||
|
}
|
||||||
|
),
|
||||||
|
{tests: 10});
|
||||||
|
});
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows error, if no webcrypto is detected',
|
||||||
|
'bool',
|
||||||
|
jsc.elements(['localhost', '127.0.0.1', '[::1]', '']),
|
||||||
|
jsc.nearray(common.jscA2zString()),
|
||||||
|
jsc.elements(['.onion', '.i2p', '']),
|
||||||
|
function (secureProtocol, localhost, domain, tld) {
|
||||||
|
const isDomain = localhost === '',
|
||||||
|
isSecureContext = secureProtocol || !isDomain || tld.length > 0,
|
||||||
|
clean = jsdom(
|
||||||
|
'<html><body><div id="errormessage" class="hidden"></div>' +
|
||||||
|
'<div id="oldnotice" class="hidden"></div>' +
|
||||||
|
'<div id="insecurecontextnotice" class="hidden"></div></body></html>',
|
||||||
|
{
|
||||||
|
'url': (secureProtocol ? 'https' : 'http' ) + '://' +
|
||||||
|
(isDomain ? domain.join('') + tld : localhost) + '/'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Legacy.Check.init();
|
||||||
|
const result1 = Legacy.Check.getInit() && !Legacy.Check.getStatus(),
|
||||||
|
result2 = isSecureContext === (document.getElementById('insecurecontextnotice').className === 'hidden'),
|
||||||
|
result3 = (document.getElementById('oldnotice').className !== 'hidden');
|
||||||
|
clean();
|
||||||
|
return result1 && result2 && result3;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
jsc.property(
|
||||||
|
'shows error, if HTTP only site is detected',
|
||||||
|
'bool',
|
||||||
|
jsc.nearray(common.jscA2zString()),
|
||||||
|
function (secureProtocol, domain) {
|
||||||
|
const clean = jsdom(
|
||||||
|
'<html><body><div id="httpnotice" class="hidden"></div>' +
|
||||||
|
'</body></html>',
|
||||||
|
{
|
||||||
|
'url': (secureProtocol ? 'https' : 'http' ) + '://' + domain.join('') + '/'
|
||||||
|
}
|
||||||
|
);
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
|
Legacy.Check.init();
|
||||||
|
const result1 = Legacy.Check.getInit() && Legacy.Check.getStatus(),
|
||||||
|
result2 = secureProtocol === (document.getElementById('httpnotice').className === 'hidden');
|
||||||
|
clean();
|
||||||
|
return result1 && result2;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
@@ -3,35 +3,53 @@ require('../common');
|
|||||||
|
|
||||||
describe('CryptTool', function () {
|
describe('CryptTool', function () {
|
||||||
describe('cipher & decipher', function () {
|
describe('cipher & decipher', function () {
|
||||||
|
afterEach(async function () {
|
||||||
|
// pause to let async functions conclude
|
||||||
|
await new Promise(resolve => setTimeout(resolve, 1900));
|
||||||
|
});
|
||||||
|
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
it('can en- and decrypt any message', function () {
|
it('can en- and decrypt any message', function () {
|
||||||
jsc.check(jsc.forall(
|
jsc.assert(jsc.forall(
|
||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
function (key, password, message) {
|
async function (key, password, message) {
|
||||||
return message === $.PrivateBin.CryptTool.decipher(
|
// pause to let async functions conclude
|
||||||
key,
|
await new Promise(resolve => setTimeout(resolve, 300));
|
||||||
password,
|
let clean = jsdom();
|
||||||
$.PrivateBin.CryptTool.cipher(key, password, message)
|
// ensure zlib is getting loaded
|
||||||
|
$.PrivateBin.Controller.initZ();
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
|
message = message.trim();
|
||||||
|
let cipherMessage = await $.PrivateBin.CryptTool.cipher(
|
||||||
|
key, password, message, []
|
||||||
|
),
|
||||||
|
plaintext = await $.PrivateBin.CryptTool.decipher(
|
||||||
|
key, password, cipherMessage
|
||||||
);
|
);
|
||||||
|
clean();
|
||||||
|
return message === plaintext;
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
// reducing amount of checks as running 100 takes about 5 minutes
|
{tests: 3});
|
||||||
{tests: 5, quiet: true});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// The below static unit tests are included to ensure deciphering of "classic"
|
// The below static unit tests are included to ensure deciphering of "classic"
|
||||||
// SJCL based pastes still works
|
// SJCL based pastes still works
|
||||||
it(
|
it(
|
||||||
'supports PrivateBin v1 ciphertext (SJCL & Base64)',
|
'supports PrivateBin v1 ciphertext (SJCL & browser atob)',
|
||||||
function () {
|
function () {
|
||||||
|
delete global.Base64;
|
||||||
|
let clean = jsdom();
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
|
|
||||||
// Of course you can easily decipher the following texts, if you like.
|
// Of course you can easily decipher the following texts, if you like.
|
||||||
// Bonus points for finding their sources and hidden meanings.
|
// Bonus points for finding their sources and hidden meanings.
|
||||||
var paste1 = $.PrivateBin.CryptTool.decipher(
|
return $.PrivateBin.CryptTool.decipher(
|
||||||
'6t2qsmLyfXIokNCL+3/yl15rfTUBQvm5SOnFPvNE7Q8=',
|
'6t2qsmLyfXIokNCL+3/yl15rfTUBQvm5SOnFPvNE7Q8=',
|
||||||
// -- "That's amazing. I've got the same combination on my luggage."
|
// -- "That's amazing. I've got the same combination on my luggage."
|
||||||
Array.apply(0, Array(6)).map(function(_,b) { return b + 1; }).join(''),
|
Array.apply(0, Array(6)).map((_,b) => b + 1).join(''),
|
||||||
'{"iv":"4HNFIl7eYbCh6HuShctTIA==","v":1,"iter":10000,"ks"' +
|
'{"iv":"4HNFIl7eYbCh6HuShctTIA==","v":1,"iter":10000,"ks"' +
|
||||||
':256,"ts":128,"mode":"gcm","adata":"","cipher":"aes","sa' +
|
':256,"ts":128,"mode":"gcm","adata":"","cipher":"aes","sa' +
|
||||||
'lt":"u0lQvePq6L0=","ct":"fGPUVrDyaVr1ZDGb+kqQ3CPEW8x4YKG' +
|
'lt":"u0lQvePq6L0=","ct":"fGPUVrDyaVr1ZDGb+kqQ3CPEW8x4YKG' +
|
||||||
@@ -59,8 +77,8 @@ describe('CryptTool', function () {
|
|||||||
'QUxMXI5htsn2rf0HxCFu7Po8DNYLxTS+67hYjDIYWYaEIc8LXWMLyDm9' +
|
'QUxMXI5htsn2rf0HxCFu7Po8DNYLxTS+67hYjDIYWYaEIc8LXWMLyDm9' +
|
||||||
'C5fARPJ4F2BIWgzgzkNj+dVjusft2XnziamWdbS5u3kuRlVuz5LQj+R5' +
|
'C5fARPJ4F2BIWgzgzkNj+dVjusft2XnziamWdbS5u3kuRlVuz5LQj+R5' +
|
||||||
'imnqQAincdZTkTT1nYx+DatlOLllCYIHffpI="}'
|
'imnqQAincdZTkTT1nYx+DatlOLllCYIHffpI="}'
|
||||||
),
|
).then(function (paste1) {
|
||||||
paste2 = $.PrivateBin.CryptTool.decipher(
|
$.PrivateBin.CryptTool.decipher(
|
||||||
's9pmKZKOBN7EVvHpTA8jjLFH3Xlz/0l8lB4+ONPACrM=',
|
's9pmKZKOBN7EVvHpTA8jjLFH3Xlz/0l8lB4+ONPACrM=',
|
||||||
'', // no password
|
'', // no password
|
||||||
'{"iv":"WA42mdxIVXUwBqZu7JYNiw==","v":1,"iter":10000,"ks"' +
|
'{"iv":"WA42mdxIVXUwBqZu7JYNiw==","v":1,"iter":10000,"ks"' +
|
||||||
@@ -85,30 +103,30 @@ describe('CryptTool', function () {
|
|||||||
'XhHvixZLcSjX2KQuHmEoWzmJcr3DavdoXZmAurGWLKjzEdJc5dSD/eNr' +
|
'XhHvixZLcSjX2KQuHmEoWzmJcr3DavdoXZmAurGWLKjzEdJc5dSD/eNr' +
|
||||||
'99gjHX7wphJ6umKMM+fn6PcbYJkhDh2GlJL5COXjXfm/5aj/vuyaRRWZ' +
|
'99gjHX7wphJ6umKMM+fn6PcbYJkhDh2GlJL5COXjXfm/5aj/vuyaRRWZ' +
|
||||||
'MZtmnYpGAtAPg7AUG"}'
|
'MZtmnYpGAtAPg7AUG"}'
|
||||||
);
|
).then(function (paste2) {
|
||||||
|
clean();
|
||||||
assert.ok(
|
assert.ok(
|
||||||
paste1.includes('securely packed in iron') &&
|
paste1.includes('securely packed in iron') &&
|
||||||
paste2.includes('Sol is right')
|
paste2.includes('Sol is right')
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
it(
|
it(
|
||||||
'supports ZeroBin ciphertext (SJCL & Base64 1.7)',
|
'supports ZeroBin ciphertext (SJCL & Base64 1.7)',
|
||||||
function () {
|
function () {
|
||||||
var newBase64 = global.Base64;
|
|
||||||
global.Base64 = require('../base64-1.7').Base64;
|
global.Base64 = require('../base64-1.7').Base64;
|
||||||
jsdom();
|
var clean = jsdom();
|
||||||
delete require.cache[require.resolve('../privatebin')];
|
window.crypto = new WebCrypto();
|
||||||
require('../privatebin');
|
|
||||||
|
|
||||||
// Of course you can easily decipher the following texts, if you like.
|
// Of course you can easily decipher the following texts, if you like.
|
||||||
// Bonus points for finding their sources and hidden meanings.
|
// Bonus points for finding their sources and hidden meanings.
|
||||||
var paste1 = $.PrivateBin.CryptTool.decipher(
|
return $.PrivateBin.CryptTool.decipher(
|
||||||
'6t2qsmLyfXIokNCL+3/yl15rfTUBQvm5SOnFPvNE7Q8=',
|
'6t2qsmLyfXIokNCL+3/yl15rfTUBQvm5SOnFPvNE7Q8=',
|
||||||
// -- "That's amazing. I've got the same combination on my luggage."
|
// -- "That's amazing. I've got the same combination on my luggage."
|
||||||
Array.apply(0, Array(6)).map(function(_,b) { return b + 1; }).join(''),
|
Array.apply(0, Array(6)).map((_,b) => b + 1).join(''),
|
||||||
'{"iv":"aTnR2qBL1CAmLX8FdWe3VA==","v":1,"iter":10000,"ks"' +
|
'{"iv":"aTnR2qBL1CAmLX8FdWe3VA==","v":1,"iter":10000,"ks"' +
|
||||||
':256,"ts":128,"mode":"gcm","adata":"","cipher":"aes","sa' +
|
':256,"ts":128,"mode":"gcm","adata":"","cipher":"aes","sa' +
|
||||||
'lt":"u0lQvePq6L0=","ct":"A3nBTvICZtYy6xqbIJE0c8Veored5lM' +
|
'lt":"u0lQvePq6L0=","ct":"A3nBTvICZtYy6xqbIJE0c8Veored5lM' +
|
||||||
@@ -128,8 +146,8 @@ describe('CryptTool', function () {
|
|||||||
'7mNNo7xba/YT9KoPDaniqnYqb+q2pX1WNWE7dLS2wfroMAS3kh8P22DA' +
|
'7mNNo7xba/YT9KoPDaniqnYqb+q2pX1WNWE7dLS2wfroMAS3kh8P22DA' +
|
||||||
'V37AeiNoD2PcI6ZcHbRdPa+XRrRcJhSPPW7UQ0z4OvBfjdu/w390QxAx' +
|
'V37AeiNoD2PcI6ZcHbRdPa+XRrRcJhSPPW7UQ0z4OvBfjdu/w390QxAx' +
|
||||||
'SxvZewoh49fKKB6hTsRnZb4tpHkjlww=="}'
|
'SxvZewoh49fKKB6hTsRnZb4tpHkjlww=="}'
|
||||||
),
|
).then(function (paste1) {
|
||||||
paste2 = $.PrivateBin.CryptTool.decipher(
|
$.PrivateBin.CryptTool.decipher(
|
||||||
's9pmKZKOBN7EVvHpTA8jjLFH3Xlz/0l8lB4+ONPACrM=',
|
's9pmKZKOBN7EVvHpTA8jjLFH3Xlz/0l8lB4+ONPACrM=',
|
||||||
'', // no password
|
'', // no password
|
||||||
'{"iv":"Z7lAZQbkrqGMvruxoSm6Pw==","v":1,"iter":10000,"ks"' +
|
'{"iv":"Z7lAZQbkrqGMvruxoSm6Pw==","v":1,"iter":10000,"ks"' +
|
||||||
@@ -147,61 +165,102 @@ describe('CryptTool', function () {
|
|||||||
'7tmfcF73w9dufDFI3LNca2KxzBnWNPYvIZKBwWbq8ncxkb191dP6mjEi' +
|
'7tmfcF73w9dufDFI3LNca2KxzBnWNPYvIZKBwWbq8ncxkb191dP6mjEi' +
|
||||||
'7NnhqVk5A6vIBbu4AC5PZf76l6yep4xsoy/QtdDxCMocCXeAML9MQ9uP' +
|
'7NnhqVk5A6vIBbu4AC5PZf76l6yep4xsoy/QtdDxCMocCXeAML9MQ9uP' +
|
||||||
'QbuspOKrBvMfN5igA1kBqasnxI472KBNXsdZnaDddSVUuvhTcETM="}'
|
'QbuspOKrBvMfN5igA1kBqasnxI472KBNXsdZnaDddSVUuvhTcETM="}'
|
||||||
);
|
).then(function (paste2) {
|
||||||
|
clean();
|
||||||
global.Base64 = newBase64;
|
delete global.Base64;
|
||||||
jsdom();
|
|
||||||
delete require.cache[require.resolve('../privatebin')];
|
|
||||||
require('../privatebin');
|
|
||||||
assert.ok(
|
assert.ok(
|
||||||
paste1.includes('securely packed in iron') &&
|
paste1.includes('securely packed in iron') &&
|
||||||
paste2.includes('Sol is right')
|
paste2.includes('Sol is right')
|
||||||
);
|
);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
it('does not truncate messages', async function () {
|
||||||
|
let message = fs.readFileSync('test/compression-sample.txt', 'utf8'),
|
||||||
|
clean = jsdom();
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
|
// ensure zlib is getting loaded
|
||||||
|
$.PrivateBin.Controller.initZ();
|
||||||
|
let cipherMessage = await $.PrivateBin.CryptTool.cipher(
|
||||||
|
'foo', 'bar', message, []
|
||||||
|
),
|
||||||
|
plaintext = await $.PrivateBin.CryptTool.decipher(
|
||||||
|
'foo', 'bar', cipherMessage
|
||||||
|
);
|
||||||
|
clean();
|
||||||
|
assert.strictEqual(
|
||||||
|
message,
|
||||||
|
plaintext
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('isEntropyReady & addEntropySeedListener', function () {
|
it('can en- and decrypt a particular message (#260)', function () {
|
||||||
it(
|
jsc.assert(jsc.forall(
|
||||||
'lets us know that enough entropy is collected or make us wait for it',
|
'string',
|
||||||
function(done) {
|
'string',
|
||||||
if ($.PrivateBin.CryptTool.isEntropyReady()) {
|
async function (key, password) {
|
||||||
done();
|
// pause to let async functions conclude
|
||||||
} else {
|
await new Promise(resolve => setTimeout(resolve, 300));
|
||||||
$.PrivateBin.CryptTool.addEntropySeedListener(function() {
|
const message = `
|
||||||
done();
|
1 subgoal
|
||||||
});
|
|
||||||
}
|
inv : Assert
|
||||||
}
|
expr : Expr
|
||||||
|
sBody : Instr
|
||||||
|
deduction : (|- [|inv /\ assertOfExpr expr|] sBody [|inv|])%assert
|
||||||
|
IHdeduction : (|= [|inv /\ assertOfExpr expr |] sBody [|inv|])%assert
|
||||||
|
mem : Mem
|
||||||
|
preInMem : inv mem
|
||||||
|
m : Mem
|
||||||
|
n : nat
|
||||||
|
interpRel : interp (nth_iterate sBody n) (MemElem mem) = CpoElem Mem m
|
||||||
|
lastIter : interp (nth_iterate sBody n) (MemElem mem) |=e expr_neg expr
|
||||||
|
notLastIter : forall p : nat,
|
||||||
|
p < n -> interp (nth_iterate sBody p) (MemElem mem) |=e expr
|
||||||
|
isWhile : interp (while expr sBody) (MemElem mem) =
|
||||||
|
interp (nth_iterate sBody n) (MemElem mem)
|
||||||
|
|
||||||
|
======================== ( 1 / 1 )
|
||||||
|
conseq_or_bottom inv (interp (nth_iterate sBody n) (MemElem mem))
|
||||||
|
`;
|
||||||
|
let clean = jsdom();
|
||||||
|
// ensure zlib is getting loaded
|
||||||
|
$.PrivateBin.Controller.initZ();
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
|
let cipherMessage = await $.PrivateBin.CryptTool.cipher(
|
||||||
|
key, password, message, []
|
||||||
|
),
|
||||||
|
plaintext = await $.PrivateBin.CryptTool.decipher(
|
||||||
|
key, password, cipherMessage
|
||||||
);
|
);
|
||||||
|
clean();
|
||||||
|
return message === plaintext;
|
||||||
|
}
|
||||||
|
),
|
||||||
|
{tests: 3});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getSymmetricKey', function () {
|
describe('getSymmetricKey', function () {
|
||||||
|
this.timeout(30000);
|
||||||
var keys = [];
|
var keys = [];
|
||||||
|
|
||||||
// the parameter is used to ensure the test is run more then one time
|
// the parameter is used to ensure the test is run more then one time
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'returns random, non-empty keys',
|
'returns random, non-empty keys',
|
||||||
function() {
|
'integer',
|
||||||
|
function(counter) {
|
||||||
|
var clean = jsdom();
|
||||||
|
window.crypto = new WebCrypto();
|
||||||
var key = $.PrivateBin.CryptTool.getSymmetricKey(),
|
var key = $.PrivateBin.CryptTool.getSymmetricKey(),
|
||||||
result = (key !== '' && keys.indexOf(key) === -1);
|
result = (key !== '' && keys.indexOf(key) === -1);
|
||||||
keys.push(key);
|
keys.push(key);
|
||||||
|
clean();
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('Base64.js vs SJCL.js vs abab.js', function () {
|
|
||||||
jsc.property(
|
|
||||||
'these all return the same base64 string',
|
|
||||||
'string',
|
|
||||||
function(string) {
|
|
||||||
var base64 = Base64.toBase64(string),
|
|
||||||
sjcl = global.sjcl.codec.base64.fromBits(global.sjcl.codec.utf8String.toBits(string)),
|
|
||||||
abab = window.btoa(Base64.utob(string));
|
|
||||||
return base64 === sjcl && sjcl === abab;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ var common = require('../common');
|
|||||||
describe('DiscussionViewer', function () {
|
describe('DiscussionViewer', function () {
|
||||||
describe('handleNotification, prepareNewDiscussion, addComment, finishDiscussion, getReplyMessage, getReplyNickname, getReplyCommentId & highlightComment', function () {
|
describe('handleNotification, prepareNewDiscussion, addComment, finishDiscussion, getReplyMessage, getReplyNickname, getReplyCommentId & highlightComment', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'displays & hides comments as requested',
|
'displays & hides comments as requested',
|
||||||
@@ -63,7 +60,7 @@ describe('DiscussionViewer', function () {
|
|||||||
comments.forEach(function (comment) {
|
comments.forEach(function (comment) {
|
||||||
comment.id = comment.idArray.join('');
|
comment.id = comment.idArray.join('');
|
||||||
comment.parentid = comment.parentidArray.join('');
|
comment.parentid = comment.parentidArray.join('');
|
||||||
$.PrivateBin.DiscussionViewer.addComment(comment, comment.data, comment.meta.nickname);
|
$.PrivateBin.DiscussionViewer.addComment($.PrivateBin.Helper.CommentFactory(comment), comment.data, comment.meta.nickname);
|
||||||
});
|
});
|
||||||
results.push(
|
results.push(
|
||||||
$('#discussion').hasClass('hidden')
|
$('#discussion').hasClass('hidden')
|
||||||
|
|||||||
@@ -4,9 +4,6 @@ require('../common');
|
|||||||
describe('Editor', function () {
|
describe('Editor', function () {
|
||||||
describe('show, hide, getText, setText & isPreview', function () {
|
describe('show, hide, getText, setText & isPreview', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
before(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'returns text fed into the textarea, handles editor tabs',
|
'returns text fed into the textarea, handles editor tabs',
|
||||||
|
|||||||
@@ -3,10 +3,6 @@ var common = require('../common');
|
|||||||
|
|
||||||
describe('Helper', function () {
|
describe('Helper', function () {
|
||||||
describe('secondsToHuman', function () {
|
describe('secondsToHuman', function () {
|
||||||
after(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property('returns an array with a number and a word', 'integer', function (number) {
|
jsc.property('returns an array with a number and a word', 'integer', function (number) {
|
||||||
var result = $.PrivateBin.Helper.secondsToHuman(number);
|
var result = $.PrivateBin.Helper.secondsToHuman(number);
|
||||||
return Array.isArray(result) &&
|
return Array.isArray(result) &&
|
||||||
@@ -57,11 +53,11 @@ describe('Helper', function () {
|
|||||||
'nearray string',
|
'nearray string',
|
||||||
function (ids, contents) {
|
function (ids, contents) {
|
||||||
var html = '',
|
var html = '',
|
||||||
result = true;
|
result = true,
|
||||||
|
clean = jsdom(html);
|
||||||
ids.forEach(function(item, i) {
|
ids.forEach(function(item, i) {
|
||||||
html += '<div id="' + item.join('') + '">' + common.htmlEntities(contents[i] || contents[0]) + '</div>';
|
html += '<div id="' + item.join('') + '">' + $.PrivateBin.Helper.htmlEntities(contents[i] || contents[0]) + '</div>';
|
||||||
});
|
});
|
||||||
var clean = jsdom(html);
|
|
||||||
// TODO: As per https://github.com/tmpvar/jsdom/issues/321 there is no getSelection in jsdom, yet.
|
// TODO: As per https://github.com/tmpvar/jsdom/issues/321 there is no getSelection in jsdom, yet.
|
||||||
// Once there is one, uncomment the block below to actually check the result.
|
// Once there is one, uncomment the block below to actually check the result.
|
||||||
/*
|
/*
|
||||||
@@ -77,15 +73,24 @@ describe('Helper', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('urls2links', function () {
|
describe('urls2links', function () {
|
||||||
after(function () {
|
this.timeout(30000);
|
||||||
cleanup();
|
before(function () {
|
||||||
|
cleanup = jsdom();
|
||||||
});
|
});
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'ignores non-URL content',
|
'ignores non-URL content',
|
||||||
'string',
|
'string',
|
||||||
function (content) {
|
function (content) {
|
||||||
return content === $.PrivateBin.Helper.urls2links(content);
|
content = content.replace(/\r|\f/g, '\n').replace(/\u0000/g, '').replace(/\u000b/g, '');
|
||||||
|
let clean = jsdom();
|
||||||
|
$('body').html('<div id="foo"></div>');
|
||||||
|
let e = $('#foo');
|
||||||
|
e.text(content);
|
||||||
|
$.PrivateBin.Helper.urls2links(e);
|
||||||
|
let result = e.text();
|
||||||
|
clean();
|
||||||
|
return content === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
jsc.property(
|
jsc.property(
|
||||||
@@ -97,11 +102,14 @@ describe('Helper', function () {
|
|||||||
jsc.array(common.jscHashString()),
|
jsc.array(common.jscHashString()),
|
||||||
'string',
|
'string',
|
||||||
function (prefix, schema, address, query, fragment, postfix) {
|
function (prefix, schema, address, query, fragment, postfix) {
|
||||||
var query = query.join(''),
|
query = query.join('');
|
||||||
fragment = fragment.join(''),
|
fragment = fragment.join('');
|
||||||
url = schema + '://' + address.join('') + '/?' + query + '#' + fragment,
|
prefix = prefix.replace(/\r|\f/g, '\n').replace(/\u0000/g, '').replace(/\u000b/g, '');
|
||||||
prefix = common.htmlEntities(prefix),
|
postfix = ' ' + postfix.replace(/\r/g, '\n').replace(/\u0000/g, '');
|
||||||
postfix = ' ' + common.htmlEntities(postfix);
|
let url = schema + '://' + address.join('') + '/?' + query + '#' + fragment,
|
||||||
|
clean = jsdom();
|
||||||
|
$('body').html('<div id="foo"></div>');
|
||||||
|
let e = $('#foo');
|
||||||
|
|
||||||
// special cases: When the query string and fragment imply the beginning of an HTML entity, eg. � or &#x
|
// special cases: When the query string and fragment imply the beginning of an HTML entity, eg. � or &#x
|
||||||
if (
|
if (
|
||||||
@@ -112,8 +120,12 @@ describe('Helper', function () {
|
|||||||
url = schema + '://' + address.join('') + '/?' + query.substring(0, query.length - 1);
|
url = schema + '://' + address.join('') + '/?' + query.substring(0, query.length - 1);
|
||||||
postfix = '';
|
postfix = '';
|
||||||
}
|
}
|
||||||
|
e.text(prefix + url + postfix);
|
||||||
return prefix + '<a href="' + url + '" rel="nofollow">' + url + '</a>' + postfix === $.PrivateBin.Helper.urls2links(prefix + url + postfix);
|
$.PrivateBin.Helper.urls2links(e);
|
||||||
|
let result = e.html();
|
||||||
|
clean();
|
||||||
|
url = $('<div />').text(url).html();
|
||||||
|
return $('<div />').text(prefix).html() + '<a href="' + url + '" target="_blank" rel="nofollow noopener noreferrer">' + url + '</a>' + $('<div />').text(postfix).html() === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
jsc.property(
|
jsc.property(
|
||||||
@@ -122,19 +134,23 @@ describe('Helper', function () {
|
|||||||
jsc.array(common.jscQueryString()),
|
jsc.array(common.jscQueryString()),
|
||||||
'string',
|
'string',
|
||||||
function (prefix, query, postfix) {
|
function (prefix, query, postfix) {
|
||||||
var url = 'magnet:?' + query.join('').replace(/^&+|&+$/gm,''),
|
prefix = prefix.replace(/\r|\f/g, '\n').replace(/\u0000/g, '').replace(/\u000b/g, '');
|
||||||
prefix = common.htmlEntities(prefix),
|
postfix = ' ' + postfix.replace(/\r/g, '\n').replace(/\u0000/g, '');
|
||||||
postfix = common.htmlEntities(postfix);
|
let url = 'magnet:?' + query.join('').replace(/^&+|&+$/gm,''),
|
||||||
return prefix + '<a href="' + url + '" rel="nofollow">' + url + '</a> ' + postfix === $.PrivateBin.Helper.urls2links(prefix + url + ' ' + postfix);
|
clean = jsdom();
|
||||||
|
$('body').html('<div id="foo"></div>');
|
||||||
|
let e = $('#foo');
|
||||||
|
e.text(prefix + url + postfix);
|
||||||
|
$.PrivateBin.Helper.urls2links(e);
|
||||||
|
let result = e.html();
|
||||||
|
clean();
|
||||||
|
url = $('<div />').text(url).html();
|
||||||
|
return $('<div />').text(prefix).html() + '<a href="' + url + '" target="_blank" rel="nofollow noopener noreferrer">' + url + '</a>' + $('<div />').text(postfix).html() === result;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('sprintf', function () {
|
describe('sprintf', function () {
|
||||||
after(function () {
|
|
||||||
cleanup();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'replaces %s in strings with first given parameter',
|
'replaces %s in strings with first given parameter',
|
||||||
'string',
|
'string',
|
||||||
@@ -183,9 +199,9 @@ describe('Helper', function () {
|
|||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
function (prefix, uint, middle, string, postfix) {
|
function (prefix, uint, middle, string, postfix) {
|
||||||
prefix = prefix.replace(/%(s|d)/g, '%%');
|
prefix = prefix.replace(/%(s|d)/g, '');
|
||||||
middle = middle.replace(/%(s|d)/g, '%%');
|
middle = middle.replace(/%(s|d)/g, '');
|
||||||
postfix = postfix.replace(/%(s|d)/g, '%%');
|
postfix = postfix.replace(/%(s|d)/g, '');
|
||||||
var params = [prefix + '%d' + middle + '%s' + postfix, uint, string],
|
var params = [prefix + '%d' + middle + '%s' + postfix, uint, string],
|
||||||
result = prefix + uint + middle + string + postfix;
|
result = prefix + uint + middle + string + postfix;
|
||||||
return result === $.PrivateBin.Helper.sprintf.apply(this, params);
|
return result === $.PrivateBin.Helper.sprintf.apply(this, params);
|
||||||
@@ -199,9 +215,9 @@ describe('Helper', function () {
|
|||||||
'string',
|
'string',
|
||||||
'string',
|
'string',
|
||||||
function (prefix, uint, middle, string, postfix) {
|
function (prefix, uint, middle, string, postfix) {
|
||||||
prefix = prefix.replace(/%(s|d)/g, '%%');
|
prefix = prefix.replace(/%(s|d)/g, '');
|
||||||
middle = middle.replace(/%(s|d)/g, '%%');
|
middle = middle.replace(/%(s|d)/g, '');
|
||||||
postfix = postfix.replace(/%(s|d)/g, '%%');
|
postfix = postfix.replace(/%(s|d)/g, '');
|
||||||
var params = [prefix + '%s' + middle + '%d' + postfix, string, uint],
|
var params = [prefix + '%s' + middle + '%d' + postfix, string, uint],
|
||||||
result = prefix + string + middle + uint + postfix;
|
result = prefix + string + middle + uint + postfix;
|
||||||
return result === $.PrivateBin.Helper.sprintf.apply(this, params);
|
return result === $.PrivateBin.Helper.sprintf.apply(this, params);
|
||||||
@@ -211,17 +227,20 @@ describe('Helper', function () {
|
|||||||
|
|
||||||
describe('getCookie', function () {
|
describe('getCookie', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
|
before(function () {
|
||||||
|
cleanup();
|
||||||
|
});
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'returns the requested cookie',
|
'returns the requested cookie',
|
||||||
'nearray asciinestring',
|
jsc.nearray(jsc.nearray(common.jscAlnumString())),
|
||||||
'nearray asciistring',
|
jsc.nearray(jsc.nearray(common.jscAlnumString())),
|
||||||
function (labels, values) {
|
function (labels, values) {
|
||||||
var selectedKey = '', selectedValue = '',
|
var selectedKey = '', selectedValue = '',
|
||||||
cookieArray = [];
|
cookieArray = [];
|
||||||
labels.forEach(function(item, i) {
|
labels.forEach(function(item, i) {
|
||||||
// deliberatly using a non-ascii key for replacing invalid characters
|
var key = item.join(''),
|
||||||
var key = item.replace(/[\s;,=]/g, Array(i+2).join('£')),
|
value = (values[i] || values[0]).join('');
|
||||||
value = (values[i] || values[0]).replace(/[\s;,=]/g, '');
|
|
||||||
cookieArray.push(key + '=' + value);
|
cookieArray.push(key + '=' + value);
|
||||||
if (Math.random() < 1 / i || selectedKey === key)
|
if (Math.random() < 1 / i || selectedKey === key)
|
||||||
{
|
{
|
||||||
@@ -231,6 +250,7 @@ describe('Helper', function () {
|
|||||||
});
|
});
|
||||||
var clean = jsdom('', {cookie: cookieArray}),
|
var clean = jsdom('', {cookie: cookieArray}),
|
||||||
result = $.PrivateBin.Helper.getCookie(selectedKey);
|
result = $.PrivateBin.Helper.getCookie(selectedKey);
|
||||||
|
$.PrivateBin.Helper.reset();
|
||||||
clean();
|
clean();
|
||||||
return result === selectedValue;
|
return result === selectedValue;
|
||||||
}
|
}
|
||||||
@@ -239,21 +259,19 @@ describe('Helper', function () {
|
|||||||
|
|
||||||
describe('baseUri', function () {
|
describe('baseUri', function () {
|
||||||
this.timeout(30000);
|
this.timeout(30000);
|
||||||
before(function () {
|
|
||||||
$.PrivateBin.Helper.reset();
|
|
||||||
});
|
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'returns the URL without query & fragment',
|
'returns the URL without query & fragment',
|
||||||
common.jscSchemas(),
|
jsc.elements(['http', 'https']),
|
||||||
jsc.nearray(common.jscA2zString()),
|
jsc.nearray(common.jscA2zString()),
|
||||||
|
jsc.array(common.jscA2zString()),
|
||||||
jsc.array(common.jscQueryString()),
|
jsc.array(common.jscQueryString()),
|
||||||
'string',
|
'string',
|
||||||
function (schema, address, query, fragment) {
|
function (schema, address, path, query, fragment) {
|
||||||
var expected = schema + '://' + address.join('') + '/',
|
$.PrivateBin.Helper.reset();
|
||||||
|
var path = path.join('') + (path.length > 0 ? '/' : ''),
|
||||||
|
expected = schema + '://' + address.join('') + '/' + path,
|
||||||
clean = jsdom('', {url: expected + '?' + query.join('') + '#' + fragment}),
|
clean = jsdom('', {url: expected + '?' + query.join('') + '#' + fragment}),
|
||||||
result = $.PrivateBin.Helper.baseUri();
|
result = $.PrivateBin.Helper.baseUri();
|
||||||
$.PrivateBin.Helper.reset();
|
|
||||||
clean();
|
clean();
|
||||||
return expected === result;
|
return expected === result;
|
||||||
}
|
}
|
||||||
@@ -261,16 +279,16 @@ describe('Helper', function () {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('htmlEntities', function () {
|
describe('htmlEntities', function () {
|
||||||
after(function () {
|
before(function () {
|
||||||
cleanup();
|
cleanup = jsdom();
|
||||||
});
|
});
|
||||||
|
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'removes all HTML entities from any given string',
|
'removes all HTML entities from any given string',
|
||||||
'string',
|
'string',
|
||||||
function (string) {
|
function (string) {
|
||||||
var result = common.htmlEntities(string);
|
var result = $.PrivateBin.Helper.htmlEntities(string);
|
||||||
return !(/[<>"'`=\/]/.test(result)) && !(string.indexOf('&') > -1 && !(/&/.test(result)));
|
return !(/[<>]/.test(result)) && !(string.indexOf('&') > -1 && !(/&/.test(result)));
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
116
js/test/I18n.js
116
js/test/I18n.js
@@ -3,6 +3,7 @@ var common = require('../common');
|
|||||||
|
|
||||||
describe('I18n', function () {
|
describe('I18n', function () {
|
||||||
describe('translate', function () {
|
describe('translate', function () {
|
||||||
|
this.timeout(30000);
|
||||||
before(function () {
|
before(function () {
|
||||||
$.PrivateBin.I18n.reset();
|
$.PrivateBin.I18n.reset();
|
||||||
});
|
});
|
||||||
@@ -32,13 +33,41 @@ describe('I18n', function () {
|
|||||||
var fakeAlias = $.PrivateBin.I18n._(fake);
|
var fakeAlias = $.PrivateBin.I18n._(fake);
|
||||||
$.PrivateBin.I18n.reset();
|
$.PrivateBin.I18n.reset();
|
||||||
|
|
||||||
|
if (messageId.indexOf('<a') === -1) {
|
||||||
|
messageId = $.PrivateBin.Helper.htmlEntities(messageId);
|
||||||
|
} else {
|
||||||
|
messageId = DOMPurify.sanitize(
|
||||||
|
messageId, {
|
||||||
|
ALLOWED_TAGS: ['a', 'i', 'span'],
|
||||||
|
ALLOWED_ATTR: ['href', 'id']
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
return messageId === result && messageId === alias &&
|
return messageId === result && messageId === alias &&
|
||||||
messageId === pluralResult && messageId === pluralAlias &&
|
messageId === pluralResult && messageId === pluralAlias &&
|
||||||
messageId === fakeResult && messageId === fakeAlias;
|
messageId === fakeResult && messageId === fakeAlias;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
jsc.property(
|
jsc.property(
|
||||||
'replaces %s in strings with first given parameter',
|
'replaces %s in strings with first given parameter, encoding all, when no link is in the messageID',
|
||||||
|
'string',
|
||||||
|
'(small nearray) string',
|
||||||
|
'string',
|
||||||
|
function (prefix, params, postfix) {
|
||||||
|
prefix = prefix.replace(/%(s|d)/g, '%%').replace(/<a/g, '');
|
||||||
|
params[0] = params[0].replace(/%(s|d)/g, '%%');
|
||||||
|
postfix = postfix.replace(/%(s|d)/g, '%%').replace(/<a/g, '');
|
||||||
|
const translation = $.PrivateBin.Helper.htmlEntities(prefix + params[0] + postfix);
|
||||||
|
params.unshift(prefix + '%s' + postfix);
|
||||||
|
const result = $.PrivateBin.I18n.translate.apply(this, params);
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
const alias = $.PrivateBin.I18n._.apply(this, params);
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
return translation === result && translation === alias;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
jsc.property(
|
||||||
|
'replaces %s in strings with first given parameter, encoding params only, when a link is part of the messageID',
|
||||||
'string',
|
'string',
|
||||||
'(small nearray) string',
|
'(small nearray) string',
|
||||||
'string',
|
'string',
|
||||||
@@ -46,15 +75,83 @@ describe('I18n', function () {
|
|||||||
prefix = prefix.replace(/%(s|d)/g, '%%');
|
prefix = prefix.replace(/%(s|d)/g, '%%');
|
||||||
params[0] = params[0].replace(/%(s|d)/g, '%%');
|
params[0] = params[0].replace(/%(s|d)/g, '%%');
|
||||||
postfix = postfix.replace(/%(s|d)/g, '%%');
|
postfix = postfix.replace(/%(s|d)/g, '%%');
|
||||||
var translation = prefix + params[0] + postfix;
|
const translation = DOMPurify.sanitize(
|
||||||
params.unshift(prefix + '%s' + postfix);
|
prefix + '<a href="' + params[0] + '"></a>' + postfix, {
|
||||||
var result = $.PrivateBin.I18n.translate.apply(this, params);
|
ALLOWED_TAGS: ['a', 'i', 'span'],
|
||||||
|
ALLOWED_ATTR: ['href', 'id']
|
||||||
|
}
|
||||||
|
);
|
||||||
|
params.unshift(prefix + '<a href="%s"></a>' + postfix);
|
||||||
|
const result = $.PrivateBin.I18n.translate.apply(this, params);
|
||||||
$.PrivateBin.I18n.reset();
|
$.PrivateBin.I18n.reset();
|
||||||
var alias = $.PrivateBin.I18n._.apply(this, params);
|
const alias = $.PrivateBin.I18n._.apply(this, params);
|
||||||
$.PrivateBin.I18n.reset();
|
$.PrivateBin.I18n.reset();
|
||||||
return translation === result && translation === alias;
|
return translation === result && translation === alias;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
jsc.property(
|
||||||
|
'replaces %s in strings with first given parameter into an element, encoding all, when no link is in the messageID',
|
||||||
|
'string',
|
||||||
|
'(small nearray) string',
|
||||||
|
'string',
|
||||||
|
function (prefix, params, postfix) {
|
||||||
|
prefix = prefix.replace(/%(s|d)/g, '%%').replace(/<a/g, '');
|
||||||
|
params[0] = params[0].replace(/%(s|d)/g, '%%');
|
||||||
|
postfix = postfix.replace(/%(s|d)/g, '%%').replace(/<a/g, '');
|
||||||
|
const translation = $('<textarea>').text((prefix + params[0] + postfix)).text();
|
||||||
|
let args = Array.prototype.slice.call(params);
|
||||||
|
args.unshift(prefix + '%s' + postfix);
|
||||||
|
let clean = jsdom();
|
||||||
|
$('body').html('<div id="i18n"></div>');
|
||||||
|
args.unshift($('#i18n'));
|
||||||
|
$.PrivateBin.I18n.translate.apply(this, args);
|
||||||
|
const result = $('#i18n').text();
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
clean();
|
||||||
|
clean = jsdom();
|
||||||
|
$('body').html('<div id="i18n"></div>');
|
||||||
|
args[0] = $('#i18n');
|
||||||
|
$.PrivateBin.I18n._.apply(this, args);
|
||||||
|
const alias = $('#i18n').text();
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
clean();
|
||||||
|
return translation === result && translation === alias;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
jsc.property(
|
||||||
|
'replaces %s in strings with first given parameter into an element, encoding params only, when a link is part of the messageID inserted',
|
||||||
|
'string',
|
||||||
|
'(small nearray) string',
|
||||||
|
'string',
|
||||||
|
function (prefix, params, postfix) {
|
||||||
|
prefix = prefix.replace(/%(s|d)/g, '%%').trim();
|
||||||
|
params[0] = params[0].replace(/%(s|d)/g, '%%').trim();
|
||||||
|
postfix = postfix.replace(/%(s|d)/g, '%%').trim();
|
||||||
|
const translation = DOMPurify.sanitize(
|
||||||
|
prefix + '<a href="' + params[0] + '"></a>' + postfix, {
|
||||||
|
ALLOWED_TAGS: ['a', 'i', 'span'],
|
||||||
|
ALLOWED_ATTR: ['href', 'id']
|
||||||
|
}
|
||||||
|
);
|
||||||
|
let args = Array.prototype.slice.call(params);
|
||||||
|
args.unshift(prefix + '<a href="%s"></a>' + postfix);
|
||||||
|
let clean = jsdom();
|
||||||
|
$('body').html('<div id="i18n"></div>');
|
||||||
|
args.unshift($('#i18n'));
|
||||||
|
$.PrivateBin.I18n.translate.apply(this, args);
|
||||||
|
const result = $('#i18n').html();
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
clean();
|
||||||
|
clean = jsdom();
|
||||||
|
$('body').html('<div id="i18n"></div>');
|
||||||
|
args[0] = $('#i18n');
|
||||||
|
$.PrivateBin.I18n._.apply(this, args);
|
||||||
|
const alias = $('#i18n').html();
|
||||||
|
$.PrivateBin.I18n.reset();
|
||||||
|
clean();
|
||||||
|
return translation === result && translation === alias;
|
||||||
|
}
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('getPluralForm', function () {
|
describe('getPluralForm', function () {
|
||||||
@@ -87,14 +184,17 @@ describe('I18n', function () {
|
|||||||
'downloads and handles any supported language',
|
'downloads and handles any supported language',
|
||||||
common.jscSupportedLanguages(),
|
common.jscSupportedLanguages(),
|
||||||
function(language) {
|
function(language) {
|
||||||
var clean = jsdom('', {url: 'https://privatebin.net/', cookie: ['lang=' + language]});
|
// cleanup
|
||||||
|
var clean = jsdom('', {cookie: ['lang=en']});
|
||||||
$.PrivateBin.I18n.reset('en');
|
$.PrivateBin.I18n.reset('en');
|
||||||
$.PrivateBin.I18n.loadTranslations();
|
$.PrivateBin.I18n.loadTranslations();
|
||||||
|
clean();
|
||||||
|
|
||||||
|
// mock
|
||||||
|
clean = jsdom('', {cookie: ['lang=' + language]});
|
||||||
$.PrivateBin.I18n.reset(language, require('../../i18n/' + language + '.json'));
|
$.PrivateBin.I18n.reset(language, require('../../i18n/' + language + '.json'));
|
||||||
var result = $.PrivateBin.I18n.translate('en'),
|
var result = $.PrivateBin.I18n.translate('en'),
|
||||||
alias = $.PrivateBin.I18n._('en');
|
alias = $.PrivateBin.I18n._('en');
|
||||||
|
|
||||||
clean();
|
clean();
|
||||||
return language === result && language === alias;
|
return language === result && language === alias;
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user