Compare commits
1170 Commits
Author | SHA1 | Date | |
---|---|---|---|
e05ae5ebc2 | |||
ebc43be4b3 | |||
8543278ce3 | |||
9a98de7bd8 | |||
e1d69fb4ad | |||
946f9b4a2b | |||
9a270e59a4 | |||
2112fb3896 | |||
d1bd9fa552 | |||
393bd76959 | |||
97165fbaf5 | |||
feca9940bc | |||
fbbc7d005d | |||
af5b4749b0 | |||
b4e5fe7e71 | |||
1671aef0bd | |||
ffe5a12773 | |||
9ca01b65de | |||
f50ed905a8 | |||
d7156b8cdd | |||
14442ffa18 | |||
d454596c33 | |||
7d510cf780 | |||
8121cbf10c | |||
d34d20c393 | |||
e773c272be | |||
0c072249d8 | |||
d0b7b662b4 | |||
4b5aa286a0 | |||
2310c74d0b | |||
af251bf0c4 | |||
16204ac13b | |||
7c8645fe29 | |||
bd82173caa | |||
2e8a0b0fac | |||
38b7f4364c | |||
3a33e406c7 | |||
8d0c5268d1 | |||
08bec5abd9 | |||
cc4b6e5eea | |||
e6cb07bef4 | |||
249bfcc5f0 | |||
108c4b4342 | |||
38befa51ac | |||
6a76118710 | |||
f049694fa1 | |||
515a6b74a2 | |||
d1291b3b4c | |||
d2abc28a2b | |||
12142f8c5e | |||
41d7a8de66 | |||
c7a65c13aa | |||
fbf0baadba | |||
ea31e62795 | |||
910b145f42 | |||
952a793f80 | |||
46f2ffaa5c | |||
45ba7989c1 | |||
c4cf3331e9 | |||
6d75ca0bcb | |||
050fb55326 | |||
9d1d9c3540 | |||
fdde966808 | |||
c6ce7b1045 | |||
ce743054d6 | |||
99970b6864 | |||
42110bcd33 | |||
9677b0bfb1 | |||
a7762972fa | |||
dda3b4152e | |||
b7aa6d6c1f | |||
909a3b805f | |||
848d2e00e7 | |||
642662941f | |||
0028a529a8 | |||
62131e864b | |||
0c58b43831 | |||
5a3d6c4fba | |||
a031fa3875 | |||
721ed97a83 | |||
944927ac2d | |||
7705749d28 | |||
cf7f42ebc4 | |||
f195968b6d | |||
4d6bffdc8a | |||
f62c6a05a9 | |||
fa550a2a78 | |||
960c27375c | |||
e87b3e2933 | |||
133766bf8c | |||
aa6b25e9e7 | |||
abde13221f | |||
cb17be5e2b | |||
17d62b689d | |||
9bf5dc67f5 | |||
4eab9b4354 | |||
d39c153c57 | |||
e5992742d4 | |||
72ed803c2a | |||
9ec0e59431 | |||
5328ed64f3 | |||
33e8d61d65 | |||
3584786387 | |||
34f662ead5 | |||
2d53481cf5 | |||
10fb029609 | |||
0281961f15 | |||
fede4eeb89 | |||
ab50d5ef20 | |||
f4e02d4a4c | |||
167640df8d | |||
fe01437aa4 | |||
037fce4d6a | |||
db8b824b84 | |||
b71f62535d | |||
e9a1e281b9 | |||
0144408500 | |||
7660839e40 | |||
d1ca851ebe | |||
35a281d443 | |||
c2690fff47 | |||
c3a73a41d1 | |||
b72baa3295 | |||
73ce22c8a4 | |||
c4f7e6659f | |||
0739ae006d | |||
eaa92e784d | |||
48589e0da1 | |||
0044d83801 | |||
50e917d232 | |||
ccd14e0462 | |||
d0c0104546 | |||
cd34ade638 | |||
3f91e33a8c | |||
17cc996288 | |||
385776dc0f | |||
e52278c371 | |||
7ffc8c1eda | |||
1359615c82 | |||
7a7a56940c | |||
bcbe83cb38 | |||
37f983aee3 | |||
77de3f2b9d | |||
f655b54937 | |||
cac99ebdd4 | |||
f0d0a1546a | |||
8e8459fa55 | |||
d53c55ecb5 | |||
ea33d61a90 | |||
2fcc3388dd | |||
ef7f033c32 | |||
7aa54dc92e | |||
d10ad1b413 | |||
34063a0b84 | |||
8c9d975d69 | |||
03b072b894 | |||
d1bed49808 | |||
6c3417d9b5 | |||
ba65226460 | |||
9c9cd168ee | |||
abb3d2a8d9 | |||
637fe8a04b | |||
be321e95e5 | |||
ed46c1486c | |||
c9fcfc6862 | |||
8495e37566 | |||
247bd43ae2 | |||
a6685b1559 | |||
66c4e8064b | |||
9d1fa3f202 | |||
a6985d7dc7 | |||
027c021ac9 | |||
604205ec09 | |||
77db016866 | |||
c6a009dbae | |||
4299e3f90c | |||
19f4812c03 | |||
d01c465a8d | |||
4f1409601e | |||
52cffe0864 | |||
0866d5c055 | |||
78c08f6503 | |||
27d0ac3d75 | |||
a8776002f3 | |||
31aa008566 | |||
9d405b4581 | |||
80c490a18b | |||
30c9c3739f | |||
ee0e7a09e0 | |||
bfd9577f0d | |||
0cada4ca76 | |||
a718ccc0b6 | |||
1fcfd8e645 | |||
c6dd932a0b | |||
b79eed01e0 | |||
3a7dbe9764 | |||
bef2534fa8 | |||
888dcd2559 | |||
2b69fca6bd | |||
7d088d42b4 | |||
f8ad303b13 | |||
3c59c6fc9b | |||
7353d729d7 | |||
62591e0e7a | |||
012f15d84b | |||
e57c6f94d2 | |||
40b27e8ad8 | |||
055e9f21b7 | |||
d7085b17fe | |||
0d4d7c9c0c | |||
99209d36e1 | |||
e2a9a0ff3d | |||
ab166959a4 | |||
ab692cfa3d | |||
c3ae6f3a4a | |||
5ef4a52bbd | |||
582768a5e4 | |||
1852d1cc6f | |||
7a5a541a4e | |||
72b03e009c | |||
1b113c1045 | |||
54959557ea | |||
d44cb7f256 | |||
3d063c95d1 | |||
09cab605fc | |||
666c8c0498 | |||
d3e764d7f9 | |||
7060625adf | |||
21b6e23e98 | |||
a0f794e372 | |||
9195504329 | |||
8c5d9dd549 | |||
580f6a5b6c | |||
74e76b460b | |||
c4570b37b7 | |||
cd0b0012d9 | |||
c055b4d32d | |||
75a9ff832a | |||
b64d3af1f3 | |||
fb6605bb40 | |||
3bfae80fa7 | |||
cb16cb0610 | |||
0baed1a275 | |||
42162c8015 | |||
0fab0c416d | |||
e2e262c8ce | |||
cf6596203b | |||
471911a54f | |||
9394f4f540 | |||
4e968216ad | |||
84a7a9555f | |||
8d12fd152b | |||
629b765abc | |||
63a89fa84a | |||
a3f89236a0 | |||
01560abafb | |||
b5698026ba | |||
6258ce75b7 | |||
6f34c74027 | |||
8add4f359b | |||
d8933c135f | |||
eb350e8d6c | |||
615fedd64d | |||
25bd82ecaa | |||
e0938e5e3a | |||
ec5e6c8443 | |||
25d8077474 | |||
06083f40d9 | |||
ec203f7f79 | |||
1b30d7d47a | |||
d9be9c958f | |||
ed09796e0d | |||
4bfa29c0ab | |||
4804bbb211 | |||
749102f9c2 | |||
0bcb1434b0 | |||
2e537e618c | |||
fe3b7a2ad3 | |||
90db793fd0 | |||
7bd2a6ad61 | |||
745f4d2439 | |||
254cfaea28 | |||
d4da5a1eea | |||
c0f8297414 | |||
834cb2ea1a | |||
d82769abd4 | |||
adf01ed4a4 | |||
09c007b3aa | |||
526ff177aa | |||
0e40d4e796 | |||
172ebab7bd | |||
aa4493fe5c | |||
a68a88f79e | |||
1de7dc94e1 | |||
59cb7992e2 | |||
87b15df47b | |||
6932d86240 | |||
87f61e714a | |||
5762e2d9ba | |||
f0691c8a4f | |||
6d7e4fe2a1 | |||
7dc789f470 | |||
190d1bbf3c | |||
a755dd5f9e | |||
0846a7b94e | |||
d8be0511f1 | |||
fb07116a4c | |||
fe453c15e3 | |||
059aeef6a0 | |||
30e25451d6 | |||
7f0fd55c9a | |||
0e9b496deb | |||
8294c18e70 | |||
39575b4696 | |||
29e9801d5c | |||
eaf83bffb0 | |||
bb25ece745 | |||
754b5629e4 | |||
ee63403548 | |||
87edeb41da | |||
41fe804587 | |||
02466acc4b | |||
8470a64e6b | |||
9939e0f9a9 | |||
ce5f552d0c | |||
7d4c535233 | |||
57cd0fb93f | |||
a15299ae53 | |||
1df7abfbb9 | |||
85a0f696bc | |||
ba3c62bf9c | |||
c17e97b6a6 | |||
2d80cd0e7b | |||
eedc572f0c | |||
2de1df3514 | |||
2d96af1255 | |||
163325ef89 | |||
23979bf09a | |||
7199e6f4e0 | |||
a40f38b2b5 | |||
00a17ed5d4 | |||
b594366f06 | |||
e9284930df | |||
ea7504f564 | |||
c1f6d996f6 | |||
df71dbb024 | |||
f104e9b6cc | |||
e29b5c2326 | |||
925868dcdb | |||
d7df26d92b | |||
42d1c67d56 | |||
c2d7929391 | |||
5864b52a81 | |||
493d32b3dc | |||
ed141338fb | |||
95db488c48 | |||
d5e1e523b6 | |||
cd0f8a4ef9 | |||
6dac505af9 | |||
9d398040cb | |||
aa55acedc9 | |||
eb70d6f226 | |||
36f0963d78 | |||
c3c111529e | |||
2dbab66cfe | |||
01238d6b1a | |||
c34f302b1c | |||
6870262f8d | |||
c54d5e7040 | |||
0ace009a54 | |||
48e8ee440b | |||
9855405b89 | |||
122076e8ea | |||
7c5ac2cbb4 | |||
ccda2181c1 | |||
b5fe4ba9be | |||
fd9c7d525a | |||
080574e13d | |||
ee0a445590 | |||
bb342c7601 | |||
ed17636fb9 | |||
c59d7d941a | |||
377377595a | |||
d63aef9963 | |||
e9b28fa3c0 | |||
be255dc583 | |||
18eb7c6087 | |||
cf29e69813 | |||
132da7e3c0 | |||
26df23bb64 | |||
76389ad619 | |||
7cde8cfbf2 | |||
4eb2ddac4e | |||
dc51eef27c | |||
bff8a23cbc | |||
9c5efb9da0 | |||
48b8320e5e | |||
9b2ed96c1c | |||
69d9aa71f2 | |||
13683780cd | |||
d780e5b251 | |||
917d3d0bd3 | |||
4b19c53697 | |||
2d40a15d2b | |||
2bdcd22ad4 | |||
f73a4e1304 | |||
b265cdbd84 | |||
a04d8b95c2 | |||
0e9a8c0cd4 | |||
5ae8a3c7e8 | |||
70ee172128 | |||
b9febc00f9 | |||
0112e2f7ec | |||
60736bab2a | |||
fb7c4ee21a | |||
e93c06cd00 | |||
0a99345909 | |||
3d08ff7cb4 | |||
057ce73ba1 | |||
66b07578c5 | |||
de3b365563 | |||
7bb8d8b27e | |||
9008664606 | |||
7374905c28 | |||
718e20de60 | |||
73d166323d | |||
3589fc6f4f | |||
feed6c7acc | |||
2522e7388d | |||
09cfd620bb | |||
362e95263d | |||
c6837b9fdf | |||
71878f93e4 | |||
f5d43b1f25 | |||
770e7378be | |||
b9a8620d2f | |||
d1c8b2993e | |||
01e9b3c2f6 | |||
57203de4cb | |||
74d0e83a8a | |||
9eee5644b9 | |||
9fe6f9417e | |||
e7de5f6051 | |||
60d81d74e3 | |||
2701a7e85f | |||
31a0afdaab | |||
9f87545901 | |||
9f94f60ede | |||
0ca3c0bca1 | |||
27611cef77 | |||
30df8ea121 | |||
595ad04ddb | |||
6b8354ccbf | |||
1b9d316e7c | |||
a8adc46f3b | |||
0efa969a15 | |||
14b7f05af4 | |||
cf43dd6ec5 | |||
b5a1fdd4c7 | |||
b32737cdff | |||
8e9717a5fc | |||
3e28b296e3 | |||
056fef70da | |||
55be9cc9d1 | |||
3f2ffcea97 | |||
b07d037cb5 | |||
4feccdfd92 | |||
f1ef85b636 | |||
cf9266eab9 | |||
4a1552fb3c | |||
e5863c2867 | |||
58211fc6a7 | |||
bd54e44b35 | |||
e1f2e364a4 | |||
186b26e103 | |||
74706a8d2c | |||
7e2b6b6369 | |||
1a2de1a051 | |||
83900cbca6 | |||
166bc19131 | |||
da874f3383 | |||
9c30b23358 | |||
b8350d5093 | |||
58f7af8927 | |||
c3b9c7b74b | |||
9415618992 | |||
1c200c9b94 | |||
ce8fa8e423 | |||
a4b7a9db03 | |||
280eeb9d75 | |||
3f71b14637 | |||
705d40ab37 | |||
b39850de01 | |||
b9c5e95b85 | |||
0c1de7b1b6 | |||
0a4499fd03 | |||
b663a47331 | |||
eb275a62a6 | |||
e18caa3396 | |||
eb15d31ebf | |||
e7f1ab2d01 | |||
9d3beb3174 | |||
b6c3399abe | |||
b505874613 | |||
0a28573845 | |||
937df577f1 | |||
e54fd6c2cb | |||
3caea9d33e | |||
b9e9631195 | |||
76bded455a | |||
c94d9210ed | |||
0f5db9558c | |||
35a8c37922 | |||
6ff84a1061 | |||
aae9bc4cf4 | |||
426c2fa5d1 | |||
dab728278c | |||
7555ab097a | |||
5b5b64d251 | |||
eb84445796 | |||
364bd9ae74 | |||
d4b0761549 | |||
f8e06f12fd | |||
320352bf4b | |||
3c66990263 | |||
7cbe95a1cf | |||
c89abda3fb | |||
90348f4ac7 | |||
08293f368f | |||
d5378dab27 | |||
91648d1bd4 | |||
66d6e71f06 | |||
a0ea5776ab | |||
9b73e897df | |||
debc0086fa | |||
065ec8e170 | |||
11f8d742eb | |||
adf4f5410a | |||
8ff2694cad | |||
191c064611 | |||
d327bb8ff1 | |||
80bebea9e6 | |||
cf3fc97202 | |||
5b28d7bf90 | |||
5f8fb43cc9 | |||
6eff6ee451 | |||
c2ab3a15f4 | |||
a100e13a18 | |||
a591a334ed | |||
ca2e53bd6e | |||
d4b4b61535 | |||
440deb4624 | |||
bbb0130522 | |||
b6a4061097 | |||
48c94907c2 | |||
4fd06369d3 | |||
27a17b467d | |||
c25cf7f89a | |||
ade11aa447 | |||
3799708daf | |||
462204e204 | |||
752669bf5e | |||
b08e3f59d3 | |||
443b45e509 | |||
b2bed61088 | |||
be516d3c1e | |||
f5b41e1fbf | |||
e9afc1d867 | |||
a891f7e862 | |||
b715ea4621 | |||
ea13efe495 | |||
37f862947b | |||
ecb0861be4 | |||
624c9f3418 | |||
1b75984046 | |||
157f1c66dc | |||
cb41391bae | |||
acc88825fc | |||
233a837e35 | |||
9e4456ac1b | |||
83e1068da3 | |||
1fd345f563 | |||
37c16e5b45 | |||
ca25b9acc1 | |||
c3022d38f7 | |||
3599f16d22 | |||
3f78f6f6bb | |||
41f66e4299 | |||
0d36b144cf | |||
aa652aac8a | |||
8dbdab4a47 | |||
90c07a220f | |||
23e2a870cc | |||
dc8eb7d4fe | |||
fd363f5617 | |||
1726ff3977 | |||
93aba74463 | |||
99955f0af9 | |||
30cf154542 | |||
f2c33b06cf | |||
f12473e677 | |||
e845db01bf | |||
7f76a73eee | |||
3c2d94ace3 | |||
1e2239f527 | |||
1851daf9fd | |||
f378f26e5e | |||
cda6bc3404 | |||
071c7e6a58 | |||
010e1b3ba4 | |||
66de51c1ca | |||
265d6bda15 | |||
fecb12bae1 | |||
83ec906ee7 | |||
d44fbf58c9 | |||
9c4a789a4e | |||
bfa1705bad | |||
2876f2188c | |||
579c0043c3 | |||
0fa57957a4 | |||
05cb0b0ec5 | |||
4b24e96dfb | |||
c7eab37177 | |||
c7d0b6cb29 | |||
22ee087bb9 | |||
2480fcdc53 | |||
7e093aee5e | |||
dd8413a485 | |||
925f2912a9 | |||
ed00ea0865 | |||
3f19d221b7 | |||
808271838b | |||
ac0950fdef | |||
38f306ba73 | |||
5c1748d63d | |||
c00cddf5b0 | |||
baf3274748 | |||
9e0515e563 | |||
9c0404c407 | |||
0b85177690 | |||
7ec28ced40 | |||
19ae3b66ec | |||
0118dee3e5 | |||
9201714313 | |||
8b9c1efd7e | |||
111eb43fd9 | |||
f2964101d1 | |||
6b2c289029 | |||
fd2573c068 | |||
df0e9d75fe | |||
2bc86756c8 | |||
fb91ab4080 | |||
0b4d29ed1e | |||
2a8c65e2c3 | |||
ffc7f42efc | |||
7c38cda8ee | |||
d3f5001679 | |||
83d9a4b6d9 | |||
9760e08af4 | |||
8d48e4c76e | |||
a1e0c866aa | |||
8380222baf | |||
eda7d60c26 | |||
ddf92c3e2c | |||
9bb528eb6e | |||
9756957ac1 | |||
af0205b77d | |||
3f0da5453d | |||
923c3071f0 | |||
a8584973e2 | |||
886766cca5 | |||
974abbe826 | |||
61bdf51e90 | |||
9bee9d20f7 | |||
7aee3b88eb | |||
d08184f5fe | |||
ae08232bfb | |||
2b5e4b57bd | |||
35ae13a490 | |||
74f55b4d3f | |||
abe9440021 | |||
6a95b94aaa | |||
21ee38d813 | |||
9681a906d5 | |||
2ca760bee6 | |||
da9f916daa | |||
bc05b83a24 | |||
620e0a9df6 | |||
38ad4f7098 | |||
05c7cacdd1 | |||
baa49271df | |||
e2cbe70966 | |||
6a98301cc9 | |||
81f1df7472 | |||
abc296cdcc | |||
4df5ec82ce | |||
3963ed8ff7 | |||
11141c878c | |||
b1a2046a7f | |||
e44322c9bf | |||
2e6462bf1b | |||
667d9c2be3 | |||
34a86229db | |||
7dd8dbeb5b | |||
b5fb98f01a | |||
f6cfa5cbb4 | |||
c1b95838f6 | |||
6cee608c91 | |||
d979fb6dc0 | |||
ca2a33edc9 | |||
ea80d5eac2 | |||
51cf0970b3 | |||
9c8eb93446 | |||
3ac3a45aa5 | |||
36fcc0d5f6 | |||
6667b86650 | |||
9244efe351 | |||
538ca2a7c7 | |||
c5dd9439d5 | |||
2170c27b62 | |||
61582a0a33 | |||
65efe1f42c | |||
b2d3d43c97 | |||
4ce330c59e | |||
4ea60d36e5 | |||
95111ef8a1 | |||
145389768d | |||
be183206e6 | |||
8b853b7970 | |||
5450b78f71 | |||
a3283c71ef | |||
7231f5ff0b | |||
38a68ea946 | |||
bf9486edc2 | |||
aadfafaef9 | |||
c102978dd5 | |||
9784ade84f | |||
677f06961a | |||
57c3ea3dbe | |||
c01210d4fe | |||
64bbfed432 | |||
a482d9b078 | |||
08456dbb89 | |||
ea662b5c49 | |||
58a8fff895 | |||
bb302a90a6 | |||
99e34e9ee2 | |||
f1417c6bb1 | |||
729db347a2 | |||
f2465ca11f | |||
0294061c00 | |||
71e5892308 | |||
a1597047b4 | |||
d6a8889d84 | |||
070f1f3c6e | |||
234294d564 | |||
d1be8b43f6 | |||
0ed94ee52e | |||
f07564a452 | |||
37419886a1 | |||
b9f0a9ed88 | |||
d0f68bb5d1 | |||
11a350a114 | |||
778ac79c44 | |||
766c00c305 | |||
97cdfa662e | |||
4a08d5295e | |||
b77788b947 | |||
729116c9e5 | |||
d57d55a226 | |||
4cccdb8a98 | |||
54045f95ca | |||
ee6c7cbc59 | |||
00508dc778 | |||
a3ff1bfda7 | |||
f57888eb4b | |||
b2c703c173 | |||
9053b9635e | |||
b5e87a46b0 | |||
ddbdb94ba6 | |||
304e3d58ea | |||
ca6a70e555 | |||
9a611b24f3 | |||
77adf26236 | |||
805472482e | |||
01411327b8 | |||
9daa900793 | |||
b862c055ae | |||
7860839220 | |||
e17e8bbb6f | |||
136d0683b0 | |||
0eded8f5a9 | |||
f62eb0fee9 | |||
077bf11e45 | |||
ebdbd6a84a | |||
69975c2fdd | |||
9aac6a65c6 | |||
7d7c206f24 | |||
15690d853c | |||
14ddca3875 | |||
a8b4df6eae | |||
0683fa6b97 | |||
808c680184 | |||
2bb0a61a89 | |||
dfa129febf | |||
3b49d233f8 | |||
f08d7df419 | |||
cd94d79cbb | |||
2314133112 | |||
06a47a7bd3 | |||
05a785ebd0 | |||
2ee5835186 | |||
19e1abe110 | |||
d19441f3ae | |||
6e3ee05cb6 | |||
51476ad06f | |||
1f998168e2 | |||
e72011f1da | |||
0df3e22e51 | |||
5a9530ccd4 | |||
0a4d119d86 | |||
2ee0e07bb6 | |||
533c9a4fe1 | |||
30c000116f | |||
dc649fe420 | |||
4a8ec173ae | |||
26d6fe9a4e | |||
46f5175a0d | |||
f704e7a602 | |||
8cefcaa55f | |||
164c6505f2 | |||
0a1b83c70f | |||
e60048eb96 | |||
8957eec475 | |||
e790af566c | |||
43fe0cd62e | |||
e22a296dc7 | |||
ac19ebc850 | |||
1e0060193a | |||
72271d905d | |||
8d39283d46 | |||
4364122804 | |||
3b6dbd6dc3 | |||
7c61fc37c5 | |||
f530b5237d | |||
9b9b6ade64 | |||
e184c1cdfb | |||
e0e4b43707 | |||
1d70b33894 | |||
44ea1be930 | |||
a1bf54fe16 | |||
88c57359b3 | |||
050564f717 | |||
75d59a9c9b | |||
9139c863bf | |||
84a1ec01bc | |||
36e59c5b5f | |||
5389b16c59 | |||
da3008af1c | |||
6637766554 | |||
2bc63631a4 | |||
5215721942 | |||
d02e14cb94 | |||
fa75b40dfd | |||
f32d8b7069 | |||
90e8527556 | |||
66377d3f27 | |||
c6ae93df80 | |||
55e9099091 | |||
c6ace29446 | |||
b0b885aacd | |||
3615b5d353 | |||
74c71e6283 | |||
9b07c5af05 | |||
cda1803e59 | |||
96eab7e12b | |||
916512fd47 | |||
58d3a37908 | |||
a19e252c9e | |||
63225ed0fd | |||
11cc9cbc7c | |||
36b9a0d42f | |||
e7da10ae58 | |||
f07047d1e8 | |||
c62aff76af | |||
1c20de4e9c | |||
4903eb4a4a | |||
b5981ab544 | |||
00e1dbfdfb | |||
df69ca4d56 | |||
cb631d4abb | |||
3c351d8300 | |||
ca66acac2b | |||
9fcf94b197 | |||
aa34000f0b | |||
d3c0f3c251 | |||
bb7edfee04 | |||
caa14c70ef | |||
3a0f72867f | |||
10d72742f5 | |||
1b9f8a87d3 | |||
d4a630902d | |||
fef5ec874b | |||
f2e347fec1 | |||
cd3c2484ee | |||
6a396ef5e3 | |||
eec1af1f52 | |||
99fc77b678 | |||
8bb311df51 | |||
a77df249c2 | |||
2883bca257 | |||
dd3af6886b | |||
33bcf2d1ea | |||
795fb0eb60 | |||
9e9d378bf1 | |||
4a6b0edce6 | |||
356225af14 | |||
331305e6c7 | |||
917b9475a5 | |||
e895fc954b | |||
6d3e18a6a1 | |||
79354f4faf | |||
28f8933c3c | |||
10356b4041 | |||
6a732ab1cd | |||
47322b35ff | |||
4c6d0386b9 | |||
a448172952 | |||
244ef0cb8f | |||
cc66a1f9c7 | |||
e2183400e5 | |||
afc531bd26 | |||
02cc1891f2 | |||
09e3ddbd57 | |||
d0fff562ea | |||
8ce5366e80 | |||
bfcda7cc02 | |||
c52aeb6618 | |||
f5ebfdca61 | |||
db93838729 | |||
bb835a6e8a | |||
52feba0e3a | |||
a1076c3108 | |||
bad068b20e | |||
ec41d461c0 | |||
a826cd6845 | |||
a950b6193a | |||
2cc4de2b23 | |||
03ef6996ff | |||
d1e5def30e | |||
02fbda2154 | |||
c21694a24a | |||
cb98336b0a | |||
97d25bc6a3 | |||
b36a1a9d0e | |||
cd44ff0aaa | |||
032571c326 | |||
6b890e3f82 | |||
9998845b21 | |||
7ee4385deb | |||
695277c9eb | |||
f014a79f8d | |||
1a6d47a633 | |||
12eed8f859 | |||
549092d9aa | |||
b245393bc4 | |||
dcd43a17ba | |||
b8088dc01a | |||
8e1b90ab43 | |||
614a1d74dd | |||
9ea1ed8559 | |||
3e1e234799 | |||
62f5ecd278 | |||
27733e2119 | |||
6be127e18b | |||
4bf1c23b3c | |||
608b8bb741 | |||
ef01eec36e | |||
5dbdd0e685 | |||
5273050ab3 | |||
fae3b02e5a | |||
3489e4af1e | |||
8e9bd0bbd5 | |||
3725b5bc34 | |||
998a59aa5e | |||
86c017674a | |||
cbae87cd11 | |||
5bc1f8d468 | |||
d3a355e164 | |||
45413c9d28 | |||
082ee8836f | |||
2f5bd5e6d7 | |||
639e0137cc | |||
2f898aa037 | |||
a43a225740 | |||
833c39969b | |||
e25dea27e7 | |||
dac962580b | |||
b12bf78c6d | |||
a44b005f7c | |||
4ea65dbe41 | |||
90ba51ee9c | |||
ecf44084dc | |||
9f49c663f8 | |||
c8c9a67485 | |||
837358df66 | |||
498bc7cebe | |||
9c3a4eb947 | |||
de1ecbaef4 | |||
4eb05efa7c | |||
ffa40227ec | |||
b44e1820a2 | |||
eb461481ed | |||
92f47cc9cb | |||
f82c6f7ab4 | |||
9f32e46921 | |||
eba96282d6 | |||
dd8423fbb5 | |||
76f992906d | |||
402d6de02d | |||
43e3ce1ed5 | |||
15050018f2 | |||
71d6394bc8 | |||
1d6791e4c2 | |||
7f0084a7ed | |||
1374a12f89 | |||
92937b8b3c | |||
d0ed5a8b59 | |||
2b318a1021 | |||
903e93ae01 | |||
06c7fe669c | |||
e2c0ee66e4 | |||
c6c62f956b | |||
8fa27fea6c | |||
03c56f388c | |||
4090922e7e | |||
8061dedba1 | |||
da2112b659 | |||
ed5386771a | |||
d248828523 | |||
fc0b86fe19 | |||
346036ec88 | |||
a5e1ce0e0b | |||
67b39b1a98 | |||
6fb7721798 | |||
0018fd469e | |||
019f7480e8 | |||
8e0b088deb | |||
452005381f | |||
9722ed99a3 | |||
ee6311e83d | |||
1471e52307 | |||
f1fc12d9cc | |||
ebbc42bebc | |||
4785ee8c32 | |||
ab40756c1a | |||
c88e737a84 | |||
def5ea7978 | |||
e69ab45044 | |||
25d0b4bbf1 | |||
f86f5ac6cc | |||
07ce365bfd | |||
f31c94e2ea | |||
933638d035 | |||
b0151afa9a | |||
5bbd4ae703 | |||
f2f7f532a0 | |||
80eedf7449 | |||
1b48e0d6e0 | |||
0420c548da | |||
6e98b75d13 | |||
e772cb00d1 | |||
b5d5275e9b | |||
a2d3d22b6e | |||
1ad8603cc2 | |||
aeaf535ea2 | |||
917726fecc | |||
49a5b4eb14 | |||
8946f3ea18 | |||
1947835c51 | |||
c7c537c8b8 | |||
4e2f954683 | |||
abb0184329 | |||
ee483ecfd3 | |||
99384b4c22 | |||
65503bc68d | |||
ec6aadb5ce | |||
5f642886d9 | |||
4c26e3c54d | |||
3ca3712bae | |||
a471e4b783 | |||
20ac7e62e9 | |||
3e61aa0835 | |||
c18f6fde80 | |||
8b9397a0ce | |||
678ff17d0f | |||
ea2016c208 | |||
b5bdf266d3 | |||
2309680c38 | |||
e99bf569c5 | |||
d3fd0f810a | |||
484dc9b08a | |||
3bd827d7da | |||
d425c72134 | |||
969cd16638 | |||
569be15705 | |||
03f54c5b02 | |||
06ddc8ec50 | |||
1528935008 | |||
7121bdef6b | |||
f6c376f20d | |||
241769d6fc | |||
7727651871 | |||
ce331826ac | |||
ae92c52d61 | |||
54aef5fe6f | |||
d22148b418 | |||
5dc75c9cea | |||
200e82decb | |||
50359dbaf4 | |||
7165f21a62 | |||
8aab828c65 | |||
c9f8c12f5b | |||
a347f8fa49 | |||
2d76bdd0f8 | |||
c5cdd56edb | |||
6901ab39ed | |||
b851b7f431 | |||
ccaa99115c | |||
813de15e85 | |||
fa33181fa9 | |||
d4324dc0cb | |||
ccc27bcc14 | |||
014c1673c6 | |||
3a3319ff52 | |||
5b54ec8fb5 | |||
e690556286 | |||
660956917f | |||
3a5201747b | |||
b338e8a83f | |||
5584d56b6a | |||
c925498120 | |||
75615cf503 | |||
39f708b0fc | |||
ac32077221 | |||
a5902acacd | |||
c7c08b7511 | |||
7de915d47b | |||
9107547501 | |||
95dc76ca19 | |||
49c2a9b372 | |||
b378cabfc7 | |||
4263dbef31 | |||
32fc6ae2eb | |||
238cb0077f | |||
f5a06b6494 | |||
2c01329085 | |||
502de89ab1 | |||
128de6750c | |||
e59e2d9f0b | |||
2504b8391b | |||
330ea7d210 | |||
1edd173a29 | |||
98d873a7f9 | |||
09175b84df | |||
177e19632a | |||
8e6207f3e9 | |||
ff3a97f6cf | |||
b8e155ab40 | |||
b8e7df198d |
13
.babelrc
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"plugins": [
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
"corejs": {
|
||||
"version": 3,
|
||||
"proposals": true
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
@ -15,7 +15,8 @@ jobs:
|
||||
executor: docker
|
||||
steps:
|
||||
- checkout
|
||||
- setup_remote_docker
|
||||
- setup_remote_docker:
|
||||
version: 19.03.13
|
||||
- run:
|
||||
name: Build
|
||||
command: |
|
||||
|
@ -88,7 +88,9 @@ redis:
|
||||
#elasticsearch:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# pass: null
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
@ -140,6 +142,11 @@ id: 'aid'
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
#proxyBypassHosts: [
|
||||
# 'example.com',
|
||||
# '192.0.2.8'
|
||||
#]
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||
@ -147,3 +154,6 @@ id: 'aid'
|
||||
|
||||
# Media Proxy
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Sign to ActivityPub GET request (default: false)
|
||||
#signToActivityPubGet: true
|
||||
|
@ -5,8 +5,10 @@
|
||||
.vscode
|
||||
Dockerfile
|
||||
build/
|
||||
built/
|
||||
db/
|
||||
docker-compose.yml
|
||||
elasticsearch/
|
||||
node_modules/
|
||||
redis/
|
||||
files/
|
||||
|
2
.github/workflows/docker.yml
vendored
@ -11,7 +11,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull previous build result (for cache)
|
||||
run: docker pull misskey/misskey:latest
|
||||
- name: Build docker container
|
||||
|
15
.github/workflows/nodejs.yml
vendored
@ -12,7 +12,7 @@ jobs:
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [11.10.x, 12.x]
|
||||
node-version: [12.x, 14.x, 15.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
@ -21,13 +21,14 @@ jobs:
|
||||
- 5432:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v1
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
@ -40,3 +41,13 @@ jobs:
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
- run: yarn install
|
||||
- run: yarn lint
|
||||
|
2
.gitignore
vendored
@ -12,7 +12,7 @@ report.*.json
|
||||
# config
|
||||
/.config/*
|
||||
!/.config/example.yml
|
||||
!/.config/mongo_initdb_example.js
|
||||
!/.config/docker_example.env
|
||||
|
||||
# misskey
|
||||
/build
|
||||
|
7
.mocharc.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extension": ["ts","js","cjs","mjs"],
|
||||
"require": "ts-node/register",
|
||||
"slow": 1000,
|
||||
"timeout": 30000,
|
||||
"exit": true
|
||||
}
|
@ -1 +1 @@
|
||||
v12.11.1
|
||||
v14.15.1
|
||||
|
2067
CHANGELOG.md
@ -1,6 +1,12 @@
|
||||
# Contribution guide
|
||||
:v: Thanks for your contributions :v:
|
||||
|
||||
## When you contribute...
|
||||
- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。
|
||||
- 設計に迷った時はプロジェクトリーダーの判断を仰いでください。
|
||||
- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。
|
||||
- 温度感高めで見てほしいものは責付いてください。
|
||||
|
||||
## Issues
|
||||
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
|
||||
|
||||
|
4
COPYING
@ -13,3 +13,7 @@ https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
|
||||
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
||||
License: MIT
|
||||
https://github.com/muan/emojilib/blob/master/LICENSE
|
||||
|
||||
RsaSignature2017 implementation by Transmute Industries Inc
|
||||
License: MIT
|
||||
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE
|
||||
|
@ -1,9 +1,7 @@
|
||||
FROM node:12.11.1-alpine AS base
|
||||
FROM node:14.15.1-alpine AS base
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN npm i -g npm@latest
|
||||
|
||||
WORKDIR /misskey
|
||||
|
||||
FROM base AS builder
|
||||
@ -12,6 +10,7 @@ RUN apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
file \
|
||||
git \
|
||||
g++ \
|
||||
gcc \
|
||||
libc-dev \
|
||||
@ -22,7 +21,7 @@ RUN apk add --no-cache \
|
||||
python \
|
||||
zlib-dev
|
||||
|
||||
COPY package.json ./
|
||||
COPY package.json yarn.lock ./
|
||||
RUN yarn install
|
||||
COPY . ./
|
||||
RUN yarn build
|
||||
|
87
README.md
@ -6,8 +6,9 @@
|
||||
[](https://circleci.com/gh/syuilo/misskey)
|
||||
[](https://david-dm.org/syuilo/misskey)
|
||||
[](http://makeapullrequest.com)
|
||||
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||
|
||||
**A forever evolving, sophisticated microblogging platform.**
|
||||
**A forever evolving, interplanetary microblogging platform.**
|
||||
|
||||
<p align="justify">
|
||||
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||
@ -89,6 +90,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/20679825?s=460&v=4" alt="acid-chicken" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/6533808?s=460&v=4" alt="rinsuki" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/7973572?s=460&v=4" alt="tamaina" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/7106976?s=460&v=4" alt="Xeltica" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/17376330?s=460&v=4" alt="u1-liquid" width="100"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
||||
@ -96,6 +100,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td align="center"><a href="https://github.com/mei23">@mei23</a></td>
|
||||
<td align="center"><a href="https://github.com/acid-chicken">@acid-chicken</a></td>
|
||||
<td align="center"><a href="https://github.com/rinsuki">@rinsuki</a></td>
|
||||
<td align="center"><a href="https://github.com/tamaina">@tamaina</a></td>
|
||||
<td align="center"><a href="https://github.com/Xeltica">@Xeltica</a></td>
|
||||
<td align="center"><a href="https://github.com/u1-liquid">@u1-liquid</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -106,91 +113,103 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/27956229" alt="Oliver Maximilian Seidel" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/605366/c9dc408fdcbf412fb183ca5b06235f8d/1.jpeg?token-time=2145916800&token-hash=oaqsjLqOFjWN5I9hm2epOaTXaEtKwQUy5OW-EpAz6-g%3D" alt="Jon Leibowitz" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/27648259" alt="みなしま " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24430516/b1964ac5b9f746d2a12ff53dbc9aa40a/1.jpg?token-time=2145916800&token-hash=bmEiMGYpp3bS7hCCbymjGGsHBZM3AXuBOFO3Kro37PU%3D" alt="Eduardo Quiros" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/3.png?token-time=2145916800&token-hash=Zq1TCK2tdY7xudEm_aV70bc_wxmol6pNj3ZWbpFUNbI%3D" alt="Nesakko" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Denshi" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=20832595">Roujo </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=27956229">Oliver Maximilian Seidel</a></td>
|
||||
<td><a href="https://www.patreon.com/weepjp">weepjp </a></td>
|
||||
<td><a href="https://www.patreon.com/jonleibowitz">Jon Leibowitz</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19045173">kiritan </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=27648259">みなしま </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24430516">Eduardo Quiros</a></td>
|
||||
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=776209">Denshi</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/4.jpg?token-time=2145916800&token-hash=BslMqDjTjz8KYANLvxL87agHTugHa0dMPUzT-hwR6Vk%3D" alt="Nesakko" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Demogrognard" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3075183/c2ae575c604e420297f000ccc396e395/1.jpeg?token-time=2145916800&token-hash=O9qmPtpo6wWb0OuvnkEekhk_1WO2MTdytLr7ZgsAr80%3D" alt="Liaizon Wakest" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1.png?token-time=2145916800&token-hash=9nEQje_eMvUjq9a7L3uBqW-MQbS-rRMaMgd7UYVoFNM%3D" alt="mydarkstar" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/36813045/29876ea679d443bcbba3c3f16edab8c2/2.jpeg?token-time=2145916800&token-hash=YCKWnIhrV9rjUCV9KqtJnEqjy_uGYF3WMXftjUdpi7o%3D" alt="Wataru Manji (manji0)" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=776209">Demogrognard</a></td>
|
||||
<td><a href="https://www.patreon.com/wakest">Liaizon Wakest</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=557245">mkatze </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y </a></td>
|
||||
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk </a></td>
|
||||
<td><a href="https://www.patreon.com/osapon">osapon </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ </a></td>
|
||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61</a></td>
|
||||
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
||||
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=28779508">S Y</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=36813045">Wataru Manji (manji0)</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3.png?token-time=2145916800&token-hash=KjfQL8nf3AIf6WqzLshBYAyX44piAqOAZiYXgZS_H6A%3D" alt="YUKIMOCHI" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/38837364/9421361c54c645ac8f5fc442a40c32e9/1.png?token-time=2145916800&token-hash=TUZB48Nem3BeUPLBH6s3P6WyKBnQOy0xKaDSTBBUNzA%3D" alt="xianon" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61 </a></td>
|
||||
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=28779508">S Y</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16542964">Takumi Sugita</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin </a></td>
|
||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=38837364">xianon</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro </a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/20494440/540beaf2445f408ea6597bc61e077bb3/1.png?token-time=2145916800&token-hash=UJ0JQge64Bx9XmN_qYA1inMQhrWf4U91fqz7VAKJeSg%3D" alt="axtuki1 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9109588/e3cffc48d20a4e43afe04123e696781d/3.png?token-time=2145916800&token-hash=T_VIUA0IFIbleZv4pIjiszZGnQonwn34sLCYFIhakBo%3D" alt="nafuchoco " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26144593/9514b10a5c1b42a3af58621aee213d1d/1.png?token-time=2145916800&token-hash=v1PYRsjzu4c_mndN4Hvi_dlispZJsuGRCQeNS82pUSM%3D" alt="EBISUME" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo " width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=5827393">motcha </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20494440">axtuki1 </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
||||
<td><a href="https://www.patreon.com/takimura">takimura </a></td>
|
||||
<td><a href="https://www.patreon.com/aqz">aqz tamaina</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=9109588">nafuchoco </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26144593">EBISUME</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo </a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24641572/b4fd175424814f15b0ca9178d2d2d2e4/1.png?token-time=2145916800&token-hash=e2fyqdbuJbpCckHcwux7rbuW6OPkKdERcus0u2wIEWU%3D" alt="uroco @99" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1.jpeg?token-time=2145916800&token-hash=L55UhJ0rcuNAH3w_ryeeGN4hC6taoOixyAhraEi0bzw%3D" alt="dansup" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/14661394" alt="Chandler " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9481273/7fa89168e72943859c3d3c96e424ed31/4.jpeg?token-time=2145916800&token-hash=5w1QV1qXe-NdWbdFmp1H7O_-QBsSiV0haumk3XTHIEg%3D" alt="Efertone " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1.jpeg?token-time=2145916800&token-hash=vGe7wXGqmA8Q7m-kDNb6fyGdwk-Dxk4F-ut8ZZu51RM%3D" alt="Takashi Shibuya" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo</a></td>
|
||||
<td><a href="https://www.patreon.com/Corset">CG </a></td>
|
||||
<td><a href="https://www.patreon.com/hekovic">Hekovic </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24641572">uroco @99</a></td>
|
||||
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/user?u=14661394">Chandler </a></td>
|
||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi </a></td>
|
||||
<td><a href="https://www.patreon.com/efertone">Efertone </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||
</tr></table>
|
||||
|
||||
**Last updated:** Wed, 05 Feb 2020 00:42:12 UTC
|
||||
**Last updated:** Sun, 26 Jul 2020 07:00:10 UTC
|
||||
<!-- PATREON_END -->
|
||||
|
||||
[backer-url]: #backers
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 7.2 KiB |
27
assets/icon.svg
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(0.413372,0,0,0.469741,64.564,40.5821)">
|
||||
<rect x="-156.189" y="-86.393" width="619.297" height="544.981" style="fill:rgb(27,30,31);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.898356,0,0,0.898356,-130.722,-120.968)">
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,288,-166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-96,166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-96,498.831)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-95.9902,55.4086)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-2.64322e-11,554.256)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,192,-110.851)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 18 KiB |
@ -13,6 +13,8 @@ services:
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/misskey/files
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
@ -24,7 +26,7 @@ services:
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:11.2-alpine
|
||||
image: postgres:12.2-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
|
@ -4,3 +4,30 @@ Docs for users are located in `src/docs`.
|
||||
|
||||
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
|
||||
利用者向けのドキュメントは`src/docs`にあります。
|
||||
|
||||
这些文档是为 Misskey 的贡献者,或是 Misskey 实例的管理者准备的。
|
||||
为用户准备的文档放置在 `src/docs` 文件夹中。
|
||||
|
||||
## 日本語版
|
||||
|
||||
- [Misskey構築の手引き](./setup.ja.md)
|
||||
- [運営ガイド](./manage.ja.md)
|
||||
- [Dockerを使ったMisskey構築方法](./docker.ja.md)
|
||||
|
||||
## English Version
|
||||
|
||||
- [Misskey Setup and Installation Guide](./setup.en.md)
|
||||
- [Management guide](./manage.en.md)
|
||||
- [Docker Guide](./docker.en.md)
|
||||
|
||||
## Française Version
|
||||
|
||||
- [Guide d'installation et de configuration de Misskey](./setup.fr.md)
|
||||
- [Guide d'administration](./manage.fr.md)
|
||||
- [Guide Docker](./docker.fr.md)
|
||||
|
||||
## 简体中文版
|
||||
|
||||
- [Misskey 设置和安装指南](./setup.zh.md)
|
||||
- [运营指南](./manage.zh.md)
|
||||
- [Docker 部署指南](./docker.zh.md)
|
||||
|
@ -3,7 +3,8 @@ Docker Guide
|
||||
|
||||
This guide describes how to install and setup Misskey with Docker.
|
||||
|
||||
[Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
@ -3,8 +3,9 @@ Guide Docker
|
||||
|
||||
Ce guide explique comment installer et configurer Misskey avec Docker.
|
||||
|
||||
[Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
[Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
||||
- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
||||
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
@ -3,7 +3,8 @@ Dockerを使ったMisskey構築方法
|
||||
|
||||
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
|
||||
|
||||
[英語版もあります - English version also available](./docker.en.md)
|
||||
- [英語版もあります - English version also available](./docker.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
96
docs/docker.zh.md
Normal file
@ -0,0 +1,96 @@
|
||||
Docker 部署指南
|
||||
================================================================
|
||||
|
||||
这份指南描述了如何使用Docker安装并设置 Misskey 。
|
||||
|
||||
- [日本語版もあります - Japanese version also available](./docker.ja.md)
|
||||
- [英語版もあります - English version also available](./docker.en.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* 下载 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 克隆 Misskey 项目的 master 分支。
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
2. 进入 misskey 文件夹。
|
||||
|
||||
`cd misskey`
|
||||
|
||||
3. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||
|
||||
`git checkout master`
|
||||
|
||||
*2.* 配置 Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
可以按照如下方式创建配置文件:
|
||||
|
||||
``` bash
|
||||
cd .config
|
||||
cp example.yml default.yml
|
||||
cp docker_example.env docker.env
|
||||
```
|
||||
|
||||
### `default.yml`
|
||||
|
||||
这个文件的编辑工作基本与非 Docker 环境的版本相同。
|
||||
但请注意, Postgresql、 Redis 和 Elasticsearch 的 **主机名(hostname)** 配置不应该是 `localhost` ,它们被设置在 `docker-compose.yml` 文件中。
|
||||
以下是默认的主机名:
|
||||
|
||||
| 服务 | 主机名 |
|
||||
|---------------|----------|
|
||||
| Postgresql | `db` |
|
||||
| Redis | `redis` |
|
||||
| Elasticsearch | `es` |
|
||||
|
||||
### `docker.env`
|
||||
|
||||
在这个文件中配置 Postgresql 。
|
||||
至少需要如下这些配置:
|
||||
|
||||
| 名称 | 描述 |
|
||||
|---------------------|---------------|
|
||||
| `POSTGRES_PASSWORD` | 数据库密码 |
|
||||
| `POSTGRES_USER` | 数据库用户名 |
|
||||
| `POSTGRES_DB` | 数据库名 |
|
||||
|
||||
*3.* 配置 Docker
|
||||
----------------------------------------------------------------
|
||||
编辑 `docker-compose.yml` 文件。
|
||||
|
||||
*4.* 构建 Misskey
|
||||
----------------------------------------------------------------
|
||||
使用如下的方式构建Misskey:
|
||||
|
||||
`docker-compose build`
|
||||
|
||||
*5.* 初始化数据库
|
||||
----------------------------------------------------------------
|
||||
``` bash
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* 完成了!
|
||||
----------------------------------------------------------------
|
||||
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||
|
||||
### 正常启动
|
||||
只需要 `docker-compose up -d` 即可。玩得愉快!
|
||||
|
||||
### 如何将您的 Misskey 服务器升级至最新版本
|
||||
1. `git stash`
|
||||
2. `git checkout master`
|
||||
3. `git pull`
|
||||
4. `git stash pop`
|
||||
5. `docker-compose build`
|
||||
6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### 如何执行 [控制台指令](manage.zh.md):
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
@ -39,8 +39,8 @@ server {
|
||||
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||
|
||||
# SSL protocol settings
|
||||
ssl_protocols TLSv1 TLSv1.2;
|
||||
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_protocols TLSv1.2;
|
||||
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
# Change to your upload limit
|
||||
|
14
docs/manage.zh.md
Normal file
@ -0,0 +1,14 @@
|
||||
# 运营指南
|
||||
|
||||
## 检查任务队列的状态
|
||||
即将到来……
|
||||
|
||||
## 设置用户为管理员
|
||||
``` shell
|
||||
node built/tools/mark-admin (用户名)
|
||||
```
|
||||
|
||||
样例
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
@ -4,7 +4,8 @@ Misskey Setup and Installation Guide
|
||||
We thank you for your interest in setting up your Misskey server!
|
||||
This guide describes how to install and setup Misskey.
|
||||
|
||||
[Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||
- [Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,8 +23,8 @@ adduser --disabled-password --disabled-login misskey
|
||||
Please install and setup these softwares:
|
||||
|
||||
#### Dependencies :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** >= 11.10.1
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optional
|
||||
|
@ -4,7 +4,9 @@ Guide d'installation et de configuration de Misskey
|
||||
Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey !
|
||||
Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey.
|
||||
|
||||
[La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
||||
- [La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
||||
- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md)
|
||||
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,8 +24,8 @@ adduser --disabled-password --disabled-login misskey
|
||||
Installez les paquets suivants :
|
||||
|
||||
#### Dépendences :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** >= 11.10.1
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optionnels
|
||||
|
@ -4,7 +4,8 @@ Misskey構築の手引き
|
||||
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます!
|
||||
このガイドではMisskeyのインストール・セットアップ方法について解説します。
|
||||
|
||||
[英語版もあります - English version also available](./setup.en.md)
|
||||
- [英語版もあります - English version also available](./setup.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,7 +23,7 @@ adduser --disabled-password --disabled-login misskey
|
||||
これらのソフトウェアをインストール・設定してください:
|
||||
|
||||
#### 依存関係 :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (11.10.1以上)
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
|
146
docs/setup.zh.md
Normal file
@ -0,0 +1,146 @@
|
||||
Misskey 设置和安装指南
|
||||
================================================================
|
||||
|
||||
非常感谢您对构建 Misskey 服务器的关注!
|
||||
这份指南描述了 Misskey 的安装与设置流程。
|
||||
|
||||
- [日本語版もあります - Japanese version also available](./setup.ja.md)
|
||||
- [英語版もあります - English version also available](./setup.en.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* 创建 Misskey 用户
|
||||
----------------------------------------------------------------
|
||||
直接使用 root 用户来运行 misskey 也许并不是一个好主意,因此我们有必要创建一个专用的用户。
|
||||
以 Debian 为例:
|
||||
|
||||
``` bash
|
||||
adduser --disabled-password --disabled-login misskey
|
||||
```
|
||||
|
||||
*2.* 安装依赖
|
||||
----------------------------------------------------------------
|
||||
请安装并设置如下这些软件:
|
||||
|
||||
#### Dependencies :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optional
|
||||
* [Yarn](https://yarnpkg.com/) *可选,但出于安全因素考虑还是推荐安装。如果您没有安装, 您需要使用 `npx yarn` 来代替 `yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - 为了启用搜索功能,这个搜索引擎是有必要的。
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* 安装 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 连接至 misskey 用户.
|
||||
|
||||
`su - misskey`
|
||||
|
||||
2. 克隆 Misskey 项目的 master 分支。
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
3. 进入 misskey 文件夹。
|
||||
|
||||
`cd misskey`
|
||||
|
||||
4. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||
|
||||
`git checkout master`
|
||||
|
||||
5. 安装 Misskey 的依赖。
|
||||
|
||||
`yarn`
|
||||
|
||||
*4.* 配置 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 复制 `.config/example.yml` 并重命名为 `default.yml`。
|
||||
|
||||
`cp .config/example.yml .config/default.yml`
|
||||
|
||||
2. 编辑 `default.yml`
|
||||
|
||||
*5.* 构建 Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
使用如下的指令构建 Misskey :
|
||||
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
如果您使用的是 Debian , 您需要安装 `build-essential`, `python` 环境包。
|
||||
|
||||
如果您仍然遇到有关某些模块的错误,您可以使用 node-gyp:
|
||||
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* 初始化数据库
|
||||
----------------------------------------------------------------
|
||||
``` bash
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* 完成了!
|
||||
----------------------------------------------------------------
|
||||
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||
|
||||
### 正常启动
|
||||
只需要 `NODE_ENV=production npm start` 即可。玩得愉快!
|
||||
|
||||
### 使用 systemd 来启动
|
||||
|
||||
1. 在此处创建一个 systemd 服务:
|
||||
|
||||
`/etc/systemd/system/misskey.service`
|
||||
|
||||
2. 编辑它,粘贴如下内容并保存:
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Misskey daemon
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=misskey
|
||||
ExecStart=/usr/bin/npm start
|
||||
WorkingDirectory=/home/misskey/misskey
|
||||
Environment="NODE_ENV=production"
|
||||
TimeoutSec=60
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
SyslogIdentifier=misskey
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
3. 重启 systemd 并设置 misskey 服务自动启动:
|
||||
|
||||
`systemctl daemon-reload ; systemctl enable misskey`
|
||||
|
||||
4. 启动 misskey 服务:
|
||||
|
||||
`systemctl start misskey`
|
||||
|
||||
您可以使用 `systemctl status misskey` 来检查服务是否正在运行。
|
||||
|
||||
### 如何将您的 Misskey 服务器升级至最新版本
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
6. 重启您的 Misskey 进程来应用改变。
|
||||
7. 尽情享受吧!
|
||||
|
||||
如果您在更新时遇到任何问题,请尝试以下操作:
|
||||
1. `yarn clean` 或是 `yarn cleanall`
|
||||
2. 重试升级 (请不要忘记 `yarn install` )
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
34
gulpfile.ts
@ -5,14 +5,10 @@
|
||||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as ts from 'gulp-typescript';
|
||||
import * as mocha from 'gulp-mocha';
|
||||
import * as rimraf from 'rimraf';
|
||||
import * as rename from 'gulp-rename';
|
||||
const cleanCSS = require('gulp-clean-css');
|
||||
const sass = require('gulp-dart-sass');
|
||||
const fiber = require('fibers');
|
||||
|
||||
const locales = require('./locales');
|
||||
const locales: { [x: string]: any } = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('build:ts', () => {
|
||||
@ -32,14 +28,20 @@ gulp.task('build:copy:views', () =>
|
||||
gulp.task('build:copy:locales', cb => {
|
||||
fs.mkdirSync('./built/client/assets/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify(locale), 'utf-8');
|
||||
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', () =>
|
||||
gulp.task('build:copy:fonts', () =>
|
||||
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', 'build:copy:fonts', () =>
|
||||
gulp.src([
|
||||
'./src/emojilist.json',
|
||||
'./src/server/web/views/**/*',
|
||||
@ -56,13 +58,6 @@ gulp.task('cleanall', gulp.parallel('clean', cb =>
|
||||
rimraf('./node_modules', cb)
|
||||
));
|
||||
|
||||
gulp.task('build:client:styles', () =>
|
||||
gulp.src('./src/client/style.scss')
|
||||
.pipe(sass({ fiber }))
|
||||
.pipe(cleanCSS())
|
||||
.pipe(gulp.dest('./built/client/assets/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client', () =>
|
||||
gulp.src([
|
||||
'./assets/**/*',
|
||||
@ -82,7 +77,6 @@ gulp.task('copy:docs', () =>
|
||||
);
|
||||
|
||||
gulp.task('build:client', gulp.parallel(
|
||||
'build:client:styles',
|
||||
'copy:client',
|
||||
'copy:docs'
|
||||
));
|
||||
@ -93,14 +87,4 @@ gulp.task('build', gulp.parallel(
|
||||
'build:client',
|
||||
));
|
||||
|
||||
gulp.task('mocha', () =>
|
||||
gulp.src('./test/**/*.ts')
|
||||
.pipe(mocha({
|
||||
exit: true,
|
||||
require: 'ts-node/register'
|
||||
} as any))
|
||||
);
|
||||
|
||||
gulp.task('test', gulp.task('mocha'));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
559
locales/ar-SA.yml
Normal file
@ -0,0 +1,559 @@
|
||||
---
|
||||
_lang_: "العربية"
|
||||
introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "البحث"
|
||||
notifications: "الإشعارات"
|
||||
username: "اسم المستخدم"
|
||||
password: "الكلمة السرية"
|
||||
fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…"
|
||||
ok: " حسناً"
|
||||
gotIt: "فهِمت"
|
||||
cancel: " إلغاء"
|
||||
enterUsername: "أدخِل إسم مسخدم"
|
||||
noNotes: "لم يتم العثور على أية ملاحظات"
|
||||
noNotifications: "ليس هناك أية اشعارات"
|
||||
instance: "مثيل الخادم"
|
||||
settings: "الاعدادات"
|
||||
basicSettings: "الاعدادات الأساسية"
|
||||
otherSettings: "إعدادات أخرى"
|
||||
openInWindow: "افتح في نافذة جديدة"
|
||||
profile: "الملف التعريفي"
|
||||
timeline: "الخيط الزمني"
|
||||
noAccountDescription: "لم يكتب هذا المستخدم سيرته بعد."
|
||||
login: "لِج"
|
||||
loggingIn: "جارٍ تسجيل الدخول"
|
||||
logout: "الخروج"
|
||||
signup: "أنشئ حسابًا"
|
||||
uploading: "عملية الإرسال جارية"
|
||||
save: "حفظ"
|
||||
users: "المستخدمون"
|
||||
addUser: "اضافة مستخدم"
|
||||
favorite: "إضافة إلى المفضلة"
|
||||
favorites: "المفضلات"
|
||||
unfavorite: "إزالة من المفضلة"
|
||||
pin: "دبّسها على الصفحة الشخصية"
|
||||
unpin: "ألغ تثبيتها من ملفك الشخصي"
|
||||
copyContent: "انسخ المحتوى"
|
||||
copyLink: "انسخ الرابط"
|
||||
delete: "حذف"
|
||||
deleteAndEdit: "إزالة وإعادة الصياغة"
|
||||
deleteAndEditConfirm: "أمتأكد من حذف الملاحظة؟ ستفقد كل مشاركاتها، والتفاعلات، والردود عليها."
|
||||
addToList: "أضفه إلى قائمة"
|
||||
sendMessage: "أرسل رسالة"
|
||||
copyUsername: "انسخ اسم المستخدم"
|
||||
searchUser: "ابحث عن مستخدمين"
|
||||
reply: "رد"
|
||||
loadMore: "عرض المزيد"
|
||||
youGotNewFollower: "يتابعك"
|
||||
receiveFollowRequest: "تلقيت طلب متابعة"
|
||||
followRequestAccepted: "قُبل طلب المتابعة"
|
||||
mention: "أشر الى"
|
||||
mentions: "الإشارات"
|
||||
directNotes: "الملاحظات المباشرة"
|
||||
importAndExport: "إستورد / صدر"
|
||||
import: "استيراد"
|
||||
export: "تصدير"
|
||||
files: "الملفات"
|
||||
download: "تنزيل"
|
||||
driveFileDeleteConfirm: "أمتأكد من حذف ملف {name}؟ كل الملاحظات المُرفق بها هذا الملف ستحذف."
|
||||
unfollowConfirm: "أمتأكد من إلغاء متابعة {name}؟"
|
||||
lists: "القوائم"
|
||||
noLists: "ليس لديك أية قائمة"
|
||||
note: "ملاحظة"
|
||||
notes: "الملاحظات"
|
||||
following: "المتابَعون"
|
||||
followers: "المتابِعين"
|
||||
followsYou: "يتابعك"
|
||||
createList: "إنشاء قائمة"
|
||||
manageLists: "إدارة القوائم"
|
||||
error: "خطأ"
|
||||
somethingHappened: "حدث خطأ"
|
||||
retry: "حاول مجددًا"
|
||||
pageLoadError: "فشل تحميل الصفحة"
|
||||
enterListName: "اسم القائمة"
|
||||
privacy: "الخصوصية"
|
||||
makeFollowManuallyApprove: "القبول يدويا طلبات الإشتراك"
|
||||
defaultNoteVisibility: "مدى الرؤية الافتراضي"
|
||||
follow: "تابِع"
|
||||
followRequest: "طلب اشتراك"
|
||||
followRequests: "طلبات الإشتراك"
|
||||
unfollow: "إلغاء الاشتراك"
|
||||
followRequestPending: "طلبات الإشتراك المعلّقة"
|
||||
enterEmoji: "أدخل إيموجي"
|
||||
unrenote: "إلغاء مشاركة الملاحظة"
|
||||
quote: "اقتبس"
|
||||
pinnedNote: "ملاحظة مدبسة"
|
||||
you: "أنت"
|
||||
clickToShow: "اضغط للعرض"
|
||||
sensitive: "محتوى حساس"
|
||||
add: "إضافة"
|
||||
reaction: "تفاعل"
|
||||
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||
attachCancel: "أزل المرفق"
|
||||
enterFileName: "ادخل اسم الملف"
|
||||
mute: "اكتم"
|
||||
unmute: "إلغاء الكتم"
|
||||
block: "احجب"
|
||||
unblock: "إلغاء الحجب"
|
||||
suspend: "علِق"
|
||||
unsuspend: "ألغ التعليق"
|
||||
blockConfirm: "أمتأكد من حجب هذا الحساب؟"
|
||||
unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
|
||||
selectList: "اختر قائمة"
|
||||
editWidgetsExit: "تم"
|
||||
customEmojis: "إيموجي مخصص"
|
||||
addEmoji: "إضافة إيموجي"
|
||||
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
|
||||
autoAcceptFollowed: "اقبل طلبات المتابعة تلقائيا من الحسابات المتابَعة"
|
||||
addAcount: "إضافة حساب"
|
||||
loginFailed: "فشل الولوج"
|
||||
showOnRemote: "رؤيته على مثيل الخادم البُعدي"
|
||||
general: "الرئيسية"
|
||||
wallpaper: "خلفية الشاشة"
|
||||
setWallpaper: "استخدم خلفية الشاشة"
|
||||
removeWallpaper: "إزالة خلفية الشاشة"
|
||||
searchWith: "البحث: {q}"
|
||||
youHaveNoLists: "لا تمتلك أية قائمة"
|
||||
followConfirm: "أتريد متابعة {name}؟"
|
||||
proxyAccount: "حساب وكيل البروكسي"
|
||||
host: "المضيف"
|
||||
selectUser: "حدّد مستخدمًا"
|
||||
recipient: "المرسَل إليه·ها"
|
||||
annotation: "التعليقات"
|
||||
federation: "الفديرالية"
|
||||
instances: "مثيل الخادم"
|
||||
latestRequestSentAt: "آخر طلب أرسِل في"
|
||||
latestRequestReceivedAt: "آخر طلب تُلقي في"
|
||||
storageUsage: "مساحة التخزين المستخدمة"
|
||||
charts: "المنحنيات البيانية"
|
||||
perHour: "في الساعة"
|
||||
perDay: "في اليوم"
|
||||
stopActivityDelivery: "وقف إرسال النشاط"
|
||||
blockThisInstance: "احجب مثيل الخادم هذا"
|
||||
operations: "الإجراءات"
|
||||
software: "البرنامج"
|
||||
version: "الإصدار"
|
||||
metadata: "البيانات الوصفية"
|
||||
withNFiles: "{n} ملف (ملفات)"
|
||||
monitor: "شاشة التحكم"
|
||||
jobQueue: "قائمة الانتظار"
|
||||
cpuAndMemory: "وحدة المعالجة المركزية والذاكرة"
|
||||
network: "الشبكة"
|
||||
disk: "قرص التخزين"
|
||||
instanceInfo: "معلومات مثيل الخادم"
|
||||
statistics: "الإحصائيات"
|
||||
clearQueue: "تفريغ قائمة الإنتظار"
|
||||
muteAndBlock: "تم كتمها / تم حجبها"
|
||||
mutedUsers: "الحسابات التي تم كتمها"
|
||||
blockedUsers: "الحسابات التي تم حظرها"
|
||||
noUsers: "ليس هناك مستخدمون"
|
||||
editProfile: "تعديل الملف التعريفي"
|
||||
noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟"
|
||||
pinLimitExceeded: "لا يمكنك تدبيس الملاحظات بعد الآن."
|
||||
intro: "لقد انتهت عملية تنصيب Misskey. الرجاء إنشاء حساب إداري."
|
||||
done: "تمّ"
|
||||
processing: "المعالجة جارية"
|
||||
preview: "معاينة"
|
||||
default: "افتراضي"
|
||||
noCustomEmojis: "ليس هناك إيموجيات"
|
||||
federating: "الفديرالية جارية"
|
||||
blocked: "محجوب"
|
||||
suspended: "مُعلّق"
|
||||
all: "الكل"
|
||||
notResponding: "لا يستجيب"
|
||||
changePassword: "تغيير الكلمة السرية"
|
||||
security: "الأمان"
|
||||
more: "المزيد!"
|
||||
featured: "المتداولة"
|
||||
usernameOrUserId: "اسم المستخدم أو معرّفه"
|
||||
noSuchUser: "لم يُعثَر على المستخدم"
|
||||
lookup: "البحث"
|
||||
announcements: "الإعلانات"
|
||||
imageUrl: "عنوان URL للصورة"
|
||||
remove: "حذف"
|
||||
removed: "تم حذفه بنجاح"
|
||||
removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
|
||||
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
|
||||
saved: "تم حفظه"
|
||||
messaging: "الدردشة"
|
||||
upload: "تحميل"
|
||||
fromDrive: "من المخزن"
|
||||
fromUrl: "من عنوان URL"
|
||||
uploadFromUrl: "التحميل عبر URL"
|
||||
explore: "استكشاف"
|
||||
games: "ألعاب Misskey"
|
||||
messageRead: "مقروءة"
|
||||
startMessaging: "ابدأ الدردشة"
|
||||
tos: "شروط الخدمة"
|
||||
start: "البداية"
|
||||
home: "الرئيسي"
|
||||
activity: "النشاط"
|
||||
images: "الصور"
|
||||
birthday: "تاريخ الميلاد"
|
||||
yearsOld: "{age} سنة"
|
||||
registeredDate: "انظم في"
|
||||
location: "المكان"
|
||||
theme: "المظهر"
|
||||
themeForLightMode: "الحلة في الوضع الفاتح"
|
||||
themeForDarkMode: "الحلة في الوضع الداكن"
|
||||
light: "فاتح"
|
||||
dark: "داكن"
|
||||
lightThemes: "الحلة الفاتحة"
|
||||
darkThemes: "الحلة الداكنة"
|
||||
drive: "قرص التخرين"
|
||||
fileName: "اسم الملف"
|
||||
selectFile: "اختر ملفًا"
|
||||
selectFiles: "اختر ملفات"
|
||||
selectFolder: "اختر مجلدًا"
|
||||
selectFolders: "اختر مجلدات"
|
||||
renameFile: "إعادة تسمية الملف"
|
||||
folderName: "اسم المجلد"
|
||||
createFolder: "أنشئ مجلدًا"
|
||||
renameFolder: "إعادة تسمية المجلد"
|
||||
deleteFolder: "احذف هذا المجلد"
|
||||
addFile: "إضافة ملف"
|
||||
emptyDrive: "قرص التخزين فارغ"
|
||||
emptyFolder: "هذا المجلد فارغ"
|
||||
unableToDelete: "لا يمكن حذفه"
|
||||
inputNewFileName: "ادخل الإسم الجديد للملف"
|
||||
inputNewFolderName: "ادخل الإسم الجديد للمجلد"
|
||||
copyUrl: "انسخ عنوان URL"
|
||||
rename: "إعادة التسمية"
|
||||
avatar: "الصورة الرمزية"
|
||||
banner: "الصورة الرأسية"
|
||||
nsfw: "محتوى حساس"
|
||||
disconnectedFromServer: "قُطِع الإتصال بالخادم"
|
||||
reload: "انعش"
|
||||
doNothing: "تجاهل"
|
||||
watch: "راقب"
|
||||
unwatch: "إلغاء المراقبة"
|
||||
accept: "السماح"
|
||||
reject: "رفض"
|
||||
normal: "عادي"
|
||||
instanceName: "اسم مثيل الخادم"
|
||||
instanceDescription: "وصف مثيل الخادم"
|
||||
maintainerName: "المدير"
|
||||
maintainerEmail: "عنوان بريد المدير الإلكتروني"
|
||||
tosUrl: "عنوان URL لشروط الخدمة"
|
||||
thisYear: "هذا العام"
|
||||
thisMonth: "هذا الشهر"
|
||||
today: "اليوم"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "الصفحات"
|
||||
connectSerice: "أوصل"
|
||||
disconnectSerice: "قطع الاتصال"
|
||||
enableLocalTimeline: "تفعيل الخيط المحلي"
|
||||
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
|
||||
registration: "إنشاء حساب"
|
||||
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
|
||||
invite: "دعوة"
|
||||
basicInfo: "المعلومات الأساسية "
|
||||
pinnedNotes: "ملاحظة مدبسة"
|
||||
hcaptchaSiteKey: "مفتاح الموقع"
|
||||
hcaptchaSecretKey: "المفتاح السري"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "تمكين reCAPTCHA"
|
||||
recaptchaSiteKey: "مفتاح الموقع"
|
||||
recaptchaSecretKey: "المفتاح السري"
|
||||
antennas: "الهوائيات"
|
||||
manageAntennas: "إدارة الهوائيات"
|
||||
name: "الإسم"
|
||||
antennaSource: "مصدر الهوائي"
|
||||
antennaKeywords: "الكلمات المفتاحية للإستقبال"
|
||||
withReplies: "بالردود"
|
||||
notesAndReplies: "الملاحظات والردود"
|
||||
withFiles: "بالمرفقات"
|
||||
silence: "اكتم"
|
||||
unsilence: "إلغاء الكتم"
|
||||
popularUsers: "المستخدمون الشائعون"
|
||||
exploreFediverse: "استكشف الفديفرس"
|
||||
popularTags: "الوسوم الرائجة"
|
||||
userList: "القوائم"
|
||||
about: "عن"
|
||||
aboutMisskey: "عن Misskey"
|
||||
administrator: "المدير"
|
||||
token: "الرمز المميز"
|
||||
twoStepAuthentication: "الإستيثاق بعاملَيْن"
|
||||
moderator: "مشرِف"
|
||||
nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم"
|
||||
securityKey: "مفتاح الأمان"
|
||||
securityKeyName: "اسم المفتاح"
|
||||
lastUsed: "آخر استخدام"
|
||||
unregister: "إلغاء التسجيل"
|
||||
passwordLessLogin: "لِج مِن دون كلمة سرية"
|
||||
resetPassword: "أعد تعيين كلمتك السرية"
|
||||
newPasswordIs: "كلمتك السرية الجديدة هي {password}"
|
||||
share: "شارِك"
|
||||
notFound: "غير موجود"
|
||||
help: "المساعدة"
|
||||
inputMessageHere: "اكتب رسالتك هنا"
|
||||
close: "اغلق"
|
||||
group: "الفريق"
|
||||
groups: "الفِرَق"
|
||||
createGroup: "انشئ فريقًا"
|
||||
invites: "دعوة"
|
||||
groupName: "اسم الفريق"
|
||||
members: "الأعضاء"
|
||||
transfer: "نقل"
|
||||
messagingWithUser: "الدردشة مع مستخدم آخر"
|
||||
messagingWithGroup: "دردشة جماعية"
|
||||
title: "العنوان"
|
||||
text: "النص"
|
||||
enable: "تشغيل"
|
||||
next: "التالية"
|
||||
retype: "أعد الكتابة"
|
||||
noteOf: "ملاحظات {user}"
|
||||
inviteToGroup: "دعوة إلى فريق"
|
||||
noMessagesYet: "ليس هناك رسائل بعد"
|
||||
newMessageExists: "لقد تلقيت رسالة جديدة"
|
||||
invitations: "دعوة"
|
||||
invitationCode: "رمز الدعوة"
|
||||
checking: "التحقق جارٍ"
|
||||
available: "متوفر"
|
||||
unavailable: "غير متوفر"
|
||||
tooShort: "قصير جدًا"
|
||||
tooLong: "طويل جدًا"
|
||||
weakPassword: "الكلمة السرية ضعيفة"
|
||||
normalPassword: "الكلمة السرية جيدة"
|
||||
strongPassword: "الكلمة السرية قوية"
|
||||
passwordMatched: "التطابق صحيح!"
|
||||
passwordNotMatched: "غير متطابقتان"
|
||||
signinWith: "الولوج عبر {x}"
|
||||
or: "أو"
|
||||
uiLanguage: "لغة واجهة المستخدم"
|
||||
aboutX: "عن {x}"
|
||||
useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل"
|
||||
youHaveNoGroups: "لا تمتلك أية فِرَق"
|
||||
noHistory: "السجل فارغ"
|
||||
doing: "انتظر لحظة"
|
||||
category: "الفئات"
|
||||
tags: "الوسوم"
|
||||
docSource: "مصدر هذا المستند"
|
||||
createAccount: "أنشئ حسابًا"
|
||||
existingAcount: "الحسابات الموجودة"
|
||||
regenerate: "أعِد التوليد"
|
||||
fontSize: "حجم الخط"
|
||||
dashboard: "لوحة التحكم"
|
||||
local: "المحلي"
|
||||
remote: "بُعدي"
|
||||
total: "المجموع"
|
||||
weekOverWeekChanges: "أسبوعيا"
|
||||
dayOverDayChanges: "يوميا"
|
||||
appearance: "المظهر"
|
||||
accountSettings: "إعدادات الحساب"
|
||||
promotion: "ترقية"
|
||||
promote: "روِّج"
|
||||
numberOfDays: "عدد الأيام"
|
||||
hideThisNote: "إخفاء هذه الملاحظة"
|
||||
deleteAll: "حذف الكل"
|
||||
sounds: "الرنات"
|
||||
listen: "استمع"
|
||||
none: "لا شيء"
|
||||
volume: "مستوى الصوت"
|
||||
details: "التفاصيل"
|
||||
chooseEmoji: "اختر إيموجي"
|
||||
recentUsed: "المستخدمة مؤخرا"
|
||||
install: "التثبيت"
|
||||
uninstall: "إلغاء التثبيت"
|
||||
installedApps: "التطبيقات المُخوّلة"
|
||||
lastUsedDate: "آخر استخدام"
|
||||
state: "الحالة"
|
||||
sort: "ترتيب حسب"
|
||||
output: "الخارجة"
|
||||
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
|
||||
sidebar: "الشريط الجانبي"
|
||||
addItem: "إضافة عنصر"
|
||||
rooms: "الغرفة"
|
||||
relays: "المُرَحلات"
|
||||
addRelay: "إضافة مُرحّل"
|
||||
addedRelays: "المرحلات التي تم إضافتها"
|
||||
deletedNote: "ملاحظة محذوفة"
|
||||
invisibleNote: "ملاحظة مخفية"
|
||||
poll: "استطلاع رأي"
|
||||
themeEditor: "مصمم القوالب"
|
||||
plugins: "الإضافات"
|
||||
pluginInstallWarn: "يرجى تنصيب إضافات ذات مصدر موثوق منه فقط."
|
||||
smtpHost: "المضيف"
|
||||
smtpUser: "اسم المستخدم"
|
||||
smtpPass: "الكلمة السرية"
|
||||
display: "المظهر"
|
||||
public: "للعامة"
|
||||
_mfm:
|
||||
mention: "أشر الى"
|
||||
quote: "اقتبس"
|
||||
emoji: "إيموجي مخصص"
|
||||
search: "البحث"
|
||||
_reversi:
|
||||
total: "المجموع"
|
||||
_channel:
|
||||
featured: "المتداوَلة"
|
||||
_sidebar:
|
||||
full: "كامل"
|
||||
icon: "الصورة الرمزية"
|
||||
hide: "إخفاء"
|
||||
_theme:
|
||||
explore: "استكشف قوالب المظهر"
|
||||
install: "تنصيب قالب"
|
||||
manage: "إدارة القوالب"
|
||||
code: "شيفرة القالب"
|
||||
installed: "تم تنصيب {name}"
|
||||
make: "إنشاء قالب"
|
||||
alpha: "الشفافية"
|
||||
keys:
|
||||
mention: "أشر الى"
|
||||
messageBg: "خلفية الدردشة"
|
||||
_sfx:
|
||||
note: "الملاحظات"
|
||||
noteMy: "ملاحظتي"
|
||||
notification: "الإشعارات"
|
||||
chat: "الدردشة"
|
||||
_ago:
|
||||
unknown: "مجهول"
|
||||
future: "المستقبَل"
|
||||
justNow: "اللحظة"
|
||||
secondsAgo: "منذ {n} ثوانٍ"
|
||||
minutesAgo: "منذ {n} دقائق"
|
||||
hoursAgo: "منذ {n} ساعة"
|
||||
daysAgo: "منذ {n} أيام"
|
||||
weeksAgo: "منذ {n} أسابيع"
|
||||
monthsAgo: "منذ {n} أشهر"
|
||||
yearsAgo: "منذ {n} سنوات"
|
||||
_time:
|
||||
second: "ثا"
|
||||
minute: "د"
|
||||
hour: "سا"
|
||||
day: "ي"
|
||||
_tutorial:
|
||||
title: "كيف تستخدم Misskey"
|
||||
step1_1: "مرحبًا!"
|
||||
_2fa:
|
||||
registerKey: "تسجيل مفتاح أمان جديد"
|
||||
_permissions:
|
||||
"write:account": "تعديل معلومات حسابك"
|
||||
"read:notifications": "اظهر الإشعارات"
|
||||
_weekday:
|
||||
sunday: "الأحد"
|
||||
monday: "الإثنين"
|
||||
tuesday: "الثلاثاء"
|
||||
wednesday: "الأربعاء"
|
||||
thursday: "الخميس"
|
||||
friday: "الجمعة"
|
||||
saturday: "السبت"
|
||||
_widgets:
|
||||
memo: "ملاحظة لاصقة"
|
||||
notifications: "الإشعارات"
|
||||
timeline: "الخيط الزمني"
|
||||
calendar: "التقويم"
|
||||
trends: "المتداوَلة"
|
||||
clock: "الساعة"
|
||||
rss: "تدفق RSS"
|
||||
activity: "النشاط"
|
||||
photos: "الصور"
|
||||
federation: "الفديرالية"
|
||||
_cw:
|
||||
hide: "إخفاء"
|
||||
show: "عرض المزيد"
|
||||
chars: "{count} أحرف"
|
||||
files: "{count} ملفات"
|
||||
_poll:
|
||||
noOnlyOneChoice: "تحتاج إلى خيارَين على الأقل"
|
||||
choiceN: "الخيار {n}"
|
||||
noMore: "لا يمكنك إضافة خيارات أخرى"
|
||||
canMultipleVote: "السماح بالإجابات المتعددة"
|
||||
expiration: "ينتهي استطلاع الرأي في"
|
||||
infinite: "أبدًا"
|
||||
at: "تاريخ الإنتهاء"
|
||||
after: "ينتهي بعد…"
|
||||
deadlineDate: "تاريخ الانتهاء"
|
||||
deadlineTime: "سا"
|
||||
duration: "المدة"
|
||||
votesCount: "{n} أصوات"
|
||||
totalVotes: "المجموع {n} أصوات"
|
||||
vote: "قم بالتصويت"
|
||||
showResult: "اعرض النتائج"
|
||||
voted: "تم التصويت"
|
||||
closed: "انتهى"
|
||||
remainingDays: "{d} أيام و {h} ساعات متبقية"
|
||||
remainingHours: "{h} ساعات و {m} دقائق متبقية"
|
||||
remainingMinutes: "{m} دقائق و {s} ثوانٍ متبقية"
|
||||
remainingSeconds: "{s} ثوانٍ متبقية"
|
||||
_visibility:
|
||||
public: "للعامة"
|
||||
home: "الرئيسي"
|
||||
followers: "المتابِعين"
|
||||
specified: "مباشرة"
|
||||
localOnly: "المحلي فقط"
|
||||
_postForm:
|
||||
replyPlaceholder: "رد على هذه الملاحظة…"
|
||||
quotePlaceholder: "اقتبس هذه الملاحظة…"
|
||||
_profile:
|
||||
name: "الإسم"
|
||||
username: "اسم المستخدم"
|
||||
youCanIncludeHashtags: "يمكنك أيضًا إضافة وسوم إلى نبذتك التعريفية."
|
||||
_exportOrImport:
|
||||
allNotes: "كل الملاحظات"
|
||||
followingList: "المتابَعون"
|
||||
muteList: "اكتم"
|
||||
blockingList: "احجب"
|
||||
userLists: "القوائم"
|
||||
_charts:
|
||||
usersTotal: "مجموع عدد المستخدمين والمستخدمات"
|
||||
activeUsers: "المستخدمون النشطون"
|
||||
_timelines:
|
||||
home: "الرئيسي"
|
||||
local: "المحلي"
|
||||
social: "الاجتماعي"
|
||||
global: "الشامل"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "افتراضي"
|
||||
_furnitures:
|
||||
monitor: "شاشة التحكم"
|
||||
banknote: "أوراق نقدية"
|
||||
_pages:
|
||||
blocks:
|
||||
image: "الصور"
|
||||
script:
|
||||
categories:
|
||||
list: "القوائم"
|
||||
blocks:
|
||||
_strReplace:
|
||||
arg1: "نص"
|
||||
arg3: "استُبدِل بـ"
|
||||
_join:
|
||||
arg1: "القوائم"
|
||||
arg2: "فاصل"
|
||||
add: "إضافة"
|
||||
_randomPick:
|
||||
arg1: "القوائم"
|
||||
_dailyRandomPick:
|
||||
arg1: "القوائم"
|
||||
_seedRandomPick:
|
||||
arg2: "القوائم"
|
||||
_pick:
|
||||
arg1: "القوائم"
|
||||
_listLen:
|
||||
arg1: "القوائم"
|
||||
types:
|
||||
array: "القوائم"
|
||||
_notification:
|
||||
youGotPoll: "شارك {name} في استطلاع الرأي"
|
||||
youGotMessagingMessageFromUser: "لقد تلقيت رسالة مِن {name}"
|
||||
youGotMessagingMessageFromGroup: "لقد أرسِلَت رسالة إلى الفريق {name}"
|
||||
youWereFollowed: "يتابعك"
|
||||
_types:
|
||||
follow: "المتابَعون"
|
||||
mention: "أشر الى"
|
||||
quote: "اقتبس"
|
||||
reaction: "تفاعل"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "الإشعارات"
|
||||
tl: "الخيط الزمني"
|
||||
antenna: "الهوائيات"
|
||||
list: "القوائم"
|
||||
mentions: "الإشارات"
|
||||
direct: "مباشرة"
|
1443
locales/de-DE.yml
@ -16,6 +16,9 @@ noNotes: "No hay notas"
|
||||
noNotifications: "No hay notificaciones"
|
||||
instance: "Instancia"
|
||||
settings: "Configuración"
|
||||
basicSettings: "Configuración Básica"
|
||||
otherSettings: "Configuración avanzada"
|
||||
openInWindow: "Abrir en una ventana"
|
||||
profile: "Perfil"
|
||||
timeline: "Linea de tiempo"
|
||||
noAccountDescription: "Este usuario no tiene una descripción"
|
||||
@ -26,7 +29,7 @@ signup: "Registrarse"
|
||||
uploading: "Cargando"
|
||||
save: "Guardar"
|
||||
users: "Usuarios"
|
||||
addUser: "Añadir usuario"
|
||||
addUser: "Agregar usuario"
|
||||
favorite: "Favorito"
|
||||
favorites: "Favoritos"
|
||||
unfavorite: "Quitar de favoritos"
|
||||
@ -35,14 +38,18 @@ unpin: "Desfijar"
|
||||
copyContent: "Copiar contenido"
|
||||
copyLink: "Copiar enlace"
|
||||
delete: "Borrar"
|
||||
deleteAndEdit: "Borrar y editar"
|
||||
deleteAndEditConfirm: "¿Quieres borrar y editar este nota? Las reacciones, renotes, respuestas y todo desaparecerán."
|
||||
addToList: "Agregar a lista"
|
||||
sendMessage: "Énviar mensaje"
|
||||
copyUsername: "Copiar nombre de usuario"
|
||||
searchUser: "Búsqueda de usuarios"
|
||||
reply: "Responder"
|
||||
loadMore: "Ver más"
|
||||
youGotNewFollower: "te ha seguido"
|
||||
receiveFollowRequest: "Recibiste una solicitud de seguimiento"
|
||||
followRequestAccepted: "La solicitud de seguimiento fue aceptada"
|
||||
mention: "Menciones"
|
||||
mentions: "Menciones"
|
||||
directNotes: "Notas directas"
|
||||
importAndExport: "Importar y Exportar"
|
||||
@ -58,13 +65,16 @@ lists: "Listas"
|
||||
noLists: "No tiene listas"
|
||||
note: "Notas"
|
||||
notes: "Notas"
|
||||
following: "Sigue"
|
||||
following: "Siguiendo"
|
||||
followers: "Seguidores"
|
||||
followsYou: "Te sigue"
|
||||
createList: "Crear lista"
|
||||
manageLists: "Administrar listas"
|
||||
error: "Ocurrió un problema"
|
||||
error: "Error"
|
||||
somethingHappened: "Ocurrió un error"
|
||||
retry: "Reintentar"
|
||||
pageLoadError: "Error al leer la página"
|
||||
pageLoadErrorDescription: "Normalmente es debido a la red o al caché del navegador. Por favor limpie el caché o intente más tarde."
|
||||
enterListName: "Ingrese nombre de lista"
|
||||
privacy: "Privacidad"
|
||||
makeFollowManuallyApprove: "Aprobar manualmente las solicitudes de seguimiento"
|
||||
@ -82,11 +92,10 @@ pinnedNote: "Nota fijada"
|
||||
you: "Tú"
|
||||
clickToShow: "Click para ver"
|
||||
sensitive: "Marcado como sensible"
|
||||
add: "Añadir"
|
||||
add: "Agregar"
|
||||
reaction: "Reacción"
|
||||
reactionSettingDescription: "Elegir las reacciones mostradas en el seleccionador de reacciones, separadas por una nueva linea"
|
||||
reactionSettingDescription: "Asigne sus reacción favoritas que desean anclar en el selector de reacciones."
|
||||
rememberNoteVisibility: "Recordar visibilidad"
|
||||
renameFile: "Renombrar archivo"
|
||||
attachCancel: "Quitar adjunto"
|
||||
markAsSensitive: "Marcar como sensible"
|
||||
unmarkAsSensitive: "Desmarcar como sensible"
|
||||
@ -102,20 +111,27 @@ unblockConfirm: "¿Quiere dejar de bloquear esta cuenta?"
|
||||
suspendConfirm: "¿Quiere suspender esta cuenta?"
|
||||
unsuspendConfirm: "¿Quiere dejar de suspender esta cuenta?"
|
||||
selectList: "Seleccione una lista"
|
||||
selectAntenna: "Seleccionar antena"
|
||||
selectWidget: "Seleccionar widget"
|
||||
editWidgets: "Editar widgets"
|
||||
editWidgetsExit: "Terminar edición"
|
||||
customEmojis: "Emojis personalizados"
|
||||
emoji: "Emoji"
|
||||
emojiName: "Nombre del emoji"
|
||||
emojiUrl: "URL de la imágen del emoji"
|
||||
addEmoji: "Añadir emoji"
|
||||
addEmoji: "Agregar emoji"
|
||||
settingGuide: "Configuración sugerida"
|
||||
cacheRemoteFiles: "Mantener en cache los archivos remotos"
|
||||
cacheRemoteFilesDescription: "Si desactiva esta configuración, Los archivos remotos se cargarán desde el link directo sin usar la caché. Con eso se puede ahorrar almacenamiento del servidor, pero eso aumentará el tráfico al no crear miniaturas."
|
||||
flagAsBot: "Esta cuenta es un bot"
|
||||
flagAsCat: "Esta cuenta es un gato"
|
||||
autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues"
|
||||
addAcount: "Añadir cuenta"
|
||||
addAcount: "Agregar cuenta"
|
||||
loginFailed: "Error al iniciar sesión."
|
||||
showOnRemote: "Ver en una instancia remota"
|
||||
general: "General"
|
||||
wallpaper: "Fondo de pantalla"
|
||||
setWallpaper: "Establecer fondo de pantalla"
|
||||
removeWallpaper: "Quitar fondo de pantalla"
|
||||
searchWith: "Buscar: {q}"
|
||||
youHaveNoLists: "No tienes listas"
|
||||
@ -168,8 +184,8 @@ intro: "¡La instalación de Misskey ha terminado! Crea el usuario administrador
|
||||
done: "Terminado"
|
||||
processing: "Procesando"
|
||||
preview: "Vista previa"
|
||||
default: "Predeterminado"
|
||||
noCustomEmojis: "No hay emojis personalizados"
|
||||
customEmojisOfRemote: "Emojis remotos"
|
||||
noJobs: "No hay trabajos"
|
||||
federating: "Federando"
|
||||
blocked: "Bloqueando"
|
||||
@ -198,15 +214,19 @@ imageUrl: "URL de la imágen"
|
||||
remove: "Borrar"
|
||||
removed: "Borrado"
|
||||
removeAreYouSure: "¿Desea borrar \"{x}\"?"
|
||||
deleteAreYouSure: "¿Desea borrar \"{x}\"?"
|
||||
saved: "Guardado"
|
||||
messaging: "Chat"
|
||||
upload: "Subir"
|
||||
fromDrive: "Desde el drive"
|
||||
fromUrl: "Desde la URL"
|
||||
uploadFromUrl: "Subir desde una URL"
|
||||
uploadFromUrlDescription: "URL del fichero que quieres subir"
|
||||
uploadFromUrlRequested: "Subida solicitada"
|
||||
uploadFromUrlMayTakeTime: "Subir el fichero puede tardar un tiempo."
|
||||
explore: "Explorar"
|
||||
games: "Misskey Games"
|
||||
messageRead: "Ya leído"
|
||||
recentUsedEmojis: "Emojis usados recientemente"
|
||||
noMoreHistory: "El historial se ha acabado"
|
||||
startMessaging: "Iniciar chat"
|
||||
nUsersRead: "Leído por {n} personas"
|
||||
@ -222,28 +242,47 @@ yearsOld: "{age} años"
|
||||
registeredDate: "Fecha de registro"
|
||||
location: "Lugar"
|
||||
theme: "Tema"
|
||||
themeForLightMode: "Tema para usar en Modo Linterna"
|
||||
themeForDarkMode: "Tema para usar en Modo Oscuro"
|
||||
light: "Linterna"
|
||||
dark: "Oscuro"
|
||||
lightThemes: "Tema claro"
|
||||
darkThemes: "Tema oscuro"
|
||||
syncDeviceDarkMode: "Sincronice el Modo Oscuro con la configuración de su dispositivo"
|
||||
drive: "Drive"
|
||||
fileName: "Nombre de archivo"
|
||||
selectFile: "Elegir archivo"
|
||||
selectFiles: "Elegir archivos"
|
||||
renameFolder: "Renombrar carpeta"
|
||||
selectFolder: "Seleccione una carpeta"
|
||||
selectFolders: "Seleccione carpetas"
|
||||
renameFile: "Renombrar archivo"
|
||||
folderName: "Nombre de la carpeta"
|
||||
createFolder: "Crear carpeta"
|
||||
renameFolder: "Renombrar carpeta"
|
||||
deleteFolder: "Borrar carpeta"
|
||||
addFile: "Añadir archivo"
|
||||
addFile: "Agregar archivo"
|
||||
emptyDrive: "El drive está vacío"
|
||||
emptyFolder: "La carpeta está vacía"
|
||||
unableToDelete: "No se puede borrar"
|
||||
inputNewFileName: "Ingrese un nuevo nombre de archivo"
|
||||
inputNewFolderName: "Ingrese un nuevo nombre de la carpeta"
|
||||
circularReferenceFolder: "La carpeta de destino es una sub-carpeta de la carpeta que quieres mover."
|
||||
hasChildFilesOrFolders: "No se puede borrar esta carpeta. No está vacía."
|
||||
copyUrl: "Copiar URL"
|
||||
rename: "Renombrar"
|
||||
avatar: "Avatar"
|
||||
banner: "Banner"
|
||||
nsfw: "Marcado como sensible"
|
||||
whenServerDisconnected: "Cuando se pierda la conexión con el servidor"
|
||||
disconnectedFromServer: "Desconectado del servidor"
|
||||
reload: "Recargar"
|
||||
doNothing: "No hacer nada"
|
||||
reloadConfirm: "¿Desea recargar?"
|
||||
watch: "Ver"
|
||||
unwatch: "Dejar de ver"
|
||||
accept: "Aceptar"
|
||||
reject: "Rechazar"
|
||||
normal: "Normal"
|
||||
instanceName: "Nombre de la instancia"
|
||||
instanceDescription: "Descripción de la instancia"
|
||||
maintainerName: "Nombre del administrador"
|
||||
@ -275,15 +314,22 @@ bannerUrl: "URL de la imagen del banner"
|
||||
basicInfo: "Información básica"
|
||||
pinnedUsers: "Usuarios fijados"
|
||||
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
|
||||
pinnedNotes: "Nota fijada"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Habilitar hCaptcha"
|
||||
hcaptchaSiteKey: "Clave del sitio"
|
||||
hcaptchaSecretKey: "Clave secreta"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "activar reCAPTCHA"
|
||||
recaptchaSiteKey: "Clave del sitio"
|
||||
recaptchaSecretKey: "Clave secreta"
|
||||
avoidMultiCaptchaConfirm: "El uso de múltiples Captchas puede causar interferencia. ¿Desea desactivar el otro Captcha? Puede dejar múltiples Captchas habilitadas presionando cancelar."
|
||||
antennas: "Antenas"
|
||||
manageAntennas: "Administrar antenas"
|
||||
name: "Nombre"
|
||||
antennaSource: "Origen de la antena"
|
||||
antennaKeywords: "Palabras clave de la antena"
|
||||
antennaKeywords: "Palabras clave para recibir"
|
||||
antennaExcludeKeywords: "Palabras clave para excluir"
|
||||
antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
|
||||
notifyAntenna: "Notificar nueva nota"
|
||||
withFileAntenna: "Sólo notas con archivos adjuntados"
|
||||
@ -297,6 +343,7 @@ notesAndReplies: "Notas y respuestas"
|
||||
withFiles: "Adjuntos"
|
||||
silence: "Silenciar"
|
||||
silenceConfirm: "¿Desea silenciar al usuario?"
|
||||
unsilence: "Dejar de silenciar"
|
||||
unsilenceConfirm: "¿Desea dejar de silenciar al usuario?"
|
||||
popularUsers: "Usuarios populares"
|
||||
recentlyUpdatedUsers: "Usuarios activos recientemente"
|
||||
@ -308,13 +355,6 @@ popularTags: "Etiquetas populares"
|
||||
userList: "Lista"
|
||||
about: "Información"
|
||||
aboutMisskey: "Sobre Misskey"
|
||||
aboutMisskeyText: "Misskey es un software de código abierto, desarrollado por syuilo desde el 2014"
|
||||
misskeyMembers: "Es creado y mantenido por los miembros aquí listados:"
|
||||
misskeySource: "El código fuente está disponible aquí:"
|
||||
misskeyTranslation: "Ayúdanos con tu contribución para traducir Misskey:"
|
||||
misskeyDonate: "Puedes contribuir al desarrollo de Misskey donando aquí:"
|
||||
morePatrons: "Muchas más personas nos apoyan. Muchas gracias🥰"
|
||||
patrons: "Patrocinadores"
|
||||
administrator: "Administrador"
|
||||
token: "Token"
|
||||
twoStepAuthentication: "Autenticación de dos factores"
|
||||
@ -328,11 +368,6 @@ unregister: "Cancelar registro"
|
||||
passwordLessLogin: "Iniciar sesión sin contraseña"
|
||||
resetPassword: "Resetear contraseña"
|
||||
newPasswordIs: "La nueva contraseña es \"{password}\""
|
||||
post: "Nota"
|
||||
posted: "Posteado"
|
||||
autoReloadWhenDisconnected: "Recargar automáticamente cuando el servidor está desconectado"
|
||||
autoNoteWatch: "Ver nota automáticamente"
|
||||
autoNoteWatchDescription: "Recibe notificaciones sobre las notas de otros usuarios que a los que respondiste y reaccionaste"
|
||||
reduceUiAnimation: "Reducir la animación de la UI"
|
||||
share: "Compartir"
|
||||
notFound: "No se encuentra"
|
||||
@ -370,6 +405,7 @@ noMessagesYet: "Aún no hay chat"
|
||||
newMessageExists: "Tienes un mensaje nuevo"
|
||||
onlyOneFileCanBeAttached: "Solo se puede añadir un archivo al mensaje"
|
||||
signinRequired: "Iniciar sesión"
|
||||
invitations: "Invitar"
|
||||
invitationCode: "Código de invitación"
|
||||
checking: "Comprobando"
|
||||
available: "Disponible"
|
||||
@ -383,13 +419,14 @@ strongPassword: "Muy buena contraseña"
|
||||
passwordMatched: "Correcto"
|
||||
passwordNotMatched: "Las contraseñas no son las mismas"
|
||||
signinWith: "Inicie sesión con {x}"
|
||||
signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
|
||||
tapSecurityKey: "Toque la clave de seguridad"
|
||||
or: "O"
|
||||
uiLanguage: "Idioma de visualización de la interfaz"
|
||||
groupInvited: "Invitado al grupo"
|
||||
aboutX: "Acerca de {x}"
|
||||
useOsNativeEmojis: "Usa los emojis nativos de la plataforma"
|
||||
noGroups: "Sin grupos"
|
||||
youHaveNoGroups: "Sin grupos"
|
||||
joinOrCreateGroup: "Obtenga una invitación para unirse al grupos o puede crear su propio grupo."
|
||||
noHistory: "No hay datos en el historial"
|
||||
disableAnimatedMfm: "Deshabilitar MFM que tiene animaciones"
|
||||
@ -409,8 +446,8 @@ remote: "Remoto"
|
||||
total: "Total"
|
||||
weekOverWeekChanges: "Dif semanal"
|
||||
dayOverDayChanges: "Dif diaria"
|
||||
accessibility: "Accesibilidad"
|
||||
clinetSettings: "Ajustes del cliente"
|
||||
appearance: "Apariencia"
|
||||
clientSettings: "Configuración del cliente"
|
||||
accountSettings: "Ajustes de cuenta"
|
||||
promotion: "Promovido"
|
||||
promote: "Promover"
|
||||
@ -419,16 +456,310 @@ hideThisNote: "Ocultar esta nota"
|
||||
showFeaturedNotesInTimeline: "Mostrar notas destacadas en la línea de tiempo"
|
||||
objectStorage: "Almacenamiento de objetos"
|
||||
useObjectStorage: "Usar almacenamiento de objetos"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
objectStorageBaseUrlDesc: "Prefijo de URL utilizado para construir URL para hacer referencia a objetos (medios). Especifique su URL si está utilizando un CDN o Proxy; de lo contrario, especifique la dirección a la que se puede acceder públicamente de acuerdo con la guía de servicio que va a utilizar. i.g 'https://<bucket>.s3.amazonaws.com' para AWS S3 y 'https://storage.googleapis.com/<bucket>' para GCS."
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStorageBucketDesc: "Especifique el nombre del depósito utilizado en el servicio configurado."
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStoragePrefixDesc: "Los archivos se almacenarán en el directorio de este prefijo."
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageEndpointDesc: "Deje esto en blanco si está utilizando AWS S3; de lo contrario, especifique el punto final como '<host>' o '<host>: <port>' de acuerdo con la guía de servicio que va a utilizar."
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Especifique una región como 'xx-east-1'. Si su servicio no tiene distinción sobre regiones, déjelo en blanco o complete con 'us-east-1'."
|
||||
objectStorageUseSSL: "Usar SSL"
|
||||
objectStorageUseSSLDesc: "Desactive esto si no va a usar HTTPS para la conexión API"
|
||||
objectStorageUseProxy: "Conectarse a través de Proxy"
|
||||
objectStorageUseProxyDesc: "Desactive esto si no va a usar Proxy para la conexión de Almacenamiento de objetos"
|
||||
objectStorageSetPublicRead: "Seleccionar \"public-read\" al subir "
|
||||
serverLogs: "Registros del servidor"
|
||||
deleteAll: "Eliminar todos"
|
||||
showFixedPostForm: "Mostrar el formulario de las entradas encima de la línea de tiempo"
|
||||
newNoteRecived: "Tienes una nota nuevo"
|
||||
useNotificationsPopup: "Mostrar lista de notificaciones en ventana emergente"
|
||||
sounds: "Sonidos"
|
||||
listen: "Escuchar"
|
||||
none: "Ninguna"
|
||||
showInPage: "Mostrar en la página"
|
||||
popout: "Popout"
|
||||
volume: "Volumen"
|
||||
details: "Detalles"
|
||||
chooseEmoji: "Elije un emoji"
|
||||
unableToProcess: "La operación no se puede llevar a cabo"
|
||||
recentUsed: "Usado recientemente"
|
||||
install: "Instalación"
|
||||
uninstall: "Desinstalar"
|
||||
installedApps: "Aplicaciones Autorizadas"
|
||||
nothing: "No hay nada que ver aqui"
|
||||
installedDate: "Autorizado"
|
||||
lastUsedDate: "Utilizado el"
|
||||
state: "Estado"
|
||||
sort: "Ordenar"
|
||||
ascendingOrder: "Ascendente"
|
||||
descendingOrder: "Descendente"
|
||||
scratchpad: "Scratch pad"
|
||||
scratchpadDescription: "Scratchpad proporciona un entorno experimental para AiScript. Puede escribir, ejecutar y verificar los resultados que interactúan con Misskey."
|
||||
output: "Salida"
|
||||
script: "Script"
|
||||
disablePagesScript: "Deshabilitar AiScript en Páginas"
|
||||
updateRemoteUser: "Actualizar información de usuario remoto"
|
||||
deleteAllFiles: "Borrar todos los archivos"
|
||||
deleteAllFilesConfirm: "¿Desea borrar todos los archivos?"
|
||||
removeAllFollowing: "Retener todos los siguientes"
|
||||
removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir"
|
||||
userSuspended: "Este usuario ha sido suspendido."
|
||||
userSilenced: "Este usuario ha sido silenciado."
|
||||
sidebar: "Barra lateral"
|
||||
divider: "Divisor"
|
||||
addItem: "Agregar elemento"
|
||||
rooms: "Cuartos"
|
||||
relays: "Relés"
|
||||
addRelay: "Agregar relé"
|
||||
inboxUrl: "Inbox URL"
|
||||
addedRelays: "Relés añadidos"
|
||||
serviceworkerInfo: "Se necesita activar para usar las notificaciones push"
|
||||
deletedNote: "Nota eliminada"
|
||||
invisibleNote: "Nota oculta"
|
||||
enableInfiniteScroll: "Activar scroll infinito"
|
||||
visibility: "Visibilidad"
|
||||
poll: "Encuesta"
|
||||
useCw: "Esconder contenidos"
|
||||
enablePlayer: "Abrir reproductor"
|
||||
disablePlayer: "Cerrar reproductor"
|
||||
expandTweet: "Expandir tweet"
|
||||
themeEditor: "Editor de temas"
|
||||
description: "Descripción"
|
||||
author: "Autor"
|
||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
|
||||
manage: "Administrar"
|
||||
plugins: "Plugins"
|
||||
pluginInstallWarn: "Por favor no instale plugins que no son de confianza"
|
||||
deck: "Deck"
|
||||
undeck: "Quitar deck"
|
||||
useBlurEffectForModal: "Usar efecto borroso en modales"
|
||||
useFullReactionPicker: "Reacción"
|
||||
width: "Ancho"
|
||||
height: "Altura"
|
||||
generateAccessToken: "Generar token de acceso"
|
||||
permission: "Permisos"
|
||||
enableAll: "Activar todo"
|
||||
disableAll: "Desactivar todo"
|
||||
tokenRequested: "Permiso de acceso a la cuenta"
|
||||
pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos aquí"
|
||||
notificationType: "Tipo de notificación"
|
||||
edit: "Editar"
|
||||
useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella"
|
||||
emailConfig: "Configuración del servidor de correos"
|
||||
enableEmail: "Activar el envío de correos electrónicos"
|
||||
emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña"
|
||||
smtpConfig: "Configuración del servidor SMTP"
|
||||
smtpHost: "Host"
|
||||
smtpPort: "Puerto"
|
||||
smtpUser: "Nombre de usuario"
|
||||
smtpPass: "Contraseña"
|
||||
emptyToDisableSmtpAuth: "Deje el nombre del usuario y la contraseña en blanco para deshabilitar la autenticación SMTP"
|
||||
smtpSecure: "Usar SSL/TLS implícito en la conexión SMTP"
|
||||
smtpSecureInfo: "Apagar cuando se use STARTTLS"
|
||||
testEmail: "Prueba de envío"
|
||||
wordMute: "Silenciar palabras"
|
||||
userSaysSomething: "{name} dijo algo"
|
||||
makeActive: "Activar"
|
||||
display: "Apariencia"
|
||||
copy: "Copiar"
|
||||
metrics: "Métricas"
|
||||
overview: "Resumen"
|
||||
logs: "Registros"
|
||||
delayed: "atrasado"
|
||||
database: "Base de datos"
|
||||
channel: "Canal"
|
||||
create: "Crear"
|
||||
notificationSetting: "Ajustes de Notificaciones"
|
||||
notificationSettingDesc: "Por favor elija el tipo de notificación a mostrar"
|
||||
useGlobalSetting: "Usar ajustes globales"
|
||||
useGlobalSettingDesc: "Al activarse, se usará la configuración de notificaciones de la cuenta, al desactivarse se pueden hacer configuraciones particulares."
|
||||
other: "Otro"
|
||||
regenerateLoginToken: "Regenerar token de login"
|
||||
regenerateLoginTokenDescription: "Regenerar el token usado internamente durante el login. No siempre es necesario hacerlo. Al hacerlo de nuevo, se deslogueará en todos los dispositivos."
|
||||
setMultipleBySeparatingWithSpace: "Puedes añadir mas de uno, separado por espacios."
|
||||
fileIdOrUrl: "Id del archivo o URL"
|
||||
chatOpenBehavior: "Comportamiento al abrir el chat"
|
||||
sample: "Muestra"
|
||||
abuseReports: "Reportes"
|
||||
reportAbuse: "Reportar"
|
||||
reportAbuseOf: "Reportar a {name}"
|
||||
fillAbuseReportDescription: "Ingrese los detalles del reporte. Si hay una nota en particular, ingrese la URL de esta."
|
||||
abuseReported: "Se ha enviado el reporte. Muchas gracias."
|
||||
send: "Enviar"
|
||||
abuseMarkAsResolved: "Marcar reporte como resuelto"
|
||||
openInNewTab: "Abrir en una Nueva Pestaña"
|
||||
openInSideView: "Abrir en una vista al costado"
|
||||
defaultNavigationBehaviour: "Navegación por defecto"
|
||||
editTheseSettingsMayBreakAccount: "Editar estas configuraciones puede dañar su cuenta."
|
||||
instanceTicker: "Información de notas de la instancia"
|
||||
waitingFor: "Esperando a {x}"
|
||||
random: "Aleatorio"
|
||||
system: "Sistema"
|
||||
switchUi: "Cambiar interfaz de usuario"
|
||||
desktop: "Escritorio"
|
||||
public: "Público"
|
||||
_mfm:
|
||||
cheatSheet: "Hoja de referencia de MFM"
|
||||
intro: "MFM es un lenguaje de marcado dedicado que se puede usar en varios lugares dentro de Misskey. Aquí puede ver una lista de sintaxis disponibles en MFM."
|
||||
mention: "Menciones"
|
||||
mentionDescription: "El signo @ seguido de un nombre de usuario se puede utilizar para notificar a un usuario en particular."
|
||||
hashtag: "Hashtag"
|
||||
url: "URL"
|
||||
link: "Vínculo"
|
||||
bold: "Negrita"
|
||||
center: "Centrar"
|
||||
blockCode: "Código (bloque)"
|
||||
blockCodeDescription: "Código de resaltado de sintaxis, como programas de varias líneas con bloques."
|
||||
quote: "Citar"
|
||||
emoji: "Emojis personalizados"
|
||||
search: "Buscar"
|
||||
flip: "Echar de un capirotazo"
|
||||
flipDescription: "Voltea el contenido hacia arriba / abajo o hacia la izquierda / derecha."
|
||||
_reversi:
|
||||
reversi: "Reversi"
|
||||
gameSettings: "Configuración del juego"
|
||||
chooseBoard: "Elegir tablero"
|
||||
blackOrWhite: "Blancas/Negras"
|
||||
blackIs: "{name} juega con fichas negras"
|
||||
rules: "Reglas"
|
||||
botSettings: "Opciones del bot"
|
||||
thisGameIsStartedSoon: "El juego empezará en segundos"
|
||||
waitingForOther: "Esperando el turno del adversario"
|
||||
waitingForMe: "Esperando mi turno"
|
||||
waitingBoth: "Prepárate"
|
||||
ready: "Listo"
|
||||
cancelReady: "No estoy listo"
|
||||
opponentTurn: "Turno del adversario"
|
||||
myTurn: "Mi turno"
|
||||
turnOf: "Turno de {name}"
|
||||
pastTurnOf: "Turno de {name}"
|
||||
surrender: "Rendirse"
|
||||
surrendered: "Por rendirse"
|
||||
drawn: "Empate"
|
||||
won: "{name} ha ganado"
|
||||
black: "Negro"
|
||||
white: "Blanco"
|
||||
total: "Total"
|
||||
turnCount: "Turno {count}"
|
||||
myGames: "Mis juegos"
|
||||
allGames: "Todos los juegos"
|
||||
ended: "Finalizado"
|
||||
playing: "Jugando"
|
||||
isLlotheo: "El que tenga menos fichas gana (LLoTheO)"
|
||||
loopedMap: "Mapa en bucle"
|
||||
canPutEverywhere: "Puedes colocar donde quieras"
|
||||
_instanceTicker:
|
||||
none: "No mostrar"
|
||||
remote: "Mostrar a usuarios remotos"
|
||||
always: "Mostrar siempre"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "Recargar automáticamente"
|
||||
dialog: "Mostrar diálogo de advertencia"
|
||||
quiet: "Advertencia discreta"
|
||||
_channel:
|
||||
create: "Crear canal"
|
||||
edit: "Editar canal"
|
||||
setBanner: "Elegir banner"
|
||||
removeBanner: "Borrar banner"
|
||||
featured: "Tendencias"
|
||||
owned: "Dueño"
|
||||
following: "Siguiendo"
|
||||
usersCount: "{n} participantes"
|
||||
notesCount: "{n} notas"
|
||||
_sidebar:
|
||||
full: "Completo"
|
||||
icon: "Avatar"
|
||||
hide: "Ocultar"
|
||||
_wordMute:
|
||||
muteWords: "Palabras que silenciar"
|
||||
muteWordsDescription: "Separar con espacios indica una declaracion And, separar con lineas nuevas indica una declaracion Or。"
|
||||
muteWordsDescription2: "Encerrar las palabras clave entre numerales para usar expresiones regulares"
|
||||
softDescription: "Ocultar en la linea de tiempo las notas que cumplen las condiciones"
|
||||
hardDescription: "Evitar que se agreguen a la linea de tiempo las notas que cumplen las condiciones. Las notas no agregadas seguirán quitadas aunque cambien las condiciones."
|
||||
soft: "Suave"
|
||||
hard: "Duro"
|
||||
mutedNotes: "Notas silenciadas"
|
||||
_theme:
|
||||
explore: "Explorar temas"
|
||||
install: "Instalar tema"
|
||||
manage: "Gestor de temas"
|
||||
code: "Código del tema"
|
||||
installed: "{name} ha sido instalado"
|
||||
alreadyInstalled: "Este tema ya está instalado"
|
||||
invalid: "El formato del tema no es válido"
|
||||
make: "Crear tema"
|
||||
base: "Base"
|
||||
addConstant: "Agregar constante"
|
||||
constant: "Constante"
|
||||
defaultValue: "Valor predeterminado"
|
||||
color: "Color"
|
||||
refProp: "Hacer referencia a propiedad"
|
||||
refConst: "Hacer referencia a constante"
|
||||
key: "Clave"
|
||||
func: "funciones"
|
||||
funcKind: "Tipo de función"
|
||||
argument: "Argumento"
|
||||
basedProp: "Nombre de la propiedad referenciada"
|
||||
alpha: "Opacidad"
|
||||
darken: "Oscuridad"
|
||||
lighten: "Brillo"
|
||||
inputConstantName: "Por favor ingrese el nombre de la constante"
|
||||
importInfo: "Pegando el código del tema aquí, puede importarlo al editor"
|
||||
deleteConstantConfirm: "¿Desea borrar la constante {const}?"
|
||||
keys:
|
||||
accent: "Acento"
|
||||
bg: "Fondo"
|
||||
fg: "Texto"
|
||||
focus: "Enfoque"
|
||||
indicator: "Indicador"
|
||||
panel: "Panel"
|
||||
shadow: "Sombra"
|
||||
header: "Cabezal"
|
||||
navBg: "Fondo de la barra lateral"
|
||||
navFg: "Texto de la barra lateral"
|
||||
navHoverFg: "Texto de la barra lateral (hover)"
|
||||
navActive: "Texto de la barra lateral (activo)"
|
||||
navIndicator: "Indicador de la barra lateral"
|
||||
link: "Vínculo"
|
||||
hashtag: "Hashtag"
|
||||
mention: "Menciones"
|
||||
mentionMe: "Menciones (yo)"
|
||||
renote: "Renotar"
|
||||
modalBg: "Fondo modal"
|
||||
divider: "Divisor"
|
||||
scrollbarHandle: "Cuadro de la barra de desplazamiento"
|
||||
scrollbarHandleHover: "Cuadro de la barra de desplazamiento (hover)"
|
||||
dateLabelFg: "Texto de la etiqueta de fecha"
|
||||
infoBg: "Fondo de información"
|
||||
infoFg: "Texto de información"
|
||||
infoWarnBg: "Fondo de advertencias"
|
||||
infoWarnFg: "Texto de advertencias"
|
||||
cwBg: "Fondo del botón CW"
|
||||
cwFg: "Texto del botón CW"
|
||||
cwHoverBg: "Fondo del botón CW (hover)"
|
||||
toastBg: "Fondo de notificaciones"
|
||||
toastFg: "Texto de notificaciones"
|
||||
buttonBg: "Fondo de botón"
|
||||
buttonHoverBg: "Fondo de botón (hover)"
|
||||
inputBorder: "Borde de los campos de entrada"
|
||||
listItemHoverBg: "Fondo de elemento de listas (hover)"
|
||||
driveFolderBg: "Fondo de capeta del drive"
|
||||
wallpaperOverlay: "Transparencia del fondo de pantalla"
|
||||
badge: "Medalla"
|
||||
messageBg: "Fondo de chat"
|
||||
accentDarken: "Acento (oscuro)"
|
||||
accentLighten: "Acento (claro)"
|
||||
fgHighlighted: "Texto resaltado"
|
||||
_sfx:
|
||||
note: "Notas"
|
||||
noteMy: "Nota (a mí mismo)"
|
||||
notification: "Notificaciones"
|
||||
chat: "Chat"
|
||||
chatBg: "Chat (Fondo)"
|
||||
antenna: "Antena receptora"
|
||||
channel: "Notificaciones del canal"
|
||||
_ago:
|
||||
unknown: "Desconocido"
|
||||
future: "Futuro"
|
||||
@ -504,9 +835,15 @@ _permissions:
|
||||
"write:page-likes": "Administrar páginas que te gustan"
|
||||
"read:user-groups": "Ver grupos de usuarios"
|
||||
"write:user-groups": "Administrar grupos de usuarios"
|
||||
"read:channels": "Ver canal"
|
||||
"write:channels": "Modificar canal"
|
||||
_auth:
|
||||
shareAccess: "¿Desea permitir el acceso a la cuenta \"{name}\"?"
|
||||
shareAccessAsk: "¿Está seguro de que desea autorizar esta aplicación para acceder a su cuenta?"
|
||||
permissionAsk: "Esta aplicación requiere los siguientes permisos"
|
||||
pleaseGoBack: "Por favor, vuelve a la aplicación"
|
||||
callback: "Volviendo a la aplicación"
|
||||
denied: "Acceso denegado"
|
||||
_antennaSources:
|
||||
all: "Todas las notas"
|
||||
homeTimeline: "Notas de los usuarios que sigues"
|
||||
@ -531,12 +868,14 @@ _widgets:
|
||||
rss: "Lector RSS"
|
||||
activity: "Actividad"
|
||||
photos: "Fotos"
|
||||
digitalClock: "Reloj digital"
|
||||
federation: "Federación"
|
||||
postForm: "Formulario"
|
||||
_cw:
|
||||
hide: "Ocultar"
|
||||
show: "Ver más"
|
||||
chars: "{count} caracteres"
|
||||
files: "{count} archivos"
|
||||
poll: "Encuesta"
|
||||
_poll:
|
||||
noOnlyOneChoice: "Se necesitan al menos 2 opciones"
|
||||
choiceN: "Opción {n}"
|
||||
@ -569,9 +908,11 @@ _visibility:
|
||||
specified: "Mensaje directo"
|
||||
specifiedDescription: "Visible sólo para los usuarios elegidos"
|
||||
localOnly: "Solo local"
|
||||
localOnlyDescription: "Oculto para usuarios remotos"
|
||||
_postForm:
|
||||
replyPlaceholder: "Responder a esta nota"
|
||||
quotePlaceholder: "Citar esta nota"
|
||||
channelPlaceholder: "Postear en el canal"
|
||||
_placeholders:
|
||||
a: "¿Qué haces?"
|
||||
b: "¿Te pasó algo?"
|
||||
@ -584,7 +925,6 @@ _profile:
|
||||
username: "Nombre de usuario"
|
||||
description: "Descripción"
|
||||
youCanIncludeHashtags: "Puedes añadir hashtags"
|
||||
metadata: "Información adicional"
|
||||
metadataLabel: "Etiqueta"
|
||||
metadataContent: "Contenido"
|
||||
_exportOrImport:
|
||||
@ -610,63 +950,120 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Pedidos"
|
||||
users: "Variación de usuarios"
|
||||
usersTotal: "Total de usuarios"
|
||||
usersTotal: "Total acumulado de usuarios"
|
||||
notes: "Variación de la cantidad de notas"
|
||||
notesTotal: "Estimación de notas"
|
||||
notesTotal: "Total acumulado de la cantidad de notas"
|
||||
ff: "Variación de cantidad de seguidos/seguidores"
|
||||
ffTotal: "Total de seguidos/seguidores"
|
||||
ffTotal: "Total acumulado de cantidad de seguidos/seguidores"
|
||||
cacheSize: "Variación del tamaño de la caché"
|
||||
cacheSizeTotal: "Total del tamaño de la caché"
|
||||
cacheSizeTotal: "Total acumulado del tamaño de la caché"
|
||||
files: "Variación de cantidad de archivos"
|
||||
filesTotal: "Total de archivos"
|
||||
filesTotal: "Total acumulado de cantidad de archivos"
|
||||
_timelines:
|
||||
home: "Inicio"
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "Cuarto de {user}"
|
||||
addFurniture: "Colocar muebles"
|
||||
translate: "Mover"
|
||||
rotate: "Rotar"
|
||||
exit: "Deseleccionar"
|
||||
remove: "Quitar"
|
||||
clear: "Quitar todo"
|
||||
clearConfirm: "¿Quiere quitar todos los muebles?"
|
||||
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea irse?"
|
||||
chooseImage: "Escoger una imagen"
|
||||
roomType: "Estilo de cuarto"
|
||||
carpetColor: "Color de piso"
|
||||
_roomType:
|
||||
default: "Predeterminado"
|
||||
washitsu: "Estilo japonés"
|
||||
_furnitures:
|
||||
milk: "Cartón de leche"
|
||||
bed: "Cama"
|
||||
low-table: "Mesa chica"
|
||||
desk: "Escritorio"
|
||||
chair: "Silla"
|
||||
chair2: "Silla 2"
|
||||
fan: "Ventilador"
|
||||
pc: "Computadora"
|
||||
plant: "Planta decorativa"
|
||||
plant2: "Planta decorativa 2"
|
||||
eraser: "Goma de borrar"
|
||||
pencil: "lápiz"
|
||||
pudding: "Pudín"
|
||||
cardboard-box: "Caja de cartón"
|
||||
cardboard-box2: "Caja de cartón 2"
|
||||
cardboard-box3: "Caja de cartón 3"
|
||||
book: "Libro"
|
||||
book2: "Libro 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Caja de pañuelos"
|
||||
server: "Servidor"
|
||||
moon: "Luna"
|
||||
corkboard: "Pizarra de corcho"
|
||||
mousepad: "Alfombrilla de ratón"
|
||||
monitor: "Monitor"
|
||||
keyboard: "Teclado"
|
||||
carpet-stripe: "Alfombra (a rayas)"
|
||||
mat: "Tapete"
|
||||
color-box: "Caja de colores"
|
||||
wall-clock: "Reloj de pared"
|
||||
photoframe: "Fotograma"
|
||||
cube: "Cubo"
|
||||
tv: "Televisor"
|
||||
pinguin: "Pinguino"
|
||||
rubik-cube: "Cubo rubik"
|
||||
poster-h: "Poster (horizontal)"
|
||||
poster-v: "Poster (vertical)"
|
||||
sofa: "Sillón"
|
||||
spiral: "Escalera en espiral"
|
||||
bin: "Papelera"
|
||||
cup-noodle: "Taza de sopa de fideos"
|
||||
holo-display: "Poster holográfico"
|
||||
energy-drink: "Bebida energética"
|
||||
doll-ai: "Muñeca"
|
||||
banknote: "Billetes"
|
||||
_pages:
|
||||
newPage: "Crear página"
|
||||
editPage: "Editar página"
|
||||
readPage: "Viendo la fuente"
|
||||
page-created: "La página fue creada"
|
||||
page-updated: "La página fue actualizada"
|
||||
name-already-exists: "La URL de la página seleccionada ya existe"
|
||||
title-invalid-name: "URL inválida"
|
||||
text-invalid-name: "Verifique que no tenga espacios en blanco"
|
||||
created: "La página fue creada"
|
||||
updated: "La página fue actualizada"
|
||||
deleted: "La página borrada"
|
||||
nameAlreadyExists: "La URL de la página especificada ya existe"
|
||||
invalidNameTitle: "URL inválida"
|
||||
invalidNameText: "Verifique que no tenga espacios en blanco"
|
||||
editThisPage: "Editar esta página"
|
||||
viewSource: "Ver la fuente"
|
||||
viewPage: "Ver página"
|
||||
like: "Me gusta"
|
||||
unlike: "Quitar me gusta"
|
||||
liked-pages: "Páginas que me gustan"
|
||||
my-pages: "Mis páginas"
|
||||
my: "Mis páginas"
|
||||
liked: "Páginas que me gustan"
|
||||
inspector: "Inspector"
|
||||
contents: "Contenido"
|
||||
content: "Bloque de página"
|
||||
variables: "Variables"
|
||||
variables-info: "Puedes crear una página dinámica usando variables. Al escribir el <b>{ nombre de la variable }</b> dentro del texto, se puede embeber el valor de la variable allí. Por ejemplo, si en el texto <b>¡Hola { thing } mundo!</b> el valor de la variable (thing) es <b>ai</b>, el texto se vuelve <b>¡Hola ai mundo!</b>"
|
||||
variables-info2: "La evaluación de las variables (el cálculo de los valores) se hace de arriba a abajo, por eso una variable no puede referenciar a otra que esté debajo. Por ejemplo, cuando se definen las variables <b>A、B、C</b>, <b>C</b> puede referenciar a <b>A</b> o <b>B</b>, pero <b>A</b> no puede referenciar a <b>B</b> ni a <b>C</b>."
|
||||
variables-info3: "Para recibir la entrada del usuario, agregue un bloque \"entrada de usuario\" en la página, y configure el nombre de las variables que desea almacenar en el campo \"nombre de variables\" (Las variables se crearán automáticamente). Se ejecutaran acciones en base a la entrada del usuario de esas variables."
|
||||
variables-info4: "Al usar funciones, se pueden agrupar el cálculo de valores de forma reutilizable. Para crear una función, se crea una variable de tipo \"función\". A la función de le puede configurar un slot (argumento), y el valor del slot está disponible como variable dentro de la función. También existen funciones que usan funciones como argumentos bajo el estandar AiScript (llamadas funciones de orden superior). Además de las funciones definidas previamente, se pueden definir funciones al momento en los slots de las funciones de orden superior."
|
||||
more-details: "Más detalles"
|
||||
title: "Título"
|
||||
url: "URL de la página"
|
||||
summary: "Resumen de la página"
|
||||
alignCenter: "Centrar"
|
||||
hide-title-when-pinned: "Ocultar el título de la página al fijarse"
|
||||
hideTitleWhenPinned: "Ocultar el título de la página al fijarse"
|
||||
font: "Fuente"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
set-eye-catching-image: "Elegir imagen llamativa"
|
||||
remove-eye-catching-image: "Borrar imagen llamativa"
|
||||
eyeCatchingImageSet: "Elegir imagen llamativa"
|
||||
eyeCatchingImageRemove: "Borrar imagen llamativa"
|
||||
chooseBlock: "Agregar bloque"
|
||||
selectType: "Elegir tipo"
|
||||
enterVariableName: "Ingrese el nombre de la variable"
|
||||
the-variable-name-is-already-used: "El nombre de la variable ya está en uso"
|
||||
content-blocks: "Contenido"
|
||||
input-blocks: "Entrada"
|
||||
special-blocks: "Especial"
|
||||
post-from-post-form: "Postear este contenido"
|
||||
posted-from-post-form: "Posteado"
|
||||
variableNameIsAlreadyUsed: "El nombre de la variable ya está en uso"
|
||||
contentBlocks: "Contenido"
|
||||
inputBlocks: "Entrada"
|
||||
specialBlocks: "Especial"
|
||||
blocks:
|
||||
text: "Texto"
|
||||
textarea: "Área de texto"
|
||||
@ -679,6 +1076,8 @@ _pages:
|
||||
post: "Formulario"
|
||||
_post:
|
||||
text: "Contenido"
|
||||
attachCanvasImage: "Nota con lienzo como imagen"
|
||||
canvasId: "Lienzo ID"
|
||||
textInput: "Entrada de texto"
|
||||
_textInput:
|
||||
name: "Nombre de variable"
|
||||
@ -694,6 +1093,11 @@ _pages:
|
||||
name: "Nombre de variable"
|
||||
text: "Título"
|
||||
default: "Valor predeterminado"
|
||||
canvas: "Lienzo"
|
||||
_canvas:
|
||||
id: "Lienzo ID"
|
||||
width: "Ancho"
|
||||
height: "Altura"
|
||||
switch: "Interruptor"
|
||||
_switch:
|
||||
name: "Nombre de variable"
|
||||
@ -719,6 +1123,9 @@ _pages:
|
||||
message: "Mensaje mostrado al apretar"
|
||||
variable: "Variable a enviar"
|
||||
no-variable: "Ninguna"
|
||||
callAiScript: "Invocar AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Nombre de la función"
|
||||
radioButton: "Botón de opción"
|
||||
_radioButton:
|
||||
name: "Nombre de variable"
|
||||
@ -879,6 +1286,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Texto"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable de AiScript"
|
||||
fn: "funciones"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
@ -900,3 +1308,51 @@ _pages:
|
||||
enviromentVariables: "Variables de entorno"
|
||||
pageVariables: "Items de la página"
|
||||
argVariables: "Slot de entrada"
|
||||
_relayStatus:
|
||||
requesting: "Pendiente"
|
||||
accepted: "Aceptar"
|
||||
rejected: "Rechazada"
|
||||
_notification:
|
||||
fileUploaded: "Archivo subido"
|
||||
youGotMention: "Mención de {name}"
|
||||
youGotReply: "Respuesta de {name}"
|
||||
youGotQuote: "Citado por {name}"
|
||||
youRenoted: "Renotado por {name}"
|
||||
youGotPoll: "Encuestado por {name}"
|
||||
youGotMessagingMessageFromUser: "{name} comenzó un chat contigo"
|
||||
youGotMessagingMessageFromGroup: "Tienes un chat de {name}"
|
||||
youWereFollowed: "te ha seguido"
|
||||
youReceivedFollowRequest: "Has mandado una solicitud de seguimiento"
|
||||
yourFollowRequestAccepted: "Tu solicitud de seguimiento fue aceptada"
|
||||
youWereInvitedToGroup: "Invitado al grupo"
|
||||
_types:
|
||||
all: "Todo"
|
||||
follow: "Siguiendo"
|
||||
mention: "Menciones"
|
||||
reply: "Respuestas"
|
||||
renote: "Renotar"
|
||||
quote: "Citar"
|
||||
reaction: "Reacción"
|
||||
pollVote: "Votado en la encuesta"
|
||||
receiveFollowRequest: "Recibió una solicitud de seguimiento"
|
||||
followRequestAccepted: "El seguimiento fue aceptado"
|
||||
groupInvited: "Invitado al grupo"
|
||||
app: "Notificaciones desde aplicaciones"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "Siempre mostrar la columna principal"
|
||||
columnAlign: "Alinear columnas"
|
||||
addColumn: "Agregar columna"
|
||||
swapLeft: "Mover a la izquierda"
|
||||
swapRight: "Mover a la derecha"
|
||||
swapUp: "Mover arriba"
|
||||
swapDown: "Mover abajo"
|
||||
stackLeft: "Apilar a la izquierda"
|
||||
popRight: "Sacar a la derecha"
|
||||
_columns:
|
||||
widgets: "Widgets"
|
||||
notifications: "Notificaciones"
|
||||
tl: "Linea de tiempo"
|
||||
antenna: "Antenas"
|
||||
list: "Listas"
|
||||
mentions: "Menciones"
|
||||
direct: "Mensaje directo"
|
||||
|
@ -14,19 +14,27 @@ const merge = (...args) => args.reduce((a, c) => ({
|
||||
}), {});
|
||||
|
||||
const languages = [
|
||||
//'cs-CZ',
|
||||
//'da-DK',
|
||||
//'de-DE',
|
||||
'ar-SA',
|
||||
'cs-CZ',
|
||||
'da-DK',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
'fr-FR',
|
||||
'ja-JP',
|
||||
'ja-KS',
|
||||
'kab-KAB',
|
||||
'kn-IN',
|
||||
'ko-KR',
|
||||
//'nl-NL',
|
||||
//'pl-PL',
|
||||
'nl-NL',
|
||||
'no-NO',
|
||||
'pl-PL',
|
||||
'pt-PT',
|
||||
'ru-RU',
|
||||
'ug-CN',
|
||||
'uk-UA',
|
||||
'zh-CN',
|
||||
//'zh-TW',
|
||||
'zh-TW',
|
||||
];
|
||||
|
||||
const primaries = {
|
||||
|
@ -16,6 +16,9 @@ noNotes: "ノートはありません"
|
||||
noNotifications: "通知はありません"
|
||||
instance: "インスタンス"
|
||||
settings: "設定"
|
||||
basicSettings: "基本設定"
|
||||
otherSettings: "その他の設定"
|
||||
openInWindow: "ウィンドウで開く"
|
||||
profile: "プロフィール"
|
||||
timeline: "タイムライン"
|
||||
noAccountDescription: "自己紹介はありません"
|
||||
@ -35,14 +38,18 @@ unpin: "ピン留め解除"
|
||||
copyContent: "内容をコピー"
|
||||
copyLink: "リンクをコピー"
|
||||
delete: "削除"
|
||||
deleteAndEdit: "削除して編集"
|
||||
deleteAndEditConfirm: "このノートを削除してもう一度編集しますか?このノートへのリアクション、Renote、返信も全て削除されます。"
|
||||
addToList: "リストに追加"
|
||||
sendMessage: "メッセージを送信"
|
||||
copyUsername: "ユーザー名をコピー"
|
||||
searchUser: "ユーザーを検索"
|
||||
reply: "返信"
|
||||
loadMore: "もっと見る"
|
||||
youGotNewFollower: "フォローされました"
|
||||
receiveFollowRequest: "フォローリクエストされました"
|
||||
followRequestAccepted: "フォローが承認されました"
|
||||
mention: "メンション"
|
||||
mentions: "あなた宛て"
|
||||
directNotes: "ダイレクト投稿"
|
||||
importAndExport: "インポートとエクスポート"
|
||||
@ -63,8 +70,11 @@ followers: "フォロワー"
|
||||
followsYou: "フォローされています"
|
||||
createList: "リスト作成"
|
||||
manageLists: "リストの管理"
|
||||
error: "問題が発生しました"
|
||||
error: "エラー"
|
||||
somethingHappened: "問題が発生しました"
|
||||
retry: "再試行"
|
||||
pageLoadError: "ページの読み込みに失敗しました。"
|
||||
pageLoadErrorDescription: "これは通常、ネットワークまたはブラウザキャッシュが原因です。キャッシュをクリアするか、しばらく待ってから再度試してください。"
|
||||
enterListName: "リスト名を入力"
|
||||
privacy: "プライバシー"
|
||||
makeFollowManuallyApprove: "フォローを承認制にする"
|
||||
@ -84,9 +94,9 @@ clickToShow: "クリックして表示"
|
||||
sensitive: "閲覧注意"
|
||||
add: "追加"
|
||||
reaction: "リアクション"
|
||||
reactionSettingDescription: "リアクションピッカーに表示するリアクションを改行で区切って設定します。"
|
||||
reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。"
|
||||
reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。"
|
||||
rememberNoteVisibility: "公開範囲を記憶する"
|
||||
renameFile: "ファイル名を変更"
|
||||
attachCancel: "添付取り消し"
|
||||
markAsSensitive: "閲覧注意にする"
|
||||
unmarkAsSensitive: "閲覧注意を解除する"
|
||||
@ -102,20 +112,29 @@ unblockConfirm: "ブロック解除しますか?"
|
||||
suspendConfirm: "凍結しますか?"
|
||||
unsuspendConfirm: "解凍しますか?"
|
||||
selectList: "リストを選択"
|
||||
selectAntenna: "アンテナを選択"
|
||||
selectWidget: "ウィジェットを選択"
|
||||
editWidgets: "ウィジェットを編集"
|
||||
editWidgetsExit: "編集を終了"
|
||||
customEmojis: "カスタム絵文字"
|
||||
emoji: "絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
settingGuide: "おすすめ設定"
|
||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
|
||||
flagAsBot: "Botとして設定"
|
||||
flagAsBotDescription: "このアカウントがプログラムによって運用される場合は、このフラグをオンにします。オンにすると、反応の連鎖を防ぐためのフラグとして他の開発者に役立ったり、Misskeyのシステム上での扱いがBotに合ったものになります。"
|
||||
flagAsCat: "Catとして設定"
|
||||
flagAsCatDescription: "このアカウントが猫であることを示す場合は、このフラグをオンにします。"
|
||||
autoAcceptFollowed: "フォロー中ユーザーからのフォロリクを自動承認"
|
||||
addAcount: "アカウント追加"
|
||||
loginFailed: "ログインに失敗しました"
|
||||
showOnRemote: "リモートで表示"
|
||||
general: "全般"
|
||||
wallpaper: "壁紙"
|
||||
setWallpaper: "壁紙を設定"
|
||||
removeWallpaper: "壁紙を削除"
|
||||
searchWith: "検索: {q}"
|
||||
youHaveNoLists: "リストがありません"
|
||||
@ -168,8 +187,8 @@ intro: "Misskeyのインストールが完了しました!管理者アカウ
|
||||
done: "完了"
|
||||
processing: "処理中"
|
||||
preview: "プレビュー"
|
||||
default: "デフォルト"
|
||||
noCustomEmojis: "絵文字はありません"
|
||||
customEmojisOfRemote: "リモートの絵文字"
|
||||
noJobs: "ジョブはありません"
|
||||
federating: "連合中"
|
||||
blocked: "ブロック中"
|
||||
@ -198,15 +217,20 @@ imageUrl: "画像URL"
|
||||
remove: "削除"
|
||||
removed: "削除しました"
|
||||
removeAreYouSure: "「{x}」を削除しますか?"
|
||||
deleteAreYouSure: "「{x}」を削除しますか?"
|
||||
resetAreYouSure: "リセットしますか?"
|
||||
saved: "保存しました"
|
||||
messaging: "チャット"
|
||||
upload: "アップロード"
|
||||
fromDrive: "ドライブから"
|
||||
fromUrl: "URLから"
|
||||
uploadFromUrl: "URLアップロード"
|
||||
uploadFromUrlDescription: "アップロードしたいファイルのURL"
|
||||
uploadFromUrlRequested: "アップロードをリクエストしました"
|
||||
uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。"
|
||||
explore: "みつける"
|
||||
games: "Misskey Games"
|
||||
messageRead: "既読"
|
||||
recentUsedEmojis: "最近使用した絵文字"
|
||||
noMoreHistory: "これより過去の履歴はありません"
|
||||
startMessaging: "チャットを開始"
|
||||
nUsersRead: "{n}人が読みました"
|
||||
@ -222,22 +246,38 @@ yearsOld: "{age}歳"
|
||||
registeredDate: "登録日"
|
||||
location: "場所"
|
||||
theme: "テーマ"
|
||||
themeForLightMode: "ライトモードで使うテーマ"
|
||||
themeForDarkMode: "ダークモードで使うテーマ"
|
||||
light: "ライト"
|
||||
dark: "ダーク"
|
||||
lightThemes: "明るいテーマ"
|
||||
darkThemes: "暗いテーマ"
|
||||
syncDeviceDarkMode: "デバイスのダークモードと同期する"
|
||||
drive: "ドライブ"
|
||||
fileName: "ファイル名"
|
||||
selectFile: "ファイルを選択"
|
||||
selectFiles: "ファイルを選択"
|
||||
renameFolder: "フォルダー名を変更"
|
||||
selectFolder: "フォルダーを選択"
|
||||
selectFolders: "フォルダーを選択"
|
||||
renameFile: "ファイル名を変更"
|
||||
folderName: "フォルダー名"
|
||||
createFolder: "フォルダーを作成"
|
||||
renameFolder: "フォルダー名を変更"
|
||||
deleteFolder: "フォルダーを削除"
|
||||
addFile: "ファイルを追加"
|
||||
emptyDrive: "ドライブは空です"
|
||||
emptyFolder: "フォルダーは空です"
|
||||
unableToDelete: "削除できません"
|
||||
inputNewFileName: "新しいファイル名を入力してください"
|
||||
inputNewFolderName: "新しいフォルダ名を入力してください"
|
||||
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
|
||||
hasChildFilesOrFolders: "このフォルダは空でないため、削除できません。"
|
||||
copyUrl: "URLをコピー"
|
||||
rename: "名前を変更"
|
||||
avatar: "アイコン"
|
||||
banner: "バナー"
|
||||
nsfw: "閲覧注意"
|
||||
whenServerDisconnected: "サーバーとの接続が失われたとき"
|
||||
disconnectedFromServer: "サーバーから切断されました"
|
||||
reload: "リロード"
|
||||
doNothing: "なにもしない"
|
||||
@ -246,6 +286,7 @@ watch: "ウォッチ"
|
||||
unwatch: "ウォッチ解除"
|
||||
accept: "許可"
|
||||
reject: "拒否"
|
||||
normal: "正常"
|
||||
instanceName: "インスタンス名"
|
||||
instanceDescription: "インスタンスの紹介"
|
||||
maintainerName: "管理者の名前"
|
||||
@ -277,15 +318,25 @@ bannerUrl: "バナー画像のURL"
|
||||
basicInfo: "基本情報"
|
||||
pinnedUsers: "ピン留めユーザー"
|
||||
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
|
||||
pinnedPages: "ピン留めページ"
|
||||
pinnedPagesDescription: "インスタンスのトップページにピン留めしたいページのパスを改行で区切って記述します。"
|
||||
pinnedClipId: "ピン留めするクリップのID"
|
||||
pinnedNotes: "ピン留めされたノート"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptchaを有効にする"
|
||||
hcaptchaSiteKey: "サイトキー"
|
||||
hcaptchaSecretKey: "シークレットキー"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHAを有効にする"
|
||||
recaptchaSiteKey: "サイトキー"
|
||||
recaptchaSecretKey: "シークレットキー"
|
||||
avoidMultiCaptchaConfirm: "複数のCaptchaを使用すると干渉を起こす可能性があります。他のCaptchaを無効にしますか?キャンセルして複数のCaptchaを有効化したままにすることも可能です。"
|
||||
antennas: "アンテナ"
|
||||
manageAntennas: "アンテナの管理"
|
||||
name: "名前"
|
||||
antennaSource: "受信ソース"
|
||||
antennaKeywords: "受信キーワード"
|
||||
antennaExcludeKeywords: "除外キーワード"
|
||||
antennaKeywordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
|
||||
notifyAntenna: "新しいノートを通知する"
|
||||
withFileAntenna: "ファイルが添付されたノートのみ"
|
||||
@ -299,6 +350,7 @@ notesAndReplies: "投稿と返信"
|
||||
withFiles: "ファイル付き"
|
||||
silence: "サイレンス"
|
||||
silenceConfirm: "サイレンスしますか?"
|
||||
unsilence: "サイレンス解除"
|
||||
unsilenceConfirm: "サイレンス解除しますか?"
|
||||
popularUsers: "人気のユーザー"
|
||||
recentlyUpdatedUsers: "最近投稿したユーザー"
|
||||
@ -310,13 +362,6 @@ popularTags: "人気のタグ"
|
||||
userList: "リスト"
|
||||
about: "情報"
|
||||
aboutMisskey: "Misskeyについて"
|
||||
aboutMisskeyText: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
|
||||
misskeyMembers: "現在以下のメンバーによって開発・メンテナンスされています:"
|
||||
misskeySource: "ソースコードはここで公開されています:"
|
||||
misskeyTranslation: "Misskeyの翻訳にご協力をお願いします:"
|
||||
misskeyDonate: "Misskeyに寄付をして開発をサポートできます:"
|
||||
morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰"
|
||||
patrons: "支援者"
|
||||
administrator: "管理者"
|
||||
token: "トークン"
|
||||
twoStepAuthentication: "二段階認証"
|
||||
@ -330,11 +375,6 @@ unregister: "登録を解除"
|
||||
passwordLessLogin: "パスワード無しログイン"
|
||||
resetPassword: "パスワードをリセット"
|
||||
newPasswordIs: "新しいパスワードは「{password}」です"
|
||||
post: "投稿"
|
||||
posted: "投稿しました"
|
||||
autoReloadWhenDisconnected: "サーバー切断時に自動リロード"
|
||||
autoNoteWatch: "ノートの自動ウォッチ"
|
||||
autoNoteWatchDescription: "あなたがリアクションしたり返信したりした他のユーザーのノートに関する通知を受け取るようにします。"
|
||||
reduceUiAnimation: "UIのアニメーションを減らす"
|
||||
share: "共有"
|
||||
notFound: "見つかりません"
|
||||
@ -372,6 +412,7 @@ noMessagesYet: "まだチャットはありません"
|
||||
newMessageExists: "新しいメッセージがあります"
|
||||
onlyOneFileCanBeAttached: "メッセージに添付できるファイルはひとつです"
|
||||
signinRequired: "ログインしてください"
|
||||
invitations: "招待"
|
||||
invitationCode: "招待コード"
|
||||
checking: "確認しています"
|
||||
available: "利用できます"
|
||||
@ -385,15 +426,17 @@ strongPassword: "強いパスワード"
|
||||
passwordMatched: "一致しました"
|
||||
passwordNotMatched: "一致していません"
|
||||
signinWith: "{x}でログイン"
|
||||
tapSecurityKey: "セキュリティーキーにタッチ"
|
||||
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
||||
tapSecurityKey: "セキュリティキーにタッチ"
|
||||
or: "もしくは"
|
||||
uiLanguage: "UIの表示言語"
|
||||
groupInvited: "グループに招待されました"
|
||||
aboutX: "{x}について"
|
||||
useOsNativeEmojis: "OSネイティブの絵文字を使用"
|
||||
noGroups: "グループがありません"
|
||||
youHaveNoGroups: "グループがありません"
|
||||
joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。"
|
||||
noHistory: "履歴はありません"
|
||||
signinHistory: "ログイン履歴"
|
||||
disableAnimatedMfm: "動きのあるMFMを無効にする"
|
||||
doing: "やっています"
|
||||
category: "カテゴリ"
|
||||
@ -411,8 +454,8 @@ remote: "リモート"
|
||||
total: "合計"
|
||||
weekOverWeekChanges: "前週比"
|
||||
dayOverDayChanges: "前日比"
|
||||
accessibility: "アクセシビリティ"
|
||||
clinetSettings: "クライアント設定"
|
||||
appearance: "アピアランス"
|
||||
clientSettings: "クライアント設定"
|
||||
accountSettings: "アカウント設定"
|
||||
promotion: "プロモーション"
|
||||
promote: "プロモート"
|
||||
@ -421,15 +464,406 @@ hideThisNote: "このノートを非表示"
|
||||
showFeaturedNotesInTimeline: "タイムラインにおすすめのノートを表示する"
|
||||
objectStorage: "オブジェクトストレージ"
|
||||
useObjectStorage: "オブジェクトストレージを使用"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
objectStorageBaseUrlDesc: "参照に使用するURL。CDNやProxyを使用している場合はそのURL、S3: 'https://<bucket>.s3.amazonaws.com'、GCS等: 'https://storage.googleapis.com/<bucket>'。"
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStorageBucketDesc: "使用サービスのbucket名を指定してください。"
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStoragePrefixDesc: "このprefixのディレクトリ下に格納されます。"
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageEndpointDesc: "S3の場合は空、それ以外の場合は各サービスのendpointを指定してください。'<host>'または'<host>:<port>'のように指定します。"
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "'xx-east-1'のようなregionを指定してください。使用サービスにregionの概念がない場合は、空または'us-east-1'にしてください。"
|
||||
objectStorageUseSSL: "SSLを使用する"
|
||||
objectStorageUseSSLDesc: "API接続にhttpsを使用しない場合はオフにしてください"
|
||||
objectStorageUseProxy: "Proxyを利用する"
|
||||
objectStorageUseProxyDesc: "API接続にproxyを利用しない場合はオフにしてください"
|
||||
objectStorageSetPublicRead: "アップロード時に'public-read'を設定する"
|
||||
serverLogs: "サーバーログ"
|
||||
deleteAll: "全て削除"
|
||||
showFixedPostForm: "タイムライン上部に投稿フォームを表示する"
|
||||
newNoteRecived: "新しいノートがあります"
|
||||
useNotificationsPopup: "通知一覧をポップアップで表示"
|
||||
sounds: "サウンド"
|
||||
listen: "聴く"
|
||||
none: "なし"
|
||||
showInPage: "ページで表示"
|
||||
popout: "ポップアウト"
|
||||
volume: "音量"
|
||||
masterVolume: "マスター音量"
|
||||
details: "詳細"
|
||||
chooseEmoji: "絵文字を選択"
|
||||
unableToProcess: "操作を完了できません"
|
||||
recentUsed: "最近使用"
|
||||
install: "インストール"
|
||||
uninstall: "アンインストール"
|
||||
installedApps: "インストールされたアプリ"
|
||||
nothing: "ありません"
|
||||
installedDate: "インストール日時"
|
||||
lastUsedDate: "最終使用日時"
|
||||
state: "状態"
|
||||
sort: "ソート"
|
||||
ascendingOrder: "昇順"
|
||||
descendingOrder: "降順"
|
||||
scratchpad: "スクラッチパッド"
|
||||
scratchpadDescription: "スクラッチパッドは、AiScriptの実験環境を提供します。Misskeyと対話するコードの記述、実行、結果の確認ができます。"
|
||||
output: "出力"
|
||||
script: "スクリプト"
|
||||
disablePagesScript: "Pagesのスクリプトを無効にする"
|
||||
updateRemoteUser: "リモートユーザー情報の更新"
|
||||
deleteAllFiles: "すべてのファイルを削除"
|
||||
deleteAllFilesConfirm: "すべてのファイルを削除しますか?"
|
||||
removeAllFollowing: "フォローを全解除"
|
||||
removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
|
||||
userSuspended: "このユーザーは凍結されています。"
|
||||
userSilenced: "このユーザーはサイレンスされています。"
|
||||
sidebar: "サイドバー"
|
||||
divider: "分割線"
|
||||
addItem: "項目を追加"
|
||||
rooms: "ルーム"
|
||||
relays: "リレー"
|
||||
addRelay: "リレーの追加"
|
||||
inboxUrl: "inboxのURL"
|
||||
addedRelays: "追加済みのリレー"
|
||||
serviceworkerInfo: "プッシュ通知を行うには有効する必要があります。"
|
||||
deletedNote: "削除された投稿"
|
||||
invisibleNote: "非公開の投稿"
|
||||
enableInfiniteScroll: "自動でもっと見る"
|
||||
visibility: "公開範囲"
|
||||
poll: "アンケート"
|
||||
useCw: "内容を隠す"
|
||||
enablePlayer: "プレイヤーを開く"
|
||||
disablePlayer: "プレイヤーを閉じる"
|
||||
expandTweet: "ツイートを展開する"
|
||||
themeEditor: "テーマエディター"
|
||||
description: "説明"
|
||||
author: "作者"
|
||||
leaveConfirm: "未保存の変更があります。破棄しますか?"
|
||||
manage: "管理"
|
||||
plugins: "プラグイン"
|
||||
pluginInstallWarn: "信頼できないプラグインはインストールしないでください。"
|
||||
deck: "デッキ"
|
||||
undeck: "デッキ解除"
|
||||
useBlurEffectForModal: "モーダルにぼかし効果を使用"
|
||||
useFullReactionPicker: "フル機能リアクションピッカーを使用"
|
||||
width: "幅"
|
||||
height: "高さ"
|
||||
large: "大"
|
||||
medium: "中"
|
||||
small: "小"
|
||||
generateAccessToken: "アクセストークンの発行"
|
||||
permission: "権限"
|
||||
enableAll: "全て有効にする"
|
||||
disableAll: "全て無効にする"
|
||||
tokenRequested: "アカウントへのアクセス許可"
|
||||
pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。"
|
||||
notificationType: "通知の種類"
|
||||
edit: "編集"
|
||||
useStarForReactionFallback: "リアクション絵文字が不明な場合、代わりに★を使う"
|
||||
emailConfig: "メールサーバー設定"
|
||||
enableEmail: "メール配信機能を有効化する"
|
||||
emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います"
|
||||
email: "メール"
|
||||
emailAddress: "メールアドレス"
|
||||
smtpConfig: "SMTP サーバーの設定"
|
||||
smtpHost: "ホスト"
|
||||
smtpPort: "ポート"
|
||||
smtpUser: "ユーザー名"
|
||||
smtpPass: "パスワード"
|
||||
emptyToDisableSmtpAuth: "ユーザー名とパスワードを空欄にすることで、SMTP認証を無効化出来ます"
|
||||
smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
|
||||
smtpSecureInfo: "STARTTLS使用時はオフにします。"
|
||||
testEmail: "配信テスト"
|
||||
wordMute: "ワードミュート"
|
||||
userSaysSomething: "{name}が何かを言いました"
|
||||
makeActive: "アクティブにする"
|
||||
display: "表示"
|
||||
copy: "コピー"
|
||||
metrics: "メトリクス"
|
||||
overview: "概要"
|
||||
logs: "ログ"
|
||||
delayed: "遅延"
|
||||
database: "データベース"
|
||||
channel: "チャンネル"
|
||||
create: "作成"
|
||||
notificationSetting: "通知設定"
|
||||
notificationSettingDesc: "表示する通知の種別を選択してください。"
|
||||
useGlobalSetting: "グローバル設定を使う"
|
||||
useGlobalSettingDesc: "オンにすると、アカウントの通知設定が使用されます。オフにすると、個別に設定できるようになります。"
|
||||
other: "その他"
|
||||
regenerateLoginToken: "ログイントークンを再生成"
|
||||
regenerateLoginTokenDescription: "ログインに使用される内部トークンを再生成します。通常この操作を行う必要はありません。再生成すると、全てのデバイスでログアウトされます。"
|
||||
setMultipleBySeparatingWithSpace: "スペースで区切って複数設定できます。"
|
||||
fileIdOrUrl: "ファイルIDまたはURL"
|
||||
chatOpenBehavior: "チャットを開くときの動作"
|
||||
behavior: "動作"
|
||||
sample: "サンプル"
|
||||
abuseReports: "通報"
|
||||
reportAbuse: "通報"
|
||||
reportAbuseOf: "{name}を通報する"
|
||||
fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。"
|
||||
abuseReported: "内容が送信されました。ご報告ありがとうございました。"
|
||||
send: "送信"
|
||||
abuseMarkAsResolved: "対応済みにする"
|
||||
openInNewTab: "新しいタブで開く"
|
||||
openInSideView: "サイドビューで開く"
|
||||
defaultNavigationBehaviour: "デフォルトのナビゲーション"
|
||||
editTheseSettingsMayBreakAccount: "これらの設定を編集するとアカウントが破損する可能性があります。"
|
||||
instanceTicker: "ノートのインスタンス情報"
|
||||
waitingFor: "{x}を待っています"
|
||||
random: "ランダム"
|
||||
system: "システム"
|
||||
switchUi: "UI切り替え"
|
||||
desktop: "デスクトップ"
|
||||
clip: "クリップ"
|
||||
createNew: "新規作成"
|
||||
optional: "任意"
|
||||
createNewClip: "新しいクリップを作成"
|
||||
public: "パブリック"
|
||||
i18nInfo: "Misskeyは有志によって様々な言語に翻訳されています。{link}で翻訳に協力できます。"
|
||||
manageAccessTokens: "アクセストークンの管理"
|
||||
accountInfo: "アカウント情報"
|
||||
notesCount: "ノートの数"
|
||||
repliesCount: "返信した数"
|
||||
renotesCount: "Renoteした数"
|
||||
repliedCount: "返信された数"
|
||||
renotedCount: "Renoteされた数"
|
||||
followingCount: "フォロー数"
|
||||
followersCount: "フォロワー数"
|
||||
sentReactionsCount: "リアクションした数"
|
||||
receivedReactionsCount: "リアクションされた数"
|
||||
pollVotesCount: "アンケートに投票した数"
|
||||
pollVotedCount: "アンケートに投票された数"
|
||||
yes: "はい"
|
||||
no: "いいえ"
|
||||
driveFilesCount: "ドライブのファイル数"
|
||||
driveUsage: "ドライブ使用量"
|
||||
noCrawle: "クローラーによるインデックスを拒否"
|
||||
noCrawleDescription: "検索エンジンにあなたのユーザーページ、ノート、Pagesなどのコンテンツを登録(インデックス)しないよう要請します。"
|
||||
lockedAccountInfo: "フォローを承認制にしても、ノートの公開範囲を「フォロワー」にしない限り、誰でもあなたのノートを見ることができます。"
|
||||
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にする"
|
||||
loadRawImages: "添付画像のサムネイルをオリジナル画質にする"
|
||||
disableShowingAnimatedImages: "アニメーション画像を再生しない"
|
||||
verificationEmailSent: "確認のメールを送信しました。メールに記載されたリンクにアクセスして、設定を完了してください。"
|
||||
notSet: "未設定"
|
||||
emailVerified: "メールアドレスが確認されました"
|
||||
noteFavoritesCount: "お気に入りノートの数"
|
||||
pageLikesCount: "Pageにいいねした数"
|
||||
pageLikedCount: "Pageにいいねされた数"
|
||||
reversiCount: "リバーシの対局数"
|
||||
contact: "連絡先"
|
||||
useSystemFont: "システムのデフォルトのフォントを使う"
|
||||
clips: "クリップ"
|
||||
experimentalFeatures: "実験的機能"
|
||||
developer: "開発者"
|
||||
|
||||
_aboutMisskey:
|
||||
about: "Misskeyはsyuiloによって2014年から開発されている、オープンソースのソフトウェアです。"
|
||||
contributors: "主なコントリビューター"
|
||||
allContributors: "全てのコントリビューター"
|
||||
source: "ソースコード"
|
||||
translation: "Misskeyを翻訳"
|
||||
donate: "Misskeyに寄付"
|
||||
morePatrons: "他にも多くの方が支援してくれています。ありがとうございます🥰"
|
||||
patrons: "支援者"
|
||||
|
||||
_nsfw:
|
||||
respect: "閲覧注意のメディアは隠す"
|
||||
ignore: "閲覧注意のメディアを隠さない"
|
||||
force: "常にメディアを隠す"
|
||||
|
||||
_mfm:
|
||||
cheatSheet: "MFMチートシート"
|
||||
intro: "MFMは、Misskey内の様々な場所で使用できる専用のマークアップ言語です。ここでは、MFMで使用可能な構文一覧が確認できます。"
|
||||
dummy: "MisskeyでFediverseの世界が広がります"
|
||||
mention: "メンション"
|
||||
mentionDescription: "アットマーク + ユーザー名で、特定のユーザーを示すことができます。"
|
||||
hashtag: "ハッシュタグ"
|
||||
hashtagDescription: "ナンバーサイン + タグで、ハッシュタグを示すことができます。"
|
||||
url: "URL"
|
||||
urlDescription: "URLを示すことができます。"
|
||||
link: "リンク"
|
||||
linkDescription: "文章の特定の範囲を、URLに紐づけることができます。"
|
||||
bold: "太字"
|
||||
boldDescription: "文字を太く表示して強調することができます。"
|
||||
small: "目立たなく"
|
||||
smallDescription: "内容を小さく・薄く表示させることができます。"
|
||||
center: "中央寄せ"
|
||||
centerDescription: "内容を中央寄せで表示させることができます。"
|
||||
inlineCode: "コード(インライン)"
|
||||
inlineCodeDescription: "プログラムなどのコードをインラインでシンタックスハイライトします。"
|
||||
blockCode: "コード(ブロック)"
|
||||
blockCodeDescription: "複数行のプログラムなどのコードをブロックでシンタックスハイライトします。"
|
||||
inlineMath: "数式(インライン)"
|
||||
inlineMathDescription: "数式(KaTeX)をインラインで表示します。"
|
||||
blockMath: "数式(ブロック)"
|
||||
blockMathDescription: "複数行の数式(KaTeX)をブロックで表示します。"
|
||||
quote: "引用"
|
||||
quoteDescription: "内容が引用であることを示すことができます。"
|
||||
emoji: "カスタム絵文字"
|
||||
emojiDescription: "コロンでカスタム絵文字名を囲むと、カスタム絵文字を表示させることができます。"
|
||||
search: "検索"
|
||||
searchDescription: "入力済み検索ボックスを表示させることができます。"
|
||||
flip: "反転"
|
||||
flipDescription: "内容を上下または左右に反転させます。"
|
||||
jelly: "アニメーション(びよんびよん)"
|
||||
jellyDescription: "びよんびよんするアニメーションを与えます。"
|
||||
tada: "アニメーション(じゃーん)"
|
||||
tadaDescription: "ジャーン!という感じのアニメーションを与えます。"
|
||||
jump: "アニメーション(ジャンプ)"
|
||||
jumpDescription: "飛び跳ねるようなアニメーションを与えます。"
|
||||
bounce: "アニメーション(バウンド)"
|
||||
bounceDescription: "ぽよんぽよん弾むようなアニメーションを与えます。"
|
||||
shake: "アニメーション(ぶるぶる)"
|
||||
shakeDescription: "ぶるぶるするアニメーションを与えます。"
|
||||
twitch: "アニメーション(ブレ)"
|
||||
twitchDescription: "激しくブレるアニメーションを与えます。"
|
||||
spin: "アニメーション(回転)"
|
||||
spinDescription: "回転するアニメーションを与えます。"
|
||||
|
||||
_reversi:
|
||||
reversi: "リバーシ"
|
||||
gameSettings: "対局の設定"
|
||||
chooseBoard: "ボードを選択"
|
||||
blackOrWhite: "先行/後攻"
|
||||
blackIs: "{name}が黒(先行)"
|
||||
rules: "ルール"
|
||||
botSettings: "Botのオプション"
|
||||
thisGameIsStartedSoon: "対局は数秒後に開始されます"
|
||||
waitingForOther: "相手の準備が完了するのを待っています"
|
||||
waitingForMe: "あなたの準備が完了するのを待っています"
|
||||
waitingBoth: "準備してください"
|
||||
ready: "準備完了"
|
||||
cancelReady: "準備を再開"
|
||||
opponentTurn: "相手のターンです"
|
||||
myTurn: "あなたのターンです"
|
||||
turnOf: "{name}のターンです"
|
||||
pastTurnOf: "{name}のターン"
|
||||
surrender: "投了"
|
||||
surrendered: "投了により"
|
||||
drawn: "引き分け"
|
||||
won: "{name}の勝ち"
|
||||
black: "黒"
|
||||
white: "白"
|
||||
total: "合計"
|
||||
turnCount: "{count}ターン目"
|
||||
myGames: "自分の対局"
|
||||
allGames: "みんなの対局"
|
||||
ended: "終了"
|
||||
playing: "対局中"
|
||||
isLlotheo: "石の少ない方が勝ち(ロセオ)"
|
||||
loopedMap: "ループマップ"
|
||||
canPutEverywhere: "どこでも置けるモード"
|
||||
|
||||
_instanceTicker:
|
||||
none: "表示しない"
|
||||
remote: "リモートユーザーに表示"
|
||||
always: "常に表示"
|
||||
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "自動でリロード"
|
||||
dialog: "ダイアログで警告"
|
||||
quiet: "控えめに警告"
|
||||
|
||||
_channel:
|
||||
create: "チャンネルを作成"
|
||||
edit: "チャンネルを編集"
|
||||
setBanner: "バナーを設定"
|
||||
removeBanner: "バナーを削除"
|
||||
featured: "トレンド"
|
||||
owned: "管理中"
|
||||
following: "フォロー中"
|
||||
usersCount: "{n}人が参加中"
|
||||
notesCount: "{n}投稿があります"
|
||||
|
||||
_sidebar:
|
||||
full: "フル"
|
||||
icon: "アイコン"
|
||||
hide: "隠す"
|
||||
|
||||
_wordMute:
|
||||
muteWords: "ミュートするワード"
|
||||
muteWordsDescription: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります。"
|
||||
muteWordsDescription2: "キーワードをスラッシュで囲むと正規表現になります。"
|
||||
softDescription: "指定した条件のノートをタイムラインから隠します。"
|
||||
hardDescription: "指定した条件のノートをタイムラインに追加しないようにします。追加されなかったノートは、条件を変更しても除外されたままになります。"
|
||||
soft: "ソフト"
|
||||
hard: "ハード"
|
||||
mutedNotes: "ミュートされたノート"
|
||||
|
||||
_theme:
|
||||
explore: "テーマを探す"
|
||||
install: "テーマのインストール"
|
||||
manage: "テーマの管理"
|
||||
code: "テーマコード"
|
||||
installed: "{name}をインストールしました"
|
||||
installedThemes: "インストールされたテーマ"
|
||||
builtinThemes: "標準のテーマ"
|
||||
alreadyInstalled: "そのテーマは既にインストールされています"
|
||||
invalid: "テーマの形式が間違っています"
|
||||
make: "テーマを作る"
|
||||
base: "ベース"
|
||||
addConstant: "定数を追加"
|
||||
constant: "定数"
|
||||
defaultValue: "デフォルト値"
|
||||
color: "色"
|
||||
refProp: "プロパティを参照"
|
||||
refConst: "定数を参照"
|
||||
key: "キー"
|
||||
func: "関数"
|
||||
funcKind: "関数の種類"
|
||||
argument: "引数"
|
||||
basedProp: "元にするプロパティの名前"
|
||||
alpha: "不透明度"
|
||||
darken: "暗さ"
|
||||
lighten: "明るさ"
|
||||
inputConstantName: "定数名を入力してください"
|
||||
importInfo: "ここにテーマコードを貼り付けて、エディターにインポートできます"
|
||||
deleteConstantConfirm: "定数 {const} を削除しても良いですか?"
|
||||
|
||||
keys:
|
||||
accent: "アクセント"
|
||||
bg: "背景"
|
||||
fg: "文字"
|
||||
focus: "フォーカス"
|
||||
indicator: "インジケーター"
|
||||
panel: "パネル"
|
||||
shadow: "影"
|
||||
header: "ヘッダー"
|
||||
navBg: "サイドバーの背景"
|
||||
navFg: "サイドバーの文字"
|
||||
navHoverFg: "サイドバー文字(ホバー)"
|
||||
navActive: "サイドバー文字(アクティブ)"
|
||||
navIndicator: "サイドバーのインジケーター"
|
||||
link: "リンク"
|
||||
hashtag: "ハッシュタグ"
|
||||
mention: "メンション"
|
||||
mentionMe: "あなた宛てメンション"
|
||||
renote: "Renote"
|
||||
modalBg: "モーダルの背景"
|
||||
divider: "分割線"
|
||||
scrollbarHandle: "スクロールバーの取っ手"
|
||||
scrollbarHandleHover: "スクロールバーの取っ手(ホバー)"
|
||||
dateLabelFg: "日付ラベルの文字"
|
||||
infoBg: "情報の背景"
|
||||
infoFg: "情報の文字"
|
||||
infoWarnBg: "警告の背景"
|
||||
infoWarnFg: "警告の文字"
|
||||
cwBg: "CW ボタンの背景"
|
||||
cwFg: "CW ボタンの文字"
|
||||
cwHoverBg: "CW ボタンの背景 (ホバー)"
|
||||
toastBg: "通知トーストの背景"
|
||||
toastFg: "通知トーストの文字"
|
||||
buttonBg: "ボタンの背景"
|
||||
buttonHoverBg: "ボタンの背景 (ホバー)"
|
||||
inputBorder: "入力ボックスの縁取り"
|
||||
listItemHoverBg: "リスト項目の背景 (ホバー)"
|
||||
driveFolderBg: "ドライブフォルダーの背景"
|
||||
wallpaperOverlay: "壁紙のオーバーレイ"
|
||||
badge: "バッジ"
|
||||
messageBg: "チャットの背景"
|
||||
accentDarken: "アクセント (暗め)"
|
||||
accentLighten: "アクセント (明るめ)"
|
||||
fgHighlighted: "強調された文字"
|
||||
|
||||
_sfx:
|
||||
note: "ノート"
|
||||
@ -437,6 +871,10 @@ _sfx:
|
||||
notification: "通知"
|
||||
chat: "チャット"
|
||||
chatBg: "チャット(バックグラウンド)"
|
||||
antenna: "アンテナ受信"
|
||||
channel: "チャンネル通知"
|
||||
reversiPutBlack: "リバーシ: 黒が打ったとき"
|
||||
reversiPutWhite: "リバーシ: 白が打ったとき"
|
||||
|
||||
_ago:
|
||||
unknown: "謎"
|
||||
@ -517,10 +955,16 @@ _permissions:
|
||||
"write:page-likes": "ページのいいねを操作する"
|
||||
"read:user-groups": "ユーザーグループを見る"
|
||||
"write:user-groups": "ユーザーグループを操作する"
|
||||
"read:channels": "チャンネルを見る"
|
||||
"write:channels": "チャンネルを操作する"
|
||||
|
||||
_auth:
|
||||
shareAccess: "「{name}」がアカウントにアクセスすることを許可しますか?"
|
||||
shareAccessAsk: "アカウントへのアクセスを許可しますか?"
|
||||
permissionAsk: "このアプリは次の権限を要求しています"
|
||||
pleaseGoBack: "アプリケーションに戻ってやっていってください"
|
||||
callback: "アプリケーションに戻っています"
|
||||
denied: "アクセスを拒否しました"
|
||||
|
||||
_antennaSources:
|
||||
all: "全てのノート"
|
||||
@ -548,13 +992,16 @@ _widgets:
|
||||
rss: "RSSリーダー"
|
||||
activity: "アクティビティ"
|
||||
photos: "フォト"
|
||||
digitalClock: "デジタル時計"
|
||||
federation: "連合"
|
||||
postForm: "投稿フォーム"
|
||||
slideshow: "スライドショー"
|
||||
|
||||
_cw:
|
||||
hide: "隠す"
|
||||
show: "もっと見る"
|
||||
chars: "{count}文字"
|
||||
files: "{count}ファイル"
|
||||
poll: "アンケート"
|
||||
|
||||
_poll:
|
||||
noOnlyOneChoice: "選択肢は最低2つ必要です"
|
||||
@ -589,10 +1036,12 @@ _visibility:
|
||||
specified: "ダイレクト"
|
||||
specifiedDescription: "指定したユーザーのみに公開"
|
||||
localOnly: "ローカルのみ"
|
||||
localOnlyDescription: "リモートユーザーには非公開"
|
||||
|
||||
_postForm:
|
||||
replyPlaceholder: "このノートに返信..."
|
||||
quotePlaceholder: "このノートを引用..."
|
||||
channelPlaceholder: "チャンネルに投稿..."
|
||||
_placeholders:
|
||||
a: "いまどうしてる?"
|
||||
b: "何かありましたか?"
|
||||
@ -606,9 +1055,13 @@ _profile:
|
||||
username: "ユーザー名"
|
||||
description: "自己紹介"
|
||||
youCanIncludeHashtags: "ハッシュタグを含めることができます。"
|
||||
metadata: "補足情報"
|
||||
metadata: "追加情報"
|
||||
metadataEdit: "追加情報を編集"
|
||||
metadataDescription: "プロフィールに表として4つまでの追加情報を表示することができます。"
|
||||
metadataLabel: "ラベル"
|
||||
metadataContent: "内容"
|
||||
changeAvatar: "アバター画像を変更"
|
||||
changeBanner: "バナー画像を変更"
|
||||
|
||||
_exportOrImport:
|
||||
allNotes: "全てのノート"
|
||||
@ -635,15 +1088,15 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "リクエスト"
|
||||
users: "ユーザーの増減"
|
||||
usersTotal: "ユーザーの積算"
|
||||
usersTotal: "ユーザーの累積"
|
||||
notes: "ノートの増減"
|
||||
notesTotal: "ノートの積算"
|
||||
notesTotal: "ノートの累積"
|
||||
ff: "フォロー/フォロワーの増減"
|
||||
ffTotal: "フォロー/フォロワーの積算"
|
||||
ffTotal: "フォロー/フォロワーの累積"
|
||||
cacheSize: "キャッシュサイズの増減"
|
||||
cacheSizeTotal: "キャッシュサイズの積算"
|
||||
cacheSizeTotal: "キャッシュサイズの累積"
|
||||
files: "ファイル数の増減"
|
||||
filesTotal: "ファイル数の積算"
|
||||
filesTotal: "ファイル数の累積"
|
||||
|
||||
_timelines:
|
||||
home: "ホーム"
|
||||
@ -651,49 +1104,109 @@ _timelines:
|
||||
social: "ソーシャル"
|
||||
global: "グローバル"
|
||||
|
||||
_rooms:
|
||||
roomOf: "{user}のルーム"
|
||||
addFurniture: "家具を置く"
|
||||
translate: "移動"
|
||||
rotate: "回転"
|
||||
exit: "戻る"
|
||||
remove: "しまう"
|
||||
clear: "片付け"
|
||||
clearConfirm: "全ての家具をしまいますか?"
|
||||
leaveConfirm: "未保存の変更があります、移動しますか?"
|
||||
chooseImage: "画像を選択"
|
||||
roomType: "部屋のタイプ"
|
||||
carpetColor: "床の色"
|
||||
_roomType:
|
||||
default: "デフォルト"
|
||||
washitsu: "和室"
|
||||
_furnitures:
|
||||
milk: "牛乳パック"
|
||||
bed: "ベッド"
|
||||
low-table: "ローテーブル"
|
||||
desk: "デスク"
|
||||
chair: "チェア"
|
||||
chair2: "チェア2"
|
||||
fan: "換気扇"
|
||||
pc: "パソコン"
|
||||
plant: "観葉植物"
|
||||
plant2: "観葉植物2"
|
||||
eraser: "消しゴム"
|
||||
pencil: "鉛筆"
|
||||
pudding: "プリン"
|
||||
cardboard-box: "段ボール箱"
|
||||
cardboard-box2: "段ボール箱2"
|
||||
cardboard-box3: "段ボール箱3"
|
||||
book: "本"
|
||||
book2: "本2"
|
||||
piano: "ピアノ"
|
||||
facial-tissue: "ティッシュボックス"
|
||||
server: "サーバー"
|
||||
moon: "月"
|
||||
corkboard: "コルクボード"
|
||||
mousepad: "マウスパッド"
|
||||
monitor: "モニター"
|
||||
keyboard: "キーボード"
|
||||
carpet-stripe: "カーペット(縞)"
|
||||
mat: "マット"
|
||||
color-box: "カラーボックス"
|
||||
wall-clock: "壁掛け時計"
|
||||
photoframe: "額縁"
|
||||
cube: "キューブ"
|
||||
tv: "テレビ"
|
||||
pinguin: "ピンギン"
|
||||
rubik-cube: "ルービックキューブ"
|
||||
poster-h: "ポスター(横長)"
|
||||
poster-v: "ポスター(縦長)"
|
||||
sofa: "ソファ"
|
||||
spiral: "螺旋階段"
|
||||
bin: "ゴミ箱"
|
||||
cup-noodle: "カップ麺"
|
||||
holo-display: "ホログラフィックディスプレイ"
|
||||
energy-drink: "エナジードリンク"
|
||||
doll-ai: "藍ちゃん人形"
|
||||
banknote: "札束"
|
||||
|
||||
_pages:
|
||||
newPage: "ページの作成"
|
||||
editPage: "ページの編集"
|
||||
readPage: "ソースを表示中"
|
||||
page-created: "ページを作成しました"
|
||||
page-updated: "ページを更新しました"
|
||||
name-already-exists: "指定されたページURLは既に存在しています"
|
||||
title-invalid-name: "不正なページURLです"
|
||||
text-invalid-name: "空白でないか確認してください"
|
||||
created: "ページを作成しました"
|
||||
updated: "ページを更新しました"
|
||||
deleted: "ページを削除しました"
|
||||
pageSetting: "ページ設定"
|
||||
nameAlreadyExists: "指定されたページURLは既に存在しています"
|
||||
invalidNameTitle: "不正なページURLです"
|
||||
invalidNameText: "空白でないか確認してください"
|
||||
editThisPage: "このページを編集"
|
||||
viewSource: "ソースを表示"
|
||||
viewPage: "ページを見る"
|
||||
like: "いいね"
|
||||
unlike: "いいね解除"
|
||||
liked-pages: "いいねしたページ"
|
||||
my-pages: "自分のページ"
|
||||
my: "自分のページ"
|
||||
liked: "いいねしたページ"
|
||||
featured: "人気"
|
||||
inspector: "インスペクター"
|
||||
contents: "コンテンツ"
|
||||
content: "ページブロック"
|
||||
variables: "変数"
|
||||
variables-info: "変数を使うことで動的なページを作成できます。テキスト内で <b>{ 変数名 }</b> と書くとそこに変数の値を埋め込めます。例えば <b>Hello { thing } world!</b> というテキストで、変数(thing)の値が <b>ai</b> だった場合、テキストは <b>Hello ai world!</b> になります。"
|
||||
variables-info2: "変数の評価(値を算出すること)は上から下に行われるので、ある変数の中で自分より下の変数を参照することはできません。例えば上から <b>A、B、C</b> と3つの変数を定義したとき、<b>C</b>の中で<b>A</b>や<b>B</b>を参照することはできますが、<b>A</b>の中で<b>B</b>や<b>C</b>を参照することはできません。"
|
||||
variables-info3: "ユーザーからの入力を受け取るには、ページに「ユーザー入力」ブロックを設置し、「変数名」に入力を格納したい変数名を設定します(変数は自動で作成されます)。その変数を使ってユーザー入力に応じた動作を行えます。"
|
||||
variables-info4: "関数を使うと、値の算出処理を再利用可能な形にまとめることができます。関数を作るには、「関数」タイプの変数を作成します。関数にはスロット(引数)を設定することができ、スロットの値は関数内で変数として利用可能です。また、AiScript標準で関数を引数に取る関数(高階関数と呼ばれます)も存在します。関数は予め定義しておくほかに、このような高階関数のスロットに即席でセットすることもできます。"
|
||||
more-details: "詳しい説明"
|
||||
title: "タイトル"
|
||||
url: "ページURL"
|
||||
summary: "ページの要約"
|
||||
alignCenter: "中央寄せ"
|
||||
hide-title-when-pinned: "ピン留めされているときにタイトルを非表示"
|
||||
hideTitleWhenPinned: "ピン留めされているときにタイトルを非表示"
|
||||
font: "フォント"
|
||||
fontSerif: "セリフ"
|
||||
fontSansSerif: "サンセリフ"
|
||||
set-eye-catching-image: "アイキャッチ画像を設定"
|
||||
remove-eye-catching-image: "アイキャッチ画像を削除"
|
||||
eyeCatchingImageSet: "アイキャッチ画像を設定"
|
||||
eyeCatchingImageRemove: "アイキャッチ画像を削除"
|
||||
chooseBlock: "ブロックを追加"
|
||||
selectType: "種類を選択"
|
||||
enterVariableName: "変数名を決めてください"
|
||||
the-variable-name-is-already-used: "その変数名は既に使われています"
|
||||
content-blocks: "コンテンツ"
|
||||
input-blocks: "入力"
|
||||
special-blocks: "特殊"
|
||||
post-from-post-form: "この内容を投稿"
|
||||
posted-from-post-form: "投稿しました"
|
||||
variableNameIsAlreadyUsed: "その変数名は既に使われています"
|
||||
contentBlocks: "コンテンツ"
|
||||
inputBlocks: "入力"
|
||||
specialBlocks: "特殊"
|
||||
blocks:
|
||||
text: "テキスト"
|
||||
textarea: "テキストエリア"
|
||||
@ -708,6 +1221,8 @@ _pages:
|
||||
post: "投稿フォーム"
|
||||
_post:
|
||||
text: "内容"
|
||||
attachCanvasImage: "キャンバスの画像を添付する"
|
||||
canvasId: "キャンバスID"
|
||||
|
||||
textInput: "テキスト入力"
|
||||
_textInput:
|
||||
@ -727,6 +1242,18 @@ _pages:
|
||||
text: "タイトル"
|
||||
default: "デフォルト値"
|
||||
|
||||
canvas: "キャンバス"
|
||||
_canvas:
|
||||
id: "キャンバスID"
|
||||
width: "幅"
|
||||
height: "高さ"
|
||||
|
||||
note: "ノート埋め込み"
|
||||
_note:
|
||||
id: "ノートID"
|
||||
idDescription: "ノートURLをペーストして設定することもできます。"
|
||||
detailed: "詳細な表示"
|
||||
|
||||
switch: "スイッチ"
|
||||
_switch:
|
||||
name: "変数名"
|
||||
@ -754,6 +1281,9 @@ _pages:
|
||||
message: "押したときに表示するメッセージ"
|
||||
variable: "送信する変数"
|
||||
no-variable: "なし"
|
||||
callAiScript: "AiScript呼び出し"
|
||||
_callAiScript:
|
||||
functionName: "関数名"
|
||||
|
||||
radioButton: "選択肢"
|
||||
_radioButton:
|
||||
@ -916,6 +1446,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "テキスト"
|
||||
ref: "変数"
|
||||
aiScriptVar: "AiScript変数"
|
||||
fn: "関数"
|
||||
_fn:
|
||||
slots: "スロット"
|
||||
@ -937,3 +1468,56 @@ _pages:
|
||||
enviromentVariables: "環境変数"
|
||||
pageVariables: "ページ要素"
|
||||
argVariables: "入力スロット"
|
||||
|
||||
_relayStatus:
|
||||
requesting: "承認待ち"
|
||||
accepted: "承認済み"
|
||||
rejected: "拒否済み"
|
||||
|
||||
_notification:
|
||||
fileUploaded: "ファイルがアップロードされました"
|
||||
youGotMention: "{name}からのメンション"
|
||||
youGotReply: "{name}からのリプライ"
|
||||
youGotQuote: "{name}による引用"
|
||||
youRenoted: "{name}がRenoteしました"
|
||||
youGotPoll: "{name}が投票しました"
|
||||
youGotMessagingMessageFromUser: "{name}からのチャットがあります"
|
||||
youGotMessagingMessageFromGroup: "{name}のチャットがあります"
|
||||
youWereFollowed: "フォローされました"
|
||||
youReceivedFollowRequest: "フォローリクエストが来ました"
|
||||
yourFollowRequestAccepted: "フォローリクエストが承認されました"
|
||||
youWereInvitedToGroup: "グループに招待されました"
|
||||
|
||||
_types:
|
||||
all: "すべて"
|
||||
follow: "フォロー"
|
||||
mention: "メンション"
|
||||
reply: "リプライ"
|
||||
renote: "Renote"
|
||||
quote: "引用"
|
||||
reaction: "リアクション"
|
||||
pollVote: "アンケートに投票された"
|
||||
receiveFollowRequest: "フォロー申請を受け取った"
|
||||
followRequestAccepted: "フォローが受理された"
|
||||
groupInvited: "グループに招待された"
|
||||
app: "連携アプリからの通知"
|
||||
|
||||
_deck:
|
||||
alwaysShowMainColumn: "常にメインカラムを表示"
|
||||
columnAlign: "カラムの寄せ"
|
||||
addColumn: "カラムを追加"
|
||||
swapLeft: "左に移動"
|
||||
swapRight: "右に移動"
|
||||
swapUp: "上に移動"
|
||||
swapDown: "下に移動"
|
||||
stackLeft: "左に重ねる"
|
||||
popRight: "右に出す"
|
||||
|
||||
_columns:
|
||||
widgets: "ウィジェット"
|
||||
notifications: "通知"
|
||||
tl: "タイムライン"
|
||||
antenna: "アンテナ"
|
||||
list: "リスト"
|
||||
mentions: "あなた宛て"
|
||||
direct: "ダイレクト"
|
||||
|
@ -1,12 +1,12 @@
|
||||
---
|
||||
_lang_: "日本語 (関西弁)"
|
||||
introMisskey: "ようこそ!Misskeyは、オープンソースの分散型マイクロブログサービスやねん。\n「ノート」を作成しぃ、いま起こっとることを共有したり、あんたについて皆に発信しよう📡\n「リアクション」機能で、皆のノートに素はよ反応を追加することもできます✌\n新しい世界を探検しよう🚀"
|
||||
introMisskey: "ようこそ!Misskeyってのは、オープンソースの分散型マイクロブログサービスやねん。\n「ノート」を作成し、いま起こっとることを共有したり、あんたんこととか皆に伝えていこう📡\n「リアクション」機能で、皆のノートに素はよ反応を追加することもできるんやで✌\n新しい世界を探検してみらん?🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "探す"
|
||||
notifications: "通知"
|
||||
username: "ユーザー名"
|
||||
password: "パスワード"
|
||||
fetchingAsApObject: "連合に照会中"
|
||||
fetchingAsApObject: "今ちと連合に照会しとるで"
|
||||
ok: "おっけー"
|
||||
gotIt: "ほい"
|
||||
cancel: "やめとくわ"
|
||||
@ -16,56 +16,89 @@ noNotes: "ノートはあらへん"
|
||||
noNotifications: "通知はあらへん"
|
||||
instance: "インスタンス"
|
||||
settings: "設定"
|
||||
basicSettings: "基本設定"
|
||||
otherSettings: "その他の設定"
|
||||
openInWindow: "ウィンドウで開いてや"
|
||||
profile: "プロフィール"
|
||||
timeline: "タイムライン"
|
||||
noAccountDescription: "自己紹介はあらへん"
|
||||
login: "ログイン"
|
||||
loggingIn: "ログインしとります"
|
||||
loggingIn: "ログインしよるで"
|
||||
logout: "ログアウト"
|
||||
signup: "新規登録"
|
||||
uploading: "アップロードしとります"
|
||||
save: "保存"
|
||||
uploading: "アップロードしよるで"
|
||||
save: "とっとく"
|
||||
users: "ユーザー"
|
||||
addUser: "ユーザー増やす"
|
||||
addUser: "ユーザーを追加や"
|
||||
favorite: "お気に入り"
|
||||
favorites: "お気に入り"
|
||||
unfavorite: "お気に入りやめる"
|
||||
pin: "ピン留め"
|
||||
unpin: "ピン留めやめる"
|
||||
unfavorite: "やっぱ気に入らん"
|
||||
pin: "ピン留めしとく"
|
||||
unpin: "やっぱピン留めせん"
|
||||
copyContent: "内容をコピー"
|
||||
copyLink: "リンクをコピー"
|
||||
delete: "ほかす"
|
||||
deleteAndEdit: "ほかして直す"
|
||||
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Renote、返信も全部消えるんやけどそれでもええん?"
|
||||
addToList: "リストに入れたる"
|
||||
sendMessage: "メッセージを送る"
|
||||
copyUsername: "ユーザー名をコピー"
|
||||
searchUser: "ユーザーを検索"
|
||||
reply: "返す"
|
||||
loadMore: "もっとあるやろ!"
|
||||
youGotNewFollower: "フォローされたで"
|
||||
receiveFollowRequest: "フォローリクエストされたで"
|
||||
followRequestAccepted: "フォローが承認されたで"
|
||||
mention: "メンション"
|
||||
mentions: "あんた宛て"
|
||||
directNotes: "ダイレクト投稿"
|
||||
importAndExport: "インポートとエクスポート"
|
||||
import: "インポート"
|
||||
export: "エクスポート"
|
||||
files: "ファイル"
|
||||
download: "ダウンロード"
|
||||
driveFileDeleteConfirm: "ファイル「{name}」を消してしもうてええか?このファイルを添付したノートも消えてまうで。"
|
||||
unfollowConfirm: "{name}のフォローを解除してもええんか?"
|
||||
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
|
||||
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
|
||||
lists: "リスト"
|
||||
noLists: "リストはあらへん"
|
||||
noLists: "リストなんてあらへんで"
|
||||
note: "ノート"
|
||||
notes: "ノート"
|
||||
following: "フォロー"
|
||||
followers: "フォロワー"
|
||||
followsYou: "フォローされとるで"
|
||||
error: "問題が発生してん"
|
||||
createList: "リスト作る"
|
||||
manageLists: "リストの管理"
|
||||
error: "エラー"
|
||||
somethingHappened: "なんかアカンことが起こったで"
|
||||
retry: "もっぺんやる?"
|
||||
pageLoadError: "ページの読み込みに失敗してしもうたで…"
|
||||
pageLoadErrorDescription: "これは普通、ネットワークかブラウザキャッシュが原因やからね。キャッシュをクリアするか、もうちっとだけ待ってくれへんか?"
|
||||
enterListName: "リスト名を入れてや"
|
||||
privacy: "プライバシーってなんや?オカンの年齢か?"
|
||||
makeFollowManuallyApprove: "他人のフォローは許可してからや!"
|
||||
privacy: "プライバシーってなんぞや?"
|
||||
makeFollowManuallyApprove: "他人からのフォローは自分が決める"
|
||||
defaultNoteVisibility: "もとからの公開範囲"
|
||||
follow: "フォロー"
|
||||
followRequest: "フォロー許してくれや!言うてみる"
|
||||
followRequests: "フォロー許してくれや!"
|
||||
followRequest: "フォローを頼む"
|
||||
followRequests: "フォローを頼む"
|
||||
unfollow: "フォローやめる"
|
||||
followRequestPending: "フォロー許してくれるん待っとる"
|
||||
enterEmoji: "絵文字を入れてや"
|
||||
renote: "Renote"
|
||||
unrenote: "Renoteやめる"
|
||||
quote: "引用"
|
||||
pinnedNote: "ピン留めされとるノート"
|
||||
you: "あんた"
|
||||
clickToShow: "押してみ、見せたるわ"
|
||||
sensitive: "見たらあかんで"
|
||||
clickToShow: "押したら見えるようになるで"
|
||||
sensitive: "ちょっとアカンやつやで"
|
||||
add: "増やす"
|
||||
reaction: "リアクション"
|
||||
renameFile: "ファイル名をいらう"
|
||||
attachCancel: "くっつけるのやめよか"
|
||||
markAsSensitive: "ちょっと見せられへんわ"
|
||||
unmarkAsSensitive: "別にええんじゃね?"
|
||||
reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。"
|
||||
rememberNoteVisibility: "公開範囲覚えといて"
|
||||
attachCancel: "やっぱ添付やめてくれん?"
|
||||
markAsSensitive: "ちょっとこれはアカン"
|
||||
unmarkAsSensitive: "そこまでアカンことないやろ"
|
||||
enterFileName: "ファイル名を入れてや"
|
||||
mute: "ミュート"
|
||||
unmute: "ミュートやめたる"
|
||||
@ -73,44 +106,325 @@ block: "ブロック"
|
||||
unblock: "ブロックやめたる"
|
||||
suspend: "凍結"
|
||||
unsuspend: "溶かす"
|
||||
blockConfirm: "ブロックしてもええんか?"
|
||||
unblockConfirm: "ブロックやめたるってほんまか?"
|
||||
suspendConfirm: "凍結してしもうてええか?"
|
||||
unsuspendConfirm: "解凍するけどええか?"
|
||||
selectList: "リストを選ぶ"
|
||||
selectAntenna: "アンテナを選ぶ"
|
||||
selectWidget: "ウィジェットを選ぶ"
|
||||
editWidgets: "ウィジェットをいじる"
|
||||
editWidgetsExit: "編集終ったで"
|
||||
customEmojis: "カスタム絵文字"
|
||||
emoji: "絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
settingGuide: "ええ感じの設定"
|
||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||
cacheRemoteFilesDescription: "この設定をチャラにすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されへんので通信量が増加します。"
|
||||
loginFailed: "ログインに失敗してん"
|
||||
cacheRemoteFilesDescription: "この設定を切っとくと、リモートファイルをキャッシュせず直リンクするようになってしまうんやで? サーバーのストレージは節約できるんやけど、かわりにサムネイルが作られんくなるから通信量が増えるで?"
|
||||
flagAsBot: "Botやで"
|
||||
flagAsCat: "Catやで"
|
||||
autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストには勝手に許可しとくで。"
|
||||
addAcount: "アカウント追加"
|
||||
loginFailed: "ログインに失敗してしもうた…"
|
||||
showOnRemote: "リモートで見る"
|
||||
general: "全般"
|
||||
wallpaper: "壁紙"
|
||||
removeWallpaper: "壁紙ほかす"
|
||||
youHaveNoLists: "リストはあらへん"
|
||||
setWallpaper: "壁紙を設定"
|
||||
removeWallpaper: "壁紙を削除"
|
||||
searchWith: "検索: {q}"
|
||||
youHaveNoLists: "リストがあらへんで?"
|
||||
followConfirm: "{name}をフォローしてええか?"
|
||||
proxyAccount: "プロキシアカウント"
|
||||
proxyAccountDescription: "プロキシアカウントは、代わりにフォローしてくれるアカウントや。例えば、551に豚まんが無いときやったり、ユーザーがリモートユーザーをアカウントに入れたとき、リストに入れられたユーザーが誰からもフォローされてないと寂しいやん。寂しいし、アクティビティも配達されへんから、プロキシアカウントがフォローしてくれるで。ええやつやん…"
|
||||
host: "ホスト"
|
||||
selectUser: "ユーザーを選ぶ"
|
||||
recipient: "宛先"
|
||||
annotation: "注釈"
|
||||
federation: "連合"
|
||||
instances: "インスタンス"
|
||||
registeredAt: "初観測"
|
||||
latestRequestSentAt: "ちょっと前のリクエスト送信"
|
||||
latestRequestReceivedAt: "ちょっと前のリクエスト受信"
|
||||
latestStatus: "ちょっと前のステータス"
|
||||
storageUsage: "ストレージ使うた量"
|
||||
charts: "チャート"
|
||||
perHour: "1時間ごと"
|
||||
perDay: "1日ごと"
|
||||
stopActivityDelivery: "アクティビティの配送をやめる"
|
||||
blockThisInstance: "このインスタンスをブロック"
|
||||
operations: "操作"
|
||||
software: "ソフトウェア"
|
||||
version: "バージョン"
|
||||
metadata: "メタデータ"
|
||||
withNFiles: "{n}個のファイル"
|
||||
monitor: "モニター"
|
||||
jobQueue: "ジョブキュー"
|
||||
cpuAndMemory: "CPUとメモリ"
|
||||
network: "ネットワーク"
|
||||
disk: "ディスク"
|
||||
instanceInfo: "インスタンス情報"
|
||||
statistics: "統計"
|
||||
clearQueue: "キューにさいなら"
|
||||
clearQueueConfirmTitle: "キューをクリアしまっか?"
|
||||
clearQueueConfirmText: "未配達の投稿は配送されなくなるで。通常この操作を行う必要はあらへんや。"
|
||||
clearCachedFiles: "キャッシュにさいなら"
|
||||
clearCachedFilesConfirm: "キャッシュされとるリモートファイルを全部削除しまっか?"
|
||||
blockedInstances: "インスタンスブロック"
|
||||
blockedInstancesDescription: "ブロックしたいインスタンスのホストを改行で区切って設定してな。ブロックされてもうたインスタンスとはもう金輪際やり取りできひんくなるで。"
|
||||
muteAndBlock: "ミュートとブロック"
|
||||
mutedUsers: "ミュートしたユーザー"
|
||||
blockedUsers: "ブロックしたユーザー"
|
||||
noUsers: "ユーザーはおらへん"
|
||||
editProfile: "プロフィールをいじる"
|
||||
noteDeleteConfirm: "このノートを削除しまっか?"
|
||||
pinLimitExceeded: "これ以上ピン留めできひん"
|
||||
intro: "Misskeyのインストールが完了してん!管理者アカウントを作ってや。"
|
||||
done: "でけた"
|
||||
processing: "処理しとる"
|
||||
preview: "プレビュー"
|
||||
default: "デフォルト"
|
||||
noCustomEmojis: "絵文字はあらへん"
|
||||
noJobs: "ジョブはあらへん"
|
||||
federating: "連合しとる"
|
||||
blocked: "ブロックしとる"
|
||||
suspended: "配信せぇへん"
|
||||
all: "みな"
|
||||
subscribing: "購読しとる"
|
||||
publishing: "配信しとる"
|
||||
notResponding: "応答してへんで"
|
||||
instanceFollowing: "インスタンスのフォロー"
|
||||
instanceFollowers: "インスタンスのフォロワー\n"
|
||||
instanceUsers: "インスタンスのユーザー"
|
||||
changePassword: "パスワード変える"
|
||||
security: "セキュリティ"
|
||||
retypedNotMatch: "そやないねん。"
|
||||
currentPassword: "今のパスワード"
|
||||
newPassword: "今度のパスワード"
|
||||
newPasswordRetype: "今度のパスワード(もっぺん入れて)"
|
||||
attachFile: "ファイルくっつけて"
|
||||
more: "他ないんか!"
|
||||
featured: "ハイライト"
|
||||
usernameOrUserId: "ユーザー名かユーザーID"
|
||||
noSuchUser: "ユーザーが見つからへんで"
|
||||
lookup: "見てきて"
|
||||
announcements: "これ知っといてな"
|
||||
imageUrl: "画像URL"
|
||||
remove: "ほかす"
|
||||
removed: "削除したで!"
|
||||
removeAreYouSure: "「{x}」はなおしてしもてええか?"
|
||||
deleteAreYouSure: "「{x}」はなおしてしもてええか?"
|
||||
saved: "保存したで!"
|
||||
messaging: "チャット"
|
||||
upload: "アップロード"
|
||||
fromDrive: "ドライブから"
|
||||
fromUrl: "URLから"
|
||||
uploadFromUrl: "URLアップロード"
|
||||
uploadFromUrlDescription: "このURLのファイルをアップロードしたいねん"
|
||||
uploadFromUrlRequested: "アップロードしたい言うといたで"
|
||||
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
|
||||
explore: "みつける"
|
||||
games: "Misskey Games"
|
||||
messageRead: "もう読んだ"
|
||||
noMoreHistory: "これより過去の履歴はあらへんで"
|
||||
nsfw: "見たらあかんで"
|
||||
startMessaging: "チャットやるで"
|
||||
nUsersRead: "{n}人が読んでもうた"
|
||||
agreeTo: "{0}はええで"
|
||||
tos: "利用規約"
|
||||
start: "始める"
|
||||
home: "ホーム"
|
||||
remoteUserCaution: "リモートユーザーやから、ちゃんとした情報とちゃうで。"
|
||||
activity: "アクティビティ"
|
||||
images: "画像"
|
||||
birthday: "生まれた日"
|
||||
yearsOld: "{age}歳"
|
||||
registeredDate: "始めた日"
|
||||
location: "場所"
|
||||
theme: "テーマ"
|
||||
themeForLightMode: "ライトモードではこのテーマつこて"
|
||||
themeForDarkMode: "ダークモードではこのテーマつこて"
|
||||
light: "ライト"
|
||||
dark: "ダーク"
|
||||
lightThemes: "デイゲーム"
|
||||
darkThemes: "ナイトゲーム"
|
||||
syncDeviceDarkMode: "試合開始時間はデバイスのダークモードと一緒や"
|
||||
drive: "ドライブ"
|
||||
fileName: "ファイル名"
|
||||
selectFile: "ファイル選んでや"
|
||||
selectFiles: "ファイル選んでや"
|
||||
selectFolder: "フォルダ選んでや"
|
||||
selectFolders: "フォルダ選んでや"
|
||||
renameFile: "ファイル名をいらう"
|
||||
folderName: "フォルダー名"
|
||||
createFolder: "フォルダー作る"
|
||||
renameFolder: "フォルダー名を変える"
|
||||
deleteFolder: "フォルダーを消してまう"
|
||||
addFile: "ファイルを追加"
|
||||
emptyDrive: "ドライブにはなんも残っとらん"
|
||||
emptyFolder: "ふぉろだーにはなんも残っとらん"
|
||||
unableToDelete: "消そうおもってんけどな、あかんかったわ"
|
||||
inputNewFileName: "今度のファイル名は何にするん?"
|
||||
inputNewFolderName: "今度のフォルダ名は何にするん?"
|
||||
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーや。"
|
||||
hasChildFilesOrFolders: "このフォルダ、まだなんか入っとるから消されへん"
|
||||
copyUrl: "URLをコピー"
|
||||
rename: "名前を変えるで"
|
||||
avatar: "アイコン"
|
||||
banner: "バナー"
|
||||
nsfw: "ちょっとアカンやつやで"
|
||||
whenServerDisconnected: "サーバーとの接続が失くなってしもうたとき"
|
||||
disconnectedFromServer: "サーバーが機嫌悪いねん"
|
||||
reload: "リロード"
|
||||
doNothing: "何もせんとく"
|
||||
reloadConfirm: "リロードしてええか?"
|
||||
watch: "ウォッチ"
|
||||
unwatch: "ウォッチやめる"
|
||||
accept: "ええで"
|
||||
reject: "あかん"
|
||||
normal: "ええ感じ"
|
||||
instanceName: "インスタンス名"
|
||||
instanceDescription: "インスタンスの紹介"
|
||||
maintainerName: "管理者の名前"
|
||||
maintainerEmail: "管理者のメールアドレス"
|
||||
tosUrl: "利用規約のURL"
|
||||
thisYear: "今年"
|
||||
thisMonth: "今月"
|
||||
today: "今日"
|
||||
dayX: "{day}日"
|
||||
monthX: "{month}月"
|
||||
yearX: "{year}年"
|
||||
pages: "ページ"
|
||||
integration: "つないで"
|
||||
connectSerice: "つなげる"
|
||||
disconnectSerice: "切ってまう"
|
||||
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
|
||||
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
|
||||
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
|
||||
registration: "登録"
|
||||
enableRegistration: "一見さんでも誰でもいらっしゃ~い"
|
||||
invite: "来てや"
|
||||
proxyRemoteFiles: "リモートのファイルをプロキシする"
|
||||
proxyRemoteFilesDescription: "この設定を入れると、保存しとらんかったり、お腹いっぱいになってしもたせいで保存できんかったリモートファイルをローカルでプロキシして、サムネイル作ってもらうことができるで。サーバーの腹具合には影響せんけどな。"
|
||||
driveCapacityPerLocalAccount: "ローカルユーザーひとりあたりのドライブ容量"
|
||||
driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのドライブ容量"
|
||||
inMb: "メガバイト単位"
|
||||
iconUrl: "アイコン画像のURL"
|
||||
bannerUrl: "バナー画像のURL"
|
||||
basicInfo: "基本情報"
|
||||
pinnedUsers: "ピン留めしたユーザー"
|
||||
pinnedUsersDescription: "「みつける」ページとかにピン留めしたいユーザーをここに書けばええんやで。他ん人との名前は改行で区切ればええんやで。"
|
||||
pinnedNotes: "ピン留めされとるノート"
|
||||
hcaptcha: "hCaptcha(キャプチャ)"
|
||||
enableHcaptcha: "hCaptcha(キャプチャ)をつけとく"
|
||||
hcaptchaSiteKey: "サイトキー"
|
||||
hcaptchaSecretKey: "シークレットキー"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHA(リキャプチャ)を有効にする"
|
||||
recaptchaSiteKey: "サイトキー"
|
||||
recaptchaSecretKey: "シークレットキー"
|
||||
avoidMultiCaptchaConfirm: "ぎょうさんのCaptchaをつこてしまうと、仲良うせんことがあるんや。他のCaptchaをなおしとこか?別にキャンセルしてもろうたらCaptchaは消されへんで済むけど知らんで。"
|
||||
antennas: "アンテナ"
|
||||
manageAntennas: "アンテナいじる"
|
||||
name: "名前"
|
||||
antennaSource: "受信ソース(このソースは食われへん)"
|
||||
antennaKeywords: "受信キーワード"
|
||||
antennaExcludeKeywords: "除外キーワード"
|
||||
antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や"
|
||||
notifyAntenna: "新しいノートを追加すんで"
|
||||
withFileAntenna: "なんか添付されたノートだけ"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "ServiceWorkerをつこて"
|
||||
antennaUsersDescription: "ユーザー名を改行で区切ったってな"
|
||||
caseSensitive: "大文字と小文字は別もんや"
|
||||
withReplies: "返信も入れたって"
|
||||
connectedTo: "次のアカウントに繋がっとるで"
|
||||
notesAndReplies: "投稿と返信"
|
||||
withFiles: "ファイル付いとる"
|
||||
silence: "サイレンス"
|
||||
silenceConfirm: "サイレンスしよか?"
|
||||
unsilence: "サイレンスやめるで"
|
||||
unsilenceConfirm: "サイレンスやめよか?"
|
||||
popularUsers: "人気のユーザー"
|
||||
recentlyUpdatedUsers: "ちょっと前に投稿したばっかりのユーザー"
|
||||
recentlyRegisteredUsers: "ちょっと前に始めたばっかりのユーザー"
|
||||
recentlyDiscoveredUsers: "最近見っけたユーザー"
|
||||
exploreUsersCount: "{count}もユーザーおるで"
|
||||
exploreFediverse: "Fediverseを探ってみる"
|
||||
popularTags: "人気のタグ"
|
||||
userList: "リスト"
|
||||
about: "情報"
|
||||
aboutMisskey: "Misskeyってなんや?"
|
||||
administrator: "管理者"
|
||||
token: "トークン"
|
||||
twoStepAuthentication: "二段階認証"
|
||||
moderator: "モデレーター"
|
||||
nUsersMentioned: "{n}人が投稿"
|
||||
securityKey: "セキュリティキー"
|
||||
securityKeyName: "キーの名前"
|
||||
registerSecurityKey: "セキュリティキーを登録するで"
|
||||
lastUsed: "最後につこうた日"
|
||||
unregister: "登録やめる"
|
||||
passwordLessLogin: "パスワード無くてもログインできるようにする"
|
||||
resetPassword: "パスワードをリセット"
|
||||
newPasswordIs: "今度のパスワードは「{password}」や"
|
||||
reduceUiAnimation: "UIの動きやアニメーションを減らしてくれや。"
|
||||
share: "わけわけ"
|
||||
notFound: "見つからへんね"
|
||||
notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
|
||||
uploadFolder: "とりあえずここへアップロード"
|
||||
cacheClear: "キャッシュをほかす"
|
||||
markAsReadAllNotifications: "通知はもう全て読んだわっ"
|
||||
markAsReadAllUnreadNotes: "投稿は全て読んだわっ"
|
||||
markAsReadAllTalkMessages: "チャットはもうぜんぶ読んだわっ"
|
||||
help: "ヘルプ"
|
||||
inputMessageHere: "ここにメッセージ書いてや"
|
||||
close: "さいなら"
|
||||
group: "グループ"
|
||||
groups: "グループ"
|
||||
createGroup: "グループを作るで"
|
||||
ownedGroups: "所有しとるグループ"
|
||||
joinedGroups: "参加しとるグループ"
|
||||
invites: "来てや"
|
||||
groupName: "グループ名"
|
||||
members: "メンバー"
|
||||
transfer: "譲渡"
|
||||
messagingWithUser: "ユーザーとチャット"
|
||||
messagingWithGroup: "グループでチャット"
|
||||
title: "タイトル"
|
||||
text: "テキスト"
|
||||
enable: "有効にするで"
|
||||
next: "次"
|
||||
retype: "もっかい入力"
|
||||
noteOf: "{user}のノート"
|
||||
inviteToGroup: "グループに招く"
|
||||
maxNoteTextLength: "ノートの文字数制限"
|
||||
quoteAttached: "引用付いとるで"
|
||||
quoteQuestion: "引用として添付してもええか?"
|
||||
noMessagesYet: "まだチャットはあらへんで"
|
||||
newMessageExists: "新しいメッセージがきたで"
|
||||
onlyOneFileCanBeAttached: "すまん、メッセージに添付できるファイルはひとつだけなんや。"
|
||||
invitations: "来てや"
|
||||
invitationCode: "招待コード"
|
||||
checking: "確認しとるで"
|
||||
smtpHost: "ホスト"
|
||||
smtpUser: "ユーザー名"
|
||||
smtpPass: "パスワード"
|
||||
_mfm:
|
||||
mention: "メンション"
|
||||
quote: "引用"
|
||||
emoji: "カスタム絵文字"
|
||||
search: "探す"
|
||||
_sidebar:
|
||||
icon: "アイコン"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "メンション"
|
||||
renote: "Renote"
|
||||
_sfx:
|
||||
note: "ノート"
|
||||
notification: "通知"
|
||||
chat: "チャット"
|
||||
_ago:
|
||||
unknown: "謎"
|
||||
future: "未来"
|
||||
@ -137,6 +451,8 @@ _antennaSources:
|
||||
_widgets:
|
||||
notifications: "通知"
|
||||
timeline: "タイムライン"
|
||||
activity: "アクティビティ"
|
||||
federation: "連合"
|
||||
_cw:
|
||||
show: "もっとあるやろ!"
|
||||
_poll:
|
||||
@ -144,14 +460,27 @@ _poll:
|
||||
deadlineTime: "時間"
|
||||
_visibility:
|
||||
publicDescription: "みなのユーザーに公開"
|
||||
home: "ホーム"
|
||||
followers: "フォロワー"
|
||||
_profile:
|
||||
name: "名前"
|
||||
username: "ユーザー名"
|
||||
_exportOrImport:
|
||||
allNotes: "全てのノート"
|
||||
followingList: "フォロー"
|
||||
muteList: "ミュート"
|
||||
blockingList: "ブロック"
|
||||
userLists: "リスト"
|
||||
_timelines:
|
||||
home: "ホーム"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "デフォルト"
|
||||
_furnitures:
|
||||
monitor: "モニター"
|
||||
_pages:
|
||||
blocks:
|
||||
image: "画像"
|
||||
script:
|
||||
categories:
|
||||
list: "リスト"
|
||||
@ -170,3 +499,18 @@ _pages:
|
||||
arg1: "リスト"
|
||||
types:
|
||||
array: "リスト"
|
||||
_notification:
|
||||
youWereFollowed: "フォローされたで"
|
||||
_types:
|
||||
follow: "フォロー"
|
||||
mention: "メンション"
|
||||
renote: "Renote"
|
||||
quote: "引用"
|
||||
reaction: "リアクション"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "通知"
|
||||
tl: "タイムライン"
|
||||
antenna: "アンテナ"
|
||||
list: "リスト"
|
||||
mentions: "あんた宛て"
|
||||
|
95
locales/kab-KAB.yml
Normal file
@ -0,0 +1,95 @@
|
||||
---
|
||||
_lang_: "Taqbaylit"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Nadi"
|
||||
notifications: "Ilɣuyen"
|
||||
username: "Isem n umseqdac"
|
||||
password: "Awal uffir"
|
||||
ok: "IH"
|
||||
settings: "Iɣewwaṛen"
|
||||
profile: "Amaɣnu"
|
||||
save: "Sekles"
|
||||
delete: "Kkes"
|
||||
addToList: "Rnu ɣer tebdart"
|
||||
reply: "Err"
|
||||
loadMore: "Wali ugar"
|
||||
youGotNewFollower: "Yeṭṭafaṛ-ik·em-id"
|
||||
mention: "Bder"
|
||||
import: "Kter"
|
||||
export: "Sifeḍ"
|
||||
files: "Ifuyla"
|
||||
download: "Sider"
|
||||
lists: "Tibdarin"
|
||||
noLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||
following: "Ig ṭṭafaṛ"
|
||||
followers: "Imeḍfaṛen"
|
||||
followsYou: "Yeṭṭafaṛ-ik·em-id"
|
||||
createList: "Snulfu-d tabdart"
|
||||
enterListName: "Isem n tebdart"
|
||||
follow: "Ḍfeṛ"
|
||||
you: "Kečči·mmi"
|
||||
selectList: "Fren tabdart"
|
||||
youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||
remove: "Kkes"
|
||||
userList: "Tibdarin"
|
||||
uiLanguage: "Tutlayt n wegrudem"
|
||||
smtpUser: "Isem n umseqdac"
|
||||
smtpPass: "Awal uffir"
|
||||
_mfm:
|
||||
mention: "Bder"
|
||||
search: "Nadi"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Bder"
|
||||
_sfx:
|
||||
notification: "Ilɣuyen"
|
||||
_widgets:
|
||||
notifications: "Ilɣuyen"
|
||||
_cw:
|
||||
show: "Wali ugar"
|
||||
_visibility:
|
||||
followers: "Imeḍfaṛen"
|
||||
_profile:
|
||||
username: "Isem n umseqdac"
|
||||
_exportOrImport:
|
||||
followingList: "Ig ṭṭafaṛ"
|
||||
muteList: "Sgugem"
|
||||
blockingList: "Seḥbes"
|
||||
userLists: "Tibdarin"
|
||||
_pages:
|
||||
contents: "Agbur"
|
||||
font: "Tasefsit"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
eyeCatchingImageRemove: "Kkes tugna i d-ijebden"
|
||||
selectType: "Fren anaw"
|
||||
contentBlocks: "Agbur"
|
||||
inputBlocks: "Anekcum"
|
||||
specialBlocks: "Uzzig"
|
||||
script:
|
||||
categories:
|
||||
list: "Tibdarin"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Tibdarin"
|
||||
_randomPick:
|
||||
arg1: "Tibdarin"
|
||||
_dailyRandomPick:
|
||||
arg1: "Tibdarin"
|
||||
_seedRandomPick:
|
||||
arg2: "Tibdarin"
|
||||
_pick:
|
||||
arg1: "Tibdarin"
|
||||
_listLen:
|
||||
arg1: "Tibdarin"
|
||||
types:
|
||||
array: "Tibdarin"
|
||||
_notification:
|
||||
youWereFollowed: "Yeṭṭafaṛ-ik·em-id"
|
||||
_types:
|
||||
follow: "Ig ṭṭafaṛ"
|
||||
mention: "Bder"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Ilɣuyen"
|
||||
list: "Tibdarin"
|
@ -26,11 +26,51 @@ signup: "ನೋಂದಣಿ"
|
||||
uploading: "ಅಪ್ಲೋಡಾಗುತ್ತಿದೆ"
|
||||
save: "ಉಳಿಸಿ"
|
||||
users: "ಬಳಕೆದಾರ"
|
||||
addUser: "ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ"
|
||||
favorite: "ಮೆಚ್ಚಿನ"
|
||||
favorites: "ಮೆಚ್ಚಿನವುಗಳು"
|
||||
unfavorite: "ಮೆಚ್ಚುಗೆ ಅಳಿಸು"
|
||||
pin: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು"
|
||||
unpin: "ಪ್ರೊಫ಼ೈಲಿಂದ ಅಂಟುತೆಗೆ"
|
||||
copyContent: "ವಿಷಯವನ್ನು ನಕಲಿಸು"
|
||||
copyLink: "ಲಿಂಕನ್ನು ನಕಲಿಸು"
|
||||
delete: "ಅಳಿಸು"
|
||||
addToList: "ಪಟ್ಟಿಗೆ ಸೇರಿಸು"
|
||||
sendMessage: "ಸಂದೇಶ ಕಳುಹಿಸು"
|
||||
copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು"
|
||||
reply: "ಉತ್ತರಿಸು"
|
||||
loadMore: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||
youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ"
|
||||
followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
||||
directNotes: "ನೇರ ಟಿಪ್ಪಣಿಗಳು"
|
||||
importAndExport: "ಆಮದು/ರಫ್ತು"
|
||||
import: "ಆಮದು"
|
||||
export: "ರಫ್ತು"
|
||||
files: "ಕಡತಗಳು"
|
||||
download: "ಜಾಲದಿಂದಿಳಿಸು"
|
||||
driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ."
|
||||
unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?"
|
||||
instances: "ನಿದರ್ಶನ"
|
||||
remove: "ಅಳಿಸು"
|
||||
smtpUser: "ಬಳಕೆಹೆಸರು"
|
||||
smtpPass: "ಗುಪ್ತಪದ"
|
||||
_mfm:
|
||||
search: "ಹುಡುಕು"
|
||||
_sfx:
|
||||
notification: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
_widgets:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
timeline: "ಸಮಯಸಾಲು"
|
||||
_cw:
|
||||
show: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||
_profile:
|
||||
username: "ಬಳಕೆಹೆಸರು"
|
||||
_notification:
|
||||
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
tl: "ಸಮಯಸಾಲು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
||||
|
@ -16,6 +16,9 @@ noNotes: "노트가 없습니다"
|
||||
noNotifications: "표시할 알림이 없습니다"
|
||||
instance: "인스턴스"
|
||||
settings: "설정"
|
||||
basicSettings: "기본 설정"
|
||||
otherSettings: "기타 설정"
|
||||
openInWindow: "창으로 열기"
|
||||
profile: "프로필"
|
||||
timeline: "타임라인"
|
||||
noAccountDescription: "자기소개가 없습니다"
|
||||
@ -35,14 +38,18 @@ unpin: "프로필에서 고정 해제"
|
||||
copyContent: "내용 복사"
|
||||
copyLink: "링크 복사"
|
||||
delete: "삭제"
|
||||
deleteAndEdit: "삭제 후 편집"
|
||||
deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니까? 이 노트에 대한 리액션, 리노트, 답글 또한 모두 삭제됩니다."
|
||||
addToList: "리스트에 추가"
|
||||
sendMessage: "메시지 보내기"
|
||||
copyUsername: "유저명 복사"
|
||||
searchUser: "사용자 검색"
|
||||
reply: "답글"
|
||||
loadMore: "더 보기"
|
||||
youGotNewFollower: "새로운 팔로워가 있습니다"
|
||||
receiveFollowRequest: "새로운 팔로우 요청이 있습니다"
|
||||
followRequestAccepted: "팔로우가 수락되었습니다"
|
||||
mention: "멘션"
|
||||
mentions: "받은 멘션"
|
||||
directNotes: "다이렉트 노트"
|
||||
importAndExport: "가져오기와 내보내기"
|
||||
@ -63,8 +70,11 @@ followers: "팔로워"
|
||||
followsYou: "당신을 팔로우합니다"
|
||||
createList: "리스트 만들기"
|
||||
manageLists: "리스트 관리"
|
||||
error: "오류가 발생했습니다"
|
||||
error: "오류"
|
||||
somethingHappened: "오류가 발생했습니다"
|
||||
retry: "다시 시도"
|
||||
pageLoadError: "페이지를 불러오지 못했습니다."
|
||||
pageLoadErrorDescription: "네트워크 연결 또는 브라우저 캐시로 인해 발생했을 가능성이 높습니다. 캐시를 삭제하거나, 잠시 후 다시 시도해 주세요."
|
||||
enterListName: "리스트 이름을 입력"
|
||||
privacy: "프라이버시"
|
||||
makeFollowManuallyApprove: "팔로우를 수동으로 승인"
|
||||
@ -84,9 +94,8 @@ clickToShow: "클릭하여 보기"
|
||||
sensitive: "열람주의"
|
||||
add: "추가"
|
||||
reaction: "리액션"
|
||||
reactionSettingDescription: "리액션 선택창에 표시할 리액션을 줄바꿈으로 구분해 설정합니다."
|
||||
reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다."
|
||||
rememberNoteVisibility: "공개 범위를 기억하기"
|
||||
renameFile: "파일 이름 변경"
|
||||
attachCancel: "첨부 취소"
|
||||
markAsSensitive: "열람주의로 설정"
|
||||
unmarkAsSensitive: "열람주의 해제"
|
||||
@ -102,20 +111,29 @@ unblockConfirm: "이 계정의 차단을 해제하시겠습니까?"
|
||||
suspendConfirm: "이 계정을 정지하시겠습니까?"
|
||||
unsuspendConfirm: "이 계정의 정지를 해제하시겠습니까?"
|
||||
selectList: "리스트 선택"
|
||||
selectAntenna: "안테나 선택"
|
||||
selectWidget: "위젯 선택"
|
||||
editWidgets: "위젯 편집"
|
||||
editWidgetsExit: "편집 종료"
|
||||
customEmojis: "커스텀 이모지"
|
||||
emoji: "이모지"
|
||||
emojiName: "이모지 이름"
|
||||
emojiUrl: "이모지 URL"
|
||||
addEmoji: "이모지 추가"
|
||||
settingGuide: "추천 설정"
|
||||
cacheRemoteFiles: "리모트 파일을 캐시"
|
||||
cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
|
||||
flagAsBot: "나는 봇입니다"
|
||||
flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우에 활성화해 주세요. 이 플래그를 활성화하면, 다른 봇이 이를 참고하여 봇 끼리의 무한 연쇄 반응을 회피하거나, 이 계정의 시스템 상에서의 취급이 Bot 운영에 최적화되는 등의 변화가 생깁니다."
|
||||
flagAsCat: "나는 고양이다냥"
|
||||
flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요."
|
||||
autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
|
||||
addAcount: "계정 추가"
|
||||
loginFailed: "로그인에 실패했습니다"
|
||||
showOnRemote: "리모트에서 보기"
|
||||
general: "일반"
|
||||
wallpaper: "배경"
|
||||
setWallpaper: "배경화면 설정"
|
||||
removeWallpaper: "배경 제거"
|
||||
searchWith: "검색: {q}"
|
||||
youHaveNoLists: "리스트가 없습니다"
|
||||
@ -168,8 +186,8 @@ intro: "Misskey의 설치가 완료되었습니다! 관리자 계정을 생성
|
||||
done: "완료"
|
||||
processing: "처리중"
|
||||
preview: "미리보기"
|
||||
default: "기본값"
|
||||
noCustomEmojis: "이모지가 없습니다"
|
||||
customEmojisOfRemote: "다른 인스턴스들의 이모지"
|
||||
noJobs: "작업이 없습니다"
|
||||
federating: "연합 중"
|
||||
blocked: "차단됨"
|
||||
@ -198,15 +216,20 @@ imageUrl: "이미지 URL"
|
||||
remove: "삭제"
|
||||
removed: "삭제하였습니다"
|
||||
removeAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?"
|
||||
deleteAreYouSure: "\"{x}\" 을(를) 삭제하시겠습니까?"
|
||||
resetAreYouSure: "초기화 하시겠습니까?"
|
||||
saved: "저장하였습니다"
|
||||
messaging: "대화"
|
||||
upload: "업로드"
|
||||
fromDrive: "드라이브에서"
|
||||
fromUrl: "URL로부터"
|
||||
uploadFromUrl: "URL 업로드"
|
||||
uploadFromUrlDescription: "업로드하려는 파일의 URL"
|
||||
uploadFromUrlRequested: "업로드를 요청했습니다"
|
||||
uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다."
|
||||
explore: "발견하기"
|
||||
games: "Misskey Games"
|
||||
messageRead: "읽음"
|
||||
recentUsedEmojis: "최근에 사용한 이모지"
|
||||
noMoreHistory: "이것보다 과거의 기록이 없습니다"
|
||||
startMessaging: "대화 시작하기"
|
||||
nUsersRead: "{n}명이 읽음"
|
||||
@ -222,28 +245,47 @@ yearsOld: "{age}세"
|
||||
registeredDate: "등록일"
|
||||
location: "장소"
|
||||
theme: "테마"
|
||||
themeForLightMode: "라이트 모드에서 사용할 테마"
|
||||
themeForDarkMode: "다크 모드에서 사용할 테마"
|
||||
light: "라이트"
|
||||
dark: "다크"
|
||||
lightThemes: "밝은 테마"
|
||||
darkThemes: "어두운 테마"
|
||||
syncDeviceDarkMode: "디바이스의 다크 모드 설정과 동기화"
|
||||
drive: "드라이브"
|
||||
fileName: "파일명"
|
||||
selectFile: "파일 선택"
|
||||
selectFiles: "파일 선택"
|
||||
renameFolder: "폴더 이름 바꾸기"
|
||||
selectFolder: "폴더 선택"
|
||||
selectFolders: "폴더 선택"
|
||||
renameFile: "파일 이름 변경"
|
||||
folderName: "폴더명"
|
||||
createFolder: "폴더 만들기"
|
||||
renameFolder: "폴더 이름 바꾸기"
|
||||
deleteFolder: "폴더 삭제"
|
||||
addFile: "파일 추가"
|
||||
emptyDrive: "드라이브가 비어 있습니다"
|
||||
emptyFolder: "폴더가 비어 있습니다"
|
||||
unableToDelete: "삭제할 수 없습니다"
|
||||
inputNewFileName: "바꿀 파일명을 입력해 주세요"
|
||||
inputNewFolderName: "바꿀 폴더명을 입력해 주세요"
|
||||
circularReferenceFolder: "지정한 폴더가 이동할 폴더의 하위 폴더입니다."
|
||||
hasChildFilesOrFolders: "이 폴더는 비어있지 않기 때문에 삭제할 수 없습니다."
|
||||
copyUrl: "URL 복사"
|
||||
rename: "이름 변경"
|
||||
avatar: "아바타"
|
||||
banner: "배너"
|
||||
nsfw: "열람주의"
|
||||
whenServerDisconnected: "서버와의 접속이 끊겼을 때"
|
||||
disconnectedFromServer: "서버와의 연결이 끊어졌습니다"
|
||||
reload: "새로고침"
|
||||
doNothing: "무시하기"
|
||||
reloadConfirm: "새로고침 하시겠습니까?"
|
||||
watch: "지켜보기"
|
||||
unwatch: "지켜보기 해제"
|
||||
accept: "허가"
|
||||
reject: "거부"
|
||||
normal: "정상"
|
||||
instanceName: "인스턴스 이름"
|
||||
instanceDescription: "인스턴스 소개"
|
||||
maintainerName: "관리자 이름"
|
||||
@ -275,15 +317,24 @@ bannerUrl: "배너 이미지 URL"
|
||||
basicInfo: "기본 정보"
|
||||
pinnedUsers: "고정된 유저"
|
||||
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
|
||||
pinnedPages: "고정한 페이지"
|
||||
pinnedPagesDescription: "인스턴스의 대문에 고정하고 싶은 페이지의 경로를 한 줄에 하나씩 적습니다."
|
||||
pinnedNotes: "고정해놓은 노트"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptcha 활성화"
|
||||
hcaptchaSiteKey: "사이트 키"
|
||||
hcaptchaSecretKey: "시크릿 키"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHA 활성화"
|
||||
recaptchaSiteKey: "사이트 키"
|
||||
recaptchaSecretKey: "시크릿 키"
|
||||
avoidMultiCaptchaConfirm: "여러 Captcha를 사용하는 경우 간섭이 발생할 가능성이 있습니다. 다른 Captcha를 비활성화하시겠습니까? 취소를 눌러 여러 Captcha를 활성화한 상태로 두는 것도 가능합니다."
|
||||
antennas: "안테나"
|
||||
manageAntennas: "안테나 관리"
|
||||
name: "이름"
|
||||
antennaSource: "받을 소스"
|
||||
antennaKeywords: "받을 키워드"
|
||||
antennaExcludeKeywords: "제외할 키워드"
|
||||
antennaKeywordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다"
|
||||
notifyAntenna: "새로운 노트를 알림"
|
||||
withFileAntenna: "파일이 첨부된 노트만"
|
||||
@ -297,6 +348,7 @@ notesAndReplies: "글과 답글"
|
||||
withFiles: "미디어"
|
||||
silence: "사일런스"
|
||||
silenceConfirm: "이 계정을 사일런스로 설정하시겠습니까?"
|
||||
unsilence: "사일런스 해제"
|
||||
unsilenceConfirm: "이 계정의 사일런스를 해제하시겠습니까?"
|
||||
popularUsers: "인기 유저"
|
||||
recentlyUpdatedUsers: "최근 활동한 유저"
|
||||
@ -308,13 +360,6 @@ popularTags: "인기 태그"
|
||||
userList: "리스트"
|
||||
about: "정보"
|
||||
aboutMisskey: "Misskey에 대하여"
|
||||
aboutMisskeyText: "Misskey는 syuilo에 의해서 2014년부터 개발되어 온 오픈소스 소프트웨어 입니다."
|
||||
misskeyMembers: "현재는 아래 멤버들에 의해 개발 및 유지보수 되고 있습니다:"
|
||||
misskeySource: "소스코드는 여기에 공개되어 있습니다:"
|
||||
misskeyTranslation: "Misskey의 번역을 함께해 주시길 부탁드립니다:"
|
||||
misskeyDonate: "Misskey에 기부하심으로써 개발에 도움을 주실 수 있습니다:"
|
||||
morePatrons: "이 외에도 다른 많은 분들이 도움을 주시고 계십니다. 감사합니다🥰"
|
||||
patrons: "후원자들"
|
||||
administrator: "관리자"
|
||||
token: "토큰"
|
||||
twoStepAuthentication: "2단계 인증"
|
||||
@ -328,11 +373,6 @@ unregister: "등록 해제"
|
||||
passwordLessLogin: "비밀번호 없이 로그인"
|
||||
resetPassword: "비밀번호 재설정"
|
||||
newPasswordIs: "새로운 비밀번호는 \"{password}\" 입니다"
|
||||
post: "작성"
|
||||
posted: "게시하였습니다"
|
||||
autoReloadWhenDisconnected: "서버와의 연결이 끊기면 자동 새로고침"
|
||||
autoNoteWatch: "노트를 자동으로 지켜보기"
|
||||
autoNoteWatchDescription: "리액션하거나 답글을 남긴 다른 유저의 노트에 대한 알림을 받습니다."
|
||||
reduceUiAnimation: "UI의 애니메이션을 줄이기"
|
||||
share: "공유"
|
||||
notFound: "찾을 수 없습니다"
|
||||
@ -370,6 +410,7 @@ noMessagesYet: "아직 대화가 없습니다"
|
||||
newMessageExists: "새 메시지가 있습니다"
|
||||
onlyOneFileCanBeAttached: "메시지에 첨부할 수 있는 파일은 하나까지입니다"
|
||||
signinRequired: "로그인 해주세요"
|
||||
invitations: "초대"
|
||||
invitationCode: "초대 코드"
|
||||
checking: "확인하는 중입니다"
|
||||
available: "사용 가능합니다"
|
||||
@ -383,15 +424,17 @@ strongPassword: "강한 비밀번호"
|
||||
passwordMatched: "일치합니다"
|
||||
passwordNotMatched: "일치하지 않습니다"
|
||||
signinWith: "{x}로 로그인"
|
||||
signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오."
|
||||
tapSecurityKey: "보안 키를 터치"
|
||||
or: "혹은"
|
||||
uiLanguage: "UI 표시 언어"
|
||||
groupInvited: "그룹에 초대되었습니다"
|
||||
aboutX: "{x}에 대하여"
|
||||
useOsNativeEmojis: "OS 기본 이모지를 사용"
|
||||
noGroups: "그룹이 없습니다"
|
||||
youHaveNoGroups: "그룹이 없습니다"
|
||||
joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요."
|
||||
noHistory: "기록이 없습니다"
|
||||
signinHistory: "로그인 기록"
|
||||
disableAnimatedMfm: "움직임이 있는 MFM을 비활성화"
|
||||
doing: "잠시만요"
|
||||
category: "카테고리"
|
||||
@ -399,7 +442,7 @@ tags: "태그"
|
||||
docSource: "이 문서의 소스"
|
||||
createAccount: "계정 만들기"
|
||||
existingAcount: "기존 계정"
|
||||
regenerate: "다시 생성"
|
||||
regenerate: "재생성"
|
||||
fontSize: "글자 크기"
|
||||
noFollowRequests: "처리되지 않은 팔로우 요청이 없습니다"
|
||||
openImageInNewTab: "새 탭에서 이미지 열기"
|
||||
@ -409,8 +452,7 @@ remote: "리모트"
|
||||
total: "합계"
|
||||
weekOverWeekChanges: "지난주보다"
|
||||
dayOverDayChanges: "어제보다"
|
||||
accessibility: "접근성"
|
||||
clinetSettings: "클라이언트 설정"
|
||||
clientSettings: "클라이언트 설정"
|
||||
accountSettings: "계정 설정"
|
||||
promotion: "프로모션"
|
||||
promote: "프로모션하기"
|
||||
@ -419,16 +461,270 @@ hideThisNote: "이 노트를 숨기기"
|
||||
showFeaturedNotesInTimeline: "타임라인에 추천 노트를 표시"
|
||||
objectStorage: "오브젝트 스토리지"
|
||||
useObjectStorage: "오브젝트 스토리지를 사용"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
objectStorageBaseUrlDesc: "오브젝트 (미디어) 참조 URL 을 만들 때 사용되는 URL입니다. CDN 또는 프록시를 사용하는 경우 그 URL을 지정하고, 그 외의 경우 사용할 서비스의 가이드에 따라 공개적으로 액세스 할 수 있는 주소를 지정해 주세요. 예를 들어, AWS S3의 경우 'https://<bucket>.s3.amazonaws.com', GCS등의 경우 'https://storage.googleapis.com/<bucket>' 와 같이 지정합니다."
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStorageBucketDesc: "사용 서비스의 bucket명을 지정해주세요."
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStoragePrefixDesc: "이 Prefix 의 디렉토리 아래에 파일이 저장됩니다."
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageEndpointDesc: "AWS S3의 경우 공란, 다른 서비스의 경우 각 서비스의 가이드에 맞게 endpoint를 설정해주세요. '<host>' 혹은 '<host>:<port>' 와 같이 지정합니다."
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "'xx-east-1'와 같이 region을 지정해주세요. 사용하는 서비스에 region 개념이 없는 경우, 비워 두거나 'us-east-1'으로 설정해 주세요."
|
||||
objectStorageUseSSL: "SSL 사용"
|
||||
objectStorageUseSSLDesc: "API 호출시 HTTPS 를 사용하지 않는 경우 OFF 로 설정해 주세요"
|
||||
objectStorageUseProxy: "연결에 프록시를 사용"
|
||||
objectStorageUseProxyDesc: "오브젝트 스토리지 API 호출시 프록시를 사용하지 않는 경우 OFF 로 설정해 주세요"
|
||||
objectStorageSetPublicRead: "업로드할 때 'public-read'를 설정하기"
|
||||
serverLogs: "서버 로그"
|
||||
deleteAll: "모두 삭제"
|
||||
showFixedPostForm: "타임라인 상단에 글 작성란을 표시"
|
||||
newNoteRecived: "새 노트가 있습니다"
|
||||
useNotificationsPopup: "알림 목록을 팝업으로 표시"
|
||||
sounds: "소리"
|
||||
listen: "듣기"
|
||||
none: "없음"
|
||||
showInPage: "페이지로 보기"
|
||||
popout: "새 창으로 열기"
|
||||
volume: "음량"
|
||||
masterVolume: "마스터 볼륨"
|
||||
details: "자세히"
|
||||
chooseEmoji: "이모지 선택"
|
||||
unableToProcess: "작업을 완료할 수 없습니다"
|
||||
recentUsed: "최근 사용"
|
||||
install: "설치"
|
||||
uninstall: "삭제"
|
||||
installedApps: "인증된 애플리케이션"
|
||||
nothing: "아무것도 없습니다"
|
||||
installedDate: "승인한 날짜"
|
||||
lastUsedDate: "마지막 사용"
|
||||
state: "상태"
|
||||
sort: "정렬"
|
||||
ascendingOrder: "오름차순"
|
||||
descendingOrder: "내림차순"
|
||||
scratchpad: "스크래치 패드"
|
||||
scratchpadDescription: "스크래치 패드는 AiScript 의 테스트 환경을 제공합니다. Misskey 와 상호 작용하는 코드를 작성, 실행 및 결과를 확인할 수 있습니다."
|
||||
output: "출력"
|
||||
script: "스크립트"
|
||||
disablePagesScript: "Pages 에서 AiScript 를 사용하지 않음"
|
||||
updateRemoteUser: "리모트 유저 정보 갱신"
|
||||
deleteAllFiles: "모든 파일 삭제"
|
||||
deleteAllFilesConfirm: "모든 파일을 삭제하시겠습니까?"
|
||||
removeAllFollowing: "모든 팔로잉 해제"
|
||||
removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요."
|
||||
userSuspended: "이 계정은 정지된 상태입니다."
|
||||
userSilenced: "이 계정은 사일런스된 상태입니다."
|
||||
sidebar: "사이드바"
|
||||
divider: "구분선"
|
||||
addItem: "항목 추가"
|
||||
rooms: "방"
|
||||
relays: "릴레이"
|
||||
addRelay: "릴레이 추가"
|
||||
inboxUrl: "Inbox 주소"
|
||||
addedRelays: "추가된 릴레이"
|
||||
serviceworkerInfo: "푸시 알림을 수행하려면 활성화해야 합니다."
|
||||
deletedNote: "삭제된 노트"
|
||||
invisibleNote: "비공개 노트"
|
||||
enableInfiniteScroll: "자동으로 좀 더 보기"
|
||||
visibility: "공개 범위"
|
||||
poll: "투표"
|
||||
useCw: "내용 숨기기"
|
||||
enablePlayer: "플레이어 열기"
|
||||
disablePlayer: "플레이어 닫기"
|
||||
expandTweet: "트윗 확장하기"
|
||||
themeEditor: "테마 에디터"
|
||||
description: "설명"
|
||||
author: "작성자"
|
||||
leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?"
|
||||
manage: "관리"
|
||||
plugins: "플러그인"
|
||||
pluginInstallWarn: "신뢰할 수 없는 플러그인은 설치하지 마십시오."
|
||||
deck: "덱"
|
||||
undeck: "덱 해제"
|
||||
width: "폭"
|
||||
height: "높이"
|
||||
large: "크게"
|
||||
medium: "보통"
|
||||
small: "작게"
|
||||
generateAccessToken: "액세스 토큰 생성"
|
||||
permission: "권한"
|
||||
enableAll: "전체 선택"
|
||||
disableAll: "전체 해제"
|
||||
tokenRequested: "계정 접근 허용"
|
||||
pluginTokenRequestedDescription: "이 플러그인은 여기서 설정한 권한을 사용할 수 있게 됩니다."
|
||||
notificationType: "알림 유형"
|
||||
edit: "편집"
|
||||
useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용"
|
||||
emailConfig: "메일 서버 설정"
|
||||
emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다."
|
||||
smtpConfig: "SMTP 서버 설정"
|
||||
smtpHost: "호스트"
|
||||
smtpPort: "포트"
|
||||
smtpUser: "유저명"
|
||||
smtpPass: "비밀번호"
|
||||
emptyToDisableSmtpAuth: "SMTP 인증을 사용하지 않으려면 공란으로 비워둡니다."
|
||||
smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용"
|
||||
smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다."
|
||||
testEmail: "이메일 전송 테스트"
|
||||
wordMute: "단어 뮤트"
|
||||
makeActive: "활성화"
|
||||
display: "표시"
|
||||
copy: "복사"
|
||||
overview: "요약"
|
||||
logs: "로그"
|
||||
delayed: "지연"
|
||||
database: "데이터베이스"
|
||||
channel: "채널"
|
||||
create: "생성"
|
||||
notificationSetting: "알림 설정"
|
||||
notificationSettingDesc: "표시할 알림의 종류를 선택해 주세요."
|
||||
useGlobalSettingDesc: "활성화하면 계정의 알림 설정이 적용되니다. 비활성화하면 개별적으로 설정할 수 있게 됩니다."
|
||||
other: "기타"
|
||||
regenerateLoginToken: "로그인 토큰을 재생성"
|
||||
regenerateLoginTokenDescription: "로그인할 때 사용되는 내부 토큰을 재생성합니다. 일반적으로 이 작업을 실행할 필요는 없습니다. 이 기능을 사용하면 이 계정으로 로그인한 모든 기기에서 로그아웃됩니다."
|
||||
setMultipleBySeparatingWithSpace: "공백으로 구분하여 여러 개 설정할 수 있습니다."
|
||||
fileIdOrUrl: "파일 ID 또는 URL"
|
||||
chatOpenBehavior: "대화를 열 때의 동작"
|
||||
behavior: "동작"
|
||||
sample: "예시"
|
||||
abuseReports: "신고"
|
||||
reportAbuse: "신고"
|
||||
reportAbuseOf: "{name}을 신고하기"
|
||||
fillAbuseReportDescription: "신고하려는 이유를 자세히 알려주세요. 특정 게시물을 신고할 때에는 게시물의 URL도 포함해 주세요."
|
||||
abuseReported: "신고를 보냈습니다. 신고해 주셔서 감사합니다."
|
||||
send: "전송"
|
||||
openInNewTab: "새 탭에서 열기"
|
||||
random: "랜덤"
|
||||
system: "시스템"
|
||||
switchUi: "UI 전환"
|
||||
desktop: "데스크탑"
|
||||
clip: "클립"
|
||||
createNew: "새로 만들기"
|
||||
optional: "옵션"
|
||||
createNewClip: "새 클립 만들기"
|
||||
public: "공개"
|
||||
manageAccessTokens: "액세스 토큰 관리"
|
||||
yes: "예"
|
||||
no: "아니오"
|
||||
driveUsage: "드라이브 사용량"
|
||||
noCrawle: "검색엔진의 인덱싱 거부"
|
||||
noCrawleDescription: "검색엔진에 사용자 페이지, 노트, 페이지 등의 콘텐츠를 인덱싱되지 않게 합니다."
|
||||
lockedAccountInfo: "팔로우를 승인으로 승인받더라도 노트의 공개 범위를 '팔로워'로 하지 않는 한 누구나 당신의 노트를 볼 수 있습니다."
|
||||
alwaysMarkSensitive: "미디어를 항상 열람 주의로 설정"
|
||||
emailVerified: "메일 주소가 확인되었습니다."
|
||||
clips: "클립"
|
||||
_nsfw:
|
||||
ignore: "열람 주의 미디어 항상 표시"
|
||||
_mfm:
|
||||
cheatSheet: "MFM 도움말"
|
||||
intro: "MFM는 Misskey의 다양한 곳에서 사용할 수 있는 전용 마크업 언어입니다. 여기에서는 MFM에서 사용할 수 있는 구문을 확인할 수 있습니다."
|
||||
mention: "멘션"
|
||||
mentionDescription: "골뱅이표(@) 뒤에 사용자명을 넣어 특정 유저를 나타낼 수 있습니다."
|
||||
hashtag: "해시태그"
|
||||
hashtagDescription: "샵 또는 우물정자(#)를 앞에 붙여서 해시태그를 나타낼 수 있습니다."
|
||||
url: "URL"
|
||||
urlDescription: "URL을 나타낼 수 있습니다."
|
||||
link: "링크"
|
||||
boldDescription: "문자를 굵게 강조합니다."
|
||||
smallDescription: "내용을 작고 연하게 보이게 합니다."
|
||||
center: "가운데 정렬"
|
||||
centerDescription: "내용을 가운데 정렬로 보이게 합니다."
|
||||
inlineCode: "코드(인라인)"
|
||||
blockCode: "코드(블록)"
|
||||
inlineMath: "수식(인라인)"
|
||||
inlineMathDescription: "수식(KaTeX)를 인라인으로 보이게 합니다."
|
||||
blockMath: "수식(블록)"
|
||||
blockMathDescription: "여러 줄의 수식(KaTeX)를 블록으로 보이게 합니다."
|
||||
quote: "인용"
|
||||
emoji: "커스텀 이모지"
|
||||
emojiDescription: "커스텀 이모지의 이름을 쌍점(:)으로 감싸서 커스텀 이모지를 사용합니다."
|
||||
search: "검색"
|
||||
searchDescription: "주어진 키워드가 입력된 검색창을 보이게 합니다."
|
||||
flip: "플립"
|
||||
flipDescription: "내용을 상하 또는 좌우로 반전시킵니다."
|
||||
jump: "애니메이션(점프)"
|
||||
_reversi:
|
||||
reversi: "리버시"
|
||||
gameSettings: "대국 설정"
|
||||
chooseBoard: "보드 선택"
|
||||
blackOrWhite: "선공/후공"
|
||||
blackIs: "{name}님이 흑(선공)"
|
||||
rules: "규칙"
|
||||
botSettings: "Bot 설정"
|
||||
thisGameIsStartedSoon: "잠시 후에 대국이 시작됩니다"
|
||||
waitingForOther: "상대의 준비가 완료될 때까지 기다리고 있습니다"
|
||||
waitingForMe: "당신의 준비 완료를 기다리고 있습니다"
|
||||
ready: "준비 완료"
|
||||
myTurn: "당신의 차례입니다"
|
||||
turnOf: "{name}님의 차례입니다"
|
||||
pastTurnOf: "{name}님의 차례"
|
||||
surrender: "기권"
|
||||
surrendered: "기권에 의해"
|
||||
drawn: "무승부"
|
||||
won: "{name}님의 승리"
|
||||
black: "흑"
|
||||
white: "백"
|
||||
total: "합계"
|
||||
turnCount: "{count}턴 째"
|
||||
myGames: "내 대국"
|
||||
allGames: "모두의 대국"
|
||||
ended: "종료"
|
||||
playing: "지금 대국 중"
|
||||
isLlotheo: "돌이 적은 사람이 승리 (llotheo)"
|
||||
loopedMap: "루프 지도"
|
||||
canPutEverywhere: "어디에나 놓을 수 있음"
|
||||
_instanceTicker:
|
||||
none: "보이지 않음"
|
||||
remote: "리모트 유저에게만 보이기"
|
||||
always: "항상 보이기"
|
||||
_channel:
|
||||
create: "채널 생성"
|
||||
setBanner: "배너 설정"
|
||||
removeBanner: "배너 삭제"
|
||||
featured: "트렌드"
|
||||
following: "팔로잉"
|
||||
usersCount: "{n}명 참여 중"
|
||||
notesCount: "{n}노트"
|
||||
_sidebar:
|
||||
icon: "아이콘"
|
||||
hide: "숨기기"
|
||||
_wordMute:
|
||||
muteWords: "뮤트할 단어"
|
||||
muteWordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다。"
|
||||
mutedNotes: "뮤트된 노트"
|
||||
_theme:
|
||||
explore: "테마 찾아보기"
|
||||
install: "테마 설치"
|
||||
manage: "테마 관리"
|
||||
code: "테마 코드"
|
||||
installed: "{name} 테마가 설치되었습니다"
|
||||
alreadyInstalled: "이미 설치된 테마입니다"
|
||||
invalid: "테마 형식이 올바르지 않습니다"
|
||||
make: "테마 만들기"
|
||||
base: "베이스"
|
||||
addConstant: "상수 추가"
|
||||
constant: "상수"
|
||||
defaultValue: "기본값"
|
||||
color: "색"
|
||||
refProp: "프로퍼티를 참조"
|
||||
refConst: "상수를 참조"
|
||||
key: "키"
|
||||
func: "함수"
|
||||
funcKind: "함수 종류"
|
||||
argument: "매개변수"
|
||||
importInfo: "여기에 테마 코드를 붙여 넣어 에디터로 불러올 수 있습니다."
|
||||
keys:
|
||||
link: "링크"
|
||||
hashtag: "해시태그"
|
||||
mention: "멘션"
|
||||
renote: "Renote"
|
||||
divider: "구분선"
|
||||
_sfx:
|
||||
note: "노트"
|
||||
note: "새 노트"
|
||||
noteMy: "내 노트"
|
||||
notification: "알림"
|
||||
chat: "대화"
|
||||
chatBg: "대화 (백그라운드)"
|
||||
antenna: "안테나 수신"
|
||||
_ago:
|
||||
unknown: "알 수 없음"
|
||||
future: "미래"
|
||||
@ -506,7 +802,11 @@ _permissions:
|
||||
"write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다"
|
||||
_auth:
|
||||
shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
permissionAsk: "이 앱은 다음의 권한을 요청합니다"
|
||||
pleaseGoBack: "앱으로 돌아가서 시도해 주세요"
|
||||
callback: "앱으로 돌아갑니다"
|
||||
denied: "접근이 거부되었습니다"
|
||||
_antennaSources:
|
||||
all: "모든 노트"
|
||||
homeTimeline: "팔로우중인 유저의 노트"
|
||||
@ -531,12 +831,14 @@ _widgets:
|
||||
rss: "RSS 리더"
|
||||
activity: "활동"
|
||||
photos: "사진"
|
||||
digitalClock: "디지털 시계"
|
||||
federation: "연합"
|
||||
postForm: "글 입력란"
|
||||
_cw:
|
||||
hide: "숨기기"
|
||||
show: "더 보기"
|
||||
chars: "{count} 문자"
|
||||
files: "{count} 파일"
|
||||
poll: "투표"
|
||||
_poll:
|
||||
noOnlyOneChoice: "투표 항목이 최소 2개 필요합니다"
|
||||
choiceN: "선택지 {n}"
|
||||
@ -569,6 +871,7 @@ _visibility:
|
||||
specified: "다이렉트"
|
||||
specifiedDescription: "지정한 유저에게만 공개"
|
||||
localOnly: "로컬에만"
|
||||
localOnlyDescription: "리모트 유저에게 보이지 않기"
|
||||
_postForm:
|
||||
replyPlaceholder: "이 노트에 답글..."
|
||||
quotePlaceholder: "이 노트를 인용..."
|
||||
@ -584,7 +887,6 @@ _profile:
|
||||
username: "유저명"
|
||||
description: "자기소개"
|
||||
youCanIncludeHashtags: "해시 태그를 포함할 수 있습니다."
|
||||
metadata: "추가 정보"
|
||||
metadataLabel: "라벨"
|
||||
metadataContent: "내용"
|
||||
_exportOrImport:
|
||||
@ -595,26 +897,26 @@ _exportOrImport:
|
||||
userLists: "리스트"
|
||||
_charts:
|
||||
federationInstancesIncDec: "연합 인스턴스 수 증감"
|
||||
federationInstancesTotal: "총 연합 인스턴스 수"
|
||||
federationInstancesTotal: "연합 인스턴스 수 합계"
|
||||
usersIncDec: "유저 수 증감"
|
||||
usersTotal: "유저 수 합계"
|
||||
activeUsers: "활성 유저 수"
|
||||
notesIncDec: "노트 수 증감"
|
||||
localNotesIncDec: "로컬 노트 수 증감"
|
||||
remoteNotesIncDec: "리모트 노트 수 증감"
|
||||
notesTotal: "총 노트 수"
|
||||
notesTotal: "노트 수 합계"
|
||||
filesIncDec: "파일 수 증감"
|
||||
filesTotal: "총 파일 수"
|
||||
filesTotal: "파일 수 합계"
|
||||
storageUsageIncDec: "스토리지 사용량 증감"
|
||||
storageUsageTotal: "총 스토리지 사용량"
|
||||
storageUsageTotal: "스토리지 사용량 합계"
|
||||
_instanceCharts:
|
||||
requests: "요청"
|
||||
users: "유저 수 증감"
|
||||
usersTotal: "누적 유저 수"
|
||||
notes: "노트 수 증감"
|
||||
notesTotal: "총 노트 수"
|
||||
notesTotal: "누적 노트 수"
|
||||
ff: "팔로잉/팔로워 증감"
|
||||
ffTotal: "팔로잉/팔로워 누적"
|
||||
ffTotal: "누적 팔로잉/팔로워 수"
|
||||
cacheSize: "캐시 용량 증감"
|
||||
cacheSizeTotal: "누적 캐시 용량"
|
||||
files: "파일 수 증감"
|
||||
@ -624,49 +926,106 @@ _timelines:
|
||||
local: "로컬"
|
||||
social: "소셜"
|
||||
global: "글로벌"
|
||||
_rooms:
|
||||
roomOf: "{user}의 방"
|
||||
addFurniture: "가구를 배치"
|
||||
translate: "이동"
|
||||
rotate: "회전"
|
||||
exit: "뒤로"
|
||||
remove: "치우기"
|
||||
clear: "모두 치우기"
|
||||
clearConfirm: "정말 방 안의 모든 가구를 치우시겠습니까?"
|
||||
leaveConfirm: "저장되지 않은 변경 사항이 있습니다. 정말 나가시겠습니까?"
|
||||
chooseImage: "이미지 선택"
|
||||
roomType: "방 스타일"
|
||||
carpetColor: "바닥 색상"
|
||||
_roomType:
|
||||
default: "기본값"
|
||||
washitsu: "일본식"
|
||||
_furnitures:
|
||||
milk: "우유 팩"
|
||||
bed: "침대"
|
||||
low-table: "낮은 테이블"
|
||||
desk: "책상"
|
||||
chair: "의자"
|
||||
chair2: "의자 2"
|
||||
fan: "환기구"
|
||||
pc: "컴퓨터"
|
||||
plant: "관엽식물"
|
||||
plant2: "관엽식물 2"
|
||||
eraser: "지우개"
|
||||
pencil: "연필"
|
||||
pudding: "푸딩"
|
||||
cardboard-box: "골판지 상자"
|
||||
cardboard-box2: "골판지 상자 2"
|
||||
cardboard-box3: "골판지 상자 3"
|
||||
book: "책"
|
||||
book2: "책 2"
|
||||
piano: "피아노"
|
||||
facial-tissue: "휴지 상자"
|
||||
server: "서버"
|
||||
moon: "달"
|
||||
corkboard: "게시판"
|
||||
mousepad: "마우스 패드"
|
||||
monitor: "모니터"
|
||||
keyboard: "키보드"
|
||||
carpet-stripe: "카페트 (줄무늬)"
|
||||
mat: "매트"
|
||||
color-box: "책장"
|
||||
wall-clock: "벽걸이 시계"
|
||||
photoframe: "액자"
|
||||
cube: "큐브"
|
||||
tv: "TV"
|
||||
pinguin: "펭귄"
|
||||
rubik-cube: "루빅스 큐브"
|
||||
poster-h: "포스터 (가로)"
|
||||
poster-v: "포스터 (세로)"
|
||||
sofa: "소파"
|
||||
spiral: "나선형 계단"
|
||||
bin: "휴지통"
|
||||
cup-noodle: "컵라면"
|
||||
holo-display: "홀로그램"
|
||||
energy-drink: "에너지 드링크"
|
||||
doll-ai: "아이쨩 인형"
|
||||
banknote: "지폐뭉치"
|
||||
_pages:
|
||||
newPage: "페이지 만들기"
|
||||
editPage: "페이지 수정"
|
||||
readPage: "소스 표시 중"
|
||||
page-created: "페이지를 만들었습니다"
|
||||
page-updated: "페이지를 수정했습니다"
|
||||
name-already-exists: "지정한 페이지 URL이 이미 존재합니다"
|
||||
title-invalid-name: "유효하지 않은 페이지 URL입니다"
|
||||
text-invalid-name: "비어있지 않은지 확인해주세요"
|
||||
created: "페이지를 만들었습니다"
|
||||
updated: "페이지를 수정했습니다"
|
||||
deleted: "페이지가 삭제되었습니다"
|
||||
nameAlreadyExists: "지정한 페이지 URL이 이미 존재합니다"
|
||||
invalidNameTitle: "유효하지 않은 페이지 URL입니다"
|
||||
invalidNameText: "비어있지 않은지 확인해주세요"
|
||||
editThisPage: "이 페이지를 편집"
|
||||
viewSource: "소스 보기"
|
||||
viewPage: "페이지 보기"
|
||||
like: "좋아요"
|
||||
unlike: "좋아요 해제"
|
||||
liked-pages: "좋아요한 페이지"
|
||||
my-pages: "내 페이지"
|
||||
my: "내 페이지"
|
||||
liked: "좋아요한 페이지"
|
||||
inspector: "인스펙터"
|
||||
contents: "콘텐츠"
|
||||
content: "페이지 블록"
|
||||
variables: "변수"
|
||||
variables-info: "변수를 사용하면 동적인 페이지를 만들 수 있습니다. 텍스트에 <b>{ 변수명 }</b>을 적으면 그 위치에 변수의 값을 집어넣습니다. 예를 들어, <b>Hello { thing } world!</b> 라는 텍스트가 있을 때, 변수(thing)의 값이 <b>ai</b>인 경우 텍스트는 <b>Hello ai world!</b>가 됩니다."
|
||||
variables-info2: "변수의 평가(값을 계산해내는 것)는 위에서부터 아래로 진행되므로 어떤 변수의 내부에서 자신보다 아래에 있는 변수를 참조할 수는 없습니다. 예를 들자면 위에서부터 <b>A, B, C</b>의 3개의 변수가 정의되어 있을 때, <b>C</b>의 내부에 <b>A</b>나 <b>B</b>를 참조할 수는 있지만, <b>A</b>의 내부에서 <b>B</b>나 <b>C</b>를 참조할 수는 없습니다."
|
||||
variables-info3: "사용자로부터 입력을 받으려면, 페이지에 \"사용자 입력\" 블록을 삽입하고 \"변수명\" 에 입력받은 값을 저장하고 싶은 변수명을 설정합니다 (변수는 자동으로 생성됩니다). 그 변수를 사용하여 사용자 입력에 따라 동작할 수 있습니다."
|
||||
variables-info4: "함수를 사용하면 반복되는 작업을 손쉽게 처리할 수 있습니다. 함수를 만드시려면 \"함수\" 타입의 변수를 만듭니다. 함수에서 슬롯(인수)를 받도록 설정하면, 함수를 사용할 때 슬롯에 입력된 값을 함수 안에서 변수로써 이용할 수 있게 됩니다. 또한, AiScript 표준에는 함수를 인수로 받는 함수(고차함수)도 존재합니다. 함수를 미리 정의하는 것 외에, 이와 같은 고차함수를 즉석으로 설정할 수 있습니다."
|
||||
more-details: "자세한 설명"
|
||||
title: "제목"
|
||||
url: "페이지 URL"
|
||||
summary: "페이지 요약"
|
||||
alignCenter: "가운데 정렬"
|
||||
hide-title-when-pinned: "프로필에 고정할 때 타이틀을 표시하지 않음"
|
||||
hideTitleWhenPinned: "프로필에 고정해놓은 경우 타이틀을 표시하지 않음"
|
||||
font: "폰트"
|
||||
fontSerif: "명조체"
|
||||
fontSansSerif: "고딕체"
|
||||
set-eye-catching-image: "아이캐치 이미지를 설정"
|
||||
remove-eye-catching-image: "아이캐치 이미지 삭제"
|
||||
eyeCatchingImageSet: "아이캐치 이미지를 설정"
|
||||
eyeCatchingImageRemove: "아이캐치 이미지를 삭제"
|
||||
chooseBlock: "블록 추가"
|
||||
selectType: "종류 선택"
|
||||
enterVariableName: "변수명을 지정해주세요"
|
||||
the-variable-name-is-already-used: "해당 변수명은 이미 사용중입니다"
|
||||
content-blocks: "컨텐츠"
|
||||
input-blocks: "입력"
|
||||
special-blocks: "특수"
|
||||
post-from-post-form: "이 내용을 올리기"
|
||||
posted-from-post-form: "게시하였습니다"
|
||||
variableNameIsAlreadyUsed: "해당 변수명은 이미 사용중입니다"
|
||||
contentBlocks: "콘텐츠"
|
||||
inputBlocks: "입력"
|
||||
specialBlocks: "특수"
|
||||
blocks:
|
||||
text: "텍스트"
|
||||
textarea: "텍스트 영역"
|
||||
@ -679,6 +1038,8 @@ _pages:
|
||||
post: "글 입력란"
|
||||
_post:
|
||||
text: "내용"
|
||||
attachCanvasImage: "캔버스의 이미지와 함께 게시하기"
|
||||
canvasId: "캔버스 ID"
|
||||
textInput: "텍스트 입력"
|
||||
_textInput:
|
||||
name: "변수명"
|
||||
@ -694,6 +1055,13 @@ _pages:
|
||||
name: "변수명"
|
||||
text: "제목"
|
||||
default: "기본값"
|
||||
canvas: "캔버스"
|
||||
_canvas:
|
||||
id: "캔버스 ID"
|
||||
width: "폭"
|
||||
height: "높이"
|
||||
_note:
|
||||
detailed: "세부 정보 보기"
|
||||
switch: "스위치"
|
||||
_switch:
|
||||
name: "변수명"
|
||||
@ -719,6 +1087,9 @@ _pages:
|
||||
message: "눌렀을 때 표시할 페이지"
|
||||
variable: "보낼 변수"
|
||||
no-variable: "없음"
|
||||
callAiScript: "AiScript 호출"
|
||||
_callAiScript:
|
||||
functionName: "함수명"
|
||||
radioButton: "선택지"
|
||||
_radioButton:
|
||||
name: "변수명"
|
||||
@ -879,6 +1250,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "텍스트"
|
||||
ref: "변수"
|
||||
aiScriptVar: "AiScript 변수"
|
||||
fn: "함수"
|
||||
_fn:
|
||||
slots: "슬롯"
|
||||
@ -900,3 +1272,42 @@ _pages:
|
||||
enviromentVariables: "환경 변수"
|
||||
pageVariables: "페이지 요소"
|
||||
argVariables: "입력 슬롯"
|
||||
_relayStatus:
|
||||
requesting: "대기 중"
|
||||
accepted: "승인됨"
|
||||
rejected: "거절됨"
|
||||
_notification:
|
||||
fileUploaded: "파일이 업로드되었습니다"
|
||||
youGotMention: "{name}님이 멘션함"
|
||||
youGotReply: "{name}님이 답글함"
|
||||
youGotQuote: "{name}님이 인용함"
|
||||
youRenoted: "{name}님이 Renote"
|
||||
youGotPoll: "{name}님이 투표함"
|
||||
youWereFollowed: "새로운 팔로워가 있습니다"
|
||||
youReceivedFollowRequest: "새로운 팔로우 요청이 있습니다"
|
||||
yourFollowRequestAccepted: "팔로우 요청이 수락되었습니다"
|
||||
youWereInvitedToGroup: "그룹에 초대되었습니다"
|
||||
_types:
|
||||
follow: "팔로잉"
|
||||
mention: "멘션"
|
||||
renote: "Renote"
|
||||
quote: "인용"
|
||||
reaction: "리액션"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "메인 칼럼 항상 표시"
|
||||
columnAlign: "칼럼 정렬"
|
||||
addColumn: "칼럼 추가"
|
||||
swapLeft: "왼쪽으로 이동"
|
||||
swapRight: "오른쪽으로 이동"
|
||||
swapUp: "위로 이동"
|
||||
swapDown: "아래로 이동"
|
||||
stackLeft: "왼쪽에 쌓기"
|
||||
popRight: "오른쪽으로 빼기"
|
||||
_columns:
|
||||
widgets: "위젯"
|
||||
notifications: "알림"
|
||||
tl: "타임라인"
|
||||
antenna: "안테나"
|
||||
list: "리스트"
|
||||
mentions: "받은 멘션"
|
||||
direct: "다이렉트"
|
||||
|
@ -1,2 +1,23 @@
|
||||
---
|
||||
_lang_: "język polski"
|
||||
search: "Szukaj"
|
||||
notifications: "Powiadomienia"
|
||||
username: "Nazwa użytkownika"
|
||||
password: "Hasło"
|
||||
ok: "OK"
|
||||
gotIt: "Rozumiem!"
|
||||
cancel: "Anuluj"
|
||||
enterUsername: "Wprowadź nazwę użytkownika"
|
||||
smtpUser: "Nazwa użytkownika"
|
||||
smtpPass: "Hasło"
|
||||
_mfm:
|
||||
search: "Szukaj"
|
||||
_sfx:
|
||||
notification: "Powiadomienia"
|
||||
_widgets:
|
||||
notifications: "Powiadomienia"
|
||||
_profile:
|
||||
username: "Nazwa użytkownika"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Powiadomienia"
|
||||
|
1474
locales/ru-RU.yml
5
locales/ug-CN.yml
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
_lang_: "ياپونچە"
|
||||
search: "ئىزدەش"
|
||||
_mfm:
|
||||
search: "ئىزدەش"
|
897
locales/uk-UA.yml
Normal file
@ -0,0 +1,897 @@
|
||||
---
|
||||
_lang_: "Українська"
|
||||
introMisskey: "Ласкаво просимо! Misskey - децентралізована служба мікроблогів з відкритим кодом.\nСтворюйте \"нотатки\", щоб поділитися тим, що відбувається, і розповісти всім про себе 📡\nЗа допомогою \"реакцій\" ви також можете швидко висловити свої почуття щодо нотаток інших 👍\nДавайте досліджувати новий світ 🚀"
|
||||
monthAndDay: "{month}/{day}"
|
||||
search: "Пошук"
|
||||
notifications: "Сповіщення"
|
||||
username: "Ім'я користувача"
|
||||
password: "Пароль"
|
||||
fetchingAsApObject: "Отримуємо з федіверсу..."
|
||||
ok: "OK"
|
||||
gotIt: "Зрозуміло!"
|
||||
cancel: "Скасувати"
|
||||
enterUsername: "Введіть ім'я користувача"
|
||||
renotedBy: "Поширено {user}"
|
||||
noNotes: "Немає нотаток"
|
||||
noNotifications: "Немає сповіщень"
|
||||
instance: "Інстанс"
|
||||
settings: "Налаштування"
|
||||
basicSettings: "Основні налаштування"
|
||||
otherSettings: "Інші налаштування"
|
||||
openInWindow: "Відкрити у вікні"
|
||||
profile: "Профіль"
|
||||
timeline: "Стрічка"
|
||||
noAccountDescription: "Цей користувач ще нічого не написав про себе"
|
||||
login: "Увійти"
|
||||
loggingIn: "Здійснюємо вхід..."
|
||||
logout: "Вийти"
|
||||
signup: "Реєстрація"
|
||||
uploading: "Завантаження..."
|
||||
save: "Зберегти"
|
||||
users: "Користувачі"
|
||||
addUser: "Додати користувача"
|
||||
favorite: "Обране"
|
||||
favorites: "Обране"
|
||||
unfavorite: "Видалити з обраного"
|
||||
pin: "Закріпити"
|
||||
unpin: "Відкріпити"
|
||||
copyContent: "Скопіювати контент"
|
||||
copyLink: "Скопіювати посилання"
|
||||
delete: "Видалити"
|
||||
deleteAndEdit: "Видалити й редагувати"
|
||||
deleteAndEditConfirm: "Ви впевнені, що хочете видалити цю нотатку та відредагувати її? Ви втратите всі реакції, поширення та відповіді на неї."
|
||||
addToList: "Додати до списку"
|
||||
sendMessage: "Надіслати повідомлення"
|
||||
copyUsername: "Скопіювати ім’я користувача"
|
||||
searchUser: "Пошук користувачів"
|
||||
reply: "Відповісти"
|
||||
loadMore: "Показати більше"
|
||||
youGotNewFollower: "Новий підписник"
|
||||
receiveFollowRequest: "Отримано запит на підписку"
|
||||
followRequestAccepted: "Підписка прийнята"
|
||||
mention: "Згадка"
|
||||
mentions: "Згадки"
|
||||
directNotes: "Прямі повідомлення"
|
||||
importAndExport: "Імпорт та експорт"
|
||||
import: "Імпорт"
|
||||
export: "Експорт"
|
||||
files: "Файли"
|
||||
download: "Завантажити"
|
||||
driveFileDeleteConfirm: "Ви впевнені, що хочете видалити файл {name}? Нотатки із цим файлом також буде видалено."
|
||||
unfollowConfirm: "Ви впевнені, що хочете відписатися від {name}?"
|
||||
exportRequested: "Ви запросили експорт. Це може зайняти деякий час. Після завершення експорту отриманий файл буде додано на диск."
|
||||
importRequested: "Ви запросили імпорт. Це може зайняти деякий час."
|
||||
lists: "Списки"
|
||||
noLists: "Немає списків"
|
||||
note: "Нотатки"
|
||||
notes: "Нотатки"
|
||||
following: "Підписки"
|
||||
followers: "Підписники"
|
||||
followsYou: "Підписаний(-а) на вас"
|
||||
createList: "Створити список"
|
||||
manageLists: "Управління списками"
|
||||
error: "Помилка"
|
||||
somethingHappened: "Щось пішло не так"
|
||||
retry: "Спробувати знову"
|
||||
pageLoadError: "Помилка при завантаженні сторінки"
|
||||
pageLoadErrorDescription: "Зазвичай це пов’язано з помилками мережі або кешем браузера. Очистіть кеш або почекайте трохи й спробуйте ще раз."
|
||||
enterListName: "Введіть назву списку"
|
||||
privacy: "Приватність"
|
||||
makeFollowManuallyApprove: "Підтверджувати підписників уручну"
|
||||
defaultNoteVisibility: "Видимість за замовчуванням"
|
||||
follow: "Підписка"
|
||||
followRequest: "Запит на підписку"
|
||||
followRequests: "Запити на підписку"
|
||||
unfollow: "Відписатися"
|
||||
followRequestPending: "Очікуючі запити на підписку"
|
||||
enterEmoji: "Введіть емодзі"
|
||||
renote: "Поширити"
|
||||
unrenote: "Відміна поширення"
|
||||
quote: "Цитата"
|
||||
pinnedNote: "Закріплена нотатка"
|
||||
you: "Ви"
|
||||
clickToShow: "Натисніть для перегляду"
|
||||
sensitive: "NSFW"
|
||||
add: "Додати"
|
||||
reaction: "Реакції"
|
||||
reactionSettingDescription: "Виберіть свої улюблені реакції, які хочете закріпити в селекторі реакцій."
|
||||
rememberNoteVisibility: "Пам’ятати параметри видимісті"
|
||||
attachCancel: "Видалити вкладення"
|
||||
markAsSensitive: "Позначити як NSFW"
|
||||
unmarkAsSensitive: "Зняти позначку NSFW"
|
||||
enterFileName: "Введіть ім'я файлу"
|
||||
mute: "Ігнорувати"
|
||||
unmute: "Показувати"
|
||||
block: "Заблокувати"
|
||||
unblock: "Розблокувати"
|
||||
suspend: "Призупинити"
|
||||
unsuspend: "Відновити"
|
||||
blockConfirm: "Ви впевнені, що хочете заблокувати цей акаунт?"
|
||||
unblockConfirm: "Ви впевнені, що хочете розблокувати цей акаунт?"
|
||||
suspendConfirm: "Ви впевнені, що хочете призупинити цей акаунт?"
|
||||
unsuspendConfirm: "Ви впевнені, що хочете відновити цей акаунт?"
|
||||
selectList: "Виберіть список"
|
||||
selectAntenna: "Виберіть антену"
|
||||
selectWidget: "Виберіть віджет"
|
||||
editWidgets: "Редагувати віджети"
|
||||
editWidgetsExit: "Готово"
|
||||
customEmojis: "Кастомні емоджі"
|
||||
emoji: "Емоджі"
|
||||
emojiName: "Назва емоджі"
|
||||
emojiUrl: "URL емодзі"
|
||||
addEmoji: "Додати емодзі"
|
||||
settingGuide: "Рекомендована конфігурація"
|
||||
cacheRemoteFiles: "Кешувати дані з інших інстансів"
|
||||
cacheRemoteFilesDescription: "Якщо кешування вимкнено, віддалені файли завантажуються безпосередньо з віддаленого інстансу. Це зменшує використання сховища, але збільшує трафік, оскільки не генеруются ескізи."
|
||||
flagAsBot: "Акаунт бота"
|
||||
flagAsCat: "Акаунт кота"
|
||||
autoAcceptFollowed: "Автоматично приймати запити на підписку від користувачів, на яких ви підписані"
|
||||
addAcount: "Додати акаунт"
|
||||
loginFailed: "Не вдалося увійти"
|
||||
showOnRemote: "Переглянути в оригіналі"
|
||||
general: "Загальне"
|
||||
wallpaper: "Шпалери"
|
||||
setWallpaper: "Встановити шпалери"
|
||||
removeWallpaper: "Прибрати шпалери"
|
||||
searchWith: "Пошук: {q}"
|
||||
youHaveNoLists: "У вас немає списків"
|
||||
followConfirm: "Підписатися на {name}?"
|
||||
proxyAccount: "Проксі-акаунт"
|
||||
host: "Хост"
|
||||
selectUser: "Виберіть користувача"
|
||||
recipient: "Кому"
|
||||
annotation: "Коментар"
|
||||
federation: "Федіверс"
|
||||
instances: "Інстанс"
|
||||
registeredAt: "Приєднався(-лась)"
|
||||
latestRequestSentAt: "Останній запит надіслано"
|
||||
latestRequestReceivedAt: "Останній запит прийнято"
|
||||
latestStatus: "Останній статус"
|
||||
storageUsage: "Використання простіру"
|
||||
charts: "Графіки"
|
||||
perHour: "Щогодинно"
|
||||
perDay: "Щоденно"
|
||||
stopActivityDelivery: "Припинити розсилання активності"
|
||||
blockThisInstance: "Заблокувати цей інстанс"
|
||||
operations: "Операції"
|
||||
software: "Програмне забезпечення"
|
||||
version: "Версія"
|
||||
metadata: "Метадані"
|
||||
withNFiles: "файли: {n}"
|
||||
monitor: "Монітор"
|
||||
jobQueue: "Черга завдань"
|
||||
cpuAndMemory: "ЦП та пам'ять"
|
||||
network: "Мережа"
|
||||
disk: "Диск"
|
||||
instanceInfo: "Про цей інстанс"
|
||||
statistics: "Статистика"
|
||||
clearQueue: "Очистити чергу"
|
||||
clearQueueConfirmTitle: "Ви впевнені, що хочете очистити чергу?"
|
||||
clearQueueConfirmText: "Будь-які невідправлені нотатки, що залишилися в черзі, не будуть передані. Зазвичай ця операція НЕ потрібна."
|
||||
clearCachedFiles: "Очистити кеш"
|
||||
clearCachedFilesConfirm: "Ви впевнені, що хочете видалити всі кешовані файли?"
|
||||
blockedInstances: "Заблоковані інстанси"
|
||||
blockedInstancesDescription: "Вкажіть інстанси, які потрібно заблокувати. Перелічені інстанси більше не зможуть спілкуватися з цим інстансом."
|
||||
muteAndBlock: "Ігнор і блокування"
|
||||
mutedUsers: "Ігноровані користувачі"
|
||||
blockedUsers: "Заблоковані користувачі"
|
||||
noUsers: "Немає користувачів"
|
||||
editProfile: "Редагувати профіль"
|
||||
noteDeleteConfirm: "Ви дійсно хочете видалити цю нотатку?"
|
||||
pinLimitExceeded: "Більше нотаток не можна закріпити"
|
||||
intro: "Встановлення Misskey завершено! Будь ласка, створіть акаунт адміністратора."
|
||||
done: "Готово"
|
||||
processing: "Обробка"
|
||||
preview: "Передогляд"
|
||||
default: "За умовчанням"
|
||||
noCustomEmojis: "Немає кастомних емоджі"
|
||||
noJobs: "Немає завдань"
|
||||
federating: "Федерується"
|
||||
blocked: "Заблоковано"
|
||||
suspended: "Призупинено"
|
||||
all: "Всі"
|
||||
subscribing: "Підписка"
|
||||
publishing: "Публікація"
|
||||
notResponding: "Не відповідає"
|
||||
instanceFollowing: "Підписка на інстанс"
|
||||
instanceFollowers: "Підписники інстансу"
|
||||
instanceUsers: "Користувачі цього інстансу"
|
||||
changePassword: "Змінити пароль"
|
||||
security: "Безпека"
|
||||
retypedNotMatch: "Введені дані не збігаються."
|
||||
currentPassword: "Поточний пароль"
|
||||
newPassword: "Новий пароль"
|
||||
newPasswordRetype: "Новий пароль (повторно)"
|
||||
attachFile: "Вкласти файл"
|
||||
more: "Бiльше!"
|
||||
featured: "Популярні"
|
||||
usernameOrUserId: "Ім'я або ID користувача"
|
||||
noSuchUser: "Користувача не знайдено"
|
||||
lookup: "Пошук"
|
||||
announcements: "Оголошення"
|
||||
imageUrl: "URL зображення"
|
||||
remove: "Видалити"
|
||||
removed: "Видалено"
|
||||
removeAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?"
|
||||
deleteAreYouSure: "Ви впевнені, що хочете видалити \"{x}\"?"
|
||||
resetAreYouSure: "Дійсно ресет?"
|
||||
saved: "Збережено"
|
||||
messaging: "Чати"
|
||||
upload: "Завантажити"
|
||||
fromDrive: "З диска"
|
||||
fromUrl: "З URL"
|
||||
uploadFromUrl: "Завантажити з URL"
|
||||
uploadFromUrlDescription: "URL-адреса файлу для завантаження"
|
||||
uploadFromUrlRequested: "Обрано завантаження"
|
||||
uploadFromUrlMayTakeTime: "Завантаження може зайняти деякий час."
|
||||
explore: "Огляд"
|
||||
games: "Ігри Misskey"
|
||||
messageRead: "Прочитано"
|
||||
noMoreHistory: "Подальшої історії немає"
|
||||
startMessaging: "Розпочати діалог"
|
||||
nUsersRead: "Прочитали {n}"
|
||||
agreeTo: "Я погоджуюсь з {0}"
|
||||
tos: "Умови використання"
|
||||
start: "Розпочати"
|
||||
home: "Домівка"
|
||||
remoteUserCaution: "Інформація може бути неповною, оскільки це віддалений користувач."
|
||||
activity: "Активність"
|
||||
images: "Зображення"
|
||||
birthday: "День народження"
|
||||
yearsOld: "{age} років"
|
||||
registeredDate: "Приєднався(-лась)"
|
||||
location: "Локація"
|
||||
theme: "Тема"
|
||||
themeForLightMode: "Світла тема"
|
||||
themeForDarkMode: "Темна тема"
|
||||
light: "Світла"
|
||||
dark: "Темна"
|
||||
lightThemes: "Світлі теми"
|
||||
darkThemes: "Темні теми"
|
||||
syncDeviceDarkMode: "Синхронізувати темний режим із налаштуваннями вашого пристрою"
|
||||
drive: "Диск"
|
||||
fileName: "Ім'я файлу"
|
||||
selectFile: "Вибрати файл"
|
||||
selectFiles: "Вибрати файли"
|
||||
selectFolder: "Вибрати теку"
|
||||
selectFolders: "Вибрати теки"
|
||||
renameFile: "Перейменувати файл"
|
||||
folderName: "Ім'я теки"
|
||||
createFolder: "Створити теку"
|
||||
renameFolder: "Перейменувати теку"
|
||||
deleteFolder: "Видалити теку"
|
||||
addFile: "Додати файл"
|
||||
emptyDrive: "Диск порожній"
|
||||
emptyFolder: "Тека порожня"
|
||||
unableToDelete: "Видалення неможливе"
|
||||
inputNewFileName: "Введіть ім'я нового файлу"
|
||||
inputNewFolderName: "Введіть ім'я нової теки"
|
||||
circularReferenceFolder: "Ви намагаєтесь перемістити папку в її підпапку."
|
||||
hasChildFilesOrFolders: "Ця тека не порожня і не може бути видалена"
|
||||
copyUrl: "Копіювати URL"
|
||||
rename: "Перейменувати"
|
||||
avatar: "Аватар"
|
||||
banner: "Банер"
|
||||
nsfw: "NSFW"
|
||||
whenServerDisconnected: "Коли зв’язок із сервером втрачено"
|
||||
disconnectedFromServer: "Зв’язок із сервером було перервано"
|
||||
reload: "Оновити"
|
||||
doNothing: "Нічого не робити"
|
||||
reloadConfirm: "Перезавантажити стрічку?"
|
||||
watch: "Стежити"
|
||||
unwatch: "Не стежити"
|
||||
accept: "Прийняти"
|
||||
reject: "Відхилити"
|
||||
instanceName: "Назва інстансу"
|
||||
instanceDescription: "Описання інстансу"
|
||||
maintainerName: "Ім'я адміністратора"
|
||||
maintainerEmail: "Email адміністратора"
|
||||
tosUrl: "URL умов використання"
|
||||
thisYear: "Рік"
|
||||
thisMonth: "Місяць"
|
||||
today: "День"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "Сторінки"
|
||||
integration: "Інтеграція"
|
||||
connectSerice: "Під’єднати"
|
||||
disconnectSerice: "Відключитися"
|
||||
enableLocalTimeline: "Увімкнути локальну стрічку"
|
||||
enableGlobalTimeline: "Увімкнути глобальну стрічку"
|
||||
disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх стрічок, навіть якщо вони вимкнуті."
|
||||
registration: "Реєстрація"
|
||||
enableRegistration: "Дозволити реєстрацію"
|
||||
invite: "Запросити"
|
||||
proxyRemoteFiles: "Проксувати файли з інших інстансів"
|
||||
driveCapacityPerLocalAccount: "Об'єм диска на одного локального користувача"
|
||||
driveCapacityPerRemoteAccount: "Об'єм диска на одного віддаленого користувача"
|
||||
inMb: "В мегабайтах"
|
||||
iconUrl: "URL аватара"
|
||||
bannerUrl: "URL банера"
|
||||
basicInfo: "Основна інформація"
|
||||
pinnedUsers: "Закріплені користувачі"
|
||||
pinnedPages: "Закріплені сторінки"
|
||||
pinnedPagesDescription: "Введіть шляхи сторінок, які ви бажаєте закріпити на головній сторінці цього інстанса, розділені новими рядками."
|
||||
pinnedNotes: "Закріплена нотатка"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Увімкнути hCaptcha"
|
||||
hcaptchaSiteKey: "Ключ сайту"
|
||||
hcaptchaSecretKey: "Секретний ключ"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Увімкнути reCAPTCHA"
|
||||
recaptchaSiteKey: "Ключ сайту"
|
||||
recaptchaSecretKey: "Секретний ключ"
|
||||
antennas: "Антени"
|
||||
manageAntennas: "Налаштування антен"
|
||||
name: "Ім'я"
|
||||
antennaSource: "Джерело антени"
|
||||
antennaKeywords: "Ключові слова антени"
|
||||
antennaExcludeKeywords: "Винятки"
|
||||
notifyAntenna: "Сповіщати про нові нотатки"
|
||||
withFileAntenna: "Тільки нотатки з вкладеними файлами"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "Ввімкнути ServiceWorker"
|
||||
caseSensitive: "З урахуванням регістру"
|
||||
withReplies: "Включаючи відповіді"
|
||||
connectedTo: "Наступні акаунти під'єднані"
|
||||
notesAndReplies: "Нотатки та відповіді"
|
||||
withFiles: "Файли"
|
||||
silence: "Заглушити"
|
||||
silenceConfirm: "Ви впевнені, що хочете заглушити цього користувача?"
|
||||
unsilence: "Не глушити"
|
||||
unsilenceConfirm: "Ви впевнені, що хочете скасувати глушіння цього користувача?"
|
||||
popularUsers: "Популярні користувачі"
|
||||
recentlyUpdatedUsers: "Нещодавно активні користувачі"
|
||||
recentlyRegisteredUsers: "Нещодавно зареєстровані користувачі"
|
||||
recentlyDiscoveredUsers: "Нещодавно знайдені користувачі"
|
||||
exploreUsersCount: "{count} користувачів"
|
||||
exploreFediverse: "Огляд федіверсу"
|
||||
popularTags: "Популярні теги"
|
||||
userList: "Списки"
|
||||
about: "Інформація"
|
||||
aboutMisskey: "Про Misskey"
|
||||
administrator: "Адмін"
|
||||
token: "Токен"
|
||||
twoStepAuthentication: "Двохфакторна аутентифікація"
|
||||
moderator: "Модератор"
|
||||
nUsersMentioned: "Згадали: {n}"
|
||||
securityKey: "Ключ захисту"
|
||||
securityKeyName: "Назва ключа"
|
||||
registerSecurityKey: "Зареєструвати ключ захисту"
|
||||
lastUsed: "Востаннє використано"
|
||||
unregister: "Скасувати реєстрацію"
|
||||
passwordLessLogin: "Налаштувати вхід без пароля"
|
||||
resetPassword: "Скинути пароль"
|
||||
newPasswordIs: "Новий пароль: {password}"
|
||||
reduceUiAnimation: "Зменшити анімацію інтерфейсу"
|
||||
share: "Поділитись"
|
||||
notFound: "Не знайдено"
|
||||
notFoundDescription: "Сторінка за вказаною адресою не знайдена."
|
||||
uploadFolder: "Місце для завантаження за замовчуванням"
|
||||
cacheClear: "Очистити кеш"
|
||||
markAsReadAllNotifications: "Позначити всі сповіщення як прочитані"
|
||||
markAsReadAllUnreadNotes: "Позначити всі нотатки як прочитані"
|
||||
markAsReadAllTalkMessages: "Позначити всі повідомлення як прочитані"
|
||||
help: "Допомога"
|
||||
inputMessageHere: "Введіть повідомлення тут"
|
||||
close: "Закрити"
|
||||
group: "Група"
|
||||
groups: "Групи"
|
||||
createGroup: "Створити групу"
|
||||
ownedGroups: "Власні групи"
|
||||
joinedGroups: "Членство в групах"
|
||||
invites: "Запросити"
|
||||
groupName: "Назва групи"
|
||||
members: "Учасники"
|
||||
transfer: "Передача"
|
||||
messagingWithUser: "Чат з користувачами"
|
||||
messagingWithGroup: "Чат з групою"
|
||||
title: "Тема"
|
||||
text: "Текст"
|
||||
enable: "Увімкнути"
|
||||
next: "Далі"
|
||||
retype: "Введіть ще раз"
|
||||
noteOf: "Нотатка {user}"
|
||||
inviteToGroup: "Запрошення до групи"
|
||||
maxNoteTextLength: "Максимальна довжина нотатки"
|
||||
quoteAttached: "Цитата"
|
||||
quoteQuestion: "Ви хочете додати цитату?"
|
||||
noMessagesYet: "Ще немає повідомлень"
|
||||
newMessageExists: "Є нові повідомлення"
|
||||
onlyOneFileCanBeAttached: "До повідомлення можна вкласти лише один файл"
|
||||
signinRequired: "Будь ласка, авторизуйтесь"
|
||||
invitations: "Запрошення"
|
||||
invitationCode: "Код запрошення"
|
||||
checking: "Перевірка…"
|
||||
available: "Доступно"
|
||||
unavailable: "Недоступно"
|
||||
usernameInvalidFormat: "літери, цифри та _ є прийнятними"
|
||||
tooShort: "Занадто короткий"
|
||||
tooLong: "Занадто довгий"
|
||||
weakPassword: "Слабкий пароль"
|
||||
normalPassword: "Достатній пароль"
|
||||
strongPassword: "Міцний пароль"
|
||||
passwordMatched: "Все вірно"
|
||||
passwordNotMatched: "Паролі не співпадають"
|
||||
signinWith: "Увійти за допомогою {x}"
|
||||
signinFailed: "Не вдалося увійти. Введені ім’я користувача або пароль неправильнi."
|
||||
tapSecurityKey: "Торкніться ключа безпеки"
|
||||
or: "або"
|
||||
uiLanguage: "Мова інтерфейсу"
|
||||
groupInvited: "Запрошення до групи"
|
||||
aboutX: "Про {x}"
|
||||
useOsNativeEmojis: "Використовувати емодзі ОС"
|
||||
youHaveNoGroups: "Немає груп"
|
||||
joinOrCreateGroup: "Отримуйте запрошення до груп або створюйте свої власні групи."
|
||||
noHistory: "Історія порожня"
|
||||
signinHistory: "Історія входів"
|
||||
disableAnimatedMfm: "Відключити анімації MFM"
|
||||
doing: "Виконується"
|
||||
category: "Категорія"
|
||||
tags: "Теги"
|
||||
docSource: "Джерело цього документа"
|
||||
createAccount: "Створити акаунт"
|
||||
existingAcount: "Існуючий акаунт"
|
||||
regenerate: "Оновити"
|
||||
fontSize: "Розмір шрифту"
|
||||
noFollowRequests: "Немає запитів на підписку"
|
||||
openImageInNewTab: "Відкрити зображення в новій вкладці"
|
||||
dashboard: "Панель приладів"
|
||||
local: "Локальні"
|
||||
remote: "Віддалені"
|
||||
total: "Всього"
|
||||
weekOverWeekChanges: "Тиждень"
|
||||
dayOverDayChanges: "Доба"
|
||||
appearance: "Вигляд"
|
||||
clientSettings: "Налаштування клієнта"
|
||||
accountSettings: "Налаштування акаунта"
|
||||
promotion: "Виділене"
|
||||
promote: "Виділити"
|
||||
numberOfDays: "Кількість днів"
|
||||
hideThisNote: "Сховати цю нотатку"
|
||||
showFeaturedNotesInTimeline: "Показувати популярні нотатки у стрічці"
|
||||
objectStorage: "Object Storage"
|
||||
useObjectStorage: "Використовувати object storage"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageUseSSL: "Використовувати SSL"
|
||||
objectStorageUseProxy: "Використовувати Proxy"
|
||||
serverLogs: "Журнал сервера"
|
||||
deleteAll: "Видалити все"
|
||||
newNoteRecived: "Є нові нотатки"
|
||||
sounds: "Звуки"
|
||||
listen: "Слухати"
|
||||
none: "Відсутній"
|
||||
showInPage: "Показати на сторінці"
|
||||
popout: "Від'єднати"
|
||||
volume: "Гучність"
|
||||
masterVolume: "Загальна гучність"
|
||||
details: "Детальніше"
|
||||
chooseEmoji: "Виберіть емодзі"
|
||||
unableToProcess: "Не вдається завершити операцію"
|
||||
recentUsed: "Нещодавні"
|
||||
install: "Встановити"
|
||||
uninstall: "Видалити"
|
||||
installedApps: "Встановлені аплікації"
|
||||
nothing: "Тут нічого немає"
|
||||
installedDate: "Дата встановлення"
|
||||
lastUsedDate: "Дата використання"
|
||||
state: "Стан"
|
||||
sort: "Сортування"
|
||||
ascendingOrder: "За зростанням"
|
||||
descendingOrder: "За спаданням"
|
||||
scratchpad: "Чернетка"
|
||||
scratchpadDescription: "Scratchpad надає середовище для експериментів з AiScript. Ви можете писати, виконувати його і тестувати взаємодію з Misskey."
|
||||
output: "Вихід"
|
||||
script: "Скрипт"
|
||||
disablePagesScript: "Вимкнути AiScript на Сторінках"
|
||||
updateRemoteUser: "Оновити інформацію про віддаленого користувача"
|
||||
deleteAllFiles: "Видалити всі файли"
|
||||
deleteAllFilesConfirm: "Ви дійсно хочете видалити всі файли?"
|
||||
removeAllFollowing: "Скасувати всі підписки"
|
||||
removeAllFollowingDescription: "Скасувати підписку на всі акаунти з {host}. Будь ласка, робіть це, якщо інстанс більше не існує."
|
||||
sidebar: "Бокова панель"
|
||||
divider: "Розділювач"
|
||||
addItem: "Додати елемент"
|
||||
rooms: "Кімнати"
|
||||
relays: "Ретранслятори"
|
||||
addRelay: "Додати ретранслятор"
|
||||
inboxUrl: "Inbox URL"
|
||||
addedRelays: "Додані ретранслятори"
|
||||
serviceworkerInfo: "Повинен бути ввімкнений для push-сповіщень."
|
||||
deletedNote: "Видалена нотатка"
|
||||
enableInfiniteScroll: "Увімкнути нескінченну прокрутку"
|
||||
visibility: "Видимість"
|
||||
poll: "Опитування"
|
||||
useCw: "Приховати вміст"
|
||||
enablePlayer: "Відкрити відеоплеєр"
|
||||
disablePlayer: "Закрити відеоплеєр"
|
||||
expandTweet: "Розгорнути твіт"
|
||||
themeEditor: "Редактор тем"
|
||||
description: "Опис"
|
||||
author: "Автор"
|
||||
manage: "Управління"
|
||||
plugins: "Плагіни"
|
||||
deck: "Дек"
|
||||
undeck: "Залишити Дек"
|
||||
useBlurEffectForModal: "Ефект розмиття під модальними діалогами"
|
||||
useFullReactionPicker: "Повнорозмірний селектор реакцій"
|
||||
width: "Ширина"
|
||||
height: "Висота"
|
||||
large: "Крупний"
|
||||
medium: "Середній"
|
||||
small: "Маленький"
|
||||
generateAccessToken: "Згенерувати токен доступу"
|
||||
permission: "Права"
|
||||
enableAll: "Увімкнути все"
|
||||
disableAll: "Вимкнути все"
|
||||
tokenRequested: "Надати доступ до акаунту"
|
||||
notificationType: "Тип сповіщення"
|
||||
edit: "Редагувати"
|
||||
useStarForReactionFallback: "Використовувати ★ як запасний варіант, якщо емодзі реакції невідомий"
|
||||
emailConfig: "Налаштування email сервера"
|
||||
email: "E-mail"
|
||||
emailAddress: "E-mail адреса"
|
||||
smtpHost: "Хост"
|
||||
smtpPort: "Порт"
|
||||
smtpUser: "Ім'я користувача"
|
||||
smtpPass: "Пароль"
|
||||
testEmail: "Тестовий email"
|
||||
wordMute: "Блокування слів"
|
||||
makeActive: "Активувати"
|
||||
display: "Відображення"
|
||||
copy: "Скопіювати"
|
||||
metrics: "Показники"
|
||||
overview: "Огляд"
|
||||
logs: "Журнал"
|
||||
delayed: "Затримка"
|
||||
database: "База даних"
|
||||
channel: "Канали"
|
||||
create: "Створити"
|
||||
notificationSetting: "Параметри сповіщень"
|
||||
notificationSettingDesc: "Виберіть типи сповіщень для відображення"
|
||||
useGlobalSetting: "Застосувати глобальнi параметри"
|
||||
other: "Інше"
|
||||
regenerateLoginToken: "Оновити Login Token"
|
||||
behavior: "Поведінка"
|
||||
sample: "Приклад"
|
||||
abuseReports: "Скарги"
|
||||
reportAbuse: "Поскаржитись"
|
||||
reportAbuseOf: "Поскаржитись на {name}"
|
||||
send: "Відправити"
|
||||
abuseMarkAsResolved: "Позначити скаргу як вирішену"
|
||||
openInNewTab: "Відкрити в новій вкладці"
|
||||
defaultNavigationBehaviour: "Поведінка навігації за замовчуванням"
|
||||
editTheseSettingsMayBreakAccount: "Зміна цих параметрів може призвести до пошкодження вашого акаунта."
|
||||
instanceTicker: "Мітка з назвою інстанса в нотатках"
|
||||
waitingFor: "Чекаємо на {x}"
|
||||
random: "Випадковий"
|
||||
system: "Система"
|
||||
switchUi: "Інтерфейс"
|
||||
desktop: "Десктоп"
|
||||
clip: "Добірка"
|
||||
createNew: "Створити новий"
|
||||
optional: "Необов'язково"
|
||||
public: "Публічний"
|
||||
i18nInfo: "Misskey перекладається на різні мови волонтерами. Ви можете допомогти: {link}"
|
||||
manageAccessTokens: "Керування токенами доступу"
|
||||
accountInfo: "Інформація про акаунт"
|
||||
notesCount: "Кількість нотаток"
|
||||
repliesCount: "Кількість надісланих відповідей"
|
||||
renotesCount: "Кількість поширень"
|
||||
repliedCount: "Кількість отриманих відповідей"
|
||||
renotedCount: "Кількість отриманих поширень"
|
||||
followingCount: "Кількість підписок"
|
||||
followersCount: "Кількість підписників"
|
||||
sentReactionsCount: "Кількість надісланих реакцій"
|
||||
receivedReactionsCount: "Кількість отриманих реакцій"
|
||||
pollVotesCount: "Кількість надісланих голосів"
|
||||
pollVotedCount: "Кількість отриманих голосів"
|
||||
yes: "Так"
|
||||
no: "Ні"
|
||||
driveFilesCount: "Кількість файлів на диску"
|
||||
driveUsage: "Використання місця на диску"
|
||||
noCrawle: "Заборонити індексацію"
|
||||
noCrawleDescription: "Просити пошукові системи не індексувати ваш профіль, нотатки, сторінки тощо."
|
||||
alwaysMarkSensitive: "Позначати NSFW за замовчуванням"
|
||||
loadRawImages: "Відображати вкладені зображення повністю замість ескізів"
|
||||
disableShowingAnimatedImages: "Не програвати анімовані зображення"
|
||||
notSet: "Не налаштовано"
|
||||
emailVerified: "Електронну пошту підтверджено."
|
||||
noteFavoritesCount: "Кількість улюблених нотаток"
|
||||
pageLikesCount: "Кількість отриманих вподобань сторінки"
|
||||
pageLikedCount: "Кількість вподобаних сторінок"
|
||||
reversiCount: "Кількість матчів \"Реверсі\""
|
||||
contact: "Контакт"
|
||||
useSystemFont: "Використовувати стандартний шрифт системи"
|
||||
clips: "Добірка"
|
||||
experimentalFeatures: "Експериментальні функції"
|
||||
developer: "Розробник"
|
||||
_aboutMisskey:
|
||||
about: "Misskey - це програмне забезпечення з відкритим кодом, яке розробляє syuilo з 2014 року."
|
||||
contributors: "Головні помічники"
|
||||
allContributors: "Всі помічники"
|
||||
source: "Вихідний код"
|
||||
translation: "Перекладати Misskey"
|
||||
donate: "Пожертвувати Misskey"
|
||||
morePatrons: "Ми дуже цінуємо підтримку багатьох інших помічників, не перелічених тут. Дякуємо! 🥰"
|
||||
patrons: "Підтримали"
|
||||
_nsfw:
|
||||
respect: "Приховувати NSFW медіа"
|
||||
ignore: "Не приховувати NSFW медіа"
|
||||
force: "Приховувати всі медіа файли"
|
||||
_mfm:
|
||||
cheatSheet: " Довідка MFM"
|
||||
intro: "MFM це ексклюзивна мова розмітки тексту в Misskey, яку можна використовувати в багатьох місцях. Тут ви можете переглянути приклади її синтаксису."
|
||||
dummy: "Misskey розширює світ Федіверсу"
|
||||
mention: "Згадка"
|
||||
mentionDescription: "За допомогою знака \"@\" перед ім'ям можна згадати конкретного користувача."
|
||||
hashtag: "Хештеґ"
|
||||
hashtagDescription: "За допомогою знака \"решітка\" перед словом задається хештег."
|
||||
url: "URL"
|
||||
urlDescription: "Відображаються URL-адреси."
|
||||
link: "Посилання"
|
||||
linkDescription: "Окремі частини тексту можуть містити посилання"
|
||||
bold: "Жирний шрифт"
|
||||
boldDescription: "Виділяє літери, роблячи їх товще"
|
||||
small: "Дрібний шрифт"
|
||||
smallDescription: "Робить текст маленьким і тонким"
|
||||
center: "По центру"
|
||||
centerDescription: "Показує вміст у центрі"
|
||||
inlineCode: "Код (у рядку)"
|
||||
inlineCodeDescription: "Показує фрагмент тексту у рядку як програмний код"
|
||||
blockCode: "Код (блок)"
|
||||
blockCodeDescription: "Показує кілька рядків тексту як блок програмного кода"
|
||||
inlineMath: "Формула (у рядку)"
|
||||
inlineMathDescription: "Відображення математичних формул (KaTeX) у рядку"
|
||||
blockMath: "Формули (блок)"
|
||||
quote: "Цитата"
|
||||
emoji: "Кастомні емоджі"
|
||||
search: "Пошук"
|
||||
searchDescription: "Відображає вікно пошуку з попередньо введеним текстом"
|
||||
flipDescription: "Віддзеркалює вміст по горизонталі або вертикалі"
|
||||
jelly: "Анімація (желе)"
|
||||
jellyDescription: "Створює желеподібну анімацію"
|
||||
tada: "Анімація (Тада!)"
|
||||
tadaDescription: "Створює анімацію з відчуттям \"Тада!\""
|
||||
jump: "Анімація (стрибки)"
|
||||
jumpDescription: "Показує стрибаючу анімацію"
|
||||
bounce: "Анімація (пружина)"
|
||||
shake: "Анімація (Shake)"
|
||||
twitch: "Анімація (Twitch)"
|
||||
spin: "Анімація (Spin)"
|
||||
_reversi:
|
||||
reversi: "Реверсі"
|
||||
gameSettings: "Налаштування гри"
|
||||
chooseBoard: "Вибір дошки"
|
||||
blackOrWhite: "Чорні / Білі"
|
||||
blackIs: "{name} грає чорними"
|
||||
rules: "Правила"
|
||||
botSettings: "Параметри бота"
|
||||
thisGameIsStartedSoon: "Гра розпочнеться через кілька секунд"
|
||||
waitingForOther: "Чекаємо на хід суперника"
|
||||
waitingForMe: "Чекаємо на ваш хід"
|
||||
waitingBoth: "Приготуйтесь"
|
||||
ready: "Готовність"
|
||||
cancelReady: "Скасувати готовність"
|
||||
opponentTurn: "Хід суперника"
|
||||
myTurn: "Ваш хід"
|
||||
turnOf: "Хід {name}"
|
||||
pastTurnOf: "Хід {name}"
|
||||
surrender: "Здатися"
|
||||
drawn: "Нічия"
|
||||
won: "Перемога {name}"
|
||||
black: "Чорні"
|
||||
white: "Білі"
|
||||
total: "Всього"
|
||||
turnCount: "Хід {count}"
|
||||
myGames: "Мої ігри"
|
||||
allGames: "Усі ігри"
|
||||
ended: "Завершено"
|
||||
_instanceTicker:
|
||||
none: "Не відображати"
|
||||
remote: "Відображати для віддалених користувачів"
|
||||
always: "Відображати завжди"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "Автоматично перезавантажити"
|
||||
dialog: "Показати діалогове вікно"
|
||||
quiet: "Показати ненав’язливе попередження"
|
||||
_channel:
|
||||
create: "Створити канал"
|
||||
edit: "Редагувати канал"
|
||||
setBanner: "Встановити банер"
|
||||
removeBanner: "Видалити банер"
|
||||
featured: "Тренди"
|
||||
usersCount: "{n} учасників"
|
||||
notesCount: "{n} дописів"
|
||||
_sidebar:
|
||||
full: "Повна"
|
||||
icon: "Аватар"
|
||||
hide: "Сховати"
|
||||
_wordMute:
|
||||
soft: "М'яко"
|
||||
hard: "Жорстко"
|
||||
mutedNotes: "Заблоковані нотатки"
|
||||
_theme:
|
||||
keys:
|
||||
accent: "Акцент"
|
||||
bg: "Фон"
|
||||
fg: "Текст"
|
||||
focus: "Фокус"
|
||||
indicator: "Індикатор"
|
||||
panel: "Панель"
|
||||
shadow: "Тінь"
|
||||
header: "Заголовок"
|
||||
navBg: "Фон бокової панелі"
|
||||
navFg: "Текст бокової панелі"
|
||||
navHoverFg: "Текст бокової панелі (під курсором)"
|
||||
navActive: "Текст бокової панелі (активне)"
|
||||
navIndicator: "Індикатор бокової панелі"
|
||||
link: "Посилання"
|
||||
hashtag: "Хештеґ"
|
||||
mention: "Згадка"
|
||||
mentionMe: "Згадки (мене)"
|
||||
renote: "Поширити"
|
||||
divider: "Розділювач"
|
||||
_sfx:
|
||||
note: "Нотатки"
|
||||
notification: "Сповіщення"
|
||||
chat: "Чати"
|
||||
_ago:
|
||||
unknown: "Невідомо"
|
||||
future: "Майбутнє"
|
||||
justNow: "Щойно"
|
||||
secondsAgo: "{n}с тому"
|
||||
minutesAgo: "{n}х тому"
|
||||
hoursAgo: "{n}г тому"
|
||||
daysAgo: "{n}д тому"
|
||||
weeksAgo: "{n} тиж. тому"
|
||||
monthsAgo: "{n} міс. тому"
|
||||
yearsAgo: "{n} р. тому"
|
||||
_time:
|
||||
second: "с"
|
||||
minute: "х"
|
||||
hour: "г"
|
||||
day: "д"
|
||||
_tutorial:
|
||||
title: "Як користуватись Misskey"
|
||||
step1_1: "Ласкаво просимо!"
|
||||
step1_3: "Наразі ваша стрічка порожня, оскільки ви ще не написали жодної нотатки і не підписані на інших."
|
||||
step3_2: "Наступним кроком є написання нотатки. Це можна зробити, натиснувши зображення олівця на екрані."
|
||||
_2fa:
|
||||
registerKey: "Зареєструвати новий ключ безпеки"
|
||||
_permissions:
|
||||
"write:account": "Змінити дані акаунту"
|
||||
"read:blocks": "Переглянути список заблокованих"
|
||||
"write:blocks": "Редагувати список заблокованих"
|
||||
"read:drive": "Переглянути вміст Диска"
|
||||
_antennaSources:
|
||||
homeTimeline: "Нотатки тих, на кого ви підписані"
|
||||
_widgets:
|
||||
notifications: "Сповіщення"
|
||||
timeline: "Стрічка"
|
||||
activity: "Активність"
|
||||
federation: "Федіверс"
|
||||
_cw:
|
||||
show: "Показати більше"
|
||||
_poll:
|
||||
deadlineTime: "г"
|
||||
_visibility:
|
||||
home: "Домівка"
|
||||
followers: "Підписники"
|
||||
localOnly: "Лише локально"
|
||||
_postForm:
|
||||
replyPlaceholder: "Відповідь на цю нотатку..."
|
||||
_profile:
|
||||
name: "Ім'я"
|
||||
username: "Ім'я користувача"
|
||||
_exportOrImport:
|
||||
followingList: "Підписки"
|
||||
muteList: "Ігнорувати"
|
||||
blockingList: "Заблокувати"
|
||||
userLists: "Списки"
|
||||
_timelines:
|
||||
home: "Домівка"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "За умовчанням"
|
||||
_furnitures:
|
||||
monitor: "Монітор"
|
||||
_pages:
|
||||
featured: "Популярні"
|
||||
blocks:
|
||||
image: "Зображення"
|
||||
script:
|
||||
categories:
|
||||
list: "Списки"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Списки"
|
||||
_randomPick:
|
||||
arg1: "Списки"
|
||||
_dailyRandomPick:
|
||||
arg1: "Списки"
|
||||
_seedRandomPick:
|
||||
arg2: "Списки"
|
||||
_pick:
|
||||
arg1: "Списки"
|
||||
arg2: "Позиція"
|
||||
listLen: "Отримати довжину списку"
|
||||
_listLen:
|
||||
arg1: "Списки"
|
||||
number: "Число"
|
||||
stringToNumber: "Текст на число"
|
||||
_stringToNumber:
|
||||
arg1: "Текст"
|
||||
numberToString: "Число на текст"
|
||||
_numberToString:
|
||||
arg1: "Число"
|
||||
splitStrByLine: "Розбиття тексту на рядки"
|
||||
_splitStrByLine:
|
||||
arg1: "Текст"
|
||||
ref: "Змінні"
|
||||
aiScriptVar: "Змінна AiScript"
|
||||
fn: "Функції"
|
||||
_fn:
|
||||
arg1: "Вивід"
|
||||
for: "Повторення"
|
||||
_for:
|
||||
arg1: "Кількість повторень"
|
||||
arg2: "Дія"
|
||||
types:
|
||||
string: "Текст"
|
||||
number: "Число"
|
||||
boolean: "Прапорець"
|
||||
array: "Списки"
|
||||
_relayStatus:
|
||||
requesting: "Очікує затвердження"
|
||||
accepted: "Затверджено"
|
||||
rejected: "Відхилено"
|
||||
_notification:
|
||||
fileUploaded: "Файл успішно завантажено"
|
||||
youGotMention: "{name} згадує вас"
|
||||
youGotReply: "{name} відповідає"
|
||||
youGotQuote: "{name} цитує вас"
|
||||
youRenoted: "{name} поширює"
|
||||
youGotPoll: "{name} бере участь в опитуванні"
|
||||
youGotMessagingMessageFromUser: "Повідомлення від {name}"
|
||||
youGotMessagingMessageFromGroup: "Нове повідомлення в групі {name}"
|
||||
youWereFollowed: "Новий підписник"
|
||||
youReceivedFollowRequest: "Ви отримали запит на підписку"
|
||||
yourFollowRequestAccepted: "Запит на підписку прийнято"
|
||||
youWereInvitedToGroup: "Запрошення до групи"
|
||||
_types:
|
||||
all: "Все"
|
||||
follow: "Підписки"
|
||||
mention: "Згадка"
|
||||
reply: "Відповіді"
|
||||
renote: "Поширення"
|
||||
quote: "Цитування"
|
||||
reaction: "Реакції"
|
||||
pollVote: "Опитування"
|
||||
receiveFollowRequest: "Запити на підписку"
|
||||
followRequestAccepted: "Прийняті підписки"
|
||||
groupInvited: "Запрошення до груп"
|
||||
app: "Сповіщення від додатків"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "Завжди показувати головну колонку"
|
||||
columnAlign: "Вирівняти стовпці"
|
||||
addColumn: "Додати стовпець"
|
||||
swapLeft: "Пересунути ліворуч"
|
||||
swapRight: "Пересунути праворуч"
|
||||
swapUp: "Пересунути вгору"
|
||||
swapDown: "Пересунути вниз"
|
||||
stackLeft: "У стовпчик вліво"
|
||||
popRight: "Витягнути вправо"
|
||||
_columns:
|
||||
widgets: "Віджети"
|
||||
notifications: "Сповіщення"
|
||||
tl: "Стрічка"
|
||||
antenna: "Антени"
|
||||
list: "Списки"
|
||||
mentions: "Згадки"
|
||||
direct: "Особисте"
|
1123
locales/zh-TW.yml
14
migration/1582210532752-antenna-exclude.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class antennaExclude1582210532752 implements MigrationInterface {
|
||||
name = 'antennaExclude1582210532752'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" ADD "excludeKeywords" jsonb NOT NULL DEFAULT '[]'`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "antenna" DROP COLUMN "excludeKeywords"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1582875306439-note-reaction-length.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class noteReactionLength1582875306439 implements MigrationInterface {
|
||||
name = 'noteReactionLength1582875306439'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(128)`, undefined);
|
||||
}
|
||||
|
||||
}
|
36
migration/1585361548360-miauth.ts
Normal file
@ -0,0 +1,36 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class miauth1585361548360 implements MigrationInterface {
|
||||
name = 'miauth1585361548360'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "lastUsedAt" TIMESTAMP WITH TIME ZONE DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "session" character varying(128) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "name" character varying(128) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "description" character varying(512) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "iconUrl" character varying(512) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "permission" character varying(64) array NOT NULL DEFAULT '{}'::varchar[]`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD "fetched" boolean NOT NULL DEFAULT false`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET DEFAULT null`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_bf3a053c07d9fb5d87317c56ee" ON "access_token" ("session") `, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_bf3a053c07d9fb5d87317c56ee"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" DROP DEFAULT`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ALTER COLUMN "appId" SET NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "fetched"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "permission"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "iconUrl"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "description"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "name"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "session"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP COLUMN "lastUsedAt"`, undefined);
|
||||
}
|
||||
|
||||
}
|
48
migration/1585385921215-custom-notification.ts
Normal file
@ -0,0 +1,48 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class customNotification1585385921215 implements MigrationInterface {
|
||||
name = 'customNotification1585385921215'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customBody" character varying(2048)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customHeader" character varying(256)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "customIcon" character varying(1024)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD "appAccessTokenId" character varying(32)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" DROP NOT NULL`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS 'The ID of sender user of the Notification.'`, undefined);
|
||||
await queryRunner.query(`ALTER TYPE "public"."notification_type_enum" RENAME TO "notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`CREATE TYPE "notification_type_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum" USING "type"::"text"::"notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS 'The type of the Notification.'`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71" ON "notification" ("notifierId") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_33f33cc8ef29d805a97ff4628b" ON "notification" ("type") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_080ab397c379af09b9d2169e5b" ON "notification" ("isRead") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c" ON "notification" ("appAccessTokenId") `, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9" FOREIGN KEY ("appAccessTokenId") REFERENCES "access_token"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_e22bf6bda77b6adc1fd9e75c8c9"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e22bf6bda77b6adc1fd9e75c8c"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_080ab397c379af09b9d2169e5b"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_33f33cc8ef29d805a97ff4628b"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3b4e96eec8d36a8bbb9d02aa71"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."type" IS ''`, undefined);
|
||||
await queryRunner.query(`CREATE TYPE "notification_type_enum_old" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited')`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "type" TYPE "notification_type_enum_old" USING "type"::"text"::"notification_type_enum_old"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`ALTER TYPE "notification_type_enum_old" RENAME TO "notification_type_enum"`, undefined);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifierId" IS ''`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ALTER COLUMN "notifierId" SET NOT NULL`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "appAccessTokenId"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customIcon"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customHeader"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP COLUMN "customBody"`, undefined);
|
||||
}
|
||||
|
||||
}
|
15
migration/1585772678853-ap-url.ts
Normal file
@ -0,0 +1,15 @@
|
||||
/* tslint:disable:quotemark class-name indent */
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class apUrl1585772678853 implements MigrationInterface {
|
||||
name = 'apUrl1585772678853'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD "url" character varying(512)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "url"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1586624197029-AddObjectStorageUseProxy.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from 'typeorm';
|
||||
|
||||
export class AddObjectStorageUseProxy1586624197029 implements MigrationInterface {
|
||||
name = 'AddObjectStorageUseProxy1586624197029'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseProxy" boolean NOT NULL DEFAULT true`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseProxy"`, undefined);
|
||||
}
|
||||
|
||||
}
|
12
migration/1586641139527-remote-reaction.ts
Normal file
@ -0,0 +1,12 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class remoteReaction1586641139527 implements MigrationInterface {
|
||||
name = 'remoteReaction1586641139527'
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(260)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ALTER COLUMN "reaction" TYPE character varying(130)`, undefined);
|
||||
}
|
||||
}
|
14
migration/1586708940386-pageAiScript.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class pageAiScript1586708940386 implements MigrationInterface {
|
||||
name = 'pageAiScript1586708940386'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "script" character varying(16384) NOT NULL DEFAULT ''`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "script"`, undefined);
|
||||
}
|
||||
|
||||
}
|
18
migration/1588044505511-hCaptcha.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class hCaptcha1588044505511 implements MigrationInterface {
|
||||
name = 'hCaptcha1588044505511'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "enableHcaptcha" boolean NOT NULL DEFAULT false`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSiteKey" character varying(64)`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "hcaptchaSecretKey" character varying(64)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSecretKey"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "hcaptchaSiteKey"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableHcaptcha"`, undefined);
|
||||
}
|
||||
|
||||
}
|
18
migration/1589023282116-pubRelay.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class pubRelay1589023282116 implements MigrationInterface {
|
||||
name = 'pubRelay1589023282116'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TYPE "relay_status_enum" AS ENUM('requesting', 'accepted', 'rejected')`, undefined);
|
||||
await queryRunner.query(`CREATE TABLE "relay" ("id" character varying(32) NOT NULL, "inbox" character varying(512) NOT NULL, "status" "relay_status_enum" NOT NULL, CONSTRAINT "PK_78ebc9cfddf4292633b7ba57aee" PRIMARY KEY ("id"))`, undefined);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab" ON "relay" ("inbox") `, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_0d9a1738f2cf7f3b1c3334dfab"`, undefined);
|
||||
await queryRunner.query(`DROP TABLE "relay"`, undefined);
|
||||
await queryRunner.query(`DROP TYPE "relay_status_enum"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1595075960584-blurhash.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class blurhash1595075960584 implements MigrationInterface {
|
||||
name = 'blurhash1595075960584'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" ADD "blurhash" character varying(128)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" DROP COLUMN "blurhash"`);
|
||||
}
|
||||
|
||||
}
|
20
migration/1595077605646-blurhash-for-avatar-banner.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class blurhashForAvatarBanner1595077605646 implements MigrationInterface {
|
||||
name = 'blurhashForAvatarBanner1595077605646'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarColor"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerColor"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "avatarBlurhash" character varying(128)`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "bannerBlurhash" character varying(128)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "bannerBlurhash"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "avatarBlurhash"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "bannerColor" character varying(32)`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "avatarColor" character varying(32)`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1595676934834-instance-icon-url.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceIconUrl1595676934834 implements MigrationInterface {
|
||||
name = 'instanceIconUrl1595676934834'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "iconUrl" character varying(256) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "iconUrl"`);
|
||||
}
|
||||
|
||||
}
|
30
migration/1595771249699-word-mute.ts
Normal file
@ -0,0 +1,30 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class wordMute1595771249699 implements MigrationInterface {
|
||||
name = 'wordMute1595771249699'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "muted_note" ("id" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_897e2eff1c0b9b64e55ca1418a4" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_70ab9786313d78e4201d81cdb8" ON "muted_note" ("noteId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d8e07aa18c2d64e86201601aec" ON "muted_note" ("userId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a8c6bfd637d3f1d67a27c48e27" ON "muted_note" ("noteId", "userId") `);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "enableWordMute" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutedWords" jsonb NOT NULL DEFAULT '[]'`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3befe6f999c86aff06eb0257b4" ON "user_profile" ("enableWordMute") `);
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_70ab9786313d78e4201d81cdb89" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" ADD CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_d8e07aa18c2d64e86201601aec1"`);
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" DROP CONSTRAINT "FK_70ab9786313d78e4201d81cdb89"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3befe6f999c86aff06eb0257b4"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutedWords"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "enableWordMute"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a8c6bfd637d3f1d67a27c48e27"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d8e07aa18c2d64e86201601aec"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_70ab9786313d78e4201d81cdb8"`);
|
||||
await queryRunner.query(`DROP TABLE "muted_note"`);
|
||||
}
|
||||
|
||||
}
|
18
migration/1595782306083-word-mute2.ts
Normal file
@ -0,0 +1,18 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class wordMute21595782306083 implements MigrationInterface {
|
||||
name = 'wordMute21595782306083'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TYPE "muted_note_reason_enum" AS ENUM('word', 'manual', 'spam', 'other')`);
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" ADD "reason" "muted_note_reason_enum" NOT NULL`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_636e977ff90b23676fb5624b25" ON "muted_note" ("reason") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_636e977ff90b23676fb5624b25"`);
|
||||
await queryRunner.query(`ALTER TABLE "muted_note" DROP COLUMN "reason"`);
|
||||
await queryRunner.query(`DROP TYPE "muted_note_reason_enum"`);
|
||||
}
|
||||
|
||||
}
|
58
migration/1596548170836-channel.ts
Normal file
@ -0,0 +1,58 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class channel1596548170836 implements MigrationInterface {
|
||||
name = 'channel1596548170836'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TABLE "channel" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "lastNotedAt" TIMESTAMP WITH TIME ZONE, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(2048), "bannerId" character varying(32), "notesCount" integer NOT NULL DEFAULT 0, "usersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_590f33ee6ee7d76437acf362e39" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_71cb7b435b7c0d4843317e7e16" ON "channel" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_29ef80c6f13bcea998447fce43" ON "channel" ("lastNotedAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_823bae55bd81b3be6e05cff438" ON "channel" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0f58c11241e649d2a638a8de94" ON "channel" ("notesCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_094b86cd36bb805d1aa1e8cc9a" ON "channel" ("usersCount") `);
|
||||
await queryRunner.query(`CREATE TABLE "channel_following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, CONSTRAINT "PK_8b104be7f7415113f2a02cd5bdd" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_11e71f2511589dcc8a4d3214f9" ON "channel_following" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0e43068c3f92cab197c3d3cd86" ON "channel_following" ("followeeId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6d8084ec9496e7334a4602707e" ON "channel_following" ("followerId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2e230dd45a10e671d781d99f3e" ON "channel_following" ("followerId", "followeeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "channel_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "channelId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_44f7474496bcf2e4b741681146d" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8125f950afd3093acb10d2db8a" ON "channel_note_pining" ("channelId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f36fed37d6d4cdcc68c803cd9c" ON "channel_note_pining" ("channelId", "noteId") `);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD "channelId" character varying(32) DEFAULT null`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `);
|
||||
await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_823bae55bd81b3be6e05cff4383" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "channel" ADD CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_f22169eb10657bded6d875ac8f9" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e" FOREIGN KEY ("followeeId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" ADD CONSTRAINT "FK_6d8084ec9496e7334a4602707e1" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_8125f950afd3093acb10d2db8a8" FOREIGN KEY ("channelId") REFERENCES "channel"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_note_pining" ADD CONSTRAINT "FK_10b19ef67d297ea9de325cd4502" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_10b19ef67d297ea9de325cd4502"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_note_pining" DROP CONSTRAINT "FK_8125f950afd3093acb10d2db8a8"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_6d8084ec9496e7334a4602707e1"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" DROP CONSTRAINT "FK_0e43068c3f92cab197c3d3cd86e"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_f22169eb10657bded6d875ac8f9"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_999da2bcc7efadbfe0e92d3bc19"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel" DROP CONSTRAINT "FK_823bae55bd81b3be6e05cff4383"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP COLUMN "channelId"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f36fed37d6d4cdcc68c803cd9c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8125f950afd3093acb10d2db8a"`);
|
||||
await queryRunner.query(`DROP TABLE "channel_note_pining"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2e230dd45a10e671d781d99f3e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6d8084ec9496e7334a4602707e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0e43068c3f92cab197c3d3cd86"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_11e71f2511589dcc8a4d3214f9"`);
|
||||
await queryRunner.query(`DROP TABLE "channel_following"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_094b86cd36bb805d1aa1e8cc9a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0f58c11241e649d2a638a8de94"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_823bae55bd81b3be6e05cff438"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_29ef80c6f13bcea998447fce43"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_71cb7b435b7c0d4843317e7e16"`);
|
||||
await queryRunner.query(`DROP TABLE "channel"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1596786425167-channel2.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class channel21596786425167 implements MigrationInterface {
|
||||
name = 'channel21596786425167'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1597230137744-objectStorageSetPublicRead.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class objectStorageSetPublicRead1597230137744 implements MigrationInterface {
|
||||
name = 'objectStorageSetPublicRead1597230137744'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSetPublicRead" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSetPublicRead"`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1597236229720-IncludingNotificationTypes.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class IncludingNotificationTypes1597236229720 implements MigrationInterface {
|
||||
name = 'IncludingNotificationTypes1597236229720'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE TYPE "user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`);
|
||||
await queryRunner.query(`DROP TYPE "user_profile_includingnotificationtypes_enum"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1597385880794-add-sensitive-index.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class addSensitiveIndex1597385880794 implements MigrationInterface {
|
||||
name = 'addSensitiveIndex1597385880794'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a7eba67f8b3fa27271e85d2e26" ON "drive_file" ("isSensitive") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_a7eba67f8b3fa27271e85d2e26"`);
|
||||
}
|
||||
|
||||
}
|
27
migration/1597459042300-channel-unread.ts
Normal file
@ -0,0 +1,27 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class channelUnread1597459042300 implements MigrationInterface {
|
||||
name = 'channelUnread1597459042300'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`TRUNCATE TABLE "note_unread"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" DROP COLUMN "readCursor"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" ADD "isMentioned" boolean NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" ADD "noteChannelId" character varying(32)`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_25b1dd384bec391b07b74b861c" ON "note_unread" ("isMentioned") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30" ON "note_unread" ("isSpecified") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_29e8c1d579af54d4232939f994" ON "note_unread" ("noteUserId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6a57f051d82c6d4036c141e107" ON "note_unread" ("noteChannelId") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_6a57f051d82c6d4036c141e107"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_29e8c1d579af54d4232939f994"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_89a29c9237b8c3b6b3cbb4cb30"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_25b1dd384bec391b07b74b861c"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "noteChannelId"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" DROP COLUMN "isMentioned"`);
|
||||
await queryRunner.query(`ALTER TABLE "channel_following" ADD "readCursor" TIMESTAMP WITH TIME ZONE NOT NULL`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1597893996136-ChannelNoteIdDescIndex.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ChannelNoteIdDescIndex1597893996136 implements MigrationInterface {
|
||||
name = 'ChannelNoteIdDescIndex1597893996136'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_note_on_channelId_and_id_desc" ON "note" ("channelId", "id" desc)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_note_on_channelId_and_id_desc"`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f22169eb10657bded6d875ac8f" ON "note" ("channelId") `);
|
||||
}
|
||||
|
||||
}
|
20
migration/1600353287890-mutingNotificationTypes.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class mutingNotificationTypes1600353287890 implements MigrationInterface {
|
||||
name = 'mutingNotificationTypes1600353287890'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "includingNotificationTypes"`);
|
||||
await queryRunner.query(`DROP TYPE "public"."user_profile_includingnotificationtypes_enum"`);
|
||||
await queryRunner.query(`CREATE TYPE "user_profile_mutingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "mutingNotificationTypes" "user_profile_mutingnotificationtypes_enum" array NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "mutingNotificationTypes"`);
|
||||
await queryRunner.query(`DROP TYPE "user_profile_mutingnotificationtypes_enum"`);
|
||||
await queryRunner.query(`CREATE TYPE "public"."user_profile_includingnotificationtypes_enum" AS ENUM('follow', 'mention', 'reply', 'renote', 'quote', 'reaction', 'pollVote', 'receiveFollowRequest', 'followRequestAccepted', 'groupInvited', 'app')`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "includingNotificationTypes" "user_profile_includingnotificationtypes_enum" array`);
|
||||
}
|
||||
|
||||
}
|
32
migration/1603094348345-refine-abuse-user-report.ts
Normal file
@ -0,0 +1,32 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class refineAbuseUserReport1603094348345 implements MigrationInterface {
|
||||
name = 'refineAbuseUserReport1603094348345'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "userId" TO "targetUserId"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "assigneeId" character varying(32)`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "resolved" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(2048) NOT NULL DEFAULT '{}'::varchar[]`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a" ON "abuse_user_report" ("resolved") `);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de" FOREIGN KEY ("assigneeId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_08b883dd5fdd6f9c4c1572b36de"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2b15aaf4a0dc5be3499af7ab6a"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "comment"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "comment" character varying(512) NOT NULL DEFAULT '{}'::varchar[]`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "resolved"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "assigneeId"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" RENAME COLUMN "targetUserId" TO "userId"`);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
}
|
20
migration/1603095701770-refine-abuse-user-report2.ts
Normal file
@ -0,0 +1,20 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class refineAbuseUserReport21603095701770 implements MigrationInterface {
|
||||
name = 'refineAbuseUserReport21603095701770'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "targetUserHost" character varying(128)`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD "reporterHost" character varying(128)`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd" ON "abuse_user_report" ("targetUserHost") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f8d8b93740ad12c4ce8213a199" ON "abuse_user_report" ("reporterHost") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_f8d8b93740ad12c4ce8213a199"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4ebbf7f93cdc10e8d1ef2fc6cd"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "reporterHost"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP COLUMN "targetUserHost"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1603776877564-instance-theme-color.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceThemeColor1603776877564 implements MigrationInterface {
|
||||
name = 'instanceThemeColor1603776877564'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "themeColor" character varying(64) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "themeColor"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1603781553011-instance-favicon.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceFavicon1603781553011 implements MigrationInterface {
|
||||
name = 'instanceFavicon1603781553011'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "faviconUrl" character varying(256) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "faviconUrl"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1604821689616-delete-auto-watch.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class deleteAutoWatch1604821689616 implements MigrationInterface {
|
||||
name = 'deleteAutoWatch1604821689616'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "autoWatch"`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "autoWatch" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
}
|
15
migration/1605408848373-clip-description.ts
Normal file
@ -0,0 +1,15 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class clipDescription1605408848373 implements MigrationInterface {
|
||||
name = 'clipDescription1605408848373'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "clip" ADD "description" character varying(2048) DEFAULT null`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
|
||||
await queryRunner.query(`ALTER TABLE "clip" DROP COLUMN "description"`);
|
||||
}
|
||||
|
||||
}
|
434
migration/1605408971051-comments.ts
Normal file
@ -0,0 +1,434 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class comments1605408971051 implements MigrationInterface {
|
||||
name = 'comments1605408971051'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS 'The created date of the Log.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS 'The created date of the DriveFolder.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS 'The name of the DriveFolder.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS 'The parent folder ID. If null, it means the DriveFolder is located in root.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS 'The created date of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS 'The host of owner. It will be null if the user in local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS 'The MD5 hash of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS 'The file name of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS 'The content type (MIME) of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS 'The file size (bytes) of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS 'The comment of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS 'The BlurHash string.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS 'The any properties of the DriveFile. For example, it includes image width/height.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS 'The URL of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS 'The URL of the thumbnail of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS 'The URL of the webpublic of the DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS 'The URI of the DriveFile. it will be null when the DriveFile is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS 'The parent folder ID. If null, it means the DriveFile is located in root.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS 'Whether the DriveFile is NSFW.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS 'Whether the DriveFile is direct link to remote server.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS 'The created date of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS 'The updated date of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS 'The username of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS 'The username (lowercased) of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS 'The name of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS 'The count of followers.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS 'The count of following.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS 'The count of notes.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS 'The ID of avatar DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS 'The ID of banner DriveFile.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS 'Whether the User is suspended.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS 'Whether the User is silenced.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS 'Whether the User is locked.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS 'Whether the User is a bot.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS 'Whether the User is a cat.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS 'Whether the User is the admin.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS 'Whether the User is a moderator.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS 'The host of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS 'The inbox URL of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS 'The sharedInbox URL of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS 'The featured URL of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS 'The URI of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS 'The native access token of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS 'The created date of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS 'The secret key of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS 'The name of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS 'The description of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS 'The callbackUrl of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS 'The created date of the AccessToken.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS 'The created date of the Channel.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS 'The name of the Channel.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS 'The description of the Channel.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS 'The ID of banner Channel.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS 'The count of notes.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS 'The count of users.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS 'The created date of the Note.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS 'The ID of reply target.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS 'The ID of renote target.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS 'The ID of author.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS 'The URI of a note. it will be null when the note is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS 'The human readable url of a note. it will be null when the note is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS 'The ID of source channel.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS 'The created date of the PollVote.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS 'The created date of the NoteReaction.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS 'The created date of the NoteWatching.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS 'The watcher ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS 'The target Note ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS 'The created date of the FollowRequest.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS 'The followee user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS 'The follower user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS 'id of Follow Activity.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS 'The created date of the UserGroup.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS 'The ID of owner.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS 'The created date of the UserGroupInvitation.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS 'The user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS 'The group ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS 'The created date of the Notification.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS 'The ID of recipient user of the Notification.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS 'Whether the Notification is read.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS 'Drive capacity of a local user (MB)'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS 'Drive capacity of a remote user (MB)'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS 'Max allowed note text length in characters'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS 'The created date of the Following.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS 'The followee user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS 'The follower user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS 'The caught date of the Instance.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS 'The host of the Instance.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS 'The count of the users of the Instance.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS 'The count of the notes of the Instance.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS 'The software of the Instance.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS 'The created date of the Muting.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS 'The mutee user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS 'The muter user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS 'The created date of the Blocking.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS 'The blockee user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS 'The blocker user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS 'The created date of the UserList.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS 'The name of the UserList.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS 'The created date of the UserListJoining.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS 'The user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS 'The list ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS 'The created date of the UserGroupJoining.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS 'The user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS 'The group ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS 'The created date of the NoteFavorite.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS 'The created date of the AbuseUserReport.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS 'The created date of the MessagingMessage.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS 'The sender user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS 'The recipient group ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS 'The created date of the Signin.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS 'The created date of the AuthSession.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS 'The created date of the ReversiGame.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS 'The started date of the ReversiGame.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS 'The created date of the ReversiMatching.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS 'The created date of the UserNotePinings.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS 'The created date of the Page.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS 'The updated date of the Page.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS 'The ID of author.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS 'The location of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS 'The birthday (YYYY-MM-DD) of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS 'Remote URL of the user.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS 'The email address of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS 'The password hash of the User. It will be null if the origin of the user is local.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS 'The client-specific data of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS 'The room data of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS 'Variable-length id given to navigator.credentials.get()'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS 'Variable-length public key used to verify attestations (hex-encoded).'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS 'The date of the last time the UserSecurityKey was successfully validated.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS 'User-defined name for this key'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS 'Hex-encoded sha256 hash of the challenge.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS 'The date challenge was created for expiry purposes.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS 'Indicates that the challenge is only for registration purposes if true to prevent the challenge for being used as authentication.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS 'The created date of the ModerationLog.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS 'The created date of the Announcement.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS 'The updated date of the Announcement.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS 'The created date of the AnnouncementRead.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS 'The created date of the Clip.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS 'The name of the Clip.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS 'The description of the Clip.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS 'The note ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS 'The clip ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS 'The created date of the Antenna.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS 'The owner ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS 'The name of the Antenna.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS 'The note ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS 'The antenna ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS '[Denormalized]'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS 'The created date of the PromoRead.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS 'The note ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS 'The user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS 'The reason of the MutedNote.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS 'The created date of the ChannelFollowing.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS 'The followee channel ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS 'The follower user ID.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS 'The created date of the ChannelNotePining.'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_note_pining"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."followeeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel_following"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."reason" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muted_note"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_read"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "promo_note"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."antennaId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna_note"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "antenna"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."clipId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip_note"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "clip"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement_read"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement"."updatedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "announcement"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "moderation_log"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."registrationChallenge" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "attestation_challenge"."challenge" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."lastUsed" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."publicKey" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_security_key"."id" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."room" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."clientData" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."password" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."email" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."url" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."description" IS 'The description (bio) of the User.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."birthday" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."location" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."updatedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "page"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_publickey"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_keypair"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."userHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteVisibility" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_note_pining"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_matching"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form2" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."form1" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."startedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "reversi_game"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "auth_session"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "signin"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."groupId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."reporterHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."targetUserHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "abuse_user_report"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_favorite"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userGroupId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_joining"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userListId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list_joining"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_list"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."blockeeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "blocking"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."muterId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."muteeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "muting"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."themeColor" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."faviconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."iconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerEmail" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."maintainerName" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."openRegistrations" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareVersion" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."softwareName" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."notesCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."usersCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."host" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "instance"."caughtAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeSharedInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerSharedInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."followeeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "following"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."maxNoteTextLength" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."remoteDriveCapacityMb" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "meta"."localDriveCapacityMb" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."isRead" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."notifieeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "notification"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userGroupId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group_invitation"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_group"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeSharedInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerSharedInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."requestId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."followeeId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "follow_request"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteChannelId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_unread"."noteUserId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteUserId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."noteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_watching"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note_reaction"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "poll_vote"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteUserId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyUserId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."userHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."channelId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."url" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."uri" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."renoteId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."replyId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "note"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."usersCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."notesCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."bannerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "channel"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."iconUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."appId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."session" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."lastUsedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "access_token"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."callbackUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."permission" IS 'The permission of the App.'`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."description" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."secret" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "app"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."token" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."uri" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."featured" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."sharedInbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."inbox" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."host" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isModerator" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isAdmin" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isCat" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isBot" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isLocked" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isSilenced" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."isSuspended" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."bannerId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."avatarId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."notesCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followingCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."followersCount" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."usernameLower" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."username" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."updatedAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isLink" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."isSensitive" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."folderId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."uri" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."webpublicUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."thumbnailUrl" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."url" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."properties" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."blurhash" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."comment" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."size" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."type" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."md5" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userHost" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_file"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."parentId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."userId" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."name" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "drive_folder"."createdAt" IS NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "log"."createdAt" IS NULL`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1605585339718-instance-pinned-pages.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instancePinnedPages1605585339718 implements MigrationInterface {
|
||||
name = 'instancePinnedPages1605585339718'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedPages" character varying(512) array NOT NULL DEFAULT '{"/featured", "/channels", "/explore", "/pages", "/about-misskey"}'::varchar[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedPages"`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1605965516823-instance-images.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instanceImages1605965516823 implements MigrationInterface {
|
||||
name = 'instanceImages1605965516823'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "backgroundImageUrl" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "logoImageUrl" character varying(512)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "logoImageUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "backgroundImageUrl"`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1606191203881-no-crawle.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class noCrawle1606191203881 implements MigrationInterface {
|
||||
name = 'noCrawle1606191203881'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "noCrawle" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`COMMENT ON COLUMN "user_profile"."noCrawle" IS 'Whether reject index by crawler.'`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "noCrawle"`);
|
||||
}
|
||||
|
||||
}
|
14
migration/1607151207216-instance-pinned-clip.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class instancePinnedClip1607151207216 implements MigrationInterface {
|
||||
name = 'instancePinnedClip1607151207216'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedClipId" character varying(32)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedClipId"`);
|
||||
}
|
||||
|
||||
}
|
296
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"author": "syuilo <syuilotan@yahoo.co.jp>",
|
||||
"version": "12.17.0",
|
||||
"version": "12.62.1",
|
||||
"codename": "indigo",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@ -11,52 +11,59 @@
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node ./index.js",
|
||||
"start-product": "cross-env NODE_ENV=production node ./index.js",
|
||||
"init": "npm run migrate",
|
||||
"ormconfig": "node ./built/ormconfig.js",
|
||||
"migrate": "ts-node ./node_modules/typeorm/cli.js migration:run",
|
||||
"migrateandstart": "npm run migrate && npm run start",
|
||||
"build": "webpack && gulp build",
|
||||
"build-product": "cross-env NODE_ENV=production webpack && gulp build",
|
||||
"webpack": "webpack",
|
||||
"watch": "webpack --watch",
|
||||
"gulp": "gulp build",
|
||||
"clean": "gulp clean",
|
||||
"cleanall": "gulp cleanall",
|
||||
"lint": "gulp lint",
|
||||
"test": "cross-env TS_NODE_FILES=true gulp test",
|
||||
"lint": "tslint 'src/**/*.ts'",
|
||||
"test": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_COMPILER_OPTIONS=\"{\\\"target\\\":\\\"es2017\\\",\\\"module\\\":\\\"commonjs\\\",\\\"typeRoots\\\":[\\\"node_modules/@types\\\",\\\"src/@types\\\"]}\" mocha",
|
||||
"format": "gulp format"
|
||||
},
|
||||
"resolutions": {
|
||||
"https-proxy-agent": "^3.0.0",
|
||||
"lodash": "^4.17.13"
|
||||
"chokidar": "^3.3.1",
|
||||
"constantinople": "^4.0.1",
|
||||
"gulp/gulp-cli/yargs/yargs-parser": "5.0.0-security.0",
|
||||
"jsonld/rdf-canonize/node-forge": "0.10.0",
|
||||
"lodash": "^4.17.20"
|
||||
},
|
||||
"dependencies": {
|
||||
"@elastic/elasticsearch": "7.6.0",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.27",
|
||||
"@fortawesome/free-brands-svg-icons": "5.12.1",
|
||||
"@fortawesome/free-regular-svg-icons": "5.12.1",
|
||||
"@fortawesome/free-solid-svg-icons": "5.12.1",
|
||||
"@fortawesome/vue-fontawesome": "0.1.9",
|
||||
"@juggle/resize-observer": "3.0.2",
|
||||
"@koa/cors": "3.0.0",
|
||||
"@koa/multer": "2.0.2",
|
||||
"@koa/router": "8.0.8",
|
||||
"@babel/plugin-transform-runtime": "7.12.1",
|
||||
"@elastic/elasticsearch": "7.10.0",
|
||||
"@fortawesome/fontawesome-svg-core": "1.2.32",
|
||||
"@fortawesome/free-brands-svg-icons": "5.15.1",
|
||||
"@fortawesome/free-regular-svg-icons": "5.15.1",
|
||||
"@fortawesome/free-solid-svg-icons": "5.15.1",
|
||||
"@fortawesome/vue-fontawesome": "3.0.0-2",
|
||||
"@koa/cors": "3.1.0",
|
||||
"@koa/multer": "3.0.0",
|
||||
"@koa/router": "9.0.1",
|
||||
"@sinonjs/fake-timers": "6.0.1",
|
||||
"@syuilo/aiscript": "0.11.1",
|
||||
"@types/bcryptjs": "2.4.2",
|
||||
"@types/bull": "3.12.0",
|
||||
"@types/cbor": "5.0.0",
|
||||
"@types/bull": "3.14.4",
|
||||
"@types/cbor": "5.0.1",
|
||||
"@types/dateformat": "3.0.1",
|
||||
"@types/double-ended-queue": "2.1.1",
|
||||
"@types/glob": "7.1.1",
|
||||
"@types/escape-regexp": "0.0.0",
|
||||
"@types/glob": "7.1.3",
|
||||
"@types/gulp": "4.0.6",
|
||||
"@types/gulp-mocha": "0.0.32",
|
||||
"@types/gulp-rename": "0.0.33",
|
||||
"@types/gulp-replace": "0.0.31",
|
||||
"@types/is-url": "1.2.28",
|
||||
"@types/js-yaml": "3.12.2",
|
||||
"@types/jsdom": "12.2.4",
|
||||
"@types/js-yaml": "3.12.5",
|
||||
"@types/jsdom": "16.2.5",
|
||||
"@types/jsonld": "1.5.1",
|
||||
"@types/katex": "0.11.0",
|
||||
"@types/koa": "2.11.1",
|
||||
"@types/koa": "2.11.3",
|
||||
"@types/koa-bodyparser": "4.3.0",
|
||||
"@types/koa-compress": "2.0.9",
|
||||
"@types/koa-cors": "0.0.0",
|
||||
"@types/koa-favicon": "2.0.19",
|
||||
"@types/koa-logger": "3.1.1",
|
||||
@ -64,208 +71,199 @@
|
||||
"@types/koa-send": "4.1.2",
|
||||
"@types/koa-views": "2.0.4",
|
||||
"@types/koa__cors": "3.0.1",
|
||||
"@types/koa__multer": "2.0.1",
|
||||
"@types/koa__multer": "2.0.2",
|
||||
"@types/koa__router": "8.0.2",
|
||||
"@types/lolex": "5.1.0",
|
||||
"@types/markdown-it": "0.0.9",
|
||||
"@types/mocha": "7.0.1",
|
||||
"@types/node": "13.7.1",
|
||||
"@types/markdown-it": "10.0.3",
|
||||
"@types/matter-js": "0.14.7",
|
||||
"@types/mocha": "7.0.2",
|
||||
"@types/node": "14.0.22",
|
||||
"@types/node-fetch": "2.5.7",
|
||||
"@types/nodemailer": "6.4.0",
|
||||
"@types/nprogress": "0.2.0",
|
||||
"@types/oauth": "0.9.1",
|
||||
"@types/parse5": "5.0.2",
|
||||
"@types/parsimmon": "1.10.1",
|
||||
"@types/parse5": "5.0.3",
|
||||
"@types/parsimmon": "1.10.5",
|
||||
"@types/portscanner": "2.1.0",
|
||||
"@types/pug": "2.0.4",
|
||||
"@types/qrcode": "1.3.4",
|
||||
"@types/qrcode": "1.3.5",
|
||||
"@types/random-seed": "0.3.3",
|
||||
"@types/ratelimiter": "2.1.28",
|
||||
"@types/redis": "2.8.15",
|
||||
"@types/rename": "1.0.1",
|
||||
"@types/request": "2.48.4",
|
||||
"@types/request-promise-native": "1.0.17",
|
||||
"@types/ratelimiter": "3.4.0",
|
||||
"@types/redis": "2.8.28",
|
||||
"@types/rename": "1.0.2",
|
||||
"@types/request-stats": "3.0.0",
|
||||
"@types/rimraf": "2.0.3",
|
||||
"@types/rimraf": "3.0.0",
|
||||
"@types/seedrandom": "2.4.28",
|
||||
"@types/sharp": "0.24.0",
|
||||
"@types/showdown": "1.9.3",
|
||||
"@types/sharp": "0.26.0",
|
||||
"@types/sinonjs__fake-timers": "6.0.1",
|
||||
"@types/speakeasy": "2.0.5",
|
||||
"@types/systeminformation": "3.54.1",
|
||||
"@types/tinycolor2": "1.4.2",
|
||||
"@types/tmp": "0.1.0",
|
||||
"@types/uuid": "3.4.7",
|
||||
"@types/tmp": "0.2.0",
|
||||
"@types/uuid": "8.3.0",
|
||||
"@types/web-push": "3.3.0",
|
||||
"@types/webpack": "4.41.6",
|
||||
"@types/webpack-stream": "3.2.10",
|
||||
"@types/websocket": "1.0.0",
|
||||
"@types/ws": "7.2.1",
|
||||
"@typescript-eslint/parser": "2.19.2",
|
||||
"agentkeepalive": "4.1.0",
|
||||
"animejs": "3.1.0",
|
||||
"apexcharts": "3.15.6",
|
||||
"@types/webpack": "4.41.25",
|
||||
"@types/webpack-stream": "3.2.11",
|
||||
"@types/websocket": "1.0.1",
|
||||
"@types/ws": "7.4.0",
|
||||
"@typescript-eslint/parser": "4.6.1",
|
||||
"@vue/compiler-sfc": "3.0.3",
|
||||
"abort-controller": "3.0.0",
|
||||
"apexcharts": "3.22.2",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"autosize": "4.0.2",
|
||||
"autwh": "0.1.0",
|
||||
"aws-sdk": "2.617.0",
|
||||
"aws-sdk": "2.787.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"bull": "3.12.1",
|
||||
"blurhash": "1.1.3",
|
||||
"bull": "3.18.1",
|
||||
"cafy": "15.2.1",
|
||||
"cbor": "5.0.1",
|
||||
"chai": "4.2.0",
|
||||
"chalk": "3.0.0",
|
||||
"chart.js": "2.9.3",
|
||||
"cli-highlight": "2.1.4",
|
||||
"cbor": "5.1.0",
|
||||
"chalk": "4.1.0",
|
||||
"chart.js": "2.9.4",
|
||||
"cli-highlight": "2.1.9",
|
||||
"commander": "4.1.1",
|
||||
"content-disposition": "0.5.3",
|
||||
"core-js": "3.7.0",
|
||||
"crc-32": "1.2.0",
|
||||
"css-loader": "3.4.2",
|
||||
"css-loader": "5.0.1",
|
||||
"cssnano": "4.1.10",
|
||||
"dateformat": "3.0.3",
|
||||
"deep-entries": "3.1.0",
|
||||
"diskusage": "1.1.3",
|
||||
"double-ended-queue": "2.1.0-0",
|
||||
"eslint": "6.8.0",
|
||||
"eslint-plugin-vue": "6.1.2",
|
||||
"eventemitter3": "4.0.0",
|
||||
"feed": "4.1.0",
|
||||
"fibers": "4.0.2",
|
||||
"file-type": "14.1.2",
|
||||
"escape-regexp": "0.0.1",
|
||||
"eslint": "7.14.0",
|
||||
"eslint-plugin-vue": "7.1.0",
|
||||
"eventemitter3": "4.0.7",
|
||||
"feed": "4.2.1",
|
||||
"fibers": "5.0.0",
|
||||
"file-type": "16.0.1",
|
||||
"fluent-ffmpeg": "2.1.2",
|
||||
"glob": "7.1.6",
|
||||
"got": "11.8.0",
|
||||
"gulp": "4.0.2",
|
||||
"gulp-clean-css": "4.2.0",
|
||||
"gulp-dart-sass": "0.9.1",
|
||||
"gulp-mocha": "7.0.2",
|
||||
"gulp-rename": "2.0.0",
|
||||
"gulp-replace": "1.0.0",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"gulp-terser": "1.2.0",
|
||||
"gulp-tslint": "8.1.4",
|
||||
"gulp-typescript": "5.0.1",
|
||||
"gulp-typescript": "6.0.0-alpha.1",
|
||||
"hard-source-webpack-plugin": "0.13.1",
|
||||
"hcaptcha": "0.0.2",
|
||||
"html-minifier": "4.0.0",
|
||||
"http-signature": "1.3.1",
|
||||
"http-proxy-agent": "4.0.1",
|
||||
"http-signature": "1.3.5",
|
||||
"https-proxy-agent": "5.0.0",
|
||||
"idb-keyval": "3.2.0",
|
||||
"insert-text-at-cursor": "0.3.0",
|
||||
"is-root": "2.1.0",
|
||||
"is-svg": "4.2.1",
|
||||
"js-yaml": "3.13.1",
|
||||
"jsdom": "16.1.0",
|
||||
"json5": "2.1.1",
|
||||
"json5-loader": "3.0.0",
|
||||
"jsrsasign": "8.0.12",
|
||||
"katex": "0.11.1",
|
||||
"koa": "2.11.0",
|
||||
"koa-bodyparser": "4.2.1",
|
||||
"koa-compress": "3.0.0",
|
||||
"koa-favicon": "2.0.1",
|
||||
"js-yaml": "3.14.0",
|
||||
"jsdom": "16.4.0",
|
||||
"json5": "2.1.3",
|
||||
"json5-loader": "4.0.1",
|
||||
"jsonld": "3.2.0",
|
||||
"jsrsasign": "8.0.20",
|
||||
"katex": "0.12.0",
|
||||
"koa": "2.13.0",
|
||||
"koa-bodyparser": "4.3.0",
|
||||
"koa-favicon": "2.1.0",
|
||||
"koa-json-body": "5.3.0",
|
||||
"koa-logger": "3.2.1",
|
||||
"koa-mount": "4.0.0",
|
||||
"koa-send": "5.0.0",
|
||||
"koa-send": "5.0.1",
|
||||
"koa-slow": "2.1.0",
|
||||
"koa-views": "6.2.1",
|
||||
"koa-views": "6.3.1",
|
||||
"langmap": "0.0.16",
|
||||
"loader-utils": "1.2.3",
|
||||
"lolex": "5.1.2",
|
||||
"lookup-dns-cache": "2.1.0",
|
||||
"markdown-it": "10.0.0",
|
||||
"mocha": "7.0.1",
|
||||
"markdown-it": "11.0.1",
|
||||
"markdown-it-anchor": "6.0.1",
|
||||
"matter-js": "0.14.2",
|
||||
"mocha": "8.2.1",
|
||||
"moji": "0.5.1",
|
||||
"ms": "2.1.2",
|
||||
"multer": "1.4.2",
|
||||
"nested-property": "1.0.4",
|
||||
"node-fetch": "2.6.0",
|
||||
"nodemailer": "6.4.2",
|
||||
"nprogress": "0.2.0",
|
||||
"nested-property": "4.0.0",
|
||||
"node-fetch": "2.6.1",
|
||||
"nodemailer": "6.4.16",
|
||||
"object-assign-deep": "0.4.0",
|
||||
"os-utils": "0.0.14",
|
||||
"parse5": "5.1.1",
|
||||
"parsimmon": "1.13.0",
|
||||
"pg": "7.18.1",
|
||||
"portal-vue": "2.1.7",
|
||||
"p-cancelable": "2.0.0",
|
||||
"parse5": "6.0.1",
|
||||
"parsimmon": "1.16.0",
|
||||
"pg": "8.5.1",
|
||||
"portscanner": "2.2.0",
|
||||
"postcss-loader": "3.0.0",
|
||||
"prismjs": "1.19.0",
|
||||
"probe-image-size": "5.0.0",
|
||||
"progress-bar-webpack-plugin": "2.1.0",
|
||||
"postcss": "8.1.14",
|
||||
"postcss-loader": "4.1.0",
|
||||
"prismjs": "1.22.0",
|
||||
"probe-image-size": "6.0.0",
|
||||
"promise-limit": "2.7.0",
|
||||
"promise-sequential": "1.1.1",
|
||||
"pug": "2.0.4",
|
||||
"punycode": "2.1.1",
|
||||
"pureimage": "0.1.6",
|
||||
"pureimage": "0.2.5",
|
||||
"qrcode": "1.4.4",
|
||||
"random-seed": "0.3.0",
|
||||
"randomcolor": "0.5.4",
|
||||
"ratelimiter": "3.4.0",
|
||||
"recaptcha-promise": "0.1.3",
|
||||
"ratelimiter": "3.4.1",
|
||||
"re2": "1.15.8",
|
||||
"recaptcha-promise": "1.0.0",
|
||||
"reconnecting-websocket": "4.4.0",
|
||||
"redis": "3.0.2",
|
||||
"redis-lock": "0.1.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"regenerator-runtime": "0.13.7",
|
||||
"rename": "1.0.4",
|
||||
"request": "2.88.2",
|
||||
"request-promise-native": "1.0.8",
|
||||
"request-stats": "3.0.0",
|
||||
"require-all": "3.0.0",
|
||||
"rimraf": "3.0.2",
|
||||
"rndstr": "1.0.0",
|
||||
"s-age": "1.1.2",
|
||||
"sass": "1.25.0",
|
||||
"sass-loader": "8.0.2",
|
||||
"sass": "1.29.0",
|
||||
"sass-loader": "10.1.0",
|
||||
"seedrandom": "3.0.5",
|
||||
"sharp": "0.24.0",
|
||||
"showdown": "1.9.1",
|
||||
"showdown-highlightjs-extension": "0.1.2",
|
||||
"sharp": "0.26.2",
|
||||
"speakeasy": "2.0.0",
|
||||
"stringz": "2.0.0",
|
||||
"style-loader": "1.1.3",
|
||||
"summaly": "2.3.1",
|
||||
"stringz": "2.1.0",
|
||||
"style-loader": "2.0.0",
|
||||
"summaly": "2.4.0",
|
||||
"syslog-pro": "1.0.0",
|
||||
"systeminformation": "4.21.2",
|
||||
"systeminformation": "4.30.7",
|
||||
"syuilo-password-strength": "0.0.1",
|
||||
"terser-webpack-plugin": "2.3.4",
|
||||
"textarea-caret": "3.1.0",
|
||||
"three": "0.113.2",
|
||||
"tinycolor2": "1.4.1",
|
||||
"tmp": "0.1.0",
|
||||
"ts-loader": "6.2.1",
|
||||
"ts-node": "8.6.2",
|
||||
"tslint": "6.0.0",
|
||||
"three": "0.117.1",
|
||||
"tinycolor2": "1.4.2",
|
||||
"tmp": "0.2.1",
|
||||
"ts-loader": "8.0.9",
|
||||
"ts-node": "9.1.0",
|
||||
"tslint": "6.1.3",
|
||||
"tslint-sonarts": "1.9.0",
|
||||
"typeorm": "0.2.22",
|
||||
"typescript": "3.7.5",
|
||||
"typeorm": "0.2.29",
|
||||
"typescript": "4.0.5",
|
||||
"ulid": "2.3.0",
|
||||
"url-loader": "3.0.0",
|
||||
"uuid": "3.4.0",
|
||||
"v-animate-css": "0.0.3",
|
||||
"url-loader": "4.1.1",
|
||||
"uuid": "8.3.1",
|
||||
"v-debounce": "0.1.2",
|
||||
"vue": "2.6.11",
|
||||
"vue-color": "2.7.0",
|
||||
"vue-content-loading": "1.6.0",
|
||||
"vue-cropperjs": "4.0.1",
|
||||
"vue-i18n": "8.15.3",
|
||||
"vue-json-pretty": "1.6.3",
|
||||
"vue-loader": "15.9.0",
|
||||
"vue-marquee-text-component": "1.1.1",
|
||||
"vue-meta": "2.3.2",
|
||||
"vue-prism-component": "1.1.1",
|
||||
"vue-router": "3.1.5",
|
||||
"vue-sequential-entrance": "1.1.3",
|
||||
"vanilla-tilt": "1.7.0",
|
||||
"vue": "3.0.3",
|
||||
"vue-color": "2.7.1",
|
||||
"vue-i18n": "9.0.0-beta.7",
|
||||
"vue-json-pretty": "1.7.1",
|
||||
"vue-loader": "16.0.0",
|
||||
"vue-prism-editor": "2.0.0-alpha.2",
|
||||
"vue-router": "4.0.0-rc.6",
|
||||
"vue-style-loader": "4.1.2",
|
||||
"vue-svg-inline-loader": "1.4.5",
|
||||
"vue-template-compiler": "2.6.11",
|
||||
"vuedraggable": "2.23.2",
|
||||
"vuex": "3.1.2",
|
||||
"vuex-persistedstate": "2.7.1",
|
||||
"web-push": "3.4.3",
|
||||
"webpack": "4.41.6",
|
||||
"webpack-cli": "3.3.11",
|
||||
"websocket": "1.0.31",
|
||||
"ws": "7.2.1",
|
||||
"vuedraggable": "4.0.1",
|
||||
"vuex": "4.0.0-rc.2",
|
||||
"vuex-persistedstate": "3.1.0",
|
||||
"web-push": "3.4.4",
|
||||
"webpack": "5.9.0",
|
||||
"webpack-cli": "4.2.0",
|
||||
"websocket": "1.0.32",
|
||||
"ws": "7.4.0",
|
||||
"xev": "2.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/fluent-ffmpeg": "2.1.12",
|
||||
"cross-env": "6.0.3"
|
||||
"@types/chai": "4.2.11",
|
||||
"@types/fluent-ffmpeg": "2.1.16",
|
||||
"chai": "4.2.0",
|
||||
"cross-env": "7.0.2"
|
||||
}
|
||||
}
|
||||
|
11
src/@types/hcaptcha.d.ts
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
declare module 'hcaptcha' {
|
||||
interface IVerifyResponse {
|
||||
success: boolean;
|
||||
challenge_ts: string;
|
||||
hostname: string;
|
||||
credit?: boolean;
|
||||
'error-codes'?: unknown[];
|
||||
}
|
||||
|
||||
export function verify(secret: string, token: string): Promise<IVerifyResponse>;
|
||||
}
|
2
src/@types/http-signature.d.ts
vendored
@ -23,6 +23,8 @@ declare module 'http-signature' {
|
||||
scheme: string;
|
||||
params: ISignature;
|
||||
signingString: string;
|
||||
algorithm: string;
|
||||
keyId: string;
|
||||
}
|
||||
|
||||
type RequestSignerConstructorOptions =
|
||||
|
9
src/@types/jsrsasign.d.ts
vendored
@ -171,6 +171,7 @@ declare module 'jsrsasign' {
|
||||
|
||||
public static getTLVbyList(h: ASN1S, currentIndex: Idx<ASN1ObjectString>, nthList: Mutable<Nth[]>, checkingTag?: string): ASN1TLV;
|
||||
|
||||
// tslint:disable-next-line:bool-param-default
|
||||
public static getVbyList(h: ASN1S, currentIndex: Idx<ASN1ObjectString>, nthList: Mutable<Nth[]>, checkingTag?: string, removeUnusedbits?: boolean): ASN1V;
|
||||
|
||||
public static hextooidstr(hex: ASN1OIDV): OID;
|
||||
@ -620,9 +621,7 @@ declare module 'jsrsasign' {
|
||||
|
||||
public encrypt(text: string): HexString | null;
|
||||
|
||||
public encryptOAEP(text: string, hash?: string, hashLen?: number): HexString | null;
|
||||
|
||||
public encryptOAEP(text: string, hash?: (s: string) => string, hashLen?: number): HexString | null;
|
||||
public encryptOAEP(text: string, hash?: string | ((s: string) => string), hashLen?: number): HexString | null;
|
||||
|
||||
//// RSA PRIVATE
|
||||
|
||||
@ -638,9 +637,7 @@ declare module 'jsrsasign' {
|
||||
|
||||
public decrypt(ctext: HexString): string;
|
||||
|
||||
public decryptOAEP(ctext: HexString, hash?: string, hashLen?: number): string | null;
|
||||
|
||||
public encryptOAEP(ctext: HexString, hash?: (s: string) => string, hashLen?: number): string | null;
|
||||
public decryptOAEP(ctext: HexString, hash?: string | ((s: string) => string), hashLen?: number): string | null;
|
||||
|
||||
//// RSA PEM
|
||||
|
||||
|
21
src/@types/nested-property.d.ts
vendored
@ -1,21 +0,0 @@
|
||||
type Obj = { [key: string]: any };
|
||||
|
||||
declare module 'nested-property' {
|
||||
interface IHasNestedPropertyOptions {
|
||||
own?: boolean;
|
||||
}
|
||||
|
||||
interface IIsInNestedPropertyOptions {
|
||||
validPath?: boolean;
|
||||
}
|
||||
|
||||
export function set<T>(object: T, property: string, value: any): T;
|
||||
|
||||
export function get(object: Obj, property: string): any;
|
||||
|
||||
export function has(object: Obj, property: string, options?: IHasNestedPropertyOptions): boolean;
|
||||
|
||||
export function hasOwn(object: Obj, property: string, options?: IHasNestedPropertyOptions): boolean;
|
||||
|
||||
export function isIn(object: Obj, property: string, objectInPath: Obj, options?: IIsInNestedPropertyOptions): boolean;
|
||||
}
|
@ -3,6 +3,7 @@ import * as cluster from 'cluster';
|
||||
import * as chalk from 'chalk';
|
||||
import * as portscanner from 'portscanner';
|
||||
import * as isRoot from 'is-root';
|
||||
import { getConnection } from 'typeorm';
|
||||
|
||||
import Logger from '../services/logger';
|
||||
import loadConfig from '../config/load';
|
||||
@ -31,7 +32,7 @@ function greet() {
|
||||
console.log(chalk.keyword('orange')(' If you like Misskey, please donate to support development. https://www.patreon.com/syuilo'));
|
||||
|
||||
console.log('');
|
||||
console.log(chalk`< ${os.hostname()} {gray (PID: ${process.pid.toString()})} >`);
|
||||
console.log(chalk`--- ${os.hostname()} {gray (PID: ${process.pid.toString()})} ---`);
|
||||
}
|
||||
|
||||
bootLogger.info('Welcome to Misskey!');
|
||||
@ -75,13 +76,13 @@ export async function masterMain() {
|
||||
await spawnWorkers(config.clusterLimit);
|
||||
}
|
||||
|
||||
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
|
||||
|
||||
if (!program.noDaemons) {
|
||||
require('../daemons/server-stats').default();
|
||||
require('../daemons/queue-stats').default();
|
||||
require('../daemons/janitor').default();
|
||||
}
|
||||
|
||||
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
|
||||
}
|
||||
|
||||
const runningNodejsVersion = process.version.slice(1).split('.').map(x => parseInt(x, 10));
|
||||
@ -99,7 +100,7 @@ async function isPortAvailable(port: number): Promise<boolean> {
|
||||
function showEnvironment(): void {
|
||||
const env = process.env.NODE_ENV;
|
||||
const logger = bootLogger.createSubLogger('env');
|
||||
logger.info(typeof env == 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`);
|
||||
logger.info(typeof env === 'undefined' ? 'NODE_ENV is not set' : `NODE_ENV: ${env}`);
|
||||
|
||||
if (env !== 'production') {
|
||||
logger.warn('The environment is not in production mode.');
|
||||
@ -115,6 +116,8 @@ function showEnvironment(): void {
|
||||
async function init(): Promise<Config> {
|
||||
showEnvironment();
|
||||
|
||||
await showMachineInfo(bootLogger);
|
||||
|
||||
const nodejsLogger = bootLogger.createSubLogger('nodejs');
|
||||
|
||||
nodejsLogger.info(`Version ${runningNodejsVersion.join('.')}`);
|
||||
@ -124,8 +127,6 @@ async function init(): Promise<Config> {
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
await showMachineInfo(bootLogger);
|
||||
|
||||
const configLogger = bootLogger.createSubLogger('config');
|
||||
let config;
|
||||
|
||||
@ -145,13 +146,17 @@ async function init(): Promise<Config> {
|
||||
|
||||
configLogger.succ('Loaded');
|
||||
|
||||
const dbLogger = bootLogger.createSubLogger('db');
|
||||
|
||||
// Try to connect to DB
|
||||
try {
|
||||
bootLogger.info('Connecting database...');
|
||||
dbLogger.info('Connecting...');
|
||||
await initDb();
|
||||
const v = await getConnection().query('SHOW server_version').then(x => x[0].server_version);
|
||||
dbLogger.succ(`Connected: v${v}`);
|
||||
} catch (e) {
|
||||
bootLogger.error('Cannot connect to database', null, true);
|
||||
bootLogger.error(e);
|
||||
dbLogger.error('Cannot connect', null, true);
|
||||
dbLogger.error(e);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
|
12
src/client/.eslintrc
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"globals": {
|
||||
"_DEV_": false,
|
||||
"_LANGS_": false,
|
||||
"_VERSION_": false,
|
||||
"_ENV_": false,
|
||||
"_PERF_PREFIX_": false,
|
||||
"_DATA_TRANSFER_DRIVE_FILE_": false,
|
||||
"_DATA_TRANSFER_DRIVE_FOLDER_": false,
|
||||
"_DATA_TRANSFER_DECK_COLUMN_": false
|
||||
}
|
||||
}
|
8
src/client/@types/global.d.ts
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
declare const _LANGS_: string[];
|
||||
declare const _VERSION_: string;
|
||||
declare const _ENV_: string;
|
||||
declare const _DEV_: boolean;
|
||||
declare const _PERF_PREFIX_: string;
|
||||
declare const _DATA_TRANSFER_DRIVE_FILE_: string;
|
||||
declare const _DATA_TRANSFER_DRIVE_FOLDER_: string;
|
||||
declare const _DATA_TRANSFER_DECK_COLUMN_: string;
|
5
src/client/@types/vue.d.ts
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
declare module '*.vue' {
|
||||
import { defineComponent } from 'vue';
|
||||
const component: ReturnType<typeof defineComponent>;
|
||||
export default component;
|
||||
}
|
12
src/client/@types/vuex-shim.d.ts
vendored
Normal file
@ -0,0 +1,12 @@
|
||||
import { ComponentCustomProperties } from 'vue';
|
||||
import { Store } from 'vuex';
|
||||
|
||||
declare module '@vue/runtime-core' {
|
||||
// tslint:disable-next-line:no-empty-interface
|
||||
interface State {
|
||||
}
|
||||
|
||||
interface ComponentCustomProperties {
|
||||
$store: Store<State>;
|
||||
}
|
||||
}
|
1222
src/client/app.vue
@ -18,7 +18,7 @@
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<redoc spec-url='/api.json'></redoc>
|
||||
<redoc spec-url="/api.json" expand-responses="200" expand-single-schema-field="true"></redoc>
|
||||
<script src="https://cdn.jsdelivr.net/npm/redoc@next/bundles/redoc.standalone.js"> </script>
|
||||
</body>
|
||||
</html>
|
||||
|
BIN
src/client/assets/room/furnitures/banknote/banknote.blend
Normal file
BIN
src/client/assets/room/furnitures/banknote/banknote.glb
Normal file
BIN
src/client/assets/room/furnitures/banknote/tex.png
Normal file
After Width: | Height: | Size: 43 KiB |