mirror of https://github.com/PurpleI2P/i2pd
Compare commits
708 Commits
Author | SHA1 | Date |
---|---|---|
|
ff8941af71 | 1 day ago |
|
f125936b2e | 3 days ago |
|
697d831441 | 6 days ago |
|
457b64f92d | 2 weeks ago |
|
6caec6b551 | 2 weeks ago |
|
362edc68ad | 2 weeks ago |
|
29872fc003 | 3 weeks ago |
|
81d383c99e | 3 weeks ago |
|
12653f2fe4 | 3 weeks ago |
|
43f5ba286c | 3 weeks ago |
|
f990a2f69f | 3 weeks ago |
|
0b97b4294c | 3 weeks ago |
|
4178ac8eac | 3 weeks ago |
|
6a590bf970 | 3 weeks ago |
|
2f847d62bb | 3 weeks ago |
|
df6d48dbae | 3 weeks ago |
|
bacce7dc60 | 3 weeks ago |
|
b3314380cc | 3 weeks ago |
|
d4eea61b82 | 3 weeks ago |
|
a1995c13cd | 3 weeks ago |
|
bc8adf1433 | 4 weeks ago |
|
a1322d4667 | 4 weeks ago |
|
4100249313 | 4 weeks ago |
|
acbd3f897b | 1 month ago |
|
7dc5a04b8d | 1 month ago |
|
03635f4444 | 1 month ago |
|
0fae04f96a | 1 month ago |
|
bb531a878d | 1 month ago |
|
0f7db8e418 | 1 month ago |
|
9a724b2af9 | 1 month ago |
|
f4ea6138e8 | 1 month ago |
|
e74272781f | 1 month ago |
|
b75e418879 | 1 month ago |
|
927123188c | 1 month ago |
|
c00eb8cf44 | 1 month ago |
|
265bb8b779 | 1 month ago |
|
e3be409945 | 1 month ago |
|
d8707ceb57 | 1 month ago |
|
39e16824b9 | 1 month ago |
|
285e693a4e | 1 month ago |
|
940628bf36 | 1 month ago |
|
b5994e058a | 1 month ago |
|
22dabfd79e | 1 month ago |
|
0e41c3fa36 | 1 month ago |
|
124698854f | 2 months ago |
|
f223e668ce | 2 months ago |
|
f5b823a712 | 2 months ago |
|
4163542125 | 2 months ago |
|
6921c8391e | 2 months ago |
|
47a2020472 | 2 months ago |
|
9d38facf3b | 2 months ago |
|
a1be1aa9ec | 2 months ago |
|
c4bbe2bb4a | 2 months ago |
|
601695dede | 2 months ago |
|
cdc81e19a0 | 2 months ago |
|
b98b3a87b0 | 2 months ago |
|
425ef2cfe5 | 2 months ago |
|
c454685605 | 2 months ago |
|
c98926abf2 | 2 months ago |
|
7aacc97351 | 2 months ago |
|
c49e17ad40 | 2 months ago |
|
296b721929 | 2 months ago |
|
d0cf385f4b | 2 months ago |
|
b91f5a7430 | 2 months ago |
|
4d8431907d | 2 months ago |
|
b0cf5130a2 | 2 months ago |
|
396aa6944d | 2 months ago |
|
8a20d3219b | 2 months ago |
|
13a746162a | 2 months ago |
|
7e5370fbe5 | 2 months ago |
|
ec59308fad | 2 months ago |
|
5ed76b997c | 2 months ago |
|
535fbdb4c9 | 2 months ago |
|
034332a0ef | 2 months ago |
|
a1eac6f28e | 2 months ago |
|
ba22a940f1 | 2 months ago |
|
8439f6dc57 | 2 months ago |
|
a21bec0ed8 | 2 months ago |
|
5adbc2c3fe | 2 months ago |
|
c515f49903 | 2 months ago |
|
845b14f581 | 2 months ago |
|
cdfdfc9e24 | 2 months ago |
|
62d279e1b0 | 2 months ago |
|
a1fcd8af39 | 2 months ago |
|
8c6c954ea2 | 2 months ago |
|
77bb7432bc | 2 months ago |
|
720ffa8a31 | 2 months ago |
|
c1c69258c3 | 2 months ago |
|
733a4a2869 | 2 months ago |
|
ca3ac8c11d | 2 months ago |
|
d4e3991257 | 2 months ago |
|
648a884a18 | 2 months ago |
|
8fe989050e | 2 months ago |
|
bb6212ccc1 | 2 months ago |
|
5f39f65540 | 2 months ago |
|
146b3f52c0 | 2 months ago |
|
cc75ccd070 | 2 months ago |
|
0ddc514221 | 2 months ago |
|
d3b699d7cd | 2 months ago |
|
6592fab41c | 2 months ago |
|
02895d4cf5 | 2 months ago |
|
8b7941c4ce | 2 months ago |
|
de673464d1 | 2 months ago |
|
6ce2c30522 | 2 months ago |
|
c5a1e8cac8 | 2 months ago |
|
f67c38d8d2 | 2 months ago |
|
1f1a3270f7 | 2 months ago |
|
ffee29272f | 3 months ago |
|
2d2469c23d | 3 months ago |
|
8e80a8b06f | 3 months ago |
|
26fac94d05 | 3 months ago |
|
9a30068ae5 | 3 months ago |
|
04bccedd9b | 3 months ago |
|
b2e21a4f12 | 3 months ago |
|
57e46ba0cf | 3 months ago |
|
df3dc1f574 | 3 months ago |
|
1b5f67e185 | 3 months ago |
|
89064b6fb4 | 3 months ago |
|
c49dd712de | 3 months ago |
|
4f1cb74f75 | 3 months ago |
|
75df8d3c7b | 3 months ago |
|
85be76b01a | 3 months ago |
|
835c480269 | 3 months ago |
|
ac9d92c681 | 3 months ago |
|
a30d1972e5 | 3 months ago |
|
0c2330bf14 | 3 months ago |
|
a703d31893 | 3 months ago |
|
4f8f3a386f | 3 months ago |
|
83f0b9c041 | 3 months ago |
|
cf77be0eeb | 3 months ago |
|
b2aa34baa6 | 3 months ago |
|
4def0b6ea5 | 3 months ago |
|
25592a00b6 | 3 months ago |
|
edaf162f9c | 3 months ago |
|
e7ff15c573 | 3 months ago |
|
161ff3579b | 4 months ago |
|
f2085ecc8d | 4 months ago |
|
0c5dee69ba | 4 months ago |
|
d74033dd2b | 4 months ago |
|
5412e29ff5 | 4 months ago |
|
0236769134 | 4 months ago |
|
530a078535 | 4 months ago |
|
fbca27fe73 | 4 months ago |
|
08cc256c54 | 4 months ago |
|
6432963294 | 4 months ago |
|
59beb5e4e4 | 4 months ago |
|
217aa0c882 | 4 months ago |
|
e889dc1508 | 4 months ago |
|
2d06c0cbe6 | 4 months ago |
|
51446f0324 | 4 months ago |
|
66d0b7aec4 | 4 months ago |
|
92b49fb969 | 4 months ago |
|
17dd5c1285 | 4 months ago |
|
ce97ec1534 | 4 months ago |
|
3ceb64db2e | 4 months ago |
|
bb702700f7 | 4 months ago |
|
ff3fec9a00 | 4 months ago |
|
3873e60cbb | 4 months ago |
|
2dbf094433 | 4 months ago |
|
e85e96bc35 | 4 months ago |
|
98543af92b | 4 months ago |
|
af0d853ccd | 4 months ago |
|
20a5e19ea1 | 4 months ago |
|
f1058410fb | 4 months ago |
|
6ba42a0912 | 4 months ago |
|
1292ec67c0 | 4 months ago |
|
2f2f14e3a7 | 4 months ago |
|
edd9dd2c39 | 4 months ago |
|
f8722f17c6 | 4 months ago |
|
38cc01e13d | 4 months ago |
|
6ca266ff3b | 4 months ago |
|
b9773c88e4 | 4 months ago |
|
3311fe62bb | 4 months ago |
|
a284c85153 | 4 months ago |
|
e5f75eb61c | 4 months ago |
|
89f9bec49a | 4 months ago |
|
dbc3952654 | 4 months ago |
|
f3c052ed0c | 4 months ago |
|
692f495adc | 4 months ago |
|
aa1de7fe94 | 4 months ago |
|
ca45fe73e9 | 4 months ago |
|
a8af683643 | 4 months ago |
|
b86c83a068 | 4 months ago |
|
6656ef3c8d | 4 months ago |
|
6898d04a1d | 4 months ago |
|
3215125950 | 4 months ago |
|
3d03732555 | 4 months ago |
|
d6d440ba8a | 4 months ago |
|
821a76a7c5 | 4 months ago |
|
34154596f2 | 4 months ago |
|
a1dce017f4 | 4 months ago |
|
78af34237e | 4 months ago |
|
8874ea8033 | 4 months ago |
|
6bd1ee36f7 | 4 months ago |
|
f07c4bd1dd | 4 months ago |
|
8524a67895 | 4 months ago |
|
43d880752e | 4 months ago |
|
d4246edb82 | 4 months ago |
|
ee8449fa05 | 4 months ago |
|
5415598f60 | 4 months ago |
|
7d73c304b5 | 4 months ago |
|
d25206abce | 4 months ago |
|
5d7c6fb0b3 | 4 months ago |
|
36a060d50f | 4 months ago |
|
577ed56af0 | 4 months ago |
|
695dc96a83 | 4 months ago |
|
e5251bf3c3 | 4 months ago |
|
2692aef53d | 4 months ago |
|
d524105727 | 4 months ago |
|
26463c50fc | 4 months ago |
|
b092e712ec | 4 months ago |
|
cb8fbb0135 | 4 months ago |
|
19e23b34da | 4 months ago |
|
a4a3f8e96b | 4 months ago |
|
f2b720617c | 4 months ago |
|
d677d67676 | 4 months ago |
|
7e3157b162 | 4 months ago |
|
2b6a95cbee | 4 months ago |
|
900153765a | 4 months ago |
|
441e847de8 | 4 months ago |
|
6439e227f6 | 4 months ago |
|
def404b61a | 4 months ago |
|
d8be5b8ce1 | 4 months ago |
|
dddbca6ffb | 5 months ago |
|
56619caa71 | 5 months ago |
|
0e502c49b5 | 5 months ago |
|
710b27688b | 5 months ago |
|
a9ad6fc31e | 5 months ago |
|
967627e58a | 5 months ago |
|
7691a5b4a9 | 5 months ago |
|
d9b6262a6e | 5 months ago |
|
075f80aea2 | 5 months ago |
|
b07530a8a1 | 5 months ago |
|
0ae7931a6f | 5 months ago |
|
158160f5c0 | 5 months ago |
|
4cb2ad48be | 5 months ago |
|
adba3987f8 | 5 months ago |
|
36dbc15bca | 5 months ago |
|
d96803a290 | 5 months ago |
|
592d6ae4f4 | 5 months ago |
|
7dd9a7a0af | 5 months ago |
|
1b23aa2d7b | 5 months ago |
|
f980277552 | 5 months ago |
|
586695673b | 5 months ago |
|
c158bbe90a | 5 months ago |
|
c01fd3299f | 5 months ago |
|
f64b136f5a | 5 months ago |
|
37e67cbcaa | 5 months ago |
|
be815804e6 | 5 months ago |
|
ce35637866 | 5 months ago |
|
de2b0f6e09 | 5 months ago |
|
7b776666a3 | 5 months ago |
|
47578b69c6 | 5 months ago |
|
8f28cee32f | 5 months ago |
|
96cf6ca531 | 5 months ago |
|
83cb3a1820 | 5 months ago |
|
ffdd5935e9 | 5 months ago |
|
2e9f2d4a3b | 5 months ago |
|
0ca782ed71 | 5 months ago |
|
e40b656ecf | 5 months ago |
|
85f5f5b91e | 5 months ago |
|
f008478505 | 5 months ago |
|
d926a31064 | 5 months ago |
|
822cb35efe | 5 months ago |
|
faaa8115d9 | 5 months ago |
|
81015a5228 | 5 months ago |
|
a3246cd9dc | 5 months ago |
|
530c353b00 | 5 months ago |
|
75c2cb751f | 5 months ago |
|
67c4d4bcaa | 5 months ago |
|
25e82105b2 | 5 months ago |
|
4b167fdbaf | 5 months ago |
|
5b93558bd0 | 5 months ago |
|
70639f1139 | 5 months ago |
|
c5a1806528 | 5 months ago |
|
a2249f0a82 | 5 months ago |
|
9f217f8a11 | 5 months ago |
|
5e19e361e7 | 5 months ago |
|
0b47f65b06 | 5 months ago |
|
140146e433 | 5 months ago |
|
b4484c8e8f | 5 months ago |
|
1e5604ed43 | 5 months ago |
|
39e378a03d | 5 months ago |
|
7cfcb12c7b | 5 months ago |
|
49f4dc53ad | 6 months ago |
|
4afdca090d | 6 months ago |
|
d8f6c4a93d | 6 months ago |
|
d724948d03 | 6 months ago |
|
34d75b08dd | 6 months ago |
|
ca9782dd0d | 6 months ago |
|
2ad26dd4c9 | 6 months ago |
|
828facab57 | 6 months ago |
|
cd087568b5 | 6 months ago |
|
dfe8b25e5e | 6 months ago |
|
1e9bcd6b8b | 6 months ago |
|
8bc58daa5a | 6 months ago |
|
3b97feb89f | 6 months ago |
|
a8135b8d18 | 6 months ago |
|
5cf1961fa4 | 6 months ago |
|
577c71b930 | 6 months ago |
|
c5cab05a6b | 6 months ago |
|
b855c71891 | 6 months ago |
|
21f41a2b2a | 6 months ago |
|
8319dd6b25 | 6 months ago |
|
d4c47d90cb | 6 months ago |
|
302af823a3 | 6 months ago |
|
69ee6112b3 | 6 months ago |
|
816a58f292 | 6 months ago |
|
43e130ee34 | 6 months ago |
|
8ffc1486a4 | 6 months ago |
|
0e98dd5c70 | 6 months ago |
|
beffdb9fe1 | 6 months ago |
|
05eda2bc9e | 6 months ago |
|
c3429bb1a9 | 6 months ago |
|
53c6b10177 | 6 months ago |
|
c2d7133174 | 6 months ago |
|
9b82265cd8 | 6 months ago |
|
c802c2deb0 | 7 months ago |
|
c215f2e8d1 | 7 months ago |
|
d327533b56 | 7 months ago |
|
94255ebaf4 | 7 months ago |
|
21259204b1 | 8 months ago |
|
8d6eb5b6b2 | 8 months ago |
|
9632e7ba03 | 8 months ago |
|
1a02819187 | 8 months ago |
|
6b33250c59 | 8 months ago |
|
083034fa35 | 8 months ago |
|
0021501d75 | 8 months ago |
|
379be2a29e | 8 months ago |
|
a3f62e1d71 | 8 months ago |
|
a6ee1e648e | 8 months ago |
|
575268d360 | 8 months ago |
|
69b0bef206 | 8 months ago |
|
e1b4feb618 | 8 months ago |
|
3286bdb4a7 | 8 months ago |
|
c8ae15041f | 8 months ago |
|
e090b9052a | 8 months ago |
|
0ef9c08326 | 8 months ago |
|
d04b19d77c | 8 months ago |
|
04adc14b76 | 9 months ago |
|
0dee0609ea | 9 months ago |
|
0a519d8072 | 9 months ago |
|
0cc91dd2d2 | 9 months ago |
|
606e35eec1 | 9 months ago |
|
e926b0392f | 9 months ago |
|
9980bfa0e7 | 9 months ago |
|
efdbe26755 | 9 months ago |
|
bb3ae8f5e4 | 9 months ago |
|
1e6edf06a2 | 9 months ago |
|
0cf656cd76 | 9 months ago |
|
fb420bb563 | 9 months ago |
|
3da5061426 | 9 months ago |
|
dd32f1ed6d | 10 months ago |
|
1857f14be8 | 10 months ago |
|
9c25a88707 | 10 months ago |
|
c599d65307 | 10 months ago |
|
4d573f6655 | 10 months ago |
|
3a4238729a | 10 months ago |
|
df6bb6d9b8 | 10 months ago |
|
918aa556ef | 10 months ago |
|
1e7feae0df | 10 months ago |
|
70829ee79e | 10 months ago |
|
4ed19c05f6 | 10 months ago |
|
4a5e16b994 | 10 months ago |
|
c53ad2012c | 10 months ago |
|
7b6aa41ca8 | 10 months ago |
|
32c5ff23a6 | 10 months ago |
|
c112276eea | 10 months ago |
|
662a59d0fd | 11 months ago |
|
72919ec076 | 11 months ago |
|
627b8dca83 | 11 months ago |
|
7bcc905f05 | 11 months ago |
|
8447822c35 | 11 months ago |
|
411063e3b5 | 11 months ago |
|
9bac680f2a | 11 months ago |
|
38795a41cb | 11 months ago |
|
e170c39dfc | 11 months ago |
|
68f4961f1a | 11 months ago |
|
ae5239de43 | 11 months ago |
|
2064504cce | 11 months ago |
|
4aa631c33f | 11 months ago |
|
d6834d6a9a | 11 months ago |
|
413e25f20e | 11 months ago |
|
b8e19bf5f1 | 11 months ago |
|
c7efd465fa | 11 months ago |
|
6e9a3422e9 | 11 months ago |
|
d3cd8517b7 | 12 months ago |
|
f13cc0b862 | 12 months ago |
|
0754255c1f | 12 months ago |
|
902899ae24 | 12 months ago |
|
c620fc1232 | 12 months ago |
|
e7157cf15e | 12 months ago |
|
940a97db11 | 12 months ago |
|
8e63f8f333 | 12 months ago |
|
5e97b54d1b | 12 months ago |
|
ea7cf1cf69 | 12 months ago |
|
17c4038c60 | 12 months ago |
|
5022a9c610 | 12 months ago |
|
ca8ec6286a | 12 months ago |
|
5142459e12 | 12 months ago |
|
8590dbd3d3 | 12 months ago |
|
c4be5f7fdb | 12 months ago |
|
47dc5591b9 | 12 months ago |
|
2bb48b4546 | 12 months ago |
|
638e9b4d7f | 12 months ago |
|
b8f998f76a | 12 months ago |
|
5f43026986 | 12 months ago |
|
13f263b791 | 1 year ago |
|
07c529173e | 1 year ago |
|
fee940238a | 1 year ago |
|
ca02b5d860 | 1 year ago |
|
fba23a4528 | 1 year ago |
|
a0795d8534 | 1 year ago |
|
03cc6e0524 | 1 year ago |
|
3af1f4bc76 | 1 year ago |
|
52b2d6c393 | 1 year ago |
|
bb52056aec | 1 year ago |
|
75aa9f2c0c | 1 year ago |
|
4e426727e9 | 1 year ago |
|
09f233dbfb | 1 year ago |
|
dfe5df29e1 | 1 year ago |
|
d5ee1f602f | 1 year ago |
|
86173400d5 | 1 year ago |
|
ae439b5385 | 1 year ago |
|
dc6a42c26f | 1 year ago |
|
fdf38f45d9 | 1 year ago |
|
a2726cf206 | 1 year ago |
|
e56d243c3f | 1 year ago |
|
e95fb3ab89 | 1 year ago |
|
c984f89dfb | 1 year ago |
|
5a09c11e90 | 1 year ago |
|
d44be2fd73 | 1 year ago |
|
a158647153 | 1 year ago |
|
623c3f4605 | 1 year ago |
|
8a52295882 | 1 year ago |
|
f2bc2598dc | 1 year ago |
|
1d8a91c5cc | 1 year ago |
|
3bc56ba423 | 1 year ago |
|
e068a3cf22 | 1 year ago |
|
2e2cbe7803 | 1 year ago |
|
1c1452e06b | 1 year ago |
|
c757b6d020 | 1 year ago |
|
8fcab7b0c1 | 1 year ago |
|
7646147ed2 | 1 year ago |
|
b6de474fda | 1 year ago |
|
2f74e670a5 | 1 year ago |
|
c1168c2aa0 | 1 year ago |
|
1bd6390f78 | 1 year ago |
|
a9e9e14c42 | 1 year ago |
|
19471dbb90 | 1 year ago |
|
3b13a3f2a1 | 1 year ago |
|
4ce2ef1d83 | 1 year ago |
|
12d0abda55 | 1 year ago |
|
7418f11651 | 1 year ago |
|
fb83ca42f4 | 1 year ago |
|
dab34e9051 | 1 year ago |
|
ec2297ed9d | 1 year ago |
|
7c535159bc | 1 year ago |
|
2af4a2b58d | 1 year ago |
|
ead6a6dca3 | 1 year ago |
|
0ce15ffc91 | 1 year ago |
|
76adac31c3 | 1 year ago |
|
edfcd23b01 | 1 year ago |
|
f21e1c75d5 | 1 year ago |
|
786c27c8ec | 1 year ago |
|
c34df2090c | 1 year ago |
|
5769a41208 | 1 year ago |
|
dc265367dc | 1 year ago |
|
c22fc75370 | 1 year ago |
|
6206616347 | 1 year ago |
|
7a12b5ca4b | 1 year ago |
|
b77ae08388 | 1 year ago |
|
527ee3b3c5 | 1 year ago |
|
cd5bfaabb5 | 1 year ago |
|
e20acb93cf | 1 year ago |
|
132557f941 | 1 year ago |
|
b8d21a1282 | 1 year ago |
|
4ebc7c970a | 1 year ago |
|
572694b141 | 1 year ago |
|
c1f19cb258 | 1 year ago |
|
caff003a85 | 1 year ago |
|
d580c0155a | 1 year ago |
|
9475a22728 | 1 year ago |
|
e3fb9d8483 | 1 year ago |
|
220ef283de | 1 year ago |
|
8178df752b | 1 year ago |
|
922e5915b1 | 1 year ago |
|
dc6499aa98 | 1 year ago |
|
0c8a80b6f8 | 1 year ago |
|
7c2da75197 | 1 year ago |
|
b8032e7fbf | 1 year ago |
|
b42be2b391 | 1 year ago |
|
a3bdc4ddc1 | 1 year ago |
|
2abc997af8 | 1 year ago |
|
710a35993d | 1 year ago |
|
e36d5634e7 | 1 year ago |
|
354a04f0f6 | 1 year ago |
|
a80aeb6715 | 1 year ago |
|
cd1af85e39 | 1 year ago |
|
60e648bf9a | 1 year ago |
|
c45e31b1b2 | 1 year ago |
|
6d204b4d7b | 1 year ago |
|
71bad23906 | 1 year ago |
|
d91d734b5c | 1 year ago |
|
5fee6df87a | 1 year ago |
|
644d65054d | 1 year ago |
|
f41563a700 | 1 year ago |
|
32b54fa1f8 | 1 year ago |
|
084663d6ea | 1 year ago |
|
55b2f2c625 | 1 year ago |
|
5ad9c8e740 | 1 year ago |
|
e96f0bfb14 | 1 year ago |
|
8677cd54bd | 1 year ago |
|
b97ef1af49 | 1 year ago |
|
227697c388 | 1 year ago |
|
a6bd8275ca | 1 year ago |
|
6f01ebc0a5 | 1 year ago |
|
98f06e3ba1 | 1 year ago |
|
b6d1d8117b | 1 year ago |
|
7b35c793f3 | 1 year ago |
|
58ef08310d | 1 year ago |
|
ec5c13a95e | 1 year ago |
|
0a564d153a | 1 year ago |
|
0a8da6bc2f | 1 year ago |
|
46e4f4aea5 | 1 year ago |
|
6d7f20961f | 1 year ago |
|
4b7fcdc719 | 1 year ago |
|
716926f0d7 | 1 year ago |
|
24a14e3440 | 1 year ago |
|
5470a3a453 | 1 year ago |
|
c02c9c3c24 | 1 year ago |
|
3154eda6a6 | 1 year ago |
|
d50cf0ad83 | 1 year ago |
|
d6ed9152ee | 1 year ago |
|
a4759694c8 | 1 year ago |
|
6610af08c2 | 1 year ago |
|
4db643aa8e | 1 year ago |
|
75c9f596b2 | 1 year ago |
|
064c013a72 | 1 year ago |
|
75ab385ab7 | 1 year ago |
|
9e0389df1b | 1 year ago |
|
1b921a2eac | 1 year ago |
|
f2729b3efe | 1 year ago |
|
231c02c058 | 1 year ago |
|
a199084c99 | 1 year ago |
|
64f0a545fd | 1 year ago |
|
34617bcb44 | 1 year ago |
|
5f8820d9d6 | 1 year ago |
|
10dfe39f5f | 1 year ago |
|
b7f0d87daf | 1 year ago |
|
3ff1adf597 | 1 year ago |
|
93d89a1fe0 | 1 year ago |
|
3c9a574e90 | 1 year ago |
|
de82b3ae19 | 1 year ago |
|
4b421d3feb | 1 year ago |
|
f84d88ac63 | 1 year ago |
|
2e62f9532f | 1 year ago |
|
5657079355 | 1 year ago |
|
bd63383d7f | 1 year ago |
|
db0f2fab11 | 1 year ago |
|
f33b0cad2e | 1 year ago |
|
e3fbc246f4 | 1 year ago |
|
d602ea1061 | 1 year ago |
|
d40cd00cdb | 1 year ago |
|
692600dfac | 1 year ago |
|
95cc544c92 | 1 year ago |
|
8544283110 | 1 year ago |
|
abf687ff09 | 1 year ago |
|
be2629aa5a | 1 year ago |
|
ebee6c5f13 | 1 year ago |
|
3adff82d4a | 1 year ago |
|
200ad5524d | 1 year ago |
|
82ac0aa492 | 1 year ago |
|
b8a99878b6 | 1 year ago |
|
eaca435a5b | 1 year ago |
|
ce05cce331 | 1 year ago |
|
e190dab7d6 | 1 year ago |
|
289c308600 | 1 year ago |
|
bff12b06f4 | 1 year ago |
|
b8590075e6 | 1 year ago |
|
1da9e2e1c0 | 1 year ago |
|
a1fb97cfad | 1 year ago |
|
e53fe2d988 | 1 year ago |
|
182a721674 | 1 year ago |
|
00c75a7afa | 1 year ago |
|
385e592045 | 1 year ago |
|
359781c698 | 1 year ago |
|
c6c7191682 | 1 year ago |
|
fa286a6fb3 | 1 year ago |
|
02a36a9fa8 | 1 year ago |
|
77142e59ee | 1 year ago |
|
4156900fb5 | 1 year ago |
|
76d39cc7c9 | 1 year ago |
|
9e0c5d67c7 | 1 year ago |
|
03111ad0df | 1 year ago |
|
abb81c353d | 1 year ago |
|
1ad38c0b95 | 1 year ago |
|
532a29b0c4 | 1 year ago |
|
4f3a416e37 | 1 year ago |
|
4d0ad47491 | 1 year ago |
|
7b632bd03d | 1 year ago |
|
c2faa5c614 | 1 year ago |
|
d15581d95e | 1 year ago |
|
7bde4de1f5 | 1 year ago |
|
88f19f551d | 1 year ago |
|
d79bdc9f66 | 1 year ago |
|
48a3c767e5 | 1 year ago |
|
86fc12e395 | 1 year ago |
|
3c65012a63 | 1 year ago |
|
97b7ea0da5 | 1 year ago |
|
1c4cc02c23 | 1 year ago |
|
ac94341203 | 1 year ago |
|
234540f9e7 | 1 year ago |
|
cb44a35fde | 1 year ago |
|
6ac849fe37 | 1 year ago |
|
0829b186b7 | 1 year ago |
|
993900aa77 | 1 year ago |
|
aac9a8d18f | 1 year ago |
|
2baaa8bb8f | 1 year ago |
|
f29ef2c057 | 1 year ago |
|
d1c98c58b9 | 1 year ago |
|
4930157e93 | 1 year ago |
|
d30d1e8a7d | 1 year ago |
|
80a55c5b75 | 1 year ago |
|
3c02cade58 | 1 year ago |
|
21123e2afa | 1 year ago |
|
f1415c2234 | 1 year ago |
|
212a1156a1 | 1 year ago |
|
54fb234424 | 1 year ago |
|
5a6b50ae51 | 1 year ago |
|
21542e8150 | 1 year ago |
|
544fcd147f | 1 year ago |
|
9bc3b11b96 | 1 year ago |
|
02e7f6b0c3 | 1 year ago |
|
f7101cc260 | 1 year ago |
|
e9f0ed6473 | 1 year ago |
|
4960587f46 | 1 year ago |
|
bf8eecf407 | 1 year ago |
|
09a1a78bd6 | 1 year ago |
|
7df2ed6114 | 1 year ago |
|
22b1066b0a | 1 year ago |
|
89695a7040 | 1 year ago |
|
2ed281472f | 1 year ago |
|
fafdb0c590 | 1 year ago |
|
2a6883e305 | 1 year ago |
|
3cee8bfcb2 | 1 year ago |
|
86dbfdb536 | 1 year ago |
|
70fec2bc99 | 1 year ago |
|
8a106eb09e | 1 year ago |
|
f9331897b8 | 1 year ago |
|
126ca0209b | 1 year ago |
|
ad5540c9f3 | 1 year ago |
|
e91d0bbec8 | 1 year ago |
|
8ee461f60a | 1 year ago |
|
4de6201b84 | 1 year ago |
|
273aa31b1e | 1 year ago |
|
b31f52e332 | 1 year ago |
|
4fae7b8d65 | 1 year ago |
|
5479ddd03c | 1 year ago |
|
1f23584c24 | 1 year ago |
|
067fb45a25 | 1 year ago |
|
ac287a896c | 1 year ago |
|
8baf62eb2c | 1 year ago |
|
e1ec79daf2 | 1 year ago |
|
d4426118c5 | 1 year ago |
|
64fe56aa07 | 1 year ago |
|
47eb49c34e | 1 year ago |
|
cd6d86c8c3 | 1 year ago |
|
84d4e074ce | 1 year ago |
|
a0e71c4173 | 1 year ago |
|
533c8a8a55 | 1 year ago |
|
a57ae4dc56 | 1 year ago |
|
88dfe3ca4e | 1 year ago |
|
d68c7f8ea7 | 1 year ago |
|
e8ace998ba | 1 year ago |
|
e8be39af17 | 1 year ago |
|
7196db09d6 | 1 year ago |
|
b290ee1aa0 | 1 year ago |
|
d105ab11af | 1 year ago |
|
bc888167a7 | 1 year ago |
|
6ca6591c43 | 1 year ago |
|
36cb707e47 | 1 year ago |
|
013d5ff74f | 1 year ago |
|
9af5a90757 | 1 year ago |
|
d8b6f5438c | 1 year ago |
|
10030a4e0d | 1 year ago |
|
993dc72ce6 | 1 year ago |
|
324ace103b | 1 year ago |
|
d530269e4f | 1 year ago |
|
7146a4dbae | 1 year ago |
|
f79900653b | 1 year ago |
|
f172f44f32 | 1 year ago |
|
f34abe60fa | 1 year ago |
|
a3c305032a | 1 year ago |
|
2921eaa055 | 1 year ago |
|
1cc68ea402 | 1 year ago |
|
c18e8f6c78 | 1 year ago |
|
e59ca8420e | 1 year ago |
|
a6f9a56e40 | 1 year ago |
|
4011502f5f | 2 years ago |
|
acd6af709e | 2 years ago |
|
55704ece3a | 2 years ago |
|
0d3ede56cb | 2 years ago |
|
06fae976b3 | 2 years ago |
|
e95035c143 | 2 years ago |
|
55be5c74f0 | 2 years ago |
|
a1c16e129d | 2 years ago |
|
66f82cb43f | 2 years ago |
@ -1,32 +1,61 @@
|
||||
name: Build Debian packages
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
paths:
|
||||
- .github/workflows/build-deb.yml
|
||||
- contrib/**
|
||||
- daemon/**
|
||||
- debian/**
|
||||
- i18n/**
|
||||
- libi2pd/**
|
||||
- libi2pd_client/**
|
||||
- Makefile
|
||||
- Makefile.linux
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: ${{ matrix.dist }}
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
dist: ['buster', 'bullseye', 'bookworm']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: change debian changelog
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install devscripts
|
||||
debchange -v "`git describe --tags`-${{ matrix.dist }}" -b -M --distribution ${{ matrix.dist }} "trunk build"
|
||||
- uses: jtdor/build-deb-action@v1
|
||||
|
||||
- name: Commit Hash
|
||||
id: commit
|
||||
uses: prompt/actions-commit-hash@v3.0.0
|
||||
|
||||
- name: Build package
|
||||
uses: jtdor/build-deb-action@v1
|
||||
with:
|
||||
docker-image: debian:${{ matrix.dist }}-slim
|
||||
buildpackage-opts: --build=binary --no-sign
|
||||
- uses: actions/upload-artifact@v3
|
||||
before-build-hook: debchange --controlmaint --local "+${{ steps.commit.outputs.short }}~${{ matrix.dist }}" -b --distribution ${{ matrix.dist }} "CI build"
|
||||
extra-build-deps: devscripts git
|
||||
|
||||
- name: Upload package
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: i2pd_${{ matrix.dist }}
|
||||
path: debian/artifacts/i2pd_*.deb
|
||||
- uses: actions/upload-artifact@v3
|
||||
|
||||
- name: Upload debugging symbols
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: i2pd-dbgsym_${{ matrix.dist }}
|
||||
path: debian/artifacts/i2pd-dbgsym_*.deb
|
||||
|
@ -1,21 +1,45 @@
|
||||
name: Build on OSX
|
||||
|
||||
on: [push, pull_request]
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
paths:
|
||||
- .github/workflows/build-osx.yml
|
||||
- daemon/**
|
||||
- i18n/**
|
||||
- libi2pd/**
|
||||
- libi2pd_client/**
|
||||
- Makefile
|
||||
- Makefile.homebrew
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: With USE_UPNP=${{ matrix.with_upnp }}
|
||||
runs-on: macOS-latest
|
||||
|
||||
strategy:
|
||||
fail-fast: true
|
||||
matrix:
|
||||
with_upnp: ['yes', 'no']
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: install packages
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install required formulae
|
||||
run: |
|
||||
find /usr/local/bin -lname '*/Library/Frameworks/Python.framework/*' -delete
|
||||
brew update
|
||||
brew install boost miniupnpc openssl@1.1
|
||||
- name: build application
|
||||
|
||||
- name: List installed formulae
|
||||
run: brew list
|
||||
|
||||
- name: Build application
|
||||
run: make HOMEBREW=1 USE_UPNP=${{ matrix.with_upnp }} PREFIX=$GITHUB_WORKSPACE/output -j3
|
||||
|
@ -0,0 +1,80 @@
|
||||
name: Build on Windows with MSVC
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- '*'
|
||||
paths:
|
||||
- .github/workflows/build-windows-msvc.yml
|
||||
- build/CMakeLists.txt
|
||||
- build/cmake_modules/**
|
||||
- daemon/**
|
||||
- i18n/**
|
||||
- libi2pd/**
|
||||
- libi2pd_client/**
|
||||
- Win32/**
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
branches:
|
||||
- '*'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: Build
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
boost_path: ${{ github.workspace }}\boost_1_83_0
|
||||
openssl_path: ${{ github.workspace }}\openssl_3_2_1
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Build and install zlib
|
||||
run: |
|
||||
powershell -Command "(Invoke-WebRequest -Uri https://raw.githubusercontent.com/r4sas/zlib.install/master/install.bat -OutFile install_zlib.bat)"
|
||||
powershell -Command "(Get-Content install_zlib.bat) | Set-Content install_zlib.bat" # fixing line endings
|
||||
set BUILD_TYPE=Debug
|
||||
./install_zlib.bat
|
||||
set BUILD_TYPE=Release
|
||||
./install_zlib.bat
|
||||
del install_zlib.bat
|
||||
|
||||
- name: Install Boost
|
||||
run: |
|
||||
powershell -Command "(Start-BitsTransfer -Source https://sourceforge.net/projects/boost/files/boost-binaries/1.83.0/boost_1_83_0-msvc-14.3-64.exe/download -Destination boost_1_83_0-msvc-14.3-64.exe)"
|
||||
./boost_1_83_0-msvc-14.3-64.exe /DIR="${{env.boost_path}}" /VERYSILENT /SUPPRESSMSGBOXES /SP-
|
||||
|
||||
- name: Install OpenSSL
|
||||
run: |
|
||||
powershell -Command "(Start-BitsTransfer -Source https://slproweb.com/download/Win64OpenSSL-3_2_1.exe -Destination Win64OpenSSL-3_2_1.exe)"
|
||||
./Win64OpenSSL-3_2_1.exe /DIR="${{env.openssl_path}}" /TASKS="copytobin" /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-
|
||||
|
||||
- name: Make copy of the OpenSSL libraries for CMake
|
||||
run: |
|
||||
dir ${{ github.workspace }}
|
||||
dir ${{env.openssl_path}}\lib\VC
|
||||
dir ${{env.openssl_path}}\lib\VC\x64\
|
||||
dir ${{env.openssl_path}}\lib\VC\x64\MTd\
|
||||
xcopy /s /y "${{env.openssl_path}}\lib\VC\x64\MTd" "${{env.openssl_path}}\lib"
|
||||
|
||||
- name: Configure
|
||||
working-directory: build
|
||||
run: cmake -DBoost_ROOT="${{env.boost_path}}" -DOPENSSL_ROOT_DIR="${{env.openssl_path}}" -DWITH_STATIC=ON .
|
||||
|
||||
- name: Build
|
||||
working-directory: build
|
||||
run: cmake --build . --config Debug -- -m
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: i2pd-msvc
|
||||
path: build/Debug/i2pd.*
|
||||
|
@ -0,0 +1,10 @@
|
||||
CXX = g++
|
||||
CXXFLAGS := -Wall -std=c++11
|
||||
INCFLAGS = -I/system/develop/headers
|
||||
DEFINES = -D_DEFAULT_SOURCE -D_GNU_SOURCE
|
||||
LDLIBS = -lbe -lbsd -lnetwork -lz -lcrypto -lssl -lboost_system -lboost_date_time -lboost_filesystem -lboost_program_options -lpthread
|
||||
|
||||
ifeq ($(USE_UPNP),yes)
|
||||
DEFINES += -DUSE_UPNP
|
||||
LDLIBS += -lminiupnpc
|
||||
endif
|
@ -1,36 +1,36 @@
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
#include "winres.h"
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""winres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
MAINICON ICON "mask.ico"
|
||||
#endif // English (United States) resources
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
#include "Resource.rc2"
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
#include "winres.h"
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
1 TEXTINCLUDE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE
|
||||
BEGIN
|
||||
"#include ""winres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
MAINICON ICON "mask.ico"
|
||||
#endif // English (United States) resources
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
#include "Resource.rc2"
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 25 KiB |
@ -0,0 +1,16 @@
|
||||
# read version
|
||||
|
||||
function(set_version version_file output_var)
|
||||
file(READ "${version_file}" version_data)
|
||||
|
||||
string(REGEX MATCH "I2PD_VERSION_MAJOR ([0-9]*)" _ ${version_data})
|
||||
set(version_major ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "I2PD_VERSION_MINOR ([0-9]*)" _ ${version_data})
|
||||
set(version_minor ${CMAKE_MATCH_1})
|
||||
|
||||
string(REGEX MATCH "I2PD_VERSION_MICRO ([0-9]*)" _ ${version_data})
|
||||
set(version_micro ${CMAKE_MATCH_1})
|
||||
|
||||
set(${output_var} "${version_major}.${version_minor}.${version_micro}" PARENT_SCOPE)
|
||||
endfunction()
|
@ -0,0 +1,42 @@
|
||||
# _________________________________________
|
||||
# / Copy this file to the right location \
|
||||
# | then load with: |
|
||||
# | |
|
||||
# | apparmor_parser -r -W |
|
||||
# | /etc/apparmor.d/docker-i2pd |
|
||||
# | |
|
||||
# | docker run --security-opt |
|
||||
# | "apparmor=docker-i2pd" ... |
|
||||
# | purplei2p/i2pd |
|
||||
# | |
|
||||
# \ And "aa-status" to verify it's loaded. /
|
||||
# -----------------------------------------
|
||||
# \ ^__^
|
||||
# \ (oo)\_______
|
||||
# (__)\ )\/\
|
||||
# ||----w |
|
||||
# || ||
|
||||
|
||||
#include <tunables/global>
|
||||
|
||||
profile docker-i2pd flags=(attach_disconnected,mediate_deleted) {
|
||||
#include <abstractions/base>
|
||||
#include <abstractions/openssl>
|
||||
#include <abstractions/nameservice>
|
||||
|
||||
/bin/busybox ix,
|
||||
/usr/local/bin/i2pd ix,
|
||||
/entrypoint.sh ixr,
|
||||
|
||||
/i2pd_certificates/** r,
|
||||
|
||||
/home/i2pd/data/** rw,
|
||||
|
||||
/home/i2pd/data/i2pd.pid k,
|
||||
|
||||
deny /home/i2pd/data/i2pd.conf w,
|
||||
deny /home/i2pd/data/tunnels.conf w,
|
||||
deny /home/i2pd/data/tunnels.d/** w,
|
||||
deny /home/i2pd/data/certificates/** w,
|
||||
deny /home/i2pd/data/i2pd.log r,
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIF1zCCA7+gAwIBAgIRAMDqFR09Xuj8ZUu+oetSvAEwDQYJKoZIhvcNAQELBQAw
|
||||
dTELMAkGA1UEBhMCWFgxCzAJBgNVBAcTAlhYMQswCQYDVQQJEwJYWDEeMBwGA1UE
|
||||
ChMVSTJQIEFub255bW91cyBOZXR3b3JrMQwwCgYDVQQLEwNJMlAxHjAcBgNVBAMM
|
||||
FWFkbWluQHN0b3JteWNsb3VkLm9yZzAeFw0yNDAxMjUxNDE1MzBaFw0zNDAxMjUx
|
||||
NDE1MzBaMHUxCzAJBgNVBAYTAlhYMQswCQYDVQQHEwJYWDELMAkGA1UECRMCWFgx
|
||||
HjAcBgNVBAoTFUkyUCBBbm9ueW1vdXMgTmV0d29yazEMMAoGA1UECxMDSTJQMR4w
|
||||
HAYDVQQDDBVhZG1pbkBzdG9ybXljbG91ZC5vcmcwggIiMA0GCSqGSIb3DQEBAQUA
|
||||
A4ICDwAwggIKAoICAQDbGX+GikPzQXr9zvkrhfO9g0l49KHLNQhUKYqd6T+PfnGo
|
||||
Fm0d3ZZVVQZ045vWgroOXDGGZZWxUIlb2inRaR2DF1TxN3pPYt59RgY9ZQ9+TL7o
|
||||
isY91krCRygY8EcAmHIjlfZQ9dBVcL7CfyT0MYZA5Efee9+NDHSewTfQP9T2faIE
|
||||
83Fcyd93a2mIHYjKUbJnojng/wgsy8srbsEuuTok4MIQmDj+B5nz+za2FgI0/ydh
|
||||
srlMt4aGJF4/DIem9z9d0zBCOkwrmtFIzjNF1mOSA8ES4m5YnKA/y9rZlRidLPGu
|
||||
prbXhPVnqHeOnHMz2QCw1wbVo504kl0bMqyEz2tVWsO9ep7iZoQs2xkFAEaegYNT
|
||||
QLUpwVGlyuq3wXXwopFRffOSimGSazICwWI6j+K0pOtgefNJaWrqKYvtkj1SbK2L
|
||||
LBNUIENz6VnB7KPRckuX6zxC8PpOiBK9BcftfO+xAz/wC6qq3riBPw30KKSym0nC
|
||||
Zp5KciDn4Phtw9PGq8Bkl8SyWl0jtFnfTB1tzJkisf2qKcNHaFTEe2JW763YLbh/
|
||||
AU+8X8evFu40qLgvOgKoyy5DLy6i8zetX+3t9K0Fxt9+Vzzq6lm5V/RS8iIPPn+M
|
||||
q1/3Z5kD0KQBG9h/Gl8BH+lB71ZxPAOZ3SMu8DJZcxBLVmDWqQPCr5CKnoz0swID
|
||||
AQABo2IwYDAOBgNVHQ8BAf8EBAMCAoQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsG
|
||||
AQUFBwMBMA8GA1UdEwEB/wQFMAMBAf8wHgYDVR0OBBcEFWFkbWluQHN0b3JteWNs
|
||||
b3VkLm9yZzANBgkqhkiG9w0BAQsFAAOCAgEARWOJ69vTHMneSXYscha+4Ytjg0RM
|
||||
faewJNEGj8qy/Qvh9si2bWYNPRK6BlbHFS7pRYBLAnhaeLBGVv1CCR6GUMMe74zQ
|
||||
UuMeAoWU6qMDmB3GfYoZJh8sIxpwHqyJeTdeccRbZ4sX4F6u3IHPXYiU/AgbYqH7
|
||||
pYXQg2lCjXZYaDFAlEf5SlYUDOhhXe5kR8Edhlrsu32/JzA1DQK0JjxKCBp+DQmA
|
||||
ltdOpQtAg03fHP4ssdj7VvjIDl28iIlATwBvHrdNm7T0tYWn6TWhvxbRqvfTxfaH
|
||||
MvxnPdIJwNP4/9TyQkwjwHb1h+ucho3CnxI/AxspdOvT1ElMhP6Ce6rcS9pk11Rl
|
||||
x0ChsqpWwDg7KYpg0qZFSKCTBp4zBq9xoMJ6BQcgMfyl736WbsCzFTEyfifp8beg
|
||||
NxUa/Qk7w7cuSPGyMIKNOmOR7FLlFbtocy8sXVsUQdqnp/edelufdNe39U9uNtY6
|
||||
yoXI9//Tc6NgOwy2Oyia0slZ5qHRkB7e4USXMRzJ3p4q9eCVKjAJs81Utp7O2U+9
|
||||
vhbhwWP8CAnNTT1E5WS6EKtfrdqF7wjkV+noPGLDGmrXi01J1fSMAjMfVO+7/LOL
|
||||
UN+G4ybKWnEhhOO27yidN8Xx6UrCS23DBlPPQAeA74dTsTExiOxf1o1EXzcQiMyO
|
||||
LAj3/Ojbi1xkWhI=
|
||||
-----END CERTIFICATE-----
|
@ -0,0 +1,34 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
+XBgkaYA4iEwYKqlCQ==
|
||||
-----END CERTIFICATE-----
|
@ -1,33 +1,33 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
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
|
||||
-----END CERTIFICATE-----
|
||||
|
@ -1,2 +1,5 @@
|
||||
This forder contain systemd unit files.
|
||||
To use systemd daemon control, place files from this directory to debian folder before building package.
|
||||
This forder contain files required for building debian packages.
|
||||
|
||||
The trunk repository is contains the packaging files for the latest stable version of Debian (if we not forgot to update them).
|
||||
|
||||
Files in subdirectories contains fixes to make possible to build package on specific versions of Debian/Ubuntu. They are used when building the release package.
|
||||
|
@ -0,0 +1 @@
|
||||
11
|
@ -0,0 +1,18 @@
|
||||
Source: i2pd
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: r4sas <r4sas@i2pmail.org>
|
||||
Build-Depends: debhelper (>= 11~), libboost-system-dev (>= 1.46), libboost-date-time-dev (>= 1.46), libboost-filesystem-dev (>= 1.46), libboost-program-options-dev (>= 1.46), libminiupnpc-dev, libssl-dev, zlib1g-dev
|
||||
Standards-Version: 4.2.0
|
||||
Homepage: http://i2pd.website/
|
||||
Vcs-Git: git://github.com/PurpleI2P/i2pd.git
|
||||
Vcs-Browser: https://github.com/PurpleI2P/i2pd
|
||||
|
||||
Package: i2pd
|
||||
Architecture: any
|
||||
Pre-Depends: ${misc:Pre-Depends}, adduser
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base,
|
||||
Description: Full-featured C++ implementation of I2P client.
|
||||
I2P (Invisible Internet Protocol) is a universal anonymous network layer. All
|
||||
communications over I2P are anonymous and end-to-end encrypted, participants
|
||||
don't reveal their real IP addresses.
|
@ -0,0 +1 @@
|
||||
9
|
@ -0,0 +1,18 @@
|
||||
Source: i2pd
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: r4sas <r4sas@i2pmail.org>
|
||||
Build-Depends: debhelper (>= 9), libboost-system-dev (>= 1.46), libboost-date-time-dev (>= 1.46), libboost-filesystem-dev (>= 1.46), libboost-program-options-dev (>= 1.46), libminiupnpc-dev, libssl-dev, zlib1g-dev
|
||||
Standards-Version: 3.9.8
|
||||
Homepage: http://i2pd.website/
|
||||
Vcs-Git: git://github.com/PurpleI2P/i2pd.git
|
||||
Vcs-Browser: https://github.com/PurpleI2P/i2pd
|
||||
|
||||
Package: i2pd
|
||||
Architecture: any
|
||||
Pre-Depends: ${misc:Pre-Depends}, adduser
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base,
|
||||
Description: Full-featured C++ implementation of I2P client.
|
||||
I2P (Invisible Internet Protocol) is a universal anonymous network layer. All
|
||||
communications over I2P are anonymous and end-to-end encrypted, participants
|
||||
don't reveal their real IP addresses.
|
@ -0,0 +1,17 @@
|
||||
Description: Enable UPnP usage in package
|
||||
Author: r4sas <r4sas@i2pmail.org>
|
||||
|
||||
Reviewed-By: r4sas <r4sas@i2pmail.org>
|
||||
Last-Update: 2022-03-23
|
||||
|
||||
--- i2pd.orig/Makefile
|
||||
+++ i2pd/Makefile
|
||||
@@ -31,7 +31,7 @@ include filelist.mk
|
||||
|
||||
USE_AESNI := $(or $(USE_AESNI),yes)
|
||||
USE_STATIC := $(or $(USE_STATIC),no)
|
||||
-USE_UPNP := $(or $(USE_UPNP),no)
|
||||
+USE_UPNP := $(or $(USE_UPNP),yes)
|
||||
DEBUG := $(or $(DEBUG),yes)
|
||||
|
||||
# for debugging purposes only, when commit hash needed in trunk builds in i2pd version string
|
@ -0,0 +1,19 @@
|
||||
Description: Disable LogsDirectory and LogsDirectoryMode options in service
|
||||
Author: r4sas <r4sas@i2pmail.org>
|
||||
|
||||
Reviewed-By: r4sas <r4sas@i2pmail.org>
|
||||
Last-Update: 2023-05-17
|
||||
|
||||
--- a/contrib/i2pd.service
|
||||
+++ b/contrib/i2pd.service
|
||||
@@ -8,8 +8,8 @@ User=i2pd
|
||||
Group=i2pd
|
||||
RuntimeDirectory=i2pd
|
||||
RuntimeDirectoryMode=0700
|
||||
-LogsDirectory=i2pd
|
||||
-LogsDirectoryMode=0700
|
||||
+#LogsDirectory=i2pd
|
||||
+#LogsDirectoryMode=0700
|
||||
Type=forking
|
||||
ExecStart=/usr/sbin/i2pd --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf --tunnelsdir=/etc/i2pd/tunnels.conf.d --pidfile=/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service
|
||||
ExecReload=/bin/sh -c "kill -HUP $MAINPID"
|
@ -0,0 +1,2 @@
|
||||
01-upnp.patch
|
||||
02-service.patch
|
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/make -f
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
|
||||
|
||||
include /usr/share/dpkg/architecture.mk
|
||||
|
||||
ifeq ($(DEB_HOST_ARCH),i386)
|
||||
export DEB_BUILD_OPTIONS=parallel=1
|
||||
endif
|
||||
|
||||
export DEB_CXXFLAGS_MAINT_APPEND=-Wall -pedantic
|
||||
export DEB_LDFLAGS_MAINT_APPEND=
|
||||
|
||||
%:
|
||||
dh $@ --parallel
|
||||
|
||||
override_dh_auto_install:
|
@ -0,0 +1 @@
|
||||
9
|
@ -0,0 +1,18 @@
|
||||
Source: i2pd
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: r4sas <r4sas@i2pmail.org>
|
||||
Build-Depends: debhelper (>= 9), libboost-system-dev (>= 1.46), libboost-date-time-dev (>= 1.46), libboost-filesystem-dev (>= 1.46), libboost-program-options-dev (>= 1.46), libminiupnpc-dev, libssl-dev, zlib1g-dev
|
||||
Standards-Version: 3.9.8
|
||||
Homepage: http://i2pd.website/
|
||||
Vcs-Git: git://github.com/PurpleI2P/i2pd.git
|
||||
Vcs-Browser: https://github.com/PurpleI2P/i2pd
|
||||
|
||||
Package: i2pd
|
||||
Architecture: any
|
||||
Pre-Depends: ${misc:Pre-Depends}, adduser
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, lsb-base,
|
||||
Description: Full-featured C++ implementation of I2P client.
|
||||
I2P (Invisible Internet Protocol) is a universal anonymous network layer. All
|
||||
communications over I2P are anonymous and end-to-end encrypted, participants
|
||||
don't reveal their real IP addresses.
|
@ -0,0 +1,17 @@
|
||||
Description: Enable UPnP usage in package
|
||||
Author: r4sas <r4sas@i2pmail.org>
|
||||
|
||||
Reviewed-By: r4sas <r4sas@i2pmail.org>
|
||||
Last-Update: 2022-03-23
|
||||
|
||||
--- i2pd.orig/Makefile
|
||||
+++ i2pd/Makefile
|
||||
@@ -31,7 +31,7 @@ include filelist.mk
|
||||
|
||||
USE_AESNI := $(or $(USE_AESNI),yes)
|
||||
USE_STATIC := $(or $(USE_STATIC),no)
|
||||
-USE_UPNP := $(or $(USE_UPNP),no)
|
||||
+USE_UPNP := $(or $(USE_UPNP),yes)
|
||||
DEBUG := $(or $(DEBUG),yes)
|
||||
|
||||
# for debugging purposes only, when commit hash needed in trunk builds in i2pd version string
|
@ -0,0 +1,19 @@
|
||||
Description: Disable LogsDirectory and LogsDirectoryMode options in service
|
||||
Author: r4sas <r4sas@i2pmail.org>
|
||||
|
||||
Reviewed-By: r4sas <r4sas@i2pmail.org>
|
||||
Last-Update: 2023-05-17
|
||||
|
||||
--- a/contrib/i2pd.service
|
||||
+++ b/contrib/i2pd.service
|
||||
@@ -8,8 +8,8 @@ User=i2pd
|
||||
Group=i2pd
|
||||
RuntimeDirectory=i2pd
|
||||
RuntimeDirectoryMode=0700
|
||||
-LogsDirectory=i2pd
|
||||
-LogsDirectoryMode=0700
|
||||
+#LogsDirectory=i2pd
|
||||
+#LogsDirectoryMode=0700
|
||||
Type=forking
|
||||
ExecStart=/usr/sbin/i2pd --conf=/etc/i2pd/i2pd.conf --tunconf=/etc/i2pd/tunnels.conf --tunnelsdir=/etc/i2pd/tunnels.conf.d --pidfile=/run/i2pd/i2pd.pid --logfile=/var/log/i2pd/i2pd.log --daemon --service
|
||||
ExecReload=/bin/sh -c "kill -HUP $MAINPID"
|
@ -0,0 +1,2 @@
|
||||
01-upnp.patch
|
||||
02-service.patch
|
@ -0,0 +1,13 @@
|
||||
#!/usr/bin/make -f
|
||||
#export DH_VERBOSE=1
|
||||
export DEB_BUILD_MAINT_OPTIONS = hardening=+all
|
||||
|
||||
include /usr/share/dpkg/architecture.mk
|
||||
|
||||
export DEB_CXXFLAGS_MAINT_APPEND = -Wall -pedantic
|
||||
export DEB_LDFLAGS_MAINT_APPEND =
|
||||
|
||||
%:
|
||||
dh $@ --parallel
|
||||
|
||||
override_dh_auto_install:
|
@ -0,0 +1,8 @@
|
||||
type = bgprocess
|
||||
run-as = i2pd
|
||||
command = /usr/bin/i2pd --conf=/var/lib/i2pd/i2pd.conf --pidfile=/var/lib/i2pd/i2pd.pid --daemon --service
|
||||
smooth-recovery = true
|
||||
depends-on = ntpd
|
||||
# uncomment if you want to use i2pd with yggdrasil
|
||||
# depends-on = yggdrasil
|
||||
pid-file = /var/lib/i2pd/i2pd.pid
|
@ -1,29 +1,30 @@
|
||||
`xgettext` command for extracting translation
|
||||
---
|
||||
|
||||
```
|
||||
xgettext --omit-header -ctr: -ktr -ktr:1,2 daemon/HTTPServer.cpp libi2pd_client/HTTPProxy.cpp
|
||||
```
|
||||
|
||||
Regex for transforming gettext translations to our format:
|
||||
---
|
||||
|
||||
```
|
||||
in: msgid\ \"(.*)\"\nmsgid_plural\ \"(.*)\"\nmsgstr\[0\]\ \"(.*)\"\n(msgstr\[1\]\ \"(.*)\"\n)?(msgstr\[2\]\ \"(.*)\"\n)?(msgstr\[3\]\ \"(.*)\"\n)?(msgstr\[4\]\ \"(.*)\"\n)?(msgstr\[5\]\ \"(.*)\"\n)?
|
||||
out: #{"$2", {"$3", "$5", "$7", "$9", "$11"}},\n
|
||||
```
|
||||
|
||||
```
|
||||
in: msgid\ \"(.*)\"\nmsgstr\ \"(.*)\"\n
|
||||
out: {"$1", "$2"},\n
|
||||
```
|
||||
|
||||
```
|
||||
in: ^#[:.](.*)$\n
|
||||
out: <to empty line>
|
||||
```
|
||||
|
||||
```
|
||||
in: \n\n
|
||||
out: \n
|
||||
```
|
||||
`xgettext` command for extracting translation
|
||||
---
|
||||
|
||||
```
|
||||
xgettext --omit-header -ctr: -ktr -kntr:1,2 daemon/HTTPServer.cpp libi2pd_client/HTTPProxy.cpp
|
||||
```
|
||||
|
||||
Regex for transforming gettext translations to our format:
|
||||
---
|
||||
|
||||
```
|
||||
in: ^(\"|#[:.,]|msgctxt)(.*)$\n
|
||||
out: <to empty line>
|
||||
```
|
||||
|
||||
```
|
||||
in: msgid\ \"(.*)\"\nmsgid_plural\ \"(.*)\"\nmsgstr\[0\]\ \"(.*)\"\n(msgstr\[1\]\ \"(.*)\"\n)?(msgstr\[2\]\ \"(.*)\"\n)?(msgstr\[3\]\ \"(.*)\"\n)?(msgstr\[4\]\ \"(.*)\"\n)?(msgstr\[5\]\ \"(.*)\"\n)?
|
||||
out: #{"$2", {"$3", "$5", "$7", "$9", "$11"}},\n
|
||||
```
|
||||
|
||||
```
|
||||
in: msgid\ \"(.*)\"\nmsgstr\ \"(.*)\"\n
|
||||
out: {"$1", "$2"},\n
|
||||
```
|
||||
|
||||
|
||||
```
|
||||
in: \n\n
|
||||
out: \n
|
||||
```
|
||||
|
@ -1,293 +1,293 @@
|
||||
/*
|
||||
* Copyright (c) 2021-2022, The PurpleI2P Project
|
||||
*
|
||||
* This file is part of Purple i2pd project and licensed under BSD3
|
||||
*
|
||||
* See full license text in LICENSE file at top of project tree
|
||||
*
|
||||
******************************************************************
|
||||
*
|
||||
* This is style sheet for webconsole, with @media selectors for adaptive
|
||||
* view on desktop and mobile devices, respecting preferred user's color
|
||||
* scheme used in system/browser.
|
||||
*
|
||||
* Minified copy of that style sheet is bundled inside i2pd sources.
|
||||
*/
|
||||
|
||||
:root {
|
||||
--main-bg-color: #fafafa;
|
||||
--main-text-color: #103456;
|
||||
--main-link-color: #894c84;
|
||||
--main-link-hover-color: #fafafa;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--main-bg-color: #242424;
|
||||
--main-text-color: #17ab5c;
|
||||
--main-link-color: #bf64b7;
|
||||
--main-link-hover-color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font: 100%/1.5em sans-serif;
|
||||
margin: 0;
|
||||
padding: 1.5em;
|
||||
background: var(--main-bg-color);
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
a, .slide label {
|
||||
text-decoration: none;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
a:hover, .slide label:hover, button[type=submit]:hover {
|
||||
color: var(--main-link-hover-color);
|
||||
background: var(--main-link-color);
|
||||
}
|
||||
|
||||
a.button {
|
||||
appearance: button;
|
||||
text-decoration: none;
|
||||
padding: 0 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
}
|
||||
|
||||
.header {
|
||||
font-size: 2.5em;
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
margin: 0 auto;
|
||||
padding: 1em;
|
||||
max-width: 64em;
|
||||
}
|
||||
|
||||
.menu {
|
||||
display: block;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
padding: 4px;
|
||||
max-width: 12em;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.listitem {
|
||||
display: block;
|
||||
font-family: monospace;
|
||||
font-size: 1.2em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tableitem {
|
||||
font-family: monospace;
|
||||
font-size: 1.2em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.content {
|
||||
float: left;
|
||||
font-size: 1em;
|
||||
margin-left: 2em;
|
||||
padding: 4px;
|
||||
max-width: 50em;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.tunnel.established {
|
||||
color: #56B734;
|
||||
}
|
||||
|
||||
.tunnel.expiring {
|
||||
color: #D3AE3F;
|
||||
}
|
||||
|
||||
.tunnel.failed {
|
||||
color: #D33F3F;
|
||||
}
|
||||
|
||||
.tunnel.building {
|
||||
color: #434343;
|
||||
}
|
||||
|
||||
caption {
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
table {
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.extaddr {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table.services {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background-color: var(--main-bg-color);
|
||||
color: var(--main-text-color);
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.streamdest {
|
||||
width: 120px;
|
||||
max-width: 240px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.slide div.slidecontent, .slide [type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.slide [type="checkbox"]:checked ~ div.slidecontent {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
color: #D33F3F;
|
||||
}
|
||||
|
||||
.enabled {
|
||||
color: #56B734;
|
||||
}
|
||||
|
||||
button[type=submit] {
|
||||
background-color: transparent;
|
||||
color: var(--main-link-color);
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input, select, select option {
|
||||
background-color: var(--main-bg-color);
|
||||
color: var(--main-link-color);
|
||||
padding: 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input:focus, select:focus, select option:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input[type=number]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1150px) { /* adaptive style */
|
||||
.wrapper {
|
||||
max-width: 58em;
|
||||
}
|
||||
|
||||
.content {
|
||||
max-width: 40em;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 980px) {
|
||||
body {
|
||||
font: 100%/1.2em sans-serif;
|
||||
padding: 1.2em 0 0 0;
|
||||
}
|
||||
|
||||
.menu {
|
||||
width: 100%;
|
||||
max-width: unset;
|
||||
display: block;
|
||||
float: none;
|
||||
position: unset;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.menu a, .commands a {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.content {
|
||||
float: none;
|
||||
margin-left: unset;
|
||||
margin-top: 16px;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a, .slide label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin: unset;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
small {
|
||||
display: block
|
||||
}
|
||||
|
||||
a.button {
|
||||
appearance: button;
|
||||
text-decoration: none;
|
||||
margin-top: 10px;
|
||||
padding: 6px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
width: -webkit-fill-available;
|
||||
}
|
||||
|
||||
input, select {
|
||||
width: 35%;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
table.extaddr {
|
||||
margin: auto;
|
||||
text-align: unset;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: -webkit-fill-available;
|
||||
height: auto;
|
||||
padding: 5px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
button[type=submit] {
|
||||
padding: 5px 15px;
|
||||
background: transparent;
|
||||
border: 2px solid var(--main-link-color);
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
height: 36px;
|
||||
display: -webkit-inline-box;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) 2021-2023, The PurpleI2P Project
|
||||
*
|
||||
* This file is part of Purple i2pd project and licensed under BSD3
|
||||
*
|
||||
* See full license text in LICENSE file at top of project tree
|
||||
*
|
||||
******************************************************************
|
||||
*
|
||||
* This is style sheet for webconsole, with @media selectors for adaptive
|
||||
* view on desktop and mobile devices, respecting preferred user's color
|
||||
* scheme used in system/browser.
|
||||
*
|
||||
* Minified copy of that style sheet is bundled inside i2pd sources.
|
||||
*/
|
||||
|
||||
:root {
|
||||
--main-bg-color: #fafafa;
|
||||
--main-text-color: #103456;
|
||||
--main-link-color: #894c84;
|
||||
--main-link-hover-color: #fafafa;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--main-bg-color: #242424;
|
||||
--main-text-color: #17ab5c;
|
||||
--main-link-color: #bf64b7;
|
||||
--main-link-hover-color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
font: 100%/1.5em sans-serif;
|
||||
margin: 0;
|
||||
padding: 1.5em;
|
||||
background: var(--main-bg-color);
|
||||
color: var(--main-text-color);
|
||||
}
|
||||
|
||||
a, .slide label {
|
||||
text-decoration: none;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
a:hover, a.button.selected, .slide label:hover, button[type=submit]:hover {
|
||||
color: var(--main-link-hover-color);
|
||||
background: var(--main-link-color);
|
||||
}
|
||||
|
||||
a.button {
|
||||
appearance: button;
|
||||
text-decoration: none;
|
||||
padding: 0 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
}
|
||||
|
||||
.header {
|
||||
font-size: 2.5em;
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
margin: 0 auto;
|
||||
padding: 1em;
|
||||
max-width: 64em;
|
||||
}
|
||||
|
||||
.menu {
|
||||
display: block;
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
padding: 4px;
|
||||
max-width: 12em;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.listitem {
|
||||
display: block;
|
||||
font-family: monospace;
|
||||
font-size: 1.2em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tableitem {
|
||||
font-family: monospace;
|
||||
font-size: 1.2em;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.content {
|
||||
float: left;
|
||||
font-size: 1em;
|
||||
margin-left: 2em;
|
||||
padding: 4px;
|
||||
max-width: 50em;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.tunnel.established {
|
||||
color: #56B734;
|
||||
}
|
||||
|
||||
.tunnel.expiring {
|
||||
color: #D3AE3F;
|
||||
}
|
||||
|
||||
.tunnel.failed {
|
||||
color: #D33F3F;
|
||||
}
|
||||
|
||||
.tunnel.building {
|
||||
color: #434343;
|
||||
}
|
||||
|
||||
caption {
|
||||
font-size: 1.5em;
|
||||
text-align: center;
|
||||
color: var(--main-link-color);
|
||||
}
|
||||
|
||||
table {
|
||||
display: table;
|
||||
border-collapse: collapse;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table.extaddr {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
table.services {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
textarea {
|
||||
background-color: var(--main-bg-color);
|
||||
color: var(--main-text-color);
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.streamdest {
|
||||
width: 120px;
|
||||
max-width: 240px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.slide div.slidecontent, .slide [type="checkbox"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.slide [type="checkbox"]:checked ~ div.slidecontent {
|
||||
display: block;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
color: #D33F3F;
|
||||
}
|
||||
|
||||
.enabled {
|
||||
color: #56B734;
|
||||
}
|
||||
|
||||
button[type=submit] {
|
||||
background-color: transparent;
|
||||
color: var(--main-link-color);
|
||||
text-decoration: none;
|
||||
padding: 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input, select, select option {
|
||||
background-color: var(--main-bg-color);
|
||||
color: var(--main-link-color);
|
||||
padding: 5px;
|
||||
border: 1px solid var(--main-link-color);
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
input:focus, select:focus, select option:focus {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
input[type=number]::-webkit-inner-spin-button {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1150px) { /* adaptive style */
|
||||
.wrapper {
|
||||
max-width: 58em;
|
||||
}
|
||||
|
||||
.content {
|
||||
max-width: 40em;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 980px) {
|
||||
body {
|
||||
font: 100%/1.2em sans-serif;
|
||||
padding: 1.2em 0 0 0;
|
||||
}
|
||||
|
||||
.menu {
|
||||
width: 100%;
|
||||
max-width: unset;
|
||||
display: block;
|
||||
float: none;
|
||||
position: unset;
|
||||
font-size: 16px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.menu a, .commands a {
|
||||
display: inline-block;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.content {
|
||||
float: none;
|
||||
margin-left: unset;
|
||||
margin-top: 16px;
|
||||
max-width: 100%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a, .slide label {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.header {
|
||||
margin: unset;
|
||||
font-size: 1.5em;
|
||||
}
|
||||
|
||||
small {
|
||||
display: block
|
||||
}
|
||||
|
||||
a.button {
|
||||
appearance: button;
|
||||
text-decoration: none;
|
||||
margin-top: 10px;
|
||||
padding: 6px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
width: -webkit-fill-available;
|
||||
}
|
||||
|
||||
input, select {
|
||||
width: 35%;
|
||||
text-align: center;
|
||||
padding: 5px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
table.extaddr {
|
||||
margin: auto;
|
||||
text-align: unset;
|
||||
}
|
||||
|
||||
textarea {
|
||||
width: -webkit-fill-available;
|
||||
height: auto;
|
||||
padding: 5px;
|
||||
border: 2px solid var(--main-link-color);
|
||||
border-radius: 5px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
button[type=submit] {
|
||||
padding: 5px 15px;
|
||||
background: transparent;
|
||||
border: 2px solid var(--main-link-color);
|
||||
cursor: pointer;
|
||||
-webkit-border-radius: 5px;
|
||||
border-radius: 5px;
|
||||
position: relative;
|
||||
height: 36px;
|
||||
display: -webkit-inline-box;
|
||||
margin-top: 10px;
|
||||
}
|
||||
}
|
||||
|
@ -1,2 +0,0 @@
|
||||
/etc/i2pd/i2pd.conf
|
||||
/etc/i2pd/tunnels.conf
|
@ -0,0 +1,223 @@
|
||||
/*
|
||||
* Copyright (c) 2023-2024, The PurpleI2P Project
|
||||
*
|
||||
* This file is part of Purple i2pd project and licensed under BSD3
|
||||
*
|
||||
* See full license text in LICENSE file at top of project tree
|
||||
*/
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include "I18N.h"
|
||||
|
||||
// Polish localization file
|
||||
|
||||
namespace i2p
|
||||
{
|
||||
namespace i18n
|
||||
{
|
||||
namespace polish // language namespace
|
||||
{
|
||||
// language name in lowercase
|
||||
static std::string language = "polish";
|
||||
|
||||
// See for language plural forms here:
|
||||
// https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html
|
||||
static int plural (int n) {
|
||||
return (n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);
|
||||
}
|
||||
|
||||
static std::map<std::string, std::string> strings
|
||||
{
|
||||
{"%.2f KiB", "%.2f KiB"},
|
||||
{"%.2f MiB", "%.2f MiB"},
|
||||
{"%.2f GiB", "%.2f GiB"},
|
||||
{"building", "Kompilowanie"},
|
||||
{"failed", "nieudane"},
|
||||
{"expiring", "wygasający"},
|
||||
{"established", "ustanowiony"},
|
||||
{"unknown", "nieznany"},
|
||||
{"exploratory", "eksploracyjny"},
|
||||
{"Purple I2P Webconsole", "Konsola webowa Purple I2P"},
|
||||
{"<b>i2pd</b> webconsole", "<b>i2pd</b> konsola webowa"},
|
||||
{"Main page", "Strona główna"},
|
||||
{"Router commands", "Komendy routera"},
|
||||
{"Local Destinations", "Lokalne miejsca docelowe"},
|
||||
{"LeaseSets", "ZestawyNajmu"},
|
||||
{"Tunnels", "Tunele"},
|
||||
{"Transit Tunnels", "Tunele Tranzytu"},
|
||||
{"Transports", "Transportery"},
|
||||
{"I2P tunnels", "Tunele I2P"},
|
||||
{"SAM sessions", "Sesje SAM"},
|
||||
{"ERROR", "BŁĄD"},
|
||||
{"OK", "Ok"},
|
||||
{"Testing", "Testowanie"},
|
||||
{"Firewalled", "Za zaporą sieciową"},
|
||||
{"Unknown", "Nieznany"},
|
||||
{"Proxy", "Proxy"},
|
||||
{"Mesh", "Sieć"},
|
||||
{"Clock skew", "Przesunięcie czasu"},
|
||||
{"Offline", "Offline"},
|
||||
{"Symmetric NAT", "Symetryczny NAT"},
|
||||
{"Full cone NAT", "Pełny stożek NAT"},
|
||||
{"No Descriptors", "Brak deskryptorów"},
|
||||
{"Uptime", "Czas pracy"},
|
||||
{"Network status", "Stan sieci"},
|
||||
{"Network status v6", "Stan sieci v6"},
|
||||
{"Stopping in", "Zatrzymywanie za"},
|
||||
{"Family", "Rodzina"},
|
||||
{"Tunnel creation success rate", "Wskaźnik sukcesu tworzenia tunelu"},
|
||||
{"Total tunnel creation success rate", "Całkowity wskaźnik sukcesu tworzenia tunelu"},
|
||||
{"Received", "Odebrano"},
|
||||
{"%.2f KiB/s", "%.2f KiB/s"},
|
||||
{"Sent", "Wysłane"},
|
||||
{"Transit", "Tranzyt"},
|
||||
{"Data path", "Ścieżka do danych"},
|
||||
{"Hidden content. Press on text to see.", "Ukryta zawartość. Naciśnij tekst, aby zobaczyć."},
|
||||
{"Router Ident", "Identyfikator routera"},
|
||||
{"Router Family", "Rodzina routera"},
|
||||
{"Router Caps", "Możliwości routera"},
|
||||
{"Version", "Wersja"},
|
||||
{"Our external address", "Nasz zewnętrzny adres"},
|
||||
{"supported", "wspierane"},
|
||||
{"Routers", "Routery"},
|
||||
{"Floodfills", "Floodfille"},
|
||||
{"Client Tunnels", "Tunele Klienta"},
|
||||
{"Services", "Usługi"},
|
||||
{"Enabled", "Aktywny"},
|
||||
{"Disabled", "Wyłączony"},
|
||||
{"Encrypted B33 address", "Zaszyfrowany adres B33"},
|
||||
{"Address registration line", "Linia rejestracji adresu"},
|
||||
{"Domain", "Domena"},
|
||||
{"Generate", "Generuj"},
|
||||
{"<b>Note:</b> result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "<b>Uwaga:</b> wynik string może być używany tylko do rejestracji domen 2LD (przykład.i2p). Do rejestracji subdomen należy użyć narzędzi i2pd."},
|
||||
{"Address", "Adres"},
|
||||
{"Type", "Typ"},
|
||||
{"EncType", "TypEnkrypcji"},
|
||||
{"Expire LeaseSet", "Wygaśnij LeaseSet"},
|
||||
{"Inbound tunnels", "Tunele przychodzące"},
|
||||
{"%dms", "%dms"},
|
||||
{"Outbound tunnels", "Tunele wychodzące"},
|
||||
{"Tags", "Tagi"},
|
||||
{"Incoming", "Przychodzące"},
|
||||
{"Outgoing", "Wychodzące"},
|
||||
{"Destination", "Miejsce docelowe"},
|
||||
{"Amount", "Ilość"},
|
||||
{"Incoming Tags", "Przychodzące tagi"},
|
||||
{"Tags sessions", "Sesje tagów"},
|
||||
{"Status", "Status"},
|
||||
{"Local Destination", "Lokalne miejsce docelowe"},
|
||||
{"Streams", "Strumienie"},
|
||||
{"Close stream", "Zamknij strumień"},
|
||||
{"Such destination is not found", "Nie znaleziono takiego miejsca docelowego"},
|
||||
{"I2CP session not found", "Sesja I2CP nie została znaleziona"},
|
||||
{"I2CP is not enabled", "I2CP nie jest włączone"},
|
||||
{"Invalid", "Niepoprawny"},
|
||||
{"Store type", "Rodzaj przechowywania"},
|
||||
{"Expires", "Wygasa za"},
|
||||
{"Non Expired Leases", "Leasingi niewygasłe"},
|
||||
{"Gateway", "Brama"},
|
||||
{"TunnelID", "IDTunelu"},
|
||||
{"EndDate", "DataZakończenia"},
|
||||
{"floodfill mode is disabled", "tryb floodfill jest wyłączony"},
|
||||
{"Queue size", "Wielkość kolejki"},
|
||||
{"Run peer test", "Wykonaj test peer"},
|
||||
{"Reload tunnels configuration", "Załaduj ponownie konfigurację tuneli"},
|
||||
{"Decline transit tunnels", "Odrzuć tunele tranzytowe"},
|
||||
{"Accept transit tunnels", "Akceptuj tunele tranzytowe"},
|
||||
{"Cancel graceful shutdown", "Anuluj łagodne wyłączenie"},
|
||||
{"Start graceful shutdown", "Rozpocznij łagodne wyłączenie"},
|
||||
{"Force shutdown", "Wymuś wyłączenie"},
|
||||
{"Reload external CSS styles", "Odśwież zewnętrzne style CSS"},
|
||||
{"<b>Note:</b> any action done here are not persistent and not changes your config files.", "<b>Uwaga:</b> każda akcja wykonana tutaj nie jest trwała i nie zmienia Twoich plików konfiguracyjnych."},
|
||||
{"Logging level", "Poziom logowania"},
|
||||
{"Transit tunnels limit", "Limit tuneli tranzytowych"},
|
||||
{"Change", "Zmień"},
|
||||
{"Change language", "Zmień język"},
|
||||
{"no transit tunnels currently built", "brak obecnie zbudowanych tuneli tranzytowych"},
|
||||
{"SAM disabled", "SAM wyłączony"},
|
||||
{"no sessions currently running", "brak aktualnie uruchomionych sesji"},
|
||||
{"SAM session not found", "Sesja SAM nie została znaleziona"},
|
||||
{"SAM Session", "Sesja SAM"},
|
||||
{"Server Tunnels", "Tunele Serwera"},
|
||||
{"Client Forwards", "Przekierowania Klienta"},
|
||||
{"Server Forwards", "Przekierowania Serwera"},
|
||||
{"Unknown page", "Nieznana strona"},
|
||||
{"Invalid token", "Nieprawidłowy token"},
|
||||
{"SUCCESS", "SUKCES"},
|
||||
{"Stream closed", "Strumień zamknięty"},
|
||||
{"Stream not found or already was closed", "Strumień nie został znaleziony lub został już zamknięty"},
|
||||
{"Destination not found", "Nie znaleziono punktu docelowego"},
|
||||
{"StreamID can't be null", "StreamID nie może być null"},
|
||||
{"Return to destination page", "Wróć do strony miejsca docelowego"},
|
||||
{"You will be redirected in %d seconds", "Zostaniesz prekierowany za %d sekund"},
|
||||
{"LeaseSet expiration time updated", "Zaktualizowano czas wygaśnięcia LeaseSet"},
|
||||
{"LeaseSet is not found or already expired", "LeaseSet nie został znaleziony lub już wygasł"},
|
||||
{"Transit tunnels count must not exceed %d", "Liczba tuneli tranzytowych nie może przekraczać %d"},
|
||||
{"Back to commands list", "Powrót do listy poleceń"},
|
||||
{"Register at reg.i2p", "Zarejestruj się na reg.i2p"},
|
||||
{"Description", "Opis"},
|
||||
{"A bit information about service on domain", "Trochę informacji o usłudze w domenie"},
|
||||
{"Submit", "Zatwierdź"},
|
||||
{"Domain can't end with .b32.i2p", "Domena nie może kończyć się na .b32.i2p"},
|
||||
{"Domain must end with .i2p", "Domena musi kończyć się na .i2p"},
|
||||
{"Unknown command", "Nieznana komenda"},
|
||||
{"Command accepted", "Polecenie zaakceptowane"},
|
||||
{"Proxy error", "Błąd serwera proxy"},
|
||||
{"Proxy info", "Informacje o proxy"},
|
||||
{"Proxy error: Host not found", "Błąd proxy: Nie znaleziono hosta"},
|
||||
{"Remote host not found in router's addressbook", "Nie znaleziono zdalnego hosta w książce adresowej routera"},
|
||||
{"You may try to find this host on jump services below", "Możesz znaleźć tego hosta na poniższych usługach skoku"},
|
||||
{"Invalid request", "Nieprawidłowe żądanie"},
|
||||
{"Proxy unable to parse your request", "Serwer proxy nie może przetworzyć Twojego żądania"},
|
||||
{"Addresshelper is not supported", "Adresshelper nie jest obsługiwany"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. <b>Be careful: source of this URL may be harmful!</b> Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Host %s <font color=red>jest już w książce adresowej routera</font>. <b>Uważaj: źródło tego adresu URL może być szkodliwe!</b> Kliknij tutaj, aby zaktualizować rekord: <a href=\"%s%s%s&update=true\">Kontynuuj</a>."},
|
||||
{"Addresshelper forced update rejected", "Wymuszona aktualizacja Addreshelper odrzucona"},
|
||||
{"To add host <b>%s</b> in router's addressbook, click here: <a href=\"%s%s%s\">Continue</a>.", "Aby dodać host <b>%s</b> w książce adresowej routera, kliknij tutaj: <a href=\"%s%s%s\">Kontynuuj</a>."},
|
||||
{"Addresshelper request", "Prośba Addresshelper"},
|
||||
{"Host %s added to router's addressbook from helper. Click here to proceed: <a href=\"%s\">Continue</a>.", "Host %s dodany do książki adresowej routera od pomocnika. Kliknij tutaj, aby kontynuować: <a href=\"%s\">Kontynuuj</a>."},
|
||||
{"Addresshelper adding", "Dodawanie Addresshelper"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Host %s jest <font color=red>już w książce adresowej routera</font>. Kliknij tutaj, aby zaktualizować rekord: <a href=\"%s%s%s&update=true\">Kontynuuj</a>."},
|
||||
{"Addresshelper update", "Aktualizacja Adresshelper"},
|
||||
{"Invalid request URI", "Nieprawidłowe URI żądania"},
|
||||
{"Can't detect destination host from request", "Nie można wykryć hosta docelowego z żądania"},
|
||||
{"Outproxy failure", "Błąd proxy wyjściowego"},
|
||||
{"Bad outproxy settings", "Błędne ustawienia proxy wyjściowych"},
|
||||
{"Host %s is not inside I2P network, but outproxy is not enabled", "Host %s nie jest wewnątrz sieci I2P, a proxy wyjściowe nie jest włączone"},
|
||||
{"Unknown outproxy URL", "Nieznany adres URL proxy wyjściowego"},
|
||||
{"Cannot resolve upstream proxy", "Nie można rozwiązać serwera proxy upstream"},
|
||||
{"Hostname is too long", "Nazwa hosta jest zbyt długa"},
|
||||
{"Cannot connect to upstream SOCKS proxy", "Nie można połączyć się z proxy SOCKS upstream"},
|
||||
{"Cannot negotiate with SOCKS proxy", "Nie można negocjować z proxy SOCKS"},
|
||||
{"CONNECT error", "Błąd POŁĄCZENIE"},
|
||||
{"Failed to connect", "Nie udało się połączyć"},
|
||||
{"SOCKS proxy error", "Błąd proxy SOCKS"},
|
||||
{"Failed to send request to upstream", "Nie udało się wysłać żądania do upstream"},
|
||||
{"No reply from SOCKS proxy", "Brak odpowiedzi od serwera proxy SOCKS"},
|
||||
{"Cannot connect", "Nie można się połączyć"},
|
||||
{"HTTP out proxy not implemented", "Serwer wyjściowy proxy HTTP nie został zaimplementowany"},
|
||||
{"Cannot connect to upstream HTTP proxy", "Nie można połączyć się z proxy HTTP upstream"},
|
||||
{"Host is down", "Host jest niedostępny"},
|
||||
{"Can't create connection to requested host, it may be down. Please try again later.", "Nie można utworzyć połączenia z żądanym hostem, może być wyłączony. Spróbuj ponownie później."},
|
||||
{"", ""},
|
||||
};
|
||||
|
||||
static std::map<std::string, std::vector<std::string>> plurals
|
||||
{
|
||||
{"%d days", {"%d dzień", "%d dni", "%d dni", "%d dni"}},
|
||||
{"%d hours", {"%d godzina", "%d godziny", "%d godzin", "%d godzin"}},
|
||||
{"%d minutes", {"%d minuta", "%d minuty", "%d minut", "%d minut"}},
|
||||
{"%d seconds", {"%d sekunda", "%d sekundy", "%d sekund", "%d sekund"}},
|
||||
{"", {"", "", "", ""}},
|
||||
};
|
||||
|
||||
std::shared_ptr<const i2p::i18n::Locale> GetLocale()
|
||||
{
|
||||
return std::make_shared<i2p::i18n::Locale>(language, strings, plurals, [] (int n)->int { return plural(n); });
|
||||
}
|
||||
|
||||
} // language
|
||||
} // i18n
|
||||
} // i2p
|
@ -0,0 +1,223 @@
|
||||
/*
|
||||
* Copyright (c) 2023-2024, The PurpleI2P Project
|
||||
*
|
||||
* This file is part of Purple i2pd project and licensed under BSD3
|
||||
*
|
||||
* See full license text in LICENSE file at top of project tree
|
||||
*/
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include "I18N.h"
|
||||
|
||||
// Portuguese localization file
|
||||
|
||||
namespace i2p
|
||||
{
|
||||
namespace i18n
|
||||
{
|
||||
namespace portuguese // language namespace
|
||||
{
|
||||
// language name in lowercase
|
||||
static std::string language = "portuguese";
|
||||
|
||||
// See for language plural forms here:
|
||||
// https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html
|
||||
static int plural (int n) {
|
||||
return n != 1 ? 1 : 0;
|
||||
}
|
||||
|
||||
static std::map<std::string, std::string> strings
|
||||
{
|
||||
{"%.2f KiB", "%.2f KiB"},
|
||||
{"%.2f MiB", "%.2f MiB"},
|
||||
{"%.2f GiB", "%.2f GiB"},
|
||||
{"building", "construindo"},
|
||||
{"failed", "falhou"},
|
||||
{"expiring", "expirando"},
|
||||
{"established", "estabelecido"},
|
||||
{"unknown", "desconhecido"},
|
||||
{"exploratory", "exploratório"},
|
||||
{"Purple I2P Webconsole", "Webconsole Purple I2P"},
|
||||
{"<b>i2pd</b> webconsole", "webconsole <b>i2pd</b>"},
|
||||
{"Main page", "Página Principal"},
|
||||
{"Router commands", "Comandos do Roteador"},
|
||||
{"Local Destinations", "Destinos Locais"},
|
||||
{"LeaseSets", "LeaseSets"},
|
||||
{"Tunnels", "Túneis"},
|
||||
{"Transit Tunnels", "Túneis de Trânsito"},
|
||||
{"Transports", "Transportes"},
|
||||
{"I2P tunnels", "Túneis I2P"},
|
||||
{"SAM sessions", "Sessões do SAM"},
|
||||
{"ERROR", "ERRO"},
|
||||
{"OK", "OK"},
|
||||
{"Testing", "Testando"},
|
||||
{"Firewalled", "Sob Firewall"},
|
||||
{"Unknown", "Desconhecido"},
|
||||
{"Proxy", "Proxy"},
|
||||
{"Mesh", "Malha"},
|
||||
{"Clock skew", "Desvio de Relógio"},
|
||||
{"Offline", "Desligado"},
|
||||
{"Symmetric NAT", "NAT Simétrico"},
|
||||
{"Full cone NAT", "Full cone NAT"},
|
||||
{"No Descriptors", "Sem Descritores"},
|
||||
{"Uptime", "Tempo Ativo"},
|
||||
{"Network status", "Estado da rede"},
|
||||
{"Network status v6", "Estado da rede v6"},
|
||||
{"Stopping in", "Parando em"},
|
||||
{"Family", "Família"},
|
||||
{"Tunnel creation success rate", "Taxa de sucesso na criação de túneis"},
|
||||
{"Total tunnel creation success rate", "Taxa total de sucesso na criação de túneis"},
|
||||
{"Received", "Recebido"},
|
||||
{"%.2f KiB/s", "%.2f KiB/s"},
|
||||
{"Sent", "Enviado"},
|
||||
{"Transit", "Trânsito"},
|
||||
{"Data path", "Diretório de dados"},
|
||||
{"Hidden content. Press on text to see.", "Conteúdo oculto. Clique no texto para revelar."},
|
||||
{"Router Ident", "Identidade do Roteador"},
|
||||
{"Router Family", "Família do Roteador"},
|
||||
{"Router Caps", "Limites do Roteador"},
|
||||
{"Version", "Versão"},
|
||||
{"Our external address", "Nosso endereço externo"},
|
||||
{"supported", "suportado"},
|
||||
{"Routers", "Roteadores"},
|
||||
{"Floodfills", "Modo Inundação"},
|
||||
{"Client Tunnels", "Túneis de Clientes"},
|
||||
{"Services", "Serviços"},
|
||||
{"Enabled", "Ativado"},
|
||||
{"Disabled", "Desativado"},
|
||||
{"Encrypted B33 address", "Endereço B33 criptografado"},
|
||||
{"Address registration line", "Linha de cadastro de endereço"},
|
||||
{"Domain", "Domínio"},
|
||||
{"Generate", "Gerar"},
|
||||
{"<b>Note:</b> result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "<b> Nota: </b>A string resultante só pode ser usada para registrar domínios 2LD (exemplo.i2p). Para registrar subdomínios por favor utilize o i2pd-tools."},
|
||||
{"Address", "Endereço"},
|
||||
{"Type", "Tipo"},
|
||||
{"EncType", "Tipo de Criptografia"},
|
||||
{"Expire LeaseSet", "Expirar LeaseSet"},
|
||||
{"Inbound tunnels", "Túneis de Entrada"},
|
||||
{"%dms", "%dms"},
|
||||
{"Outbound tunnels", "Túneis de Saída"},
|
||||
{"Tags", "Etiquetas"},
|
||||
{"Incoming", "Entradas"},
|
||||
{"Outgoing", "Saídas"},
|
||||
{"Destination", "Destinos"},
|
||||
{"Amount", "Quantidade"},
|
||||
{"Incoming Tags", "Etiquetas de Entrada"},
|
||||
{"Tags sessions", "Sessões de Etiquetas"},
|
||||
{"Status", "Estado"},
|
||||
{"Local Destination", "Destino Local"},
|
||||
{"Streams", "Fluxos"},
|
||||
{"Close stream", "Fechar fluxo"},
|
||||
{"Such destination is not found", "Tal destino não foi encontrado"},
|
||||
{"I2CP session not found", "Sessão do I2CP não encontrada"},
|
||||
{"I2CP is not enabled", "I2CP não está ativado"},
|
||||
{"Invalid", "Inválido"},
|
||||
{"Store type", "Tipo de armazenamento"},
|
||||
{"Expires", "Expira em"},
|
||||
{"Non Expired Leases", "Sessões não expiradas"},
|
||||
{"Gateway", "Gateway"},
|
||||
{"TunnelID", "TunnelID"},
|
||||
{"EndDate", "Data final"},
|
||||
{"floodfill mode is disabled", "Mode de inundação está desativado"},
|
||||
{"Queue size", "Tamanho da fila"},
|
||||
{"Run peer test", "Executar teste de peers"},
|
||||
{"Reload tunnels configuration", "Recarregar a configuração dos túneis"},
|
||||
{"Decline transit tunnels", "Negar túneis de trânsito"},
|
||||
{"Accept transit tunnels", "Aceitar túneis de trânsito"},
|
||||
{"Cancel graceful shutdown", "Cancelar desligamento gracioso"},
|
||||
{"Start graceful shutdown", "Iniciar desligamento gracioso"},
|
||||
{"Force shutdown", "Forçar desligamento"},
|
||||
{"Reload external CSS styles", "Recarregar estilos CSS externos"},
|
||||
{"<b>Note:</b> any action done here are not persistent and not changes your config files.", "<b> Nota: </b> Qualquer ação feita aqui não será permanente e não altera os seus arquivos de configuração."},
|
||||
{"Logging level", "Nível de registro"},
|
||||
{"Transit tunnels limit", "Limite de túneis de trânsito"},
|
||||
{"Change", "Mudar"},
|
||||
{"Change language", "Trocar idioma"},
|
||||
{"no transit tunnels currently built", "Nenhum túnel de trânsito construido no momento"},
|
||||
{"SAM disabled", "SAM desativado"},
|
||||
{"no sessions currently running", "Nenhuma sessão funcionando no momento"},
|
||||
{"SAM session not found", "Nenhuma sessão do SAM encontrada"},
|
||||
{"SAM Session", "Sessão do SAM"},
|
||||
{"Server Tunnels", "Túneis de Servidor"},
|
||||
{"Client Forwards", "Túneis de Cliente"},
|
||||
{"Server Forwards", "Encaminhamentos de Servidor"},
|
||||
{"Unknown page", "Página desconhecida"},
|
||||
{"Invalid token", "Token Inválido"},
|
||||
{"SUCCESS", "SUCESSO"},
|
||||
{"Stream closed", "Fluxo fechado"},
|
||||
{"Stream not found or already was closed", "Fluxo não encontrado ou já fechado"},
|
||||
{"Destination not found", "Destino não encontrado"},
|
||||
{"StreamID can't be null", "StreamID não pode ser nulo"},
|
||||
{"Return to destination page", "Retornar para à página de destino"},
|
||||
{"You will be redirected in %d seconds", "Você será redirecionado em %d segundos"},
|
||||
{"LeaseSet expiration time updated", "Tempo de validade do LeaseSet atualizado"},
|
||||
{"LeaseSet is not found or already expired", "LeaseSet não foi encontrado ou já expirou"},
|
||||
{"Transit tunnels count must not exceed %d", "A contagem de túneis de trânsito não deve exceder %d"},
|
||||
{"Back to commands list", "Voltar para a lista de comandos"},
|
||||
{"Register at reg.i2p", "Registrar em reg.i2p"},
|
||||
{"Description", "Descrição"},
|
||||
{"A bit information about service on domain", "Algumas informações sobre o serviço no domínio"},
|
||||
{"Submit", "Enviar"},
|
||||
{"Domain can't end with .b32.i2p", "O domínio não pode terminar com .b32.i2p"},
|
||||
{"Domain must end with .i2p", "O domínio não pode terminar com .i2p"},
|
||||
{"Unknown command", "Comando desconhecido"},
|
||||
{"Command accepted", "Comando aceito"},
|
||||
{"Proxy error", "Erro no proxy"},
|
||||
{"Proxy info", "Informações do proxy"},
|
||||
{"Proxy error: Host not found", "Erro no proxy: Host não encontrado"},
|
||||
{"Remote host not found in router's addressbook", "O host remoto não foi encontrado no livro de endereços do roteador"},
|
||||
{"You may try to find this host on jump services below", "Você pode tentar encontrar este host nos serviços de jump abaixo"},
|
||||
{"Invalid request", "Requisição inválida"},
|
||||
{"Proxy unable to parse your request", "O proxy foi incapaz de processar a sua requisição"},
|
||||
{"Addresshelper is not supported", "O Auxiliar de Endereços não é suportado"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. <b>Be careful: source of this URL may be harmful!</b> Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "O host %s já <font color=red>está no catálogo de endereços do roteador</font>. <b>Cuidado: a fonte desta URL pode ser perigosa!</b> Clique aqui para atualizar o registro: <a href=\"%s%s%s&update=true\">Continuar</a>."},
|
||||
{"Addresshelper forced update rejected", "A atualização forçada do Auxiliar de Endereços foi rejeitada"},
|
||||
{"To add host <b>%s</b> in router's addressbook, click here: <a href=\"%s%s%s\">Continue</a>.", "Para adicionar o host <b> %s </b> ao catálogo de endereços do roteador, clique aqui: <a href='%s%s%s'>Continuar </a>."},
|
||||
{"Addresshelper request", "Requisição ao Auxiliar de Endereços"},
|
||||
{"Host %s added to router's addressbook from helper. Click here to proceed: <a href=\"%s\">Continue</a>.", "O host %s foi adicionado ao catálogo de endereços do roteador por um auxiliar. Clique aqui para prosseguir: <a href='%s'> Continuar </a>."},
|
||||
{"Addresshelper adding", "Auxiliar de Endereço adicionando"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "O host %s já <font color=red>está no catálogo de endereços do roteador </font>. Clique aqui para atualizar o registro: <a href=\"%s%s%s&update=true\">Continuar</a>."},
|
||||
{"Addresshelper update", "Atualização do Auxiliar de Endereços"},
|
||||
{"Invalid request URI", "A URI de requisição é inválida"},
|
||||
{"Can't detect destination host from request", "Incapaz de detectar o host de destino da requisição"},
|
||||
{"Outproxy failure", "Falha no outproxy"},
|
||||
{"Bad outproxy settings", "Má configurações do outproxy"},
|
||||
{"Host %s is not inside I2P network, but outproxy is not enabled", "O host %s não está dentro da rede I2P, mas o outproxy não está ativado"},
|
||||
{"Unknown outproxy URL", "URL de outproxy desconhecida"},
|
||||
{"Cannot resolve upstream proxy", "Não é possível resolver o proxy de entrada"},
|
||||
{"Hostname is too long", "O hostname é muito longo"},
|
||||
{"Cannot connect to upstream SOCKS proxy", "Não é possível se conectar ao proxy SOCKS de entrada"},
|
||||
{"Cannot negotiate with SOCKS proxy", "Não é possível negociar com o proxy SOCKS"},
|
||||
{"CONNECT error", "Erro de CONEXÃO"},
|
||||
{"Failed to connect", "Falha ao conectar"},
|
||||
{"SOCKS proxy error", "Erro no proxy SOCKS"},
|
||||
{"Failed to send request to upstream", "Falha ao enviar requisição para o fluxo de entrada"},
|
||||
{"No reply from SOCKS proxy", "Sem resposta do proxy SOCKS"},
|
||||
{"Cannot connect", "Impossível conectar"},
|
||||
{"HTTP out proxy not implemented", "proxy de saída HTTP não implementado"},
|
||||
{"Cannot connect to upstream HTTP proxy", "Não é possível conectar ao proxy HTTP de entrada"},
|
||||
{"Host is down", "Host está desligado"},
|
||||
{"Can't create connection to requested host, it may be down. Please try again later.", "Não é possível se conectar ao host requisitado, talvez ele esteja for do ar. Por favor, tente novamente mais tarde."},
|
||||
{"", ""},
|
||||
};
|
||||
|
||||
static std::map<std::string, std::vector<std::string>> plurals
|
||||
{
|
||||
{"%d days", {"%d Dia", "%d Dias"}},
|
||||
{"%d hours", {"%d hora", "%d horas"}},
|
||||
{"%d minutes", {"%d minuto", "%d minutos"}},
|
||||
{"%d seconds", {"%d Segundo", "%d segundos"}},
|
||||
{"", {"", ""}},
|
||||
};
|
||||
|
||||
std::shared_ptr<const i2p::i18n::Locale> GetLocale()
|
||||
{
|
||||
return std::make_shared<i2p::i18n::Locale>(language, strings, plurals, [] (int n)->int { return plural(n); });
|
||||
}
|
||||
|
||||
} // language
|
||||
} // i18n
|
||||
} // i2p
|
@ -0,0 +1,220 @@
|
||||
/*
|
||||
* Copyright (c) 2023, The PurpleI2P Project
|
||||
*
|
||||
* This file is part of Purple i2pd project and licensed under BSD3
|
||||
*
|
||||
* See full license text in LICENSE file at top of project tree
|
||||
*/
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <memory>
|
||||
#include "I18N.h"
|
||||
|
||||
// Swedish localization file
|
||||
|
||||
namespace i2p
|
||||
{
|
||||
namespace i18n
|
||||
{
|
||||
namespace swedish // language namespace
|
||||
{
|
||||
// language name in lowercase
|
||||
static std::string language = "swedish";
|
||||
|
||||
// See for language plural forms here:
|
||||
// https://localization-guide.readthedocs.io/en/latest/l10n/pluralforms.html
|
||||
static int plural (int n) {
|
||||
return n != 1 ? 1 : 0;
|
||||
}
|
||||
|
||||
static std::map<std::string, std::string> strings
|
||||
{
|
||||
{"%.2f KiB", "%.2f KiB"},
|
||||
{"%.2f MiB", "%.2f MiB"},
|
||||
{"%.2f GiB", "%.2f GiB"},
|
||||
{"building", "bygger"},
|
||||
{"failed", "misslyckad"},
|
||||
{"expiring", "utgår"},
|
||||
{"established", "upprättad"},
|
||||
{"unknown", "okänt"},
|
||||
{"exploratory", "utforskande"},
|
||||
{"Purple I2P Webconsole", "Purple I2P Webbkonsoll"},
|
||||
{"<b>i2pd</b> webconsole", "<b>i2pd</b>-Webbkonsoll"},
|
||||
{"Main page", "Huvudsida"},
|
||||
{"Router commands", "Routerkommandon"},
|
||||
{"Local Destinations", "Lokala Platser"},
|
||||
{"LeaseSets", "Hyresuppsättningar"},
|
||||
{"Tunnels", "Tunnlar"},
|
||||
{"Transit Tunnels", "Förmedlande Tunnlar"},
|
||||
{"Transports", "Transporter"},
|
||||
{"I2P tunnels", "I2P-tunnlar"},
|
||||
{"SAM sessions", "SAM-perioder"},
|
||||
{"ERROR", "FEL"},
|
||||
{"OK", "OK"},
|
||||
{"Testing", "Prövar"},
|
||||
{"Firewalled", "Bakom Brandvägg"},
|
||||
{"Unknown", "Okänt"},
|
||||
{"Proxy", "Proxy"},
|
||||
{"Mesh", "Mesh"},
|
||||
{"Clock skew", "Tidsförskjutning"},
|
||||
{"Offline", "Nedkopplad"},
|
||||
{"Symmetric NAT", "Symmetrisk NAT"},
|
||||
{"Full cone NAT", "Full kon NAT"},
|
||||
{"No Descriptors", "Inga Beskrivningar"},
|
||||
{"Uptime", "Upptid"},
|
||||
{"Network status", "Nätverkstillstånd"},
|
||||
{"Network status v6", "Nätverkstillstånd v6"},
|
||||
{"Stopping in", "Avstängd om"},
|
||||
{"Family", "Familj"},
|
||||
{"Tunnel creation success rate", "Andel framgångsrika tunnlar"},
|
||||
{"Received", "Mottaget"},
|
||||
{"%.2f KiB/s", "%.2f KiB/s"},
|
||||
{"Sent", "Skickat"},
|
||||
{"Transit", "Förmedlat"},
|
||||
{"Data path", "Sökväg"},
|
||||
{"Hidden content. Press on text to see.", "Dolt innehåll. Tryck för att visa."},
|
||||
{"Router Ident", "Routeridentitet"},
|
||||
{"Router Family", "Routerfamilj"},
|
||||
{"Router Caps", "Routerbegränsningar"},
|
||||
{"Version", "Version"},
|
||||
{"Our external address", "Vår externa adress"},
|
||||
{"supported", "stöds"},
|
||||
{"Routers", "Routrar"},
|
||||
{"Floodfills", "Översvämningsfyllare"},
|
||||
{"Client Tunnels", "Klienttunnlar"},
|
||||
{"Services", "Tjänster"},
|
||||
{"Enabled", "Påslaget"},
|
||||
{"Disabled", "Avslaget"},
|
||||
{"Encrypted B33 address", "Krypterad B33-Adress"},
|
||||
{"Address registration line", "Adressregistreringsrad"},
|
||||
{"Domain", "Domän"},
|
||||
{"Generate", "Skapa"},
|
||||
{"<b>Note:</b> result string can be used only for registering 2LD domains (example.i2p). For registering subdomains please use i2pd-tools.", "<b>Uppmärksamma:</b> den resulterande strängen kan enbart användas för att registrera 2LD-domäner (exempel.i2p). För att registrera underdomäner, vänligen använd i2pd-tools."},
|
||||
{"Address", "Adress"},
|
||||
{"Type", "Typ"},
|
||||
{"EncType", "EncTyp"},
|
||||
{"Inbound tunnels", "Ingående Tunnlar"},
|
||||
{"%dms", "%dms"},
|
||||
{"Outbound tunnels", "Utgående Tunnlar"},
|
||||
{"Tags", "Taggar"},
|
||||
{"Incoming", "Ingående"},
|
||||
{"Outgoing", "Utgående"},
|
||||
{"Destination", "Plats"},
|
||||
{"Amount", "Mängd"},
|
||||
{"Incoming Tags", "Ingående Taggar"},
|
||||
{"Tags sessions", "Tagg-perioder"},
|
||||
{"Status", "Tillstånd"},
|
||||
{"Local Destination", "Lokal Plats"},
|
||||
{"Streams", "Strömmar"},
|
||||
{"Close stream", "Stäng strömmen"},
|
||||
{"Such destination is not found", "En sådan plats hittas ej"},
|
||||
{"I2CP session not found", "I2CP-period hittades inte"},
|
||||
{"I2CP is not enabled", "I2CP är inte påslaget"},
|
||||
{"Invalid", "Ogiltig"},
|
||||
{"Store type", "Lagringstyp"},
|
||||
{"Expires", "Utgångsdatum"},
|
||||
{"Non Expired Leases", "Ickeutgångna Hyresuppsättningar"},
|
||||
{"Gateway", "Gateway"},
|
||||
{"TunnelID", "TunnelID"},
|
||||
{"EndDate", "EndDate"},
|
||||
{"floodfill mode is disabled", "Floodfill läget är inaktiverat"},
|
||||
{"Queue size", "Köstorlek"},
|
||||
{"Run peer test", "Utför utsiktstest"},
|
||||
{"Reload tunnels configuration", "Ladda om tunnelkonfiguration"},
|
||||
{"Decline transit tunnels", "Avvisa förmedlande tunnlar"},
|
||||
{"Accept transit tunnels", "Tillåt förmedlande tunnlar"},
|
||||
{"Cancel graceful shutdown", "Avbryt välvillig avstängning"},
|
||||
{"Start graceful shutdown", "Påbörja välvillig avstängning"},
|
||||
{"Force shutdown", "Tvingad avstängning"},
|
||||
{"Reload external CSS styles", "Ladda om externa CSS-stilar"},
|
||||
{"<b>Note:</b> any action done here are not persistent and not changes your config files.", "<b>Uppmärksamma:</b> inga ändringar här är beständiga eller påverkar dina inställningsfiler."},
|
||||
{"Logging level", "Protokollförningsnivå"},
|
||||
{"Transit tunnels limit", "Begränsa förmedlande tunnlar"},
|
||||
{"Change", "Ändra"},
|
||||
{"Change language", "Ändra språk"},
|
||||
{"no transit tunnels currently built", "inga förmedlande tunnlar har byggts"},
|
||||
{"SAM disabled", "SAM avslaget"},
|
||||
{"no sessions currently running", "inga perioder igång"},
|
||||
{"SAM session not found", "SAM-perioder hittades ej"},
|
||||
{"SAM Session", "SAM-period"},
|
||||
{"Server Tunnels", "Värdtunnlar"},
|
||||
{"Client Forwards", "Klientförpassningar"},
|
||||
{"Server Forwards", "Värdförpassningar"},
|
||||
{"Unknown page", "Okänd sida"},
|
||||
{"Invalid token", "Ogiltig polett"},
|
||||
{"SUCCESS", "FRAMGÅNG"},
|
||||
{"Stream closed", "Ström stängd"},
|
||||
{"Stream not found or already was closed", "Strömmen hittades inte eller var redan avslutad"},
|
||||
{"Destination not found", "Plats hittades ej"},
|
||||
{"StreamID can't be null", "Ström-ID kan inte vara null"},
|
||||
{"Return to destination page", "Återvänd till platssidan"},
|
||||
{"You will be redirected in %d seconds", "Du omdirigeras inom %d sekunder"},
|
||||
{"Transit tunnels count must not exceed %d", "Förmedlande tunnlar får inte överstiga %d"},
|
||||
{"Back to commands list", "Tillbaka till kommandolistan"},
|
||||
{"Register at reg.i2p", "Registrera vid reg.i2p"},
|
||||
{"Description", "Beskrivning"},
|
||||
{"A bit information about service on domain", "Ett stycke information om domänens tjänst"},
|
||||
{"Submit", "Skicka"},
|
||||
{"Domain can't end with .b32.i2p", "Domänen får inte sluta med .b32.i2p"},
|
||||
{"Domain must end with .i2p", "Domänen måste sluta med .i2p"},
|
||||
{"Unknown command", "Okänt kommando"},
|
||||
{"Command accepted", "Kommando accepterades"},
|
||||
{"Proxy error", "Proxyfel"},
|
||||
{"Proxy info", "Proxyinfo"},
|
||||
{"Proxy error: Host not found", "Proxyfel: Värden hittades ej"},
|
||||
{"Remote host not found in router's addressbook", "Främmande värd hittades inte i routerns adressbok"},
|
||||
{"You may try to find this host on jump services below", "Du kan försöka att hitta värden genom hopptjänsterna nedan"},
|
||||
{"Invalid request", "Ogiltig förfrågan"},
|
||||
{"Proxy unable to parse your request", "Proxyt kan inte behandla din förfrågan"},
|
||||
{"Addresshelper is not supported", "Adresshjälparen stöds ej"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. <b>Be careful: source of this URL may be harmful!</b> Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Värd %s är <font color=red>redan i routerns adressbok</font>. <b>Var försiktig: källan till denna URL kan vara skadlig!</b> Klicka här för att uppdatera registreringen: <a href=\"%s%s%s&update=true\">Fortsätt</a>."},
|
||||
{"Addresshelper forced update rejected", "Tvingad uppdatering av adresshjälparen nekad"},
|
||||
{"To add host <b>%s</b> in router's addressbook, click here: <a href=\"%s%s%s\">Continue</a>.", "För att lägga till värd <b>%s</b> i routerns adressbok, klicka här: <a href=\"%s%s%s\">Fortsätt</a>."},
|
||||
{"Addresshelper request", "Adresshjälpare förfrågan"},
|
||||
{"Host %s added to router's addressbook from helper. Click here to proceed: <a href=\"%s\">Continue</a>.", "Värd %s tillagd i routerns adressbok från hjälparen. Klicka här för att fortsätta: <a href=\"%s\">Fortsätt</a>."},
|
||||
{"Addresshelper adding", "Adresshjälpare tilläggning"},
|
||||
{"Host %s is <font color=red>already in router's addressbook</font>. Click here to update record: <a href=\"%s%s%s&update=true\">Continue</a>.", "Värd %s är <font color=red>redan i routerns adressbok</font>. Klicka här för att uppdatera registreringen: <a href=\"%s%s%s&update=true\">Fortsätt</a>."},
|
||||
{"Addresshelper update", "Adresshjälpare uppdatering"},
|
||||
{"Invalid request URI", "Ogiltig förfrågnings-URI"},
|
||||
{"Can't detect destination host from request", "Kan inte upptäcka platsvärden från förfrågan"},
|
||||
{"Outproxy failure", "Utproxyfel"},
|
||||
{"Bad outproxy settings", "Ogiltig utproxyinställning"},
|
||||
{"Host %s is not inside I2P network, but outproxy is not enabled", "Värd %s är inte inom I2P-näverket, men utproxy är inte påslaget"},
|
||||
{"Unknown outproxy URL", "okänt Utproxy-URL"},
|
||||
{"Cannot resolve upstream proxy", "Hittar inte uppströmsproxyt"},
|
||||
{"Hostname is too long", "Värdnamnet är för långt"},
|
||||
{"Cannot connect to upstream SOCKS proxy", "Kan inte ansluta till uppström SOCKS-proxy"},
|
||||
{"Cannot negotiate with SOCKS proxy", "Kan inte förhandla med SOCKSproxyt"},
|
||||
{"CONNECT error", "CONNECT-fel"},
|
||||
{"Failed to connect", "Anslutningen misslyckades"},
|
||||
{"SOCKS proxy error", "SOCKSproxyfel"},
|
||||
{"Failed to send request to upstream", "Förfrågan uppströms kunde ej skickas"},
|
||||
{"No reply from SOCKS proxy", "Fick inget svar från SOCKSproxyt"},
|
||||
{"Cannot connect", "Kan inte ansluta"},
|
||||
{"HTTP out proxy not implemented", "HTTP-Utproxy ej implementerat"},
|
||||
{"Cannot connect to upstream HTTP proxy", "Kan inte ansluta till uppströms HTTP-proxy"},
|
||||
{"Host is down", "Värden är nere"},
|
||||
{"Can't create connection to requested host, it may be down. Please try again later.", "Kan inte ansluta till värden, den kan vara nere. Vänligen försök senare."},
|
||||
{"", ""},
|
||||
};
|
||||
|
||||
static std::map<std::string, std::vector<std::string>> plurals
|
||||
{
|
||||
{"%d days", {"%d dag", "%d dagar"}},
|
||||
{"%d hours", {"%d timme", "%d timmar"}},
|
||||
{"%d minutes", {"%d minut", "%d minuter"}},
|
||||
{"%d seconds", {"%d sekund", "%d sekunder"}},
|
||||
{"", {"", ""}},
|
||||
};
|
||||
|
||||
std::shared_ptr<const i2p::i18n::Locale> GetLocale()
|
||||
{
|
||||
return std::make_shared<i2p::i18n::Locale>(language, strings, plurals, [] (int n)->int { return plural(n); });
|
||||
}
|
||||
|
||||
} // language
|
||||
} // i18n
|
||||
} // i2p
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue