Compare commits
886 Commits
Author | SHA1 | Date | |
---|---|---|---|
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
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
@ -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]
|
||||
|
||||
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.4.0
|
||||
|
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,4 +1,4 @@
|
||||
FROM node:12.11.1-alpine AS base
|
||||
FROM node:14.4.0-alpine AS base
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
@ -12,6 +12,7 @@ RUN apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
file \
|
||||
git \
|
||||
g++ \
|
||||
gcc \
|
||||
libc-dev \
|
||||
@ -22,7 +23,7 @@ RUN apk add --no-cache \
|
||||
python \
|
||||
zlib-dev
|
||||
|
||||
COPY package.json ./
|
||||
COPY package.json yarn.lock ./
|
||||
RUN yarn install
|
||||
COPY . ./
|
||||
RUN yarn build
|
||||
|
135
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, professional 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>
|
||||
|
||||
@ -103,94 +110,106 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
----------------------------------------------------------------
|
||||
<!-- PATREON_START -->
|
||||
<table><tr>
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo" width="100"></td>
|
||||
<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://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/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=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/weepjp">weepjp </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://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/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=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/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://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/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>
|
||||
<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>
|
||||
</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/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=26340354">totokoro</a></td>
|
||||
<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=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=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/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://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/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>
|
||||
<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/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://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://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/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/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/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'));
|
||||
|
545
locales/ar-SA.yml
Normal file
@ -0,0 +1,545 @@
|
||||
---
|
||||
_lang_: "العربية"
|
||||
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: "دبّسها على الصفحة الشخصية"
|
||||
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: "طلبات الإشتراك المعلّقة"
|
||||
unrenote: "إلغاء مشاركة الملاحظة"
|
||||
quote: "اقتبس"
|
||||
pinnedNote: "ملاحظة مدبسة"
|
||||
you: "أنت"
|
||||
clickToShow: "اضغط للعرض"
|
||||
sensitive: "محتوى حساس"
|
||||
add: "إضافة"
|
||||
reaction: "تفاعل"
|
||||
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||
attachCancel: "أزل المرفق"
|
||||
enterFileName: "ادخل اسم الملف"
|
||||
mute: "اكتم"
|
||||
unmute: "إلغاء الكتم"
|
||||
block: "احجب"
|
||||
unblock: "إلغاء الحجب"
|
||||
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}؟"
|
||||
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: "المعلومات الأساسية "
|
||||
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"
|
||||
patrons: "الداعمون"
|
||||
administrator: "المدير"
|
||||
token: "الرمز المميز"
|
||||
twoStepAuthentication: "الإستيثاق بعاملَيْن"
|
||||
moderator: "مشرِف"
|
||||
nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم"
|
||||
securityKey: "مفتاح الأمان"
|
||||
securityKeyName: "اسم المفتاح"
|
||||
lastUsed: "آخر استخدام"
|
||||
unregister: "إلغاء التسجيل"
|
||||
passwordLessLogin: "لِج مِن دون كلمة سرية"
|
||||
resetPassword: "أعد تعيين كلمتك السرية"
|
||||
newPasswordIs: "كلمتك السرية الجديدة هي {password}"
|
||||
autoNoteWatch: "راقب الملاحظات تلقائيا"
|
||||
share: "شارِك"
|
||||
notFound: "غير موجود"
|
||||
help: "المساعدة"
|
||||
inputMessageHere: "اكتب رسالتك هنا"
|
||||
close: "اغلق"
|
||||
group: "الفريق"
|
||||
groups: "الفِرَق"
|
||||
createGroup: "انشئ فريقًا"
|
||||
invites: "دعوة"
|
||||
groupName: "اسم الفريق"
|
||||
members: "الأعضاء"
|
||||
transfer: "نقل"
|
||||
messagingWithUser: "الدردشة مع مستخدم آخر"
|
||||
messagingWithGroup: "دردشة جماعية"
|
||||
title: "العنوان"
|
||||
text: "النص"
|
||||
enable: "تشغيل"
|
||||
next: "التالية"
|
||||
retype: "أعد الكتابة"
|
||||
noteOf: "ملاحظات {user}"
|
||||
inviteToGroup: "دعوة إلى فريق"
|
||||
noMessagesYet: "ليس هناك رسائل بعد"
|
||||
newMessageExists: "لقد تلقيت رسالة جديدة"
|
||||
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: "المظهر"
|
||||
_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: "مباشرة"
|
1266
locales/de-DE.yml
@ -1,6 +1,6 @@
|
||||
---
|
||||
_lang_: "English"
|
||||
introMisskey: "Welcome! Misskey is an open source and also decentralized microblogging service.\nWrite the \"notes\" to share what is happening now, or send out your own words to everyone 📡\nWith the \"reactions\", you can add your feelings to everyone's notes faster than anyone 👍\nLet's explore the new world 🚀"
|
||||
introMisskey: "Welcome! Misskey is an open source, and also a decentralized microblogging service.\nCreate \"notes\" to share what is happening now, or to share it with everyone around you 📡\nWith \"reactions\", you can also quickly express your feelings about everyone's notes 👍\nLet's explore a new world 🚀"
|
||||
monthAndDay: "{month}/{day}"
|
||||
search: "Search"
|
||||
notifications: "Notifications"
|
||||
@ -16,9 +16,12 @@ noNotes: "No notes"
|
||||
noNotifications: "No notifications"
|
||||
instance: "Instance"
|
||||
settings: "Settings"
|
||||
basicSettings: "Basic Settings"
|
||||
otherSettings: "Other Settings"
|
||||
openInWindow: "Open in new window"
|
||||
profile: "Profile"
|
||||
timeline: "Timeline"
|
||||
noAccountDescription: "This user has not created their bio yet."
|
||||
noAccountDescription: "This user has not written their bio yet."
|
||||
login: "Sign In"
|
||||
loggingIn: "Signing In"
|
||||
logout: "Sign Out"
|
||||
@ -29,20 +32,24 @@ users: "Users"
|
||||
addUser: "Add a user"
|
||||
favorite: "Favorite"
|
||||
favorites: "Favorites"
|
||||
unfavorite: "Undo favorite"
|
||||
unfavorite: "Unfavorite"
|
||||
pin: "Pin to profile"
|
||||
unpin: "Unpin from profile"
|
||||
copyContent: "Copy contents"
|
||||
copyLink: "Copy link"
|
||||
delete: "Delete"
|
||||
deleteAndEdit: "Delete and Edit"
|
||||
deleteAndEditConfirm: "Are you sure you want to delete this note and edit it? You will lose all reactions, renotes and replies to it."
|
||||
addToList: "Add to list"
|
||||
sendMessage: "Send a message"
|
||||
copyUsername: "Copy username"
|
||||
searchUser: "User search"
|
||||
reply: "Reply"
|
||||
loadMore: "Load more"
|
||||
youGotNewFollower: "Followed you"
|
||||
receiveFollowRequest: "Follow request received"
|
||||
followRequestAccepted: "Follow request accepted"
|
||||
mention: "Mention"
|
||||
mentions: "Mentions"
|
||||
directNotes: "Direct notes"
|
||||
importAndExport: "Import / Export"
|
||||
@ -63,8 +70,11 @@ followers: "Followers"
|
||||
followsYou: "Follows you"
|
||||
createList: "Create list"
|
||||
manageLists: "Manage lists"
|
||||
error: "Something happened :("
|
||||
error: "Error"
|
||||
somethingHappened: "An error occurred"
|
||||
retry: "Retry"
|
||||
pageLoadError: "Failed to load page"
|
||||
pageLoadErrorDescription: "This is normally caused by network errors or the browser's cache. Try clearung the cache and then try again after waiting a little while."
|
||||
enterListName: "List name"
|
||||
privacy: "Privacy"
|
||||
makeFollowManuallyApprove: "Follow requests require approval"
|
||||
@ -84,9 +94,8 @@ clickToShow: "Click to show"
|
||||
sensitive: "NSFW"
|
||||
add: "Add"
|
||||
reaction: "Reaction"
|
||||
reactionSettingDescription: "Customize reaction picker emojis (separated by line breaks)"
|
||||
reactionSettingDescription: "Assign your favorite reactions which want to pin in reaction picker."
|
||||
rememberNoteVisibility: "Remember note visibility settings"
|
||||
renameFile: "Rename file"
|
||||
attachCancel: "Remove attachment"
|
||||
markAsSensitive: "Mark as NSFW"
|
||||
unmarkAsSensitive: "Undo NSFW"
|
||||
@ -102,10 +111,16 @@ unblockConfirm: "Are you sure that you want to unblock this account?"
|
||||
suspendConfirm: "Are you sure that you want to suspend this account?"
|
||||
unsuspendConfirm: "Are you sure you that want to unsuspend this account?"
|
||||
selectList: "Select a list"
|
||||
selectAntenna: "Select an Antenna"
|
||||
selectWidget: "Select a widget"
|
||||
editWidgets: "Edit widgets"
|
||||
editWidgetsExit: "Done"
|
||||
customEmojis: "Custom Emoji"
|
||||
emoji: "Emoji"
|
||||
emojiName: "Emoji name"
|
||||
emojiUrl: "Emoji URL"
|
||||
addEmoji: "Add an emoji"
|
||||
settingGuide: "Suggested Configuration"
|
||||
cacheRemoteFiles: "Cache remote files"
|
||||
cacheRemoteFilesDescription: "When this setting is disabled, remote files are loaded directly from the remote instance. Disabling this will decrease storage usage, but will increase traffic, because thumbnails will not be generated."
|
||||
flagAsBot: "This account is a bot"
|
||||
@ -116,6 +131,7 @@ loginFailed: "Failed to sign in"
|
||||
showOnRemote: "View on remote instance"
|
||||
general: "General"
|
||||
wallpaper: "Wallpaper"
|
||||
setWallpaper: "Set wallpaper"
|
||||
removeWallpaper: "Remove wallpaper"
|
||||
searchWith: "Search: {q}"
|
||||
youHaveNoLists: "You don't have any lists"
|
||||
@ -168,8 +184,8 @@ intro: "Installation of Misskey has been finished! Please create an admin user."
|
||||
done: "Done"
|
||||
processing: "Processing"
|
||||
preview: "Preview"
|
||||
default: "Default"
|
||||
noCustomEmojis: "There are no emojis"
|
||||
customEmojisOfRemote: "Emojis from other instances"
|
||||
noJobs: "There are no jobs"
|
||||
federating: "Federating"
|
||||
blocked: "Blocked"
|
||||
@ -203,10 +219,13 @@ messaging: "Messaging"
|
||||
upload: "Upload"
|
||||
fromDrive: "From Drive"
|
||||
fromUrl: "From URL"
|
||||
uploadFromUrl: "Upload from a URL"
|
||||
uploadFromUrlDescription: "URL of the file you want to upload"
|
||||
uploadFromUrlRequested: "Upload requested"
|
||||
uploadFromUrlMayTakeTime: "It may take some time until the upload is complete."
|
||||
explore: "Explore"
|
||||
games: "Misskey Games"
|
||||
messageRead: "Read"
|
||||
recentUsedEmojis: "Recently used emojis"
|
||||
noMoreHistory: "There is no further history"
|
||||
startMessaging: "Start messaging"
|
||||
nUsersRead: "read by {n}"
|
||||
@ -222,28 +241,47 @@ yearsOld: "{age} years old"
|
||||
registeredDate: "Joined on"
|
||||
location: "Location"
|
||||
theme: "Theme"
|
||||
themeForLightMode: "Theme to use in Light Mode"
|
||||
themeForDarkMode: "Theme to use in Dark Mode"
|
||||
light: "Light"
|
||||
dark: "Dark"
|
||||
lightThemes: "Light theme"
|
||||
darkThemes: "Dark theme"
|
||||
syncDeviceDarkMode: "Sync Dark Mode with your device settings"
|
||||
drive: "Drive"
|
||||
fileName: "Filename"
|
||||
selectFile: "Select a file"
|
||||
selectFiles: "Select files"
|
||||
renameFolder: "Rename this folder"
|
||||
selectFolder: "Select a folder"
|
||||
selectFolders: "Select folders"
|
||||
renameFile: "Rename file"
|
||||
folderName: "Folder name"
|
||||
createFolder: "Create a folder"
|
||||
renameFolder: "Rename this folder"
|
||||
deleteFolder: "Delete this folder"
|
||||
addFile: "Add a file"
|
||||
emptyDrive: "The drive is empty"
|
||||
emptyFolder: "This folder is empty"
|
||||
unableToDelete: "Unable to delete"
|
||||
inputNewFileName: "Enter a new filename"
|
||||
inputNewFolderName: "Enter a new folder name"
|
||||
circularReferenceFolder: "The destination folder is a subfolder of the folder you wish to move."
|
||||
hasChildFilesOrFolders: "Since this folder is not empty, it can not be deleted."
|
||||
copyUrl: "Copy URL"
|
||||
rename: "Rename"
|
||||
avatar: "Avatar"
|
||||
banner: "Banner"
|
||||
nsfw: "NSFW"
|
||||
disconnectedFromServer: "Connection to the server was inturrupted"
|
||||
reloadConfirm: "Would you like to retry?"
|
||||
whenServerDisconnected: "When losing connection to the server"
|
||||
disconnectedFromServer: "Connection to the server was interrupted."
|
||||
reload: "Refresh"
|
||||
doNothing: "Ignore"
|
||||
reloadConfirm: "Would you like to refresh timeline?"
|
||||
watch: "Watch"
|
||||
unwatch: "Undo Watch"
|
||||
accept: "Accept"
|
||||
reject: "Reject"
|
||||
normal: "Normal"
|
||||
instanceName: "Instance name"
|
||||
instanceDescription: "Instance description"
|
||||
maintainerName: "Maintainer"
|
||||
@ -275,15 +313,21 @@ bannerUrl: "Banner image URL"
|
||||
basicInfo: "Basic info"
|
||||
pinnedUsers: "Pinned user"
|
||||
pinnedUsersDescription: "List one username per line. Users listed here will be pinned under \"Explore\" tab."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Enable hCaptcha"
|
||||
hcaptchaSiteKey: "Site key"
|
||||
hcaptchaSecretKey: "Secret key"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Enable reCAPTCHA"
|
||||
recaptchaSiteKey: "Site key"
|
||||
recaptchaSecretKey: "Secret key"
|
||||
avoidMultiCaptchaConfirm: "Using multiple Captchas may cause interference. Would you like to disable the other Captcha? You can leave multiple Captchas enabled by press cancel."
|
||||
antennas: "Antennas"
|
||||
manageAntennas: "Manage Antennas"
|
||||
name: "Name"
|
||||
antennaSource: "Antenna source"
|
||||
antennaKeywords: "Antenna keywords"
|
||||
antennaKeywords: "Keywords to receive"
|
||||
antennaExcludeKeywords: "Keywords to exclude"
|
||||
antennaKeywordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR."
|
||||
notifyAntenna: "Notify newer notes"
|
||||
withFileAntenna: "Filter only notes with file attached"
|
||||
@ -297,6 +341,7 @@ notesAndReplies: "Notes and replies"
|
||||
withFiles: "Media"
|
||||
silence: "Silence"
|
||||
silenceConfirm: "Are you sure that you want to silence this user?"
|
||||
unsilence: "Unsilence"
|
||||
unsilenceConfirm: "Are you sure that you want to undo silence of this user?"
|
||||
popularUsers: "Trending users"
|
||||
recentlyUpdatedUsers: "Users with recent activity"
|
||||
@ -309,7 +354,7 @@ userList: "Lists"
|
||||
about: "About"
|
||||
aboutMisskey: "About Misskey"
|
||||
aboutMisskeyText: "Misskey is an open-source software developed by syuilo since 2014."
|
||||
misskeyMembers: "It is currently developed an maintained by the members listed below:"
|
||||
misskeyMembers: "It is currently developed and maintained by the members listed below:"
|
||||
misskeySource: "Source code is available here:"
|
||||
misskeyTranslation: "Help us with your contribution to translate Misskey:"
|
||||
misskeyDonate: "Help us to keep improving the software by donating here:"
|
||||
@ -328,12 +373,9 @@ unregister: "Unregister"
|
||||
passwordLessLogin: "Set up password-less login"
|
||||
resetPassword: "Reset password"
|
||||
newPasswordIs: "The new password is \"{password}\""
|
||||
post: "Notes"
|
||||
posted: "Posted!"
|
||||
autoReloadWhenDisconnected: "Auto reload when disconnected with server"
|
||||
autoNoteWatch: "Watch note automatically"
|
||||
autoNoteWatchDescription: "Get notified about the notes which you reactioned or replied."
|
||||
reduceUiAnimation: "Reduce animations of User Interface"
|
||||
reduceUiAnimation: "Reduce UI animation"
|
||||
share: "Share"
|
||||
notFound: "Not found"
|
||||
notFoundDescription: "There was no page corresponding to the specified URL."
|
||||
@ -383,16 +425,17 @@ strongPassword: "Strong password"
|
||||
passwordMatched: "Matched"
|
||||
passwordNotMatched: "Doesn't match"
|
||||
signinWith: "Sign in with {x}"
|
||||
signinFailed: "Unable to sign in. The username or password you entered is incorrect."
|
||||
tapSecurityKey: "Tap your security key"
|
||||
or: "Or"
|
||||
uiLanguage: "UI display language"
|
||||
groupInvited: "Invited to group"
|
||||
aboutX: "About {x}"
|
||||
useOsNativeEmojis: "Use the OS native Emojis"
|
||||
noGroups: "No groups"
|
||||
useOsNativeEmojis: "Use OS native Emojis"
|
||||
youHaveNoGroups: "You have no groups"
|
||||
joinOrCreateGroup: "Get invited to join the groups or you can create your own group."
|
||||
noHistory: "No history items"
|
||||
disableAnimatedMfm: "Disable MFM which has animations"
|
||||
disableAnimatedMfm: "Disable MFM with animation"
|
||||
doing: "On my way"
|
||||
category: "Category"
|
||||
tags: "Tags"
|
||||
@ -409,8 +452,8 @@ remote: "Remote"
|
||||
total: "Total"
|
||||
weekOverWeekChanges: "Weekly"
|
||||
dayOverDayChanges: "Daily"
|
||||
accessibility: "Accessibility"
|
||||
clinetSettings: "Client Settings"
|
||||
appearance: "Appearance"
|
||||
clientSettings: "Client settings"
|
||||
accountSettings: "Account Settings"
|
||||
promotion: "Promoted"
|
||||
promote: "Promote"
|
||||
@ -419,16 +462,243 @@ hideThisNote: "Hide this note"
|
||||
showFeaturedNotesInTimeline: "Show Featured notes in Timeline"
|
||||
objectStorage: "Object Storage"
|
||||
useObjectStorage: "Use object storage"
|
||||
objectStorageBaseUrl: "Base URL"
|
||||
objectStorageBaseUrlDesc: "URL prefix used for construct URL to object (media) referencing. Specify its URL if you are using a CDN or Proxy, otherwise specify the address that publicly accessible according to the guide of service that you're going to use. i.g 'https://<bucket>.s3.amazonaws.com' for AWS S3, and 'https://storage.googleapis.com/<bucket>' for GCS."
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStorageBucketDesc: "Please specify the bucket name used on configured service."
|
||||
objectStoragePrefix: "Prefix"
|
||||
objectStoragePrefixDesc: "Files will stored under the directory of this prefix."
|
||||
objectStorageEndpoint: "Endpoint"
|
||||
objectStorageEndpointDesc: "Leave this empty if you are using AWS S3, otherwise specify the endpoint as '<host>' or '<host>:<port>' according to the guide of service that you're going to use."
|
||||
objectStorageRegion: "Region"
|
||||
objectStorageRegionDesc: "Specify a region like 'xx-east-1'. If your service does not have distinction about regions, leave it blank or fill with 'us-east-1'."
|
||||
objectStorageUseSSL: "Use SSL"
|
||||
objectStorageUseSSLDesc: "Turn off this if you are not going to use HTTPS for API connection"
|
||||
objectStorageUseProxy: "Connect over Proxy"
|
||||
objectStorageUseProxyDesc: "Turn off this if you are not going to use Proxy for ObjectStorage connection"
|
||||
objectStorageSetPublicRead: "Set \"public-read\" on upload"
|
||||
serverLogs: "Server logs"
|
||||
deleteAll: "Delete all"
|
||||
showFixedPostForm: "Display the posting form at the top of the timeline"
|
||||
newNoteRecived: "You've got a new note"
|
||||
useNotificationsPopup: "Display notification list in popup"
|
||||
sounds: "Sounds"
|
||||
listen: "Listen"
|
||||
none: "None"
|
||||
showInPage: "Show in Pages"
|
||||
popout: "Pop-out"
|
||||
volume: "Volume"
|
||||
details: "Details"
|
||||
chooseEmoji: "Choose an emoji"
|
||||
unableToProcess: "The operation could not be completed."
|
||||
recentUsed: "Recently used"
|
||||
install: "Install"
|
||||
uninstall: "Uninstall"
|
||||
installedApps: "Authorized Applications"
|
||||
nothing: "There's nothing to see here"
|
||||
installedDate: "Authorized"
|
||||
lastUsedDate: "Last used"
|
||||
state: "State"
|
||||
sort: "Sort"
|
||||
ascendingOrder: "Ascending"
|
||||
descendingOrder: "Descending"
|
||||
scratchpad: "Scratch pad"
|
||||
scratchpadDescription: "Scratchpad provides experimental environment for AiScript. You can write, execute, and check the results that interact with Misskey."
|
||||
output: "Output"
|
||||
script: "Script"
|
||||
disablePagesScript: "Disable AiScript on Pages"
|
||||
updateRemoteUser: "Update remote user information"
|
||||
deleteAllFiles: "Delete All Files"
|
||||
deleteAllFilesConfirm: "Are you sure that you want to delete all files?"
|
||||
removeAllFollowing: "Withhold All Followings"
|
||||
removeAllFollowingDescription: "Unfollow all accounts from {host}. Please run this if the instance no longer exists."
|
||||
userSuspended: "This user has been suspended."
|
||||
userSilenced: "This user has been silenced."
|
||||
sidebar: "Sidebar"
|
||||
divider: "Divider"
|
||||
addItem: "Add Item"
|
||||
rooms: "Room"
|
||||
relays: "Relays"
|
||||
addRelay: "Add Relay"
|
||||
inboxUrl: "Inbox URL"
|
||||
addedRelays: "Added Relays"
|
||||
serviceworkerInfo: "Must be enabled for push notifications."
|
||||
deletedNote: "Deleted note"
|
||||
invisibleNote: "Invisible note"
|
||||
enableInfiniteScroll: "Enable infinite scrolling"
|
||||
visibility: "Visiblility"
|
||||
poll: "Poll"
|
||||
useCw: "Hide content"
|
||||
enablePlayer: "Open video player"
|
||||
disablePlayer: "Close video player"
|
||||
expandTweet: "Expand tweet"
|
||||
themeEditor: "Theme editor"
|
||||
description: "Description"
|
||||
author: "Author"
|
||||
leaveConfirm: "There are unsaved changes. Do you want to discard them?"
|
||||
manage: "Management"
|
||||
plugins: "Plugins"
|
||||
pluginInstallWarn: "Please do not install untrustworthy plugins."
|
||||
deck: "Deck"
|
||||
undeck: "Leave Deck"
|
||||
useBlurEffectForModal: "Use blur effect for modals"
|
||||
generateAccessToken: "Generate access token"
|
||||
permission: "Permissions"
|
||||
enableAll: "Enable all"
|
||||
disableAll: "Disable all"
|
||||
tokenRequested: "Grant access to account"
|
||||
pluginTokenRequestedDescription: "This plugin will be able to use the permissions set here."
|
||||
notificationType: "Notification type"
|
||||
edit: "Edit"
|
||||
useStarForReactionFallback: "Use ★ as fallback if the reaction emoji is unknown"
|
||||
emailConfig: "Email server configuration"
|
||||
enableEmail: "Enable email distribution"
|
||||
emailConfigInfo: "Used to confirm your email during sign-up and if you forget your password"
|
||||
email: "Email Address"
|
||||
smtpConfig: "SMTP Server configuration"
|
||||
smtpHost: "Host"
|
||||
smtpPort: "Port"
|
||||
smtpUser: "Username"
|
||||
smtpPass: "Password"
|
||||
emptyToDisableSmtpAuth: "Leave username and password empty to disable SMTP verification"
|
||||
smtpSecure: "Use implicit SSL/TLS for SMTP connections"
|
||||
smtpSecureInfo: "Turn this off when using STARTTLS"
|
||||
testEmail: "Test email delivery"
|
||||
wordMute: "Word mute"
|
||||
userSaysSomething: "{name} said something"
|
||||
makeActive: "Activate"
|
||||
display: "Display"
|
||||
copy: "Copy"
|
||||
metrics: "Metrics"
|
||||
overview: "Overview"
|
||||
logs: "Logs"
|
||||
delayed: "Delayed"
|
||||
database: "Database"
|
||||
channel: "Channels"
|
||||
create: "Create"
|
||||
notificationSetting: "Notification settings"
|
||||
notificationSettingDesc: "Select the type of notification to display"
|
||||
useGlobalSetting: "Use global setting"
|
||||
useGlobalSettingDesc: "If turned on, your account's notification settings will be used. If turned off, individual configurations can be made."
|
||||
other: "Other"
|
||||
regenerateLoginToken: "Regenerate login token"
|
||||
regenerateLoginTokenDescription: "Regenerate the token used internally during login. Normally this action is not necessary. If regenerated, all devices will be logged out."
|
||||
setMultipleBySeparatingWithSpace: "You can set multiple by separating them with spaces."
|
||||
fileIdOrUrl: "File-ID or URL"
|
||||
chatOpenBehavior: "Behavior of the chat window when opened"
|
||||
sample: "Sample"
|
||||
abuseReports: "Reports"
|
||||
reportAbuse: "Report"
|
||||
reportAbuseOf: "Report {name}"
|
||||
fillAbuseReportDescription: "Please fill in the report details. If it is about a specific note, please include its URL."
|
||||
abuseReported: "Your report has been sent. Thank you very much."
|
||||
send: "Send"
|
||||
abuseMarkAsResolved: "Mark report as resolved"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "Automatically reload"
|
||||
dialog: "Show warning dialog"
|
||||
quiet: "Show unobtrusive warning"
|
||||
_channel:
|
||||
create: "Create channel"
|
||||
edit: "Edit channel"
|
||||
setBanner: "Set banner"
|
||||
removeBanner: "Remove banner"
|
||||
featured: "Trending"
|
||||
owned: "Owned"
|
||||
following: "Followed"
|
||||
usersCount: "{n} Participants"
|
||||
notesCount: "{n} Notes"
|
||||
_sidebar:
|
||||
full: "Full"
|
||||
icon: "Avatar"
|
||||
hide: "Hide"
|
||||
_wordMute:
|
||||
muteWords: "Word to mute"
|
||||
muteWordsDescription: "Separate with spaces for AND condition. Separate with line breaks for OR."
|
||||
muteWordsDescription2: "Surround keywords by slashes to use regular expressions."
|
||||
softDescription: "Hide notes fulfilling the set conditions from the timeline."
|
||||
hardDescription: "Prevent notes fulfilling the set conditions from being added to the timeline. In addition, these notes will not be added to the timeline even if the conditions are changed."
|
||||
soft: "Soft"
|
||||
hard: "Hard"
|
||||
mutedNotes: "Muted notes"
|
||||
_theme:
|
||||
explore: "Explore Themes"
|
||||
install: "Install theme"
|
||||
manage: "Themes manager"
|
||||
code: "Theme code"
|
||||
installed: "{name} has been installed"
|
||||
alreadyInstalled: "The theme is already installed"
|
||||
invalid: "Theme format is invalid"
|
||||
make: "Make a theme"
|
||||
base: "Base"
|
||||
addConstant: "Add constant"
|
||||
constant: "Constant"
|
||||
defaultValue: "Default value"
|
||||
color: "Color"
|
||||
refProp: "Reference a property"
|
||||
refConst: "Reference a constant"
|
||||
key: "Key"
|
||||
func: "Functions"
|
||||
funcKind: "Function type"
|
||||
argument: "Argument"
|
||||
basedProp: "Referenced property"
|
||||
alpha: "Opacity"
|
||||
darken: "Darken"
|
||||
lighten: "Lighten"
|
||||
inputConstantName: "Enter a name for the constant"
|
||||
importInfo: "If you enter theme code here, you can import it to the theme editor"
|
||||
deleteConstantConfirm: "Do you really want to delete the constant {const}?"
|
||||
keys:
|
||||
accent: "Accent"
|
||||
bg: "Background"
|
||||
fg: "Text"
|
||||
focus: "Focus"
|
||||
indicator: "Indicator"
|
||||
panel: "Panel"
|
||||
shadow: "Shadow"
|
||||
header: "Header"
|
||||
navBg: "Sidebar background"
|
||||
navFg: "Sidebar text"
|
||||
navHoverFg: "Sidebar text (Hover)"
|
||||
navActive: "Sidebar text (Active)"
|
||||
navIndicator: "Sidebar indicator"
|
||||
link: "Link"
|
||||
hashtag: "Hashtag"
|
||||
mention: "Mention"
|
||||
mentionMe: "Mentions (Me)"
|
||||
renote: "Renote"
|
||||
modalBg: "Modal background"
|
||||
divider: "Divider"
|
||||
scrollbarHandle: "Scrollbar handle"
|
||||
scrollbarHandleHover: "Scrollbar handle (Hover)"
|
||||
dateLabelFg: "Text of date labels"
|
||||
infoBg: "Information background"
|
||||
infoFg: "Information text"
|
||||
infoWarnBg: "Warning background"
|
||||
infoWarnFg: "Warning text"
|
||||
cwBg: "CW background"
|
||||
cwFg: "CW text"
|
||||
cwHoverBg: "CW background (Hover)"
|
||||
toastBg: "Notification background"
|
||||
toastFg: "Notification text"
|
||||
buttonBg: "Button background"
|
||||
buttonHoverBg: "Button background (Hover)"
|
||||
inputBorder: "Input field border"
|
||||
listItemHoverBg: "List item background (Hover)"
|
||||
driveFolderBg: "Drive folder background"
|
||||
wallpaperOverlay: "Wallpaper overlay"
|
||||
badge: "Badge"
|
||||
messageBg: "Chat background"
|
||||
accentDarken: "Accent (Darkened)"
|
||||
accentLighten: "Accent (Lightened)"
|
||||
fgHighlighted: "Highlighted Text"
|
||||
_sfx:
|
||||
note: "Notes"
|
||||
note: "New note"
|
||||
noteMy: "My note"
|
||||
notification: "Notifications"
|
||||
chat: "Messaging"
|
||||
chatBg: "Messaging (Background)"
|
||||
antenna: "Antenna Reception"
|
||||
channel: "Channel notifications"
|
||||
_ago:
|
||||
unknown: "Unknown"
|
||||
future: "Future"
|
||||
@ -449,12 +719,12 @@ _tutorial:
|
||||
title: "How to use Misskey"
|
||||
step1_1: "Welcome!"
|
||||
step1_2: "This page is called \"timeline\". It shows chronologically ordered \"notes\" of people who you \"follow\"."
|
||||
step1_3: "Your timeline is currently empty, since you have not posed any notes or followed anyone yet."
|
||||
step1_3: "Your timeline is currently empty, since you have not posted any notes or followed anyone yet."
|
||||
step2_1: "Let's finish setting up your profile before writing a note or following anyone."
|
||||
step2_2: "Providing some information about who you are will make it easier for others to follow you back."
|
||||
step3_1: "Finished setting up your profile?"
|
||||
step3_2: "The next step is to post a note. You can do this by pressing a pencil icon on the screen."
|
||||
step3_3: "Fill in the modal and press the button on the right top to post."
|
||||
step3_2: "The next step is to post a note. You can do this by pressing the pencil icon on the screen."
|
||||
step3_3: "Fill in the modal and press the button on the top right to post."
|
||||
step3_4: "Have nothing to say? Try \"just setting up my msky\"!"
|
||||
step4_1: "Finished posting your first note?"
|
||||
step4_2: "Hurray! Now your first note is displayed on your timeline."
|
||||
@ -464,7 +734,7 @@ _tutorial:
|
||||
step5_4: "If the other user has a lock icon next to their name, that user will have to manually approve your follow request."
|
||||
step6_1: "Now you will be able to see other users' notes on your timeline."
|
||||
step6_2: "You can also put \"reactions\" on other people's notes to quickly respond."
|
||||
step6_3: "To attach a \"reaction\", press \"+\" mark on other user's note and choose an emoji you'd like to react with."
|
||||
step6_3: "To attach a \"reaction\", press the \"+\" mark on another user's note and choose an emoji you'd like to react with."
|
||||
step7_1: "Congratulations! You have now finished Misskey's basic tutorial."
|
||||
step7_2: "If you would like to learn more about Misskey, try the {help} section."
|
||||
step7_3: "Good luck and have fun! 🚀"
|
||||
@ -504,9 +774,15 @@ _permissions:
|
||||
"write:page-likes": "Edit likes on pages"
|
||||
"read:user-groups": "View user groups"
|
||||
"write:user-groups": "Edit or delete user groups"
|
||||
"read:channels": "Read channels"
|
||||
"write:channels": "Modify channels"
|
||||
_auth:
|
||||
shareAccess: "Would you like to authorize \"{name}\" to access this account?"
|
||||
shareAccessAsk: "Are you sure you want to authorize this application to access your account?"
|
||||
permissionAsk: "This application requires following permissions:"
|
||||
pleaseGoBack: "Please go back to the application"
|
||||
callback: "Returning back to the application"
|
||||
denied: "Access Denied"
|
||||
_antennaSources:
|
||||
all: "All notes"
|
||||
homeTimeline: "Notes from following users"
|
||||
@ -531,12 +807,14 @@ _widgets:
|
||||
rss: "RSS reader"
|
||||
activity: "Activity"
|
||||
photos: "Photos"
|
||||
digitalClock: "Digital clock"
|
||||
federation: "Federation"
|
||||
postForm: "Compose a note"
|
||||
_cw:
|
||||
hide: "Hide"
|
||||
show: "Load more"
|
||||
chars: "{count} characters"
|
||||
files: "{count} file(s)"
|
||||
poll: "Poll"
|
||||
_poll:
|
||||
noOnlyOneChoice: "At least two choices are needed"
|
||||
choiceN: "Choice {n}"
|
||||
@ -569,9 +847,11 @@ _visibility:
|
||||
specified: "Direct"
|
||||
specifiedDescription: "Post to specified users only"
|
||||
localOnly: "Local only"
|
||||
localOnlyDescription: "Not visible to remote users"
|
||||
_postForm:
|
||||
replyPlaceholder: "Reply to this note..."
|
||||
quotePlaceholder: "Quote this note..."
|
||||
channelPlaceholder: "Post to channel"
|
||||
_placeholders:
|
||||
a: "What are you up to?"
|
||||
b: "What's happening around you?"
|
||||
@ -610,63 +890,119 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "Requests"
|
||||
users: "Difference in # of users"
|
||||
usersTotal: "Total # of users"
|
||||
usersTotal: "Cumulative total # of users"
|
||||
notes: "Difference in # of notes"
|
||||
notesTotal: "Total # of notes"
|
||||
notesTotal: "Cumulative total # of notes"
|
||||
ff: "Difference in # of followers"
|
||||
ffTotal: "Total # of followers"
|
||||
ffTotal: "Cumulative total # of followers"
|
||||
cacheSize: "Difference in cache size"
|
||||
cacheSizeTotal: "Total accumulated cache"
|
||||
cacheSizeTotal: "Cumulative total cache size"
|
||||
files: "Difference in # of files"
|
||||
filesTotal: "Total # of files"
|
||||
filesTotal: "Cumulative total # of files"
|
||||
_timelines:
|
||||
home: "Home"
|
||||
local: "Local"
|
||||
social: "Social"
|
||||
global: "Global"
|
||||
_rooms:
|
||||
roomOf: "{user}'s room"
|
||||
addFurniture: "Place furniture"
|
||||
translate: "Move"
|
||||
rotate: "Rotate"
|
||||
exit: "Back"
|
||||
remove: "Remove"
|
||||
clear: "Remove All"
|
||||
clearConfirm: "Are you sure to remove all furnitures in your room?"
|
||||
leaveConfirm: "There are unsaved changes. Do you really want to leave?"
|
||||
chooseImage: "Select an image"
|
||||
roomType: "Room type"
|
||||
carpetColor: "Color of carpet"
|
||||
_roomType:
|
||||
default: "Default"
|
||||
washitsu: "Japanese-style"
|
||||
_furnitures:
|
||||
milk: "Milk carton"
|
||||
bed: "Bed"
|
||||
low-table: "Low Table"
|
||||
desk: "Desk"
|
||||
chair: "Chair"
|
||||
chair2: "Chair 2"
|
||||
fan: "Fan"
|
||||
pc: "Computer"
|
||||
plant: "Houseplant"
|
||||
plant2: "Houseplant 2"
|
||||
eraser: "Eraser"
|
||||
pencil: "Pencil"
|
||||
pudding: "Pudding"
|
||||
cardboard-box: "Cardboard Box"
|
||||
cardboard-box2: "Cardboard Box 2"
|
||||
cardboard-box3: "Cardboard Box 3"
|
||||
book: "Book"
|
||||
book2: "Book 2"
|
||||
piano: "Piano"
|
||||
facial-tissue: "Facial tissue"
|
||||
server: "Servers"
|
||||
moon: "Moon"
|
||||
corkboard: "Cork board"
|
||||
mousepad: "Mousepad"
|
||||
monitor: "Monitor"
|
||||
keyboard: "Keyboard"
|
||||
carpet-stripe: "Carpet (stripe)"
|
||||
mat: "Mat"
|
||||
color-box: "Bookshelf"
|
||||
wall-clock: "Wall clock"
|
||||
photoframe: "Picture frame"
|
||||
cube: "Cube"
|
||||
tv: "TV"
|
||||
pinguin: "Penguin"
|
||||
rubik-cube: "Rubik's Cube"
|
||||
poster-h: "Poster (Horizontal)"
|
||||
poster-v: "Poster (Vertical)"
|
||||
sofa: "Sofa"
|
||||
spiral: "Spiral Staircase"
|
||||
bin: "Waste bin"
|
||||
cup-noodle: "Cup noodle"
|
||||
holo-display: "Holographic display"
|
||||
energy-drink: "Energy drink"
|
||||
doll-ai: "Ai doll"
|
||||
banknote: "Pile of money"
|
||||
_pages:
|
||||
newPage: "Create a page"
|
||||
editPage: "Edit this page"
|
||||
readPage: "Source view activated"
|
||||
page-created: "Successfully created a page!"
|
||||
page-updated: "Successfully updated the page!"
|
||||
name-already-exists: "Specified page URL already exists."
|
||||
title-invalid-name: "The specified page URL is invalid."
|
||||
text-invalid-name: "Please double-check if it is not empty."
|
||||
created: "Successfully created a page!"
|
||||
updated: "Successfully updated the page!"
|
||||
deleted: "The page has been deleted"
|
||||
nameAlreadyExists: "The specified page URL already exists"
|
||||
invalidNameTitle: "The specified page URL is invalid"
|
||||
invalidNameText: "Check whether that is not a blank"
|
||||
editThisPage: "Edit this page"
|
||||
viewSource: "View source"
|
||||
viewPage: "View your pages"
|
||||
like: "Like"
|
||||
unlike: "Undo like"
|
||||
liked-pages: "Liked pages"
|
||||
my-pages: "My pages"
|
||||
my: "My pages"
|
||||
liked: "Liked pages"
|
||||
inspector: "Inspector"
|
||||
content: "Page block"
|
||||
variables: "Variables"
|
||||
variables-info: "You can make your page more interactive by using variables. If you write down <b>{ variable name }</b> in the text, you can embed the value of the variable. For example, source text <b>Hello { thing } world!</b> with <b> ai </b> as the value of variable 'thing' will result in the text being <b>Hello ai world!</b>."
|
||||
variables-info2: "Because the evaluation of variables are performed from top to bottom, the variable cannot refer to another variables which appear on later lines. For example, when defining three variables <b>A</b>, <b>B</b> and <b>C</b>, variable <b>C</b> <i>can</i> refer to variables <b>A</b> and <b>B</b> in its expression. However, variable <b>A</b> <i>cannot</i> refer to variables <b>B</b> or <b>C</b> in its expression."
|
||||
variables-info3: "To get an input from user, insert \"user input\" block with your desired variable name (that variable will be declared automatically). You could then use that variable to perform actions on your page."
|
||||
variables-info4: "Functions make it easier to perform repetitive tasks. To create a function, declare a variable of \"Function\" type. A function can have a slot (argument/parameter) which can be used inside the function as a variable. Thanks to AiScript specification, you can also use function itself as a parameter for other functions. (Search \"callback functions\" on google for more details)."
|
||||
more-details: "More information"
|
||||
title: "Title"
|
||||
url: "Page URL"
|
||||
summary: "Page summary"
|
||||
alignCenter: "Center elements"
|
||||
hide-title-when-pinned: "Hide page title when pinned"
|
||||
hideTitleWhenPinned: "Hide page title when pinned to profile"
|
||||
font: "Font"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans serif"
|
||||
set-eye-catching-image: "Set thumbnail image"
|
||||
remove-eye-catching-image: "Remove thumbnail image"
|
||||
eyeCatchingImageSet: "Set the eye-catching image"
|
||||
eyeCatchingImageRemove: "Delete the eye-catching image"
|
||||
chooseBlock: "Add a block"
|
||||
selectType: "Select a type"
|
||||
enterVariableName: "Please enter a name for your variable"
|
||||
the-variable-name-is-already-used: "This name is already being used by other variable"
|
||||
content-blocks: "Content"
|
||||
input-blocks: "Input"
|
||||
special-blocks: "Special"
|
||||
post-from-post-form: "Post this content"
|
||||
posted-from-post-form: "Successfully posted!"
|
||||
variableNameIsAlreadyUsed: "This name is already being used by other variable"
|
||||
contentBlocks: "Content"
|
||||
inputBlocks: "Input"
|
||||
specialBlocks: "Special"
|
||||
blocks:
|
||||
text: "Text"
|
||||
textarea: "Text area"
|
||||
@ -679,6 +1015,8 @@ _pages:
|
||||
post: "Compose a note"
|
||||
_post:
|
||||
text: "Content"
|
||||
attachCanvasImage: "Post with Canvas as Image"
|
||||
canvasId: "Canvas ID"
|
||||
textInput: "Text input"
|
||||
_textInput:
|
||||
name: "Variable name"
|
||||
@ -694,6 +1032,11 @@ _pages:
|
||||
name: "Variable name"
|
||||
text: "Title"
|
||||
default: "Default value"
|
||||
canvas: "Canvas"
|
||||
_canvas:
|
||||
id: "Canvas ID"
|
||||
width: "Width"
|
||||
height: "Height"
|
||||
switch: "Switch"
|
||||
_switch:
|
||||
name: "Variable name"
|
||||
@ -719,6 +1062,9 @@ _pages:
|
||||
message: "Message to display when activated"
|
||||
variable: "Variable to send"
|
||||
no-variable: "None"
|
||||
callAiScript: "Invoke AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Function name"
|
||||
radioButton: "Choice"
|
||||
_radioButton:
|
||||
name: "Variable name"
|
||||
@ -879,6 +1225,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Text"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable of AiScript"
|
||||
fn: "Functions"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
@ -900,3 +1247,51 @@ _pages:
|
||||
enviromentVariables: "Environment variable"
|
||||
pageVariables: "Page element"
|
||||
argVariables: "Input slot"
|
||||
_relayStatus:
|
||||
requesting: "Pending"
|
||||
accepted: "Accepted"
|
||||
rejected: "Rejected"
|
||||
_notification:
|
||||
fileUploaded: "File successfully uploaded"
|
||||
youGotMention: "{name} mentioned you"
|
||||
youGotReply: "{name} replied to you"
|
||||
youGotQuote: "{name} quoted you"
|
||||
youRenoted: "{name} renoted you"
|
||||
youGotPoll: "{name} voted on your poll"
|
||||
youGotMessagingMessageFromUser: "{name} sent you a message"
|
||||
youGotMessagingMessageFromGroup: "A message was sent to the {name} group"
|
||||
youWereFollowed: "Followed you"
|
||||
youReceivedFollowRequest: "You've received a follow request"
|
||||
yourFollowRequestAccepted: "Your follow request was accepted"
|
||||
youWereInvitedToGroup: "Invited to group"
|
||||
_types:
|
||||
all: "All"
|
||||
follow: "Follows"
|
||||
mention: "Mentions"
|
||||
reply: "Replies"
|
||||
renote: "Renotes"
|
||||
quote: "Quotes"
|
||||
reaction: "Reactions"
|
||||
pollVote: "Votes on polls"
|
||||
receiveFollowRequest: "Follow request received"
|
||||
followRequestAccepted: "Follow request accepted"
|
||||
groupInvited: "Invited to groups"
|
||||
app: "Notifications from apps"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "Always show main column"
|
||||
columnAlign: "Align columns"
|
||||
addColumn: "Add column"
|
||||
swapLeft: "Swap to left"
|
||||
swapRight: "Swap to right"
|
||||
swapUp: "Swap with above"
|
||||
swapDown: "Swap with below"
|
||||
stackLeft: "Stack on the left"
|
||||
popRight: "Pop to the right"
|
||||
_columns:
|
||||
widgets: "Widgets"
|
||||
notifications: "Notifications"
|
||||
tl: "Timeline"
|
||||
antenna: "Antennas"
|
||||
list: "Lists"
|
||||
mentions: "Mentions"
|
||||
direct: "Direct"
|
||||
|
@ -26,7 +26,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,6 +35,8 @@ 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"
|
||||
@ -43,6 +45,7 @@ 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,12 +61,11 @@ 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"
|
||||
retry: "Reintentar"
|
||||
enterListName: "Ingrese nombre de lista"
|
||||
privacy: "Privacidad"
|
||||
@ -82,11 +84,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 +103,25 @@ 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"
|
||||
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 +174,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"
|
||||
@ -203,10 +209,13 @@ 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 +231,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 +303,21 @@ 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"
|
||||
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 +331,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"
|
||||
@ -328,9 +363,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"
|
||||
@ -383,13 +415,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 +442,7 @@ remote: "Remoto"
|
||||
total: "Total"
|
||||
weekOverWeekChanges: "Dif semanal"
|
||||
dayOverDayChanges: "Dif diaria"
|
||||
accessibility: "Accesibilidad"
|
||||
clinetSettings: "Ajustes del cliente"
|
||||
appearance: "Apariencia"
|
||||
accountSettings: "Ajustes de cuenta"
|
||||
promotion: "Promovido"
|
||||
promote: "Promover"
|
||||
@ -419,16 +451,227 @@ 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"
|
||||
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"
|
||||
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"
|
||||
email: "Correo electrónico"
|
||||
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."
|
||||
_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 +747,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 +780,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 +820,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?"
|
||||
@ -610,63 +863,119 @@ _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"
|
||||
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 +988,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 +1005,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 +1035,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 +1198,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "Texto"
|
||||
ref: "Variables"
|
||||
aiScriptVar: "Variable de AiScript"
|
||||
fn: "funciones"
|
||||
_fn:
|
||||
slots: "Slots"
|
||||
@ -900,3 +1220,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,9 +14,10 @@ const merge = (...args) => args.reduce((a, c) => ({
|
||||
}), {});
|
||||
|
||||
const languages = [
|
||||
'ar-SA',
|
||||
//'cs-CZ',
|
||||
//'da-DK',
|
||||
//'de-DE',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
'fr-FR',
|
||||
@ -26,7 +27,7 @@ const languages = [
|
||||
//'nl-NL',
|
||||
//'pl-PL',
|
||||
'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,8 @@ clickToShow: "クリックして表示"
|
||||
sensitive: "閲覧注意"
|
||||
add: "追加"
|
||||
reaction: "リアクション"
|
||||
reactionSettingDescription: "リアクションピッカーに表示するリアクションを改行で区切って設定します。"
|
||||
reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。"
|
||||
rememberNoteVisibility: "公開範囲を記憶する"
|
||||
renameFile: "ファイル名を変更"
|
||||
attachCancel: "添付取り消し"
|
||||
markAsSensitive: "閲覧注意にする"
|
||||
unmarkAsSensitive: "閲覧注意を解除する"
|
||||
@ -102,10 +111,16 @@ unblockConfirm: "ブロック解除しますか?"
|
||||
suspendConfirm: "凍結しますか?"
|
||||
unsuspendConfirm: "解凍しますか?"
|
||||
selectList: "リストを選択"
|
||||
selectAntenna: "アンテナを選択"
|
||||
selectWidget: "ウィジェットを選択"
|
||||
editWidgets: "ウィジェットを編集"
|
||||
editWidgetsExit: "編集を終了"
|
||||
customEmojis: "カスタム絵文字"
|
||||
emoji: "絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
settingGuide: "おすすめ設定"
|
||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||
cacheRemoteFilesDescription: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されないので通信量が増加します。"
|
||||
flagAsBot: "Botとして設定"
|
||||
@ -116,6 +131,7 @@ loginFailed: "ログインに失敗しました"
|
||||
showOnRemote: "リモートで表示"
|
||||
general: "全般"
|
||||
wallpaper: "壁紙"
|
||||
setWallpaper: "壁紙を設定"
|
||||
removeWallpaper: "壁紙を削除"
|
||||
searchWith: "検索: {q}"
|
||||
youHaveNoLists: "リストがありません"
|
||||
@ -168,8 +184,8 @@ intro: "Misskeyのインストールが完了しました!管理者アカウ
|
||||
done: "完了"
|
||||
processing: "処理中"
|
||||
preview: "プレビュー"
|
||||
default: "デフォルト"
|
||||
noCustomEmojis: "絵文字はありません"
|
||||
customEmojisOfRemote: "リモートの絵文字"
|
||||
noJobs: "ジョブはありません"
|
||||
federating: "連合中"
|
||||
blocked: "ブロック中"
|
||||
@ -203,10 +219,13 @@ messaging: "チャット"
|
||||
upload: "アップロード"
|
||||
fromDrive: "ドライブから"
|
||||
fromUrl: "URLから"
|
||||
uploadFromUrl: "URLアップロード"
|
||||
uploadFromUrlDescription: "アップロードしたいファイルのURL"
|
||||
uploadFromUrlRequested: "アップロードをリクエストしました"
|
||||
uploadFromUrlMayTakeTime: "アップロードが完了するまで時間がかかる場合があります。"
|
||||
explore: "みつける"
|
||||
games: "Misskey Games"
|
||||
messageRead: "既読"
|
||||
recentUsedEmojis: "最近使用した絵文字"
|
||||
noMoreHistory: "これより過去の履歴はありません"
|
||||
startMessaging: "チャットを開始"
|
||||
nUsersRead: "{n}人が読みました"
|
||||
@ -222,22 +241,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 +281,7 @@ watch: "ウォッチ"
|
||||
unwatch: "ウォッチ解除"
|
||||
accept: "許可"
|
||||
reject: "拒否"
|
||||
normal: "正常"
|
||||
instanceName: "インスタンス名"
|
||||
instanceDescription: "インスタンスの紹介"
|
||||
maintainerName: "管理者の名前"
|
||||
@ -277,15 +313,21 @@ bannerUrl: "バナー画像のURL"
|
||||
basicInfo: "基本情報"
|
||||
pinnedUsers: "ピン留めユーザー"
|
||||
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
|
||||
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 +341,7 @@ notesAndReplies: "投稿と返信"
|
||||
withFiles: "ファイル付き"
|
||||
silence: "サイレンス"
|
||||
silenceConfirm: "サイレンスしますか?"
|
||||
unsilence: "サイレンス解除"
|
||||
unsilenceConfirm: "サイレンス解除しますか?"
|
||||
popularUsers: "人気のユーザー"
|
||||
recentlyUpdatedUsers: "最近投稿したユーザー"
|
||||
@ -330,9 +373,6 @@ unregister: "登録を解除"
|
||||
passwordLessLogin: "パスワード無しログイン"
|
||||
resetPassword: "パスワードをリセット"
|
||||
newPasswordIs: "新しいパスワードは「{password}」です"
|
||||
post: "投稿"
|
||||
posted: "投稿しました"
|
||||
autoReloadWhenDisconnected: "サーバー切断時に自動リロード"
|
||||
autoNoteWatch: "ノートの自動ウォッチ"
|
||||
autoNoteWatchDescription: "あなたがリアクションしたり返信したりした他のユーザーのノートに関する通知を受け取るようにします。"
|
||||
reduceUiAnimation: "UIのアニメーションを減らす"
|
||||
@ -385,13 +425,14 @@ strongPassword: "強いパスワード"
|
||||
passwordMatched: "一致しました"
|
||||
passwordNotMatched: "一致していません"
|
||||
signinWith: "{x}でログイン"
|
||||
tapSecurityKey: "セキュリティーキーにタッチ"
|
||||
signinFailed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
|
||||
tapSecurityKey: "セキュリティキーにタッチ"
|
||||
or: "もしくは"
|
||||
uiLanguage: "UIの表示言語"
|
||||
groupInvited: "グループに招待されました"
|
||||
aboutX: "{x}について"
|
||||
useOsNativeEmojis: "OSネイティブの絵文字を使用"
|
||||
noGroups: "グループがありません"
|
||||
youHaveNoGroups: "グループがありません"
|
||||
joinOrCreateGroup: "既存のグループに招待してもらうか、新しくグループを作成してください。"
|
||||
noHistory: "履歴はありません"
|
||||
disableAnimatedMfm: "動きのあるMFMを無効にする"
|
||||
@ -411,8 +452,8 @@ remote: "リモート"
|
||||
total: "合計"
|
||||
weekOverWeekChanges: "前週比"
|
||||
dayOverDayChanges: "前日比"
|
||||
accessibility: "アクセシビリティ"
|
||||
clinetSettings: "クライアント設定"
|
||||
appearance: "アピアランス"
|
||||
clientSettings: "クライアント設定"
|
||||
accountSettings: "アカウント設定"
|
||||
promotion: "プロモーション"
|
||||
promote: "プロモート"
|
||||
@ -421,15 +462,241 @@ 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: "音量"
|
||||
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: "モーダルにぼかし効果を使用"
|
||||
generateAccessToken: "アクセストークンの発行"
|
||||
permission: "権限"
|
||||
enableAll: "全て有効にする"
|
||||
disableAll: "全て無効にする"
|
||||
tokenRequested: "アカウントへのアクセス許可"
|
||||
pluginTokenRequestedDescription: "このプラグインはここで設定した権限を行使できるようになります。"
|
||||
notificationType: "通知の種類"
|
||||
edit: "編集"
|
||||
useStarForReactionFallback: "リアクション絵文字が不明な場合、代わりに★を使う"
|
||||
emailConfig: "メールサーバー設定"
|
||||
enableEmail: "メール配信機能を有効化する"
|
||||
emailConfigInfo: "メールアドレスの確認やパスワードリセットの際に使います"
|
||||
email: "メールアドレス"
|
||||
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: "チャットを開くときの動作"
|
||||
sample: "サンプル"
|
||||
abuseReports: "通報"
|
||||
reportAbuse: "通報"
|
||||
reportAbuseOf: "{name}を通報する"
|
||||
fillAbuseReportDescription: "通報理由の詳細を記入してください。対象のノートがある場合はそのURLも記入してください。"
|
||||
abuseReported: "内容が送信されました。ご報告ありがとうございました。"
|
||||
send: "送信"
|
||||
abuseMarkAsResolved: "対応済みにする"
|
||||
|
||||
_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}をインストールしました"
|
||||
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 +704,8 @@ _sfx:
|
||||
notification: "通知"
|
||||
chat: "チャット"
|
||||
chatBg: "チャット(バックグラウンド)"
|
||||
antenna: "アンテナ受信"
|
||||
channel: "チャンネル通知"
|
||||
|
||||
_ago:
|
||||
unknown: "謎"
|
||||
@ -517,10 +786,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 +823,15 @@ _widgets:
|
||||
rss: "RSSリーダー"
|
||||
activity: "アクティビティ"
|
||||
photos: "フォト"
|
||||
digitalClock: "デジタル時計"
|
||||
federation: "連合"
|
||||
postForm: "投稿フォーム"
|
||||
|
||||
_cw:
|
||||
hide: "隠す"
|
||||
show: "もっと見る"
|
||||
chars: "{count}文字"
|
||||
files: "{count}ファイル"
|
||||
poll: "アンケート"
|
||||
|
||||
_poll:
|
||||
noOnlyOneChoice: "選択肢は最低2つ必要です"
|
||||
@ -589,10 +866,12 @@ _visibility:
|
||||
specified: "ダイレクト"
|
||||
specifiedDescription: "指定したユーザーのみに公開"
|
||||
localOnly: "ローカルのみ"
|
||||
localOnlyDescription: "リモートユーザーには非公開"
|
||||
|
||||
_postForm:
|
||||
replyPlaceholder: "このノートに返信..."
|
||||
quotePlaceholder: "このノートを引用..."
|
||||
channelPlaceholder: "チャンネルに投稿..."
|
||||
_placeholders:
|
||||
a: "いまどうしてる?"
|
||||
b: "何かありましたか?"
|
||||
@ -635,15 +914,15 @@ _charts:
|
||||
_instanceCharts:
|
||||
requests: "リクエスト"
|
||||
users: "ユーザーの増減"
|
||||
usersTotal: "ユーザーの積算"
|
||||
usersTotal: "ユーザーの累積"
|
||||
notes: "ノートの増減"
|
||||
notesTotal: "ノートの積算"
|
||||
notesTotal: "ノートの累積"
|
||||
ff: "フォロー/フォロワーの増減"
|
||||
ffTotal: "フォロー/フォロワーの積算"
|
||||
ffTotal: "フォロー/フォロワーの累積"
|
||||
cacheSize: "キャッシュサイズの増減"
|
||||
cacheSizeTotal: "キャッシュサイズの積算"
|
||||
cacheSizeTotal: "キャッシュサイズの累積"
|
||||
files: "ファイル数の増減"
|
||||
filesTotal: "ファイル数の積算"
|
||||
filesTotal: "ファイル数の累積"
|
||||
|
||||
_timelines:
|
||||
home: "ホーム"
|
||||
@ -651,49 +930,106 @@ _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: "ページを削除しました"
|
||||
nameAlreadyExists: "指定されたページURLは既に存在しています"
|
||||
invalidNameTitle: "不正なページURLです"
|
||||
invalidNameText: "空白でないか確認してください"
|
||||
editThisPage: "このページを編集"
|
||||
viewSource: "ソースを表示"
|
||||
viewPage: "ページを見る"
|
||||
like: "いいね"
|
||||
unlike: "いいね解除"
|
||||
liked-pages: "いいねしたページ"
|
||||
my-pages: "自分のページ"
|
||||
my: "自分のページ"
|
||||
liked: "いいねしたページ"
|
||||
inspector: "インスペクター"
|
||||
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 +1044,8 @@ _pages:
|
||||
post: "投稿フォーム"
|
||||
_post:
|
||||
text: "内容"
|
||||
attachCanvasImage: "キャンバスの画像を添付する"
|
||||
canvasId: "キャンバスID"
|
||||
|
||||
textInput: "テキスト入力"
|
||||
_textInput:
|
||||
@ -727,6 +1065,12 @@ _pages:
|
||||
text: "タイトル"
|
||||
default: "デフォルト値"
|
||||
|
||||
canvas: "キャンバス"
|
||||
_canvas:
|
||||
id: "キャンバスID"
|
||||
width: "幅"
|
||||
height: "高さ"
|
||||
|
||||
switch: "スイッチ"
|
||||
_switch:
|
||||
name: "変数名"
|
||||
@ -754,6 +1098,9 @@ _pages:
|
||||
message: "押したときに表示するメッセージ"
|
||||
variable: "送信する変数"
|
||||
no-variable: "なし"
|
||||
callAiScript: "AiScript呼び出し"
|
||||
_callAiScript:
|
||||
functionName: "関数名"
|
||||
|
||||
radioButton: "選択肢"
|
||||
_radioButton:
|
||||
@ -916,6 +1263,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "テキスト"
|
||||
ref: "変数"
|
||||
aiScriptVar: "AiScript変数"
|
||||
fn: "関数"
|
||||
_fn:
|
||||
slots: "スロット"
|
||||
@ -937,3 +1285,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: "ダイレクト"
|
||||
|
@ -35,19 +35,37 @@ unpin: "ピン留めやめる"
|
||||
copyContent: "内容をコピー"
|
||||
copyLink: "リンクをコピー"
|
||||
delete: "ほかす"
|
||||
deleteAndEdit: "ほかして直す"
|
||||
deleteAndEditConfirm: "このノートをほかしてもっかい直す?このノートへのリアクション、Remote、返信も全部消えんで"
|
||||
addToList: "リストに入れたる"
|
||||
sendMessage: "メッセージを送る"
|
||||
copyUsername: "ユーザー名をコピー"
|
||||
reply: "返す"
|
||||
loadMore: "もっとあるやろ!"
|
||||
youGotNewFollower: "フォローされたで"
|
||||
receiveFollowRequest: "フォローリクエストされたで"
|
||||
followRequestAccepted: "フォローが承認されたで"
|
||||
mentions: "あんた宛て"
|
||||
directNotes: "ダイレクト投稿"
|
||||
importAndExport: "インポートとエクスポート"
|
||||
import: "インポート"
|
||||
export: "エクスポート"
|
||||
files: "ファイル"
|
||||
download: "ダウンロード"
|
||||
driveFileDeleteConfirm: "ファイル「{name}」を消してしもうてええか?このファイルを添付したノートも消えてまうで。"
|
||||
unfollowConfirm: "{name}のフォローを解除してもええんか?"
|
||||
exportRequested: "エクスポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。エクスポート終わったら「ドライブ」に突っ込んどくで。"
|
||||
importRequested: "インポートしてな、ってリクエストしたけど、これ多分めっちゃ時間かかるで。"
|
||||
lists: "リスト"
|
||||
noLists: "リストはあらへん"
|
||||
note: "ノート"
|
||||
notes: "ノート"
|
||||
following: "フォロー"
|
||||
followers: "フォロワー"
|
||||
followsYou: "フォローされとるで"
|
||||
error: "問題が発生してん"
|
||||
createList: "リスト作る"
|
||||
manageLists: "リストの管理"
|
||||
retry: "もっぺんやってみる"
|
||||
enterListName: "リスト名を入れてや"
|
||||
privacy: "プライバシーってなんや?オカンの年齢か?"
|
||||
makeFollowManuallyApprove: "他人のフォローは許可してからや!"
|
||||
@ -55,14 +73,20 @@ defaultNoteVisibility: "もとからの公開範囲"
|
||||
follow: "フォロー"
|
||||
followRequest: "フォロー許してくれや!言うてみる"
|
||||
followRequests: "フォロー許してくれや!"
|
||||
unfollow: "フォローやめる"
|
||||
followRequestPending: "フォロー許してくれるん待っとる"
|
||||
enterEmoji: "絵文字を入れてや"
|
||||
renote: "Renote"
|
||||
unrenote: "Renoteやめる"
|
||||
quote: "引用"
|
||||
pinnedNote: "ピン留めされたノート"
|
||||
you: "あんた"
|
||||
clickToShow: "押してみ、見せたるわ"
|
||||
sensitive: "見たらあかんで"
|
||||
add: "増やす"
|
||||
reaction: "リアクション"
|
||||
renameFile: "ファイル名をいらう"
|
||||
reactionSettingDescription: "リアクションピッカーに出しとくリアクションを選んでや。"
|
||||
rememberNoteVisibility: "公開範囲覚えといて"
|
||||
attachCancel: "くっつけるのやめよか"
|
||||
markAsSensitive: "ちょっと見せられへんわ"
|
||||
unmarkAsSensitive: "別にええんじゃね?"
|
||||
@ -73,44 +97,271 @@ block: "ブロック"
|
||||
unblock: "ブロックやめたる"
|
||||
suspend: "凍結"
|
||||
unsuspend: "溶かす"
|
||||
blockConfirm: "ブロックしてしもうてええか?"
|
||||
unblockConfirm: "ブロックすんのやめるけどええか?"
|
||||
suspendConfirm: "凍結してしもうてええか?"
|
||||
unsuspendConfirm: "解凍するけどええか?"
|
||||
selectList: "リストを選ぶ"
|
||||
customEmojis: "カスタム絵文字"
|
||||
emojiName: "絵文字名"
|
||||
emojiUrl: "絵文字画像URL"
|
||||
addEmoji: "絵文字を追加"
|
||||
settingGuide: "ええ感じの設定"
|
||||
cacheRemoteFiles: "リモートのファイルをキャッシュする"
|
||||
cacheRemoteFilesDescription: "この設定をチャラにすると、リモートファイルをキャッシュせず直リンクするようになります。サーバーのストレージを節約できますが、サムネイルが生成されへんので通信量が増加します。"
|
||||
flagAsBot: "Botやでと言っとく"
|
||||
flagAsCat: "Catやでと言っとく"
|
||||
autoAcceptFollowed: "フォローしとるユーザーからのフォロリクは全部勝手にええでって言うで"
|
||||
addAcount: "アカウント追加"
|
||||
loginFailed: "ログインに失敗してん"
|
||||
showOnRemote: "リモートで見る"
|
||||
general: "全般"
|
||||
wallpaper: "壁紙"
|
||||
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}」はなおしてしもてええか?"
|
||||
saved: "保存したで!"
|
||||
messaging: "チャット"
|
||||
upload: "アップロード"
|
||||
fromDrive: "ドライブから"
|
||||
fromUrl: "URLから"
|
||||
uploadFromUrl: "URLアップロード"
|
||||
uploadFromUrlDescription: "このURLのファイルをアップロードしたいねん"
|
||||
uploadFromUrlRequested: "アップロードしたい言うといたで"
|
||||
uploadFromUrlMayTakeTime: "アップロード終わるんにちょい時間かかるかもしれへんわ。"
|
||||
explore: "みつける"
|
||||
games: "Misskey Games"
|
||||
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: "見たらあかんで"
|
||||
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: "メガバイト単位"
|
||||
recaptcha: "reCAPTCHA"
|
||||
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ってなんや?"
|
||||
aboutMisskeyText: "Misskeyはsyuiloいう人が2014年からずっと作ってはる、オープンソースなソフトウェアや。"
|
||||
misskeyMembers: "今んとここんだけのメンバーが作って、メンテナンスしてはる:"
|
||||
misskeySource: "ソースコードはこっから見てな:"
|
||||
misskeyTranslation: "Misskeyの翻訳手伝うてくれへん?:"
|
||||
misskeyDonate: "Misskeyにお金あげたら開発のサポートになるで:"
|
||||
morePatrons: "他にもぎょうさんの人からサポートしてもろてんねん。ほんまおおきに🥰"
|
||||
patrons: "支援者"
|
||||
administrator: "管理者"
|
||||
token: "トークン"
|
||||
twoStepAuthentication: "二段階認証"
|
||||
moderator: "モデレーター"
|
||||
nUsersMentioned: "{n}人が投稿"
|
||||
securityKey: "セキュリティキー"
|
||||
securityKeyName: "キーの名前"
|
||||
registerSecurityKey: "セキュリティキーを登録するで"
|
||||
lastUsed: "最後につこうた日"
|
||||
unregister: "登録やめる"
|
||||
passwordLessLogin: "パスワード無くてもログインできるようにする"
|
||||
resetPassword: "パスワードをリセット"
|
||||
newPasswordIs: "今度のパスワードは「{password}」や"
|
||||
notFoundDescription: "指定されたURLに該当するページはあらへんやった。"
|
||||
close: "さいなら"
|
||||
joinedGroups: "参加しとるグループ"
|
||||
invites: "来てや"
|
||||
smtpHost: "ホスト"
|
||||
smtpUser: "ユーザー名"
|
||||
smtpPass: "パスワード"
|
||||
_sidebar:
|
||||
icon: "アイコン"
|
||||
_theme:
|
||||
keys:
|
||||
renote: "Renote"
|
||||
_sfx:
|
||||
note: "ノート"
|
||||
notification: "通知"
|
||||
chat: "チャット"
|
||||
_ago:
|
||||
unknown: "謎"
|
||||
future: "未来"
|
||||
@ -137,6 +388,8 @@ _antennaSources:
|
||||
_widgets:
|
||||
notifications: "通知"
|
||||
timeline: "タイムライン"
|
||||
activity: "アクティビティ"
|
||||
federation: "連合"
|
||||
_cw:
|
||||
show: "もっとあるやろ!"
|
||||
_poll:
|
||||
@ -144,14 +397,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 +436,17 @@ _pages:
|
||||
arg1: "リスト"
|
||||
types:
|
||||
array: "リスト"
|
||||
_notification:
|
||||
youWereFollowed: "フォローされたで"
|
||||
_types:
|
||||
follow: "フォロー"
|
||||
renote: "Renote"
|
||||
quote: "引用"
|
||||
reaction: "リアクション"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "通知"
|
||||
tl: "タイムライン"
|
||||
antenna: "アンテナ"
|
||||
list: "リスト"
|
||||
mentions: "あんた宛て"
|
||||
|
91
locales/kab-KAB.yml
Normal file
@ -0,0 +1,91 @@
|
||||
---
|
||||
_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"
|
||||
_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:
|
||||
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,49 @@ 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: "ಗುಪ್ತಪದ"
|
||||
_sfx:
|
||||
notification: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
_widgets:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
timeline: "ಸಮಯಸಾಲು"
|
||||
_cw:
|
||||
show: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||
_profile:
|
||||
username: "ಬಳಕೆಹೆಸರು"
|
||||
_notification:
|
||||
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
tl: "ಸಮಯಸಾಲು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
||||
|
@ -35,6 +35,8 @@ unpin: "프로필에서 고정 해제"
|
||||
copyContent: "내용 복사"
|
||||
copyLink: "링크 복사"
|
||||
delete: "삭제"
|
||||
deleteAndEdit: "삭제 후 편집"
|
||||
deleteAndEditConfirm: "이 노트를 삭제한 뒤 다시 편집하시겠습니까? 이 노트에 대한 리액션, 리노트, 답글 또한 모두 삭제됩니다."
|
||||
addToList: "리스트에 추가"
|
||||
sendMessage: "메시지 보내기"
|
||||
copyUsername: "유저명 복사"
|
||||
@ -43,6 +45,7 @@ loadMore: "더 보기"
|
||||
youGotNewFollower: "새로운 팔로워가 있습니다"
|
||||
receiveFollowRequest: "새로운 팔로우 요청이 있습니다"
|
||||
followRequestAccepted: "팔로우가 수락되었습니다"
|
||||
mention: "멘션"
|
||||
mentions: "받은 멘션"
|
||||
directNotes: "다이렉트 노트"
|
||||
importAndExport: "가져오기와 내보내기"
|
||||
@ -63,7 +66,6 @@ followers: "팔로워"
|
||||
followsYou: "당신을 팔로우합니다"
|
||||
createList: "리스트 만들기"
|
||||
manageLists: "리스트 관리"
|
||||
error: "오류가 발생했습니다"
|
||||
retry: "다시 시도"
|
||||
enterListName: "리스트 이름을 입력"
|
||||
privacy: "프라이버시"
|
||||
@ -84,9 +86,8 @@ clickToShow: "클릭하여 보기"
|
||||
sensitive: "열람주의"
|
||||
add: "추가"
|
||||
reaction: "리액션"
|
||||
reactionSettingDescription: "리액션 선택창에 표시할 리액션을 줄바꿈으로 구분해 설정합니다."
|
||||
reactionSettingDescription: "리액션 선택 상자에 표시할 리액션을 설정합니다."
|
||||
rememberNoteVisibility: "공개 범위를 기억하기"
|
||||
renameFile: "파일 이름 변경"
|
||||
attachCancel: "첨부 취소"
|
||||
markAsSensitive: "열람주의로 설정"
|
||||
unmarkAsSensitive: "열람주의 해제"
|
||||
@ -102,10 +103,14 @@ unblockConfirm: "이 계정의 차단을 해제하시겠습니까?"
|
||||
suspendConfirm: "이 계정을 정지하시겠습니까?"
|
||||
unsuspendConfirm: "이 계정의 정지를 해제하시겠습니까?"
|
||||
selectList: "리스트 선택"
|
||||
selectAntenna: "안테나 선택"
|
||||
selectWidget: "위젯 선택"
|
||||
customEmojis: "커스텀 이모지"
|
||||
emoji: "이모지"
|
||||
emojiName: "이모지 이름"
|
||||
emojiUrl: "이모지 URL"
|
||||
addEmoji: "이모지 추가"
|
||||
settingGuide: "추천 설정"
|
||||
cacheRemoteFiles: "리모트 파일을 캐시"
|
||||
cacheRemoteFilesDescription: "이 설정을 해지하면 리모트 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다."
|
||||
flagAsBot: "나는 봇입니다"
|
||||
@ -116,6 +121,7 @@ loginFailed: "로그인에 실패했습니다"
|
||||
showOnRemote: "리모트에서 보기"
|
||||
general: "일반"
|
||||
wallpaper: "배경"
|
||||
setWallpaper: "배경화면 설정"
|
||||
removeWallpaper: "배경 제거"
|
||||
searchWith: "검색: {q}"
|
||||
youHaveNoLists: "리스트가 없습니다"
|
||||
@ -168,8 +174,8 @@ intro: "Misskey의 설치가 완료되었습니다! 관리자 계정을 생성
|
||||
done: "완료"
|
||||
processing: "처리중"
|
||||
preview: "미리보기"
|
||||
default: "기본값"
|
||||
noCustomEmojis: "이모지가 없습니다"
|
||||
customEmojisOfRemote: "다른 인스턴스들의 이모지"
|
||||
noJobs: "작업이 없습니다"
|
||||
federating: "연합 중"
|
||||
blocked: "차단됨"
|
||||
@ -203,10 +209,13 @@ messaging: "대화"
|
||||
upload: "업로드"
|
||||
fromDrive: "드라이브에서"
|
||||
fromUrl: "URL로부터"
|
||||
uploadFromUrl: "URL 업로드"
|
||||
uploadFromUrlDescription: "업로드하려는 파일의 URL"
|
||||
uploadFromUrlRequested: "업로드를 요청했습니다"
|
||||
uploadFromUrlMayTakeTime: "업로드가 완료될 때까지 시간이 소요될 수 있습니다."
|
||||
explore: "발견하기"
|
||||
games: "Misskey Games"
|
||||
messageRead: "읽음"
|
||||
recentUsedEmojis: "최근에 사용한 이모지"
|
||||
noMoreHistory: "이것보다 과거의 기록이 없습니다"
|
||||
startMessaging: "대화 시작하기"
|
||||
nUsersRead: "{n}명이 읽음"
|
||||
@ -222,28 +231,46 @@ 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: "열람주의"
|
||||
disconnectedFromServer: "서버와의 연결이 끊어졌습니다"
|
||||
reload: "새로고침"
|
||||
doNothing: "무시하기"
|
||||
reloadConfirm: "새로고침 하시겠습니까?"
|
||||
watch: "지켜보기"
|
||||
unwatch: "지켜보기 해제"
|
||||
accept: "허가"
|
||||
reject: "거부"
|
||||
normal: "정상"
|
||||
instanceName: "인스턴스 이름"
|
||||
instanceDescription: "인스턴스 소개"
|
||||
maintainerName: "관리자 이름"
|
||||
@ -275,15 +302,21 @@ bannerUrl: "배너 이미지 URL"
|
||||
basicInfo: "기본 정보"
|
||||
pinnedUsers: "고정된 유저"
|
||||
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
|
||||
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 +330,7 @@ notesAndReplies: "글과 답글"
|
||||
withFiles: "미디어"
|
||||
silence: "사일런스"
|
||||
silenceConfirm: "이 계정을 사일런스로 설정하시겠습니까?"
|
||||
unsilence: "사일런스 해제"
|
||||
unsilenceConfirm: "이 계정의 사일런스를 해제하시겠습니까?"
|
||||
popularUsers: "인기 유저"
|
||||
recentlyUpdatedUsers: "최근 활동한 유저"
|
||||
@ -328,9 +362,6 @@ unregister: "등록 해제"
|
||||
passwordLessLogin: "비밀번호 없이 로그인"
|
||||
resetPassword: "비밀번호 재설정"
|
||||
newPasswordIs: "새로운 비밀번호는 \"{password}\" 입니다"
|
||||
post: "작성"
|
||||
posted: "게시하였습니다"
|
||||
autoReloadWhenDisconnected: "서버와의 연결이 끊기면 자동 새로고침"
|
||||
autoNoteWatch: "노트를 자동으로 지켜보기"
|
||||
autoNoteWatchDescription: "리액션하거나 답글을 남긴 다른 유저의 노트에 대한 알림을 받습니다."
|
||||
reduceUiAnimation: "UI의 애니메이션을 줄이기"
|
||||
@ -383,13 +414,14 @@ strongPassword: "강한 비밀번호"
|
||||
passwordMatched: "일치합니다"
|
||||
passwordNotMatched: "일치하지 않습니다"
|
||||
signinWith: "{x}로 로그인"
|
||||
signinFailed: "로그인할 수 없습니다. 사용자명과 비밀번호를 확인하여 주십시오."
|
||||
tapSecurityKey: "보안 키를 터치"
|
||||
or: "혹은"
|
||||
uiLanguage: "UI 표시 언어"
|
||||
groupInvited: "그룹에 초대되었습니다"
|
||||
aboutX: "{x}에 대하여"
|
||||
useOsNativeEmojis: "OS 기본 이모지를 사용"
|
||||
noGroups: "그룹이 없습니다"
|
||||
youHaveNoGroups: "그룹이 없습니다"
|
||||
joinOrCreateGroup: "다른 그룹의 초대를 받거나, 직접 새 그룹을 만들어 보세요."
|
||||
noHistory: "기록이 없습니다"
|
||||
disableAnimatedMfm: "움직임이 있는 MFM을 비활성화"
|
||||
@ -399,7 +431,7 @@ tags: "태그"
|
||||
docSource: "이 문서의 소스"
|
||||
createAccount: "계정 만들기"
|
||||
existingAcount: "기존 계정"
|
||||
regenerate: "다시 생성"
|
||||
regenerate: "재생성"
|
||||
fontSize: "글자 크기"
|
||||
noFollowRequests: "처리되지 않은 팔로우 요청이 없습니다"
|
||||
openImageInNewTab: "새 탭에서 이미지 열기"
|
||||
@ -409,8 +441,6 @@ remote: "리모트"
|
||||
total: "합계"
|
||||
weekOverWeekChanges: "지난주보다"
|
||||
dayOverDayChanges: "어제보다"
|
||||
accessibility: "접근성"
|
||||
clinetSettings: "클라이언트 설정"
|
||||
accountSettings: "계정 설정"
|
||||
promotion: "프로모션"
|
||||
promote: "프로모션하기"
|
||||
@ -419,16 +449,153 @@ 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 로 설정해 주세요"
|
||||
serverLogs: "서버 로그"
|
||||
deleteAll: "모두 삭제"
|
||||
showFixedPostForm: "타임라인 상단에 글 작성란을 표시"
|
||||
newNoteRecived: "새 노트가 있습니다"
|
||||
useNotificationsPopup: "알림 목록을 팝업으로 표시"
|
||||
sounds: "소리"
|
||||
listen: "듣기"
|
||||
none: "없음"
|
||||
volume: "음량"
|
||||
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: "덱 해제"
|
||||
generateAccessToken: "액세스 토큰 생성"
|
||||
permission: "권한"
|
||||
enableAll: "전체 선택"
|
||||
disableAll: "전체 해제"
|
||||
tokenRequested: "계정 접근 허용"
|
||||
edit: "편집"
|
||||
useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용"
|
||||
emailConfig: "메일 서버 설정"
|
||||
emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다."
|
||||
email: "메일 주소"
|
||||
smtpConfig: "SMTP 서버 설정"
|
||||
smtpHost: "호스트"
|
||||
smtpPort: "포트"
|
||||
smtpUser: "유저명"
|
||||
smtpPass: "비밀번호"
|
||||
emptyToDisableSmtpAuth: "SMTP 인증을 사용하지 않으려면 공란으로 비워둡니다."
|
||||
smtpSecure: "SMTP 연결에 Implicit SSL/TTS 사용"
|
||||
smtpSecureInfo: "STARTTLS 사용 시에는 해제합니다."
|
||||
wordMute: "단어 뮤트"
|
||||
makeActive: "활성화"
|
||||
copy: "복사"
|
||||
logs: "로그"
|
||||
database: "데이터베이스"
|
||||
channel: "채널"
|
||||
_channel:
|
||||
create: "채널 생성"
|
||||
setBanner: "배너 설정"
|
||||
removeBanner: "배너 삭제"
|
||||
featured: "트렌드"
|
||||
following: "팔로잉"
|
||||
usersCount: "{n}명 참여 중"
|
||||
notesCount: "{n}노트"
|
||||
_sidebar:
|
||||
icon: "아바타"
|
||||
hide: "숨기기"
|
||||
_wordMute:
|
||||
muteWords: "뮤트할 단어"
|
||||
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 +673,11 @@ _permissions:
|
||||
"write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다"
|
||||
_auth:
|
||||
shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?"
|
||||
permissionAsk: "이 앱은 다음의 권한을 요청합니다"
|
||||
pleaseGoBack: "앱으로 돌아가서 시도해 주세요"
|
||||
callback: "앱으로 돌아갑니다"
|
||||
denied: "접근이 거부되었습니다"
|
||||
_antennaSources:
|
||||
all: "모든 노트"
|
||||
homeTimeline: "팔로우중인 유저의 노트"
|
||||
@ -531,12 +702,14 @@ _widgets:
|
||||
rss: "RSS 리더"
|
||||
activity: "활동"
|
||||
photos: "사진"
|
||||
digitalClock: "디지털 시계"
|
||||
federation: "연합"
|
||||
postForm: "글 입력란"
|
||||
_cw:
|
||||
hide: "숨기기"
|
||||
show: "더 보기"
|
||||
chars: "{count} 문자"
|
||||
files: "{count} 파일"
|
||||
poll: "투표"
|
||||
_poll:
|
||||
noOnlyOneChoice: "투표 항목이 최소 2개 필요합니다"
|
||||
choiceN: "선택지 {n}"
|
||||
@ -569,6 +742,7 @@ _visibility:
|
||||
specified: "다이렉트"
|
||||
specifiedDescription: "지정한 유저에게만 공개"
|
||||
localOnly: "로컬에만"
|
||||
localOnlyDescription: "리모트 유저에게 보이지 않기"
|
||||
_postForm:
|
||||
replyPlaceholder: "이 노트에 답글..."
|
||||
quotePlaceholder: "이 노트를 인용..."
|
||||
@ -595,26 +769,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 +798,105 @@ _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: "인스펙터"
|
||||
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 +909,8 @@ _pages:
|
||||
post: "글 입력란"
|
||||
_post:
|
||||
text: "내용"
|
||||
attachCanvasImage: "캔버스의 이미지와 함께 게시하기"
|
||||
canvasId: "캔버스 ID"
|
||||
textInput: "텍스트 입력"
|
||||
_textInput:
|
||||
name: "변수명"
|
||||
@ -694,6 +926,11 @@ _pages:
|
||||
name: "변수명"
|
||||
text: "제목"
|
||||
default: "기본값"
|
||||
canvas: "캔버스"
|
||||
_canvas:
|
||||
id: "캔버스 ID"
|
||||
width: "폭"
|
||||
height: "높이"
|
||||
switch: "스위치"
|
||||
_switch:
|
||||
name: "변수명"
|
||||
@ -719,6 +956,9 @@ _pages:
|
||||
message: "눌렀을 때 표시할 페이지"
|
||||
variable: "보낼 변수"
|
||||
no-variable: "없음"
|
||||
callAiScript: "AiScript 호출"
|
||||
_callAiScript:
|
||||
functionName: "함수명"
|
||||
radioButton: "선택지"
|
||||
_radioButton:
|
||||
name: "변수명"
|
||||
@ -879,6 +1119,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "텍스트"
|
||||
ref: "변수"
|
||||
aiScriptVar: "AiScript 변수"
|
||||
fn: "함수"
|
||||
_fn:
|
||||
slots: "슬롯"
|
||||
@ -900,3 +1141,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,21 @@
|
||||
---
|
||||
_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"
|
||||
_sfx:
|
||||
notification: "Powiadomienia"
|
||||
_widgets:
|
||||
notifications: "Powiadomienia"
|
||||
_profile:
|
||||
username: "Nazwa użytkownika"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Powiadomienia"
|
||||
|
@ -1,2 +1,894 @@
|
||||
---
|
||||
_lang_: "Русский язык"
|
||||
_lang_: "Русский"
|
||||
introMisskey: "Добро пожаловать! Misskey - это децентрализованный сервис микроблогов с открытым исходным кодом.\nСоздавайте «записи», чтобы поделиться происходящим или рассказать всем о себе 📡\nТакже Вы можете добавить быструю реакцию на все записи с помощью функции «реакция» 👍\nОткройте для себя новый мир 🚀"
|
||||
monthAndDay: "{day}.{month}"
|
||||
search: "Поиск"
|
||||
notifications: "Уведомления"
|
||||
username: "Имя пользователя"
|
||||
password: "Пароль"
|
||||
fetchingAsApObject: "Запрос на федерацию"
|
||||
ok: "Окей"
|
||||
gotIt: "Отлично"
|
||||
cancel: "Отмена"
|
||||
enterUsername: "Введите имя пользователя"
|
||||
renotedBy: "{user} репостнул(а)"
|
||||
noNotes: "Нет постов"
|
||||
noNotifications: "Нет уведомлений"
|
||||
instance: "Узел"
|
||||
settings: "Настройки"
|
||||
basicSettings: "Основное"
|
||||
otherSettings: "Прочee"
|
||||
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: "Прокси аккаунт"
|
||||
proxyAccountDescription: "Учетная запись прокси - это учетная запись, которая при определенных условиях действует в качестве удаленного последователя для пользователей. Например, когда пользователь добавляет удаленного пользователя в список, действия удаленного пользователя не будут доставляться экземпляру, если ни один локальный пользователь не следует за этим пользователем, поэтому вместо него будет действовать учетная запись прокси."
|
||||
host: "Хост"
|
||||
selectUser: "Выбор пользователя"
|
||||
recipient: "Кому"
|
||||
annotation: "Описание"
|
||||
federation: "Федиверс"
|
||||
instances: "Узел"
|
||||
registeredAt: "Присоединился(ась)"
|
||||
latestRequestSentAt: "Последний запрос отправлен"
|
||||
latestRequestReceivedAt: "Последний запрос, поступивший по адресу"
|
||||
latestStatus: "Последний статус"
|
||||
storageUsage: "Использовано"
|
||||
charts: "Диаграммы"
|
||||
perHour: "Каждый час"
|
||||
perDay: "Каждый день"
|
||||
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: "Подписчики инстанса"
|
||||
instanceUsers: "Пользователи инстанса"
|
||||
changePassword: "Изменить пароль"
|
||||
security: "Безопасность"
|
||||
retypedNotMatch: "Нет совпадений"
|
||||
currentPassword: "Текущий пароль"
|
||||
newPassword: "Новый пароль"
|
||||
newPasswordRetype: "Новый пароль (повторно):"
|
||||
attachFile: "Прикрепить файлы"
|
||||
more: "Ещё!"
|
||||
featured: "Рекомендуемые"
|
||||
usernameOrUserId: "Имя пользователя или ID"
|
||||
noSuchUser: "Пользователь не найден"
|
||||
lookup: "Подписка"
|
||||
announcements: "Уведомление"
|
||||
imageUrl: "URL-адрес изображения"
|
||||
remove: "Удалить"
|
||||
removed: "Удалено"
|
||||
removeAreYouSure: "Хочешь удалить \"{x}\"?"
|
||||
saved: "Сохранено"
|
||||
messaging: "Сообщения"
|
||||
upload: "Загрузить"
|
||||
fromDrive: "С диска"
|
||||
fromUrl: "URL-адрес"
|
||||
uploadFromUrl: "Загрузить по ссылке"
|
||||
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: "Отклонить"
|
||||
normal: "Стабильно"
|
||||
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: "Удаленные файлы прокси"
|
||||
proxyRemoteFilesDescription: "Если эта функция включена, удаленные файлы, которые (1) не хранятся локально или (2) были удалены с превышением лимита хранения, будут проксированы локально (с эскизами). Это не влияет на хранение на сервере."
|
||||
driveCapacityPerLocalAccount: "Емкость диска для локального пользователя"
|
||||
driveCapacityPerRemoteAccount: "Емкость диска для удаленного пользователя"
|
||||
inMb: "В мегабайтах"
|
||||
iconUrl: "URL-адрес иконки"
|
||||
bannerUrl: "URL-адрес изображения баннера"
|
||||
basicInfo: "Общая информация"
|
||||
pinnedUsers: "Прикреплённый пользователь"
|
||||
pinnedUsersDescription: "Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"."
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "Включить hCaptcha"
|
||||
hcaptchaSiteKey: "Ключ сайта"
|
||||
hcaptchaSecretKey: "Секретный ключ"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "Включить reCAPTCHA"
|
||||
recaptchaSiteKey: "Ключ сайта"
|
||||
recaptchaSecretKey: "Секретный ключ"
|
||||
avoidMultiCaptchaConfirm: "Использование нескольких Captchas может вызвать помехи. Хотите отключить другую Captcha? Вы можете оставить несколько Captchas включенными, нажав \"Отмена\"."
|
||||
antennas: "Антенны"
|
||||
manageAntennas: "Настройки антенн"
|
||||
name: "Имя"
|
||||
antennaSource: "Источник антенны"
|
||||
antennaKeywords: "Ключевые слова"
|
||||
antennaExcludeKeywords: "Исключения"
|
||||
antennaKeywordsDescription: "Разделяйте пробелами для условия \"И\". Разделяйте переводом строки для \"ИЛИ\"."
|
||||
notifyAntenna: "Уведомлять о новых записях"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "Включить ServiceWorker"
|
||||
caseSensitive: "С учётом регистра"
|
||||
withReplies: "Включить ответы"
|
||||
connectedTo: "Вы подключены к следующим аккаунтам"
|
||||
notesAndReplies: "Посты и ответы"
|
||||
withFiles: "с файлами"
|
||||
silence: "Заглушить"
|
||||
silenceConfirm: "Вы уверены, что хотите заглушить этого пользователя?"
|
||||
unsilenceConfirm: "Ты уверен, что хочешь отменить глушение этого пользователя?"
|
||||
popularUsers: "Популярные пользователи"
|
||||
recentlyUpdatedUsers: "Недавно активные"
|
||||
recentlyRegisteredUsers: "Недавно зарегистрированные пользователи"
|
||||
recentlyDiscoveredUsers: "Недавно обнаруженные пользователи"
|
||||
exploreUsersCount: "{count} пользователей"
|
||||
exploreFediverse: "Исследуйте Fediverse"
|
||||
popularTags: "Популярные теги"
|
||||
userList: "Списки"
|
||||
about: "Описание"
|
||||
aboutMisskey: "О Misskey"
|
||||
aboutMisskeyText: "Misskey - это программное обеспечение с открытым исходным кодом, разрабатываемое syuilo с 2014 года."
|
||||
misskeyMembers: "В настоящее время он разрабатывается и поддерживается следующими членами:"
|
||||
misskeySource: "Исходный код доступен здесь:"
|
||||
misskeyTranslation: "Помогите нам перевести Misskey:"
|
||||
misskeyDonate: "Вы можете поддержать развитие, пожертвовав Misskey:"
|
||||
morePatrons: "Есть много других, кто поддержал нас. Спасибо 🥰."
|
||||
patrons: "Поддержавшие"
|
||||
administrator: "Администратор"
|
||||
token: "Токен"
|
||||
twoStepAuthentication: "Двухфакторная аутентификация"
|
||||
moderator: "Модератор"
|
||||
nUsersMentioned: "{n}указанные пользователи"
|
||||
securityKey: "Ключ безопасности"
|
||||
securityKeyName: "Имя ключа"
|
||||
registerSecurityKey: "Зарегистрировать защитный ключ"
|
||||
lastUsed: "Последнее использование"
|
||||
unregister: "Отписаться"
|
||||
resetPassword: "Сброс пароля:"
|
||||
newPasswordIs: "Новый пароль - \"{пароль}\"."
|
||||
autoNoteWatch: "Автоматически просматривать записи"
|
||||
autoNoteWatchDescription: "Получать уведомления о заметках других пользователей, на которые вы отреагировали или на которые вы ответили."
|
||||
reduceUiAnimation: "Уменьшить анимацию в пользовательском интерфейсе."
|
||||
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: "Максимальная длина текста"
|
||||
quoteQuestion: "Хочешь добавить цитату?"
|
||||
noMessagesYet: "Сообщений нет"
|
||||
newMessageExists: "Новое сообщение"
|
||||
onlyOneFileCanBeAttached: "К сообщению можно прикрепить только один файл."
|
||||
signinRequired: "Пожалуйста, войдите."
|
||||
invitationCode: "Код приглашения"
|
||||
checking: "Проверка"
|
||||
available: "Доступен"
|
||||
unavailable: "Не доступно"
|
||||
usernameInvalidFormat: "Вы можете использовать a-z, A-Z, 0-9 и _"
|
||||
tooShort: "Слишком короткий"
|
||||
tooLong: "Слишком длинный"
|
||||
weakPassword: "Слабый пароль"
|
||||
normalPassword: "Обычный пароль"
|
||||
strongPassword: "Надёжный пароль"
|
||||
passwordMatched: "Подходящий пароль"
|
||||
passwordNotMatched: "Пароль не найден"
|
||||
signinWith: "Войти в систему с помощью {x}"
|
||||
signinFailed: "Невозможно войти в систему. Введенное вами имя пользователя или пароль неверны."
|
||||
or: "или"
|
||||
uiLanguage: "Язык интерфейса"
|
||||
groupInvited: "Приглашение в группу"
|
||||
aboutX: "Описание {x}"
|
||||
useOsNativeEmojis: "Используйте родной для ОС Emojis"
|
||||
youHaveNoGroups: "Группы не найдены"
|
||||
joinOrCreateGroup: "Получите приглашение присоединиться к группам или вы можете создать свою собственную группу."
|
||||
noHistory: "Ничего не найдено"
|
||||
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: "Спрятать эту запись"
|
||||
objectStorage: "Хранилище"
|
||||
useObjectStorage: "Занято в хранилище"
|
||||
objectStorageBaseUrl: "Базовый URL-адрес"
|
||||
objectStorageBucket: "Bucket"
|
||||
objectStoragePrefix: "Префикс"
|
||||
objectStorageRegion: "Регион"
|
||||
serverLogs: "Журнал сервера"
|
||||
deleteAll: "Удалить всё"
|
||||
sounds: "Звуки"
|
||||
listen: "Слушать"
|
||||
none: "Ничего"
|
||||
showInPage: "Показать страницу"
|
||||
popout: "Развернуть"
|
||||
volume: "Громкость"
|
||||
details: "Подробнее"
|
||||
chooseEmoji: "Выберите эмодзи"
|
||||
unableToProcess: "Я не могу завершить операцию."
|
||||
recentUsed: "Последние использованные"
|
||||
install: "Установить"
|
||||
uninstall: "Удалить"
|
||||
installedApps: "Установленные приложения"
|
||||
nothing: "Ничего не найдено"
|
||||
installedDate: "Дата установки"
|
||||
lastUsedDate: "Дата использования"
|
||||
state: "Состояние"
|
||||
sort: "Сортировать"
|
||||
ascendingOrder: "по возрастанию"
|
||||
descendingOrder: "По убыванию"
|
||||
scratchpad: "Редактор "
|
||||
scratchpadDescription: "Scratchpad предоставляет экспериментальную среду для AiScript, позволяющую писать, запускать и проверять результаты кода, взаимодействующего с Misskey."
|
||||
output: "Выходы"
|
||||
script: "Скрипт"
|
||||
disablePagesScript: "Отключение скриптов в Pages"
|
||||
deleteAllFiles: "Удалить все файлы"
|
||||
deleteAllFilesConfirm: "Вы хотите удалить все файлы?"
|
||||
removeAllFollowing: "Удалить всех подписчиков"
|
||||
userSuspended: "Этот пользователь был заморожен"
|
||||
userSilenced: "Этот пользователь был заглушен"
|
||||
sidebar: "Боковая панель"
|
||||
divider: "Разделительная полоса"
|
||||
addItem: "Добавить элемент"
|
||||
rooms: "Комнаты"
|
||||
relays: "Ретрансляторы"
|
||||
addRelay: "Добавить ретранслятор"
|
||||
addedRelays: "Добавленные ретрансляторы"
|
||||
invisibleNote: "Личное сообщение"
|
||||
visibility: "Видимость"
|
||||
poll: "Опрос"
|
||||
enablePlayer: "Включить плеер"
|
||||
disablePlayer: "Выключить плеер"
|
||||
themeEditor: "Редактор темы"
|
||||
description: "Описание"
|
||||
author: "Автор"
|
||||
plugins: "Плагины"
|
||||
permission: "Разрешения"
|
||||
enableAll: "Включить все"
|
||||
disableAll: "Выключить всё"
|
||||
notificationType: "Тип уведомления"
|
||||
edit: "Изменить"
|
||||
emailConfig: "Настройки почтового сервера"
|
||||
enableEmail: "Активировать функцию доставки электронной почты"
|
||||
emailConfigInfo: "Он используется для подтверждения адреса электронной почты и сброса пароля."
|
||||
email: "email"
|
||||
smtpConfig: "Конфигурация SMTP-сервера"
|
||||
smtpHost: "Хост"
|
||||
smtpPort: "smtp порт"
|
||||
smtpUser: "Имя пользователя"
|
||||
smtpPass: "Пароль"
|
||||
emptyToDisableSmtpAuth: "Вы можете отключить SMTP аутентификацию, оставив ваше имя пользователя и пароль пустыми"
|
||||
smtpSecure: "Использовать SSL/TLS для SMTP-соединений"
|
||||
smtpSecureInfo: "Выключите его при использовании STARTTLS."
|
||||
testEmail: "Проверка Email"
|
||||
wordMute: "Скрытие слов"
|
||||
makeActive: "Активировать"
|
||||
display: "Показать"
|
||||
copy: "Копировать"
|
||||
metrics: "Метрика"
|
||||
overview: "Обзор"
|
||||
logs: "Лог-файлы"
|
||||
delayed: "Задержка"
|
||||
database: "База данных"
|
||||
channel: "каналы"
|
||||
create: "Создать"
|
||||
notificationSetting: "Настройки уведомлений"
|
||||
notificationSettingDesc: "Выберите тип уведомлений для отображения"
|
||||
useGlobalSetting: "Использовать глобальные настройки"
|
||||
useGlobalSettingDesc: "Использовать глобальные настройки"
|
||||
other: "Другие"
|
||||
regenerateLoginToken: "Восстановить токен входа"
|
||||
regenerateLoginTokenDescription: "Восстановите токен, используемый внутри во время входа. Обычно в этом нет необходимости. При восстановлении все устройства будут отключены."
|
||||
setMultipleBySeparatingWithSpace: "Вы можете установить несколько, разделив их пробелами."
|
||||
fileIdOrUrl: "ID файла или URL-адрес"
|
||||
chatOpenBehavior: "Поведение окна чата при открытии"
|
||||
sample: "Пример"
|
||||
abuseReports: "Отчеты"
|
||||
reportAbuse: "Отчеты"
|
||||
fillAbuseReportDescription: "Пожалуйста, заполните данные отчета. Если речь идет о конкретном сообщении, пожалуйста, укажите его URL."
|
||||
abuseReported: "Содержимое отправлено. Спасибо за сообщение"
|
||||
send: "Отправить"
|
||||
abuseMarkAsResolved: "Отметить отчет как решенный"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "Автоматическая перезагрузка"
|
||||
dialog: "Предупреждение"
|
||||
quiet: "Показать ненавязчивое предупреждение"
|
||||
_channel:
|
||||
create: "Создать канал"
|
||||
edit: "Редактировать канал"
|
||||
setBanner: "Установить баннер"
|
||||
removeBanner: "Удалить баннер"
|
||||
featured: "В тренде"
|
||||
owned: "Владелец"
|
||||
usersCount: "{n} Участники"
|
||||
notesCount: "{n} Записи"
|
||||
_sidebar:
|
||||
full: "Полный"
|
||||
icon: "Иконка"
|
||||
hide: "Спрятать"
|
||||
_wordMute:
|
||||
muteWords: "Скрыть слово"
|
||||
muteWordsDescription: "Разделяйте пробелами для условия \"И\". Разделяйте переводом строки для \"ИЛИ\"."
|
||||
muteWordsDescription2: "Округляйте ключевые слова слэшами для использования регулярных выражений."
|
||||
soft: "Лёгкий "
|
||||
hard: "Сложный"
|
||||
mutedNotes: "Скрытые посты"
|
||||
_theme:
|
||||
explore: "Обзор"
|
||||
install: "Установить тему"
|
||||
manage: "Менеджер тем"
|
||||
code: "Код темы"
|
||||
installed: "{name} установлено "
|
||||
alreadyInstalled: "Тема уже установлена"
|
||||
invalid: "Формат темы некорректный "
|
||||
make: "Создать тему"
|
||||
base: "База"
|
||||
addConstant: "Добавить константу"
|
||||
constant: "Константа"
|
||||
defaultValue: "Значение по умолчанию"
|
||||
color: "Цвет"
|
||||
refConst: "Ссылка на константу"
|
||||
key: "Ключ"
|
||||
func: "Функции"
|
||||
funcKind: "Тип функции"
|
||||
argument: "Аргумент"
|
||||
basedProp: "Указанное свойство"
|
||||
alpha: "Непрозрачность"
|
||||
darken: "Темный"
|
||||
inputConstantName: "Введите имя для константы"
|
||||
importInfo: "Если вы введете код темы здесь, вы можете импортировать его в редактор тем."
|
||||
deleteConstantConfirm: "Вы действительно хотите удалить константу {const}?"
|
||||
keys:
|
||||
bg: "Справочная информация"
|
||||
fg: "Текст"
|
||||
navHoverFg: "Текст на боковой панели (Навести)"
|
||||
link: "Ссылка"
|
||||
hashtag: "Хэштеги"
|
||||
mention: "Упоминание"
|
||||
renote: "Репост"
|
||||
divider: "Разделительная полоса"
|
||||
infoBg: "Справочная информация"
|
||||
infoFg: "Текст информации"
|
||||
_sfx:
|
||||
note: "Посты"
|
||||
notification: "Уведомления"
|
||||
chat: "Сообщения"
|
||||
_ago:
|
||||
secondsAgo: "{} секунд назад"
|
||||
minutesAgo: "{} минут назад"
|
||||
hoursAgo: "{} часов назад"
|
||||
daysAgo: "{} дней назад"
|
||||
weeksAgo: "{} недель назад"
|
||||
monthsAgo: "{} месяцев назад"
|
||||
yearsAgo: "{} лет назад"
|
||||
_time:
|
||||
second: "сек"
|
||||
minute: "Мин."
|
||||
_tutorial:
|
||||
title: "Как пользоваться Misskey"
|
||||
step1_1: "Добро пожаловать!"
|
||||
step2_1: "Прежде чем создать заметку или следовать за кем-либо, сначала заполните свой профиль."
|
||||
step3_1: "Вы хорошо подготовили свой профиль?"
|
||||
step6_2: "Вы можете добавлять \"реакции\" к записям других людей, что облегчает общение с ними."
|
||||
step6_3: "Чтобы добавить реакцию, нажмите на знак \"+\" в записке и выберите нужную реакцию."
|
||||
step7_1: "На этом мы завершаем основные инструкции по использованию Misskey. Спасибо за вашу тяжёлую работу."
|
||||
step7_2: "Если вы хотите узнать больше о Misskey, посмотрите в {хелп}."
|
||||
_2fa:
|
||||
alreadyRegistered: "Настройка завершена"
|
||||
registerDevice: "Зарегистрируйте ваше устройство"
|
||||
step1: "Во-первых, установите на устройство приложение для аутентификации, например, {a} или {b}."
|
||||
step2: "Далее отсканируйте отображаемый QR-код при помощи приложения"
|
||||
step3: "Введите токен, отображаемый в приложении, и все готово"
|
||||
step4: "Когда вы войдете в систему, вы можете ввести свой токен тем же способом."
|
||||
securityKeyInfo: "Вы можете настроить вход с помощью аппаратного ключа безопасности, поддерживающего FIDO2, или отпечатка пальца или PIN-кода на устройстве."
|
||||
_permissions:
|
||||
"read:account": "Просмотр информации об аккаунте"
|
||||
"write:account": "Изменить информацию о вашем аккаунте"
|
||||
"write:blocks": "Отредактируйте список людей, которых вы заблокировали"
|
||||
"read:drive": "Доступ к файлам и папкам диска"
|
||||
"write:drive": "Редактирование или удаление файлов и папок диска"
|
||||
"read:favorites": "Просмотреть список избранных"
|
||||
"write:favorites": "Редактирование списка избранных"
|
||||
"read:messaging": "Просмотр сообщений"
|
||||
"read:mutes": "Просмотр скрытых пользователей"
|
||||
"write:mutes": "Изменение списка скрытых"
|
||||
"read:notifications": "Просмотреть уведомления"
|
||||
"write:reactions": "Редактировать реакции"
|
||||
_weekday:
|
||||
saturday: "Суббота"
|
||||
_widgets:
|
||||
memo: "Заметка"
|
||||
notifications: "Уведомления"
|
||||
timeline: "Лента"
|
||||
calendar: "Календарь"
|
||||
trends: "В тренде"
|
||||
clock: "Часы"
|
||||
rss: "Ридер RSS"
|
||||
activity: "Активность"
|
||||
photos: "Фото"
|
||||
digitalClock: "Цифровые Часы"
|
||||
federation: "Федиверс"
|
||||
postForm: "Форма отправки"
|
||||
_cw:
|
||||
hide: "Спрятать"
|
||||
show: "Показать еще"
|
||||
chars: "{count} символов"
|
||||
files: "{count} файлов"
|
||||
_poll:
|
||||
noOnlyOneChoice: "Нужно как минимум два варианта."
|
||||
choiceN: "Выбрать{n}"
|
||||
canMultipleVote: "Возможны несколько вариантов ответов"
|
||||
expiration: "Истечение срока действия"
|
||||
infinite: "Неограниченное количество"
|
||||
deadlineDate: "Срок исполнения"
|
||||
deadlineTime: "Длительность"
|
||||
duration: "Продожительность"
|
||||
totalVotes: "Всего {n} голосов"
|
||||
vote: "Проголосовать"
|
||||
showResult: "Смотреть результаты"
|
||||
voted: "Проголосовали"
|
||||
closed: "Завершено"
|
||||
_visibility:
|
||||
public: "Публичный"
|
||||
publicDescription: "Открыт для всех пользователей"
|
||||
home: "Главная"
|
||||
followers: "Подписчики"
|
||||
specifiedDescription: "Отправлять сообщения только указанным пользователям"
|
||||
localOnly: "Только локально"
|
||||
localOnlyDescription: "Не видно удаленным пользователям"
|
||||
_postForm:
|
||||
replyPlaceholder: "Ответьте на эту запись..."
|
||||
quotePlaceholder: "Процитировать эту запись..."
|
||||
channelPlaceholder: "Отправить в канал"
|
||||
_placeholders:
|
||||
a: "Что происходит?"
|
||||
_profile:
|
||||
name: "Имя"
|
||||
username: "Имя пользователя"
|
||||
metadataContent: "Содержание"
|
||||
_exportOrImport:
|
||||
allNotes: "Все записи\n"
|
||||
followingList: "Подписки"
|
||||
muteList: "Скрыть"
|
||||
blockingList: "Заблокировать"
|
||||
userLists: "Списки"
|
||||
_timelines:
|
||||
home: "Главная"
|
||||
_rooms:
|
||||
roomOf: "Комната {user}"
|
||||
_roomType:
|
||||
default: "По умолчанию"
|
||||
_furnitures:
|
||||
pencil: "Карандаш"
|
||||
book: "Книга"
|
||||
server: "Сервер"
|
||||
monitor: "Монитор"
|
||||
_pages:
|
||||
title: "Заголовок."
|
||||
url: "URL страницы"
|
||||
hideTitleWhenPinned: "Скрыть заголовок страницы при привязке к профилю"
|
||||
font: "Шрифт"
|
||||
blocks:
|
||||
section: "Раздел"
|
||||
image: "Изображение"
|
||||
button: "Кнопка"
|
||||
if: "Если"
|
||||
_if:
|
||||
variable: "Переменная"
|
||||
post: "Форма отправки"
|
||||
_post:
|
||||
text: "Содержание"
|
||||
textInput: "Ввод текста"
|
||||
_textInput:
|
||||
name: "Имя переменной"
|
||||
text: "Заголовок."
|
||||
default: "Значение по умолчанию"
|
||||
textareaInput: "Многострочный ввод текста"
|
||||
_textareaInput:
|
||||
name: "Имя переменной"
|
||||
text: "Заголовок."
|
||||
default: "Значение по умолчанию"
|
||||
_numberInput:
|
||||
name: "Имя переменной"
|
||||
text: "Заголовок."
|
||||
default: "Значение по умолчанию"
|
||||
_switch:
|
||||
name: "Имя переменной"
|
||||
text: "Заголовок."
|
||||
default: "Значение по умолчанию"
|
||||
_counter:
|
||||
name: "Имя переменной"
|
||||
text: "Заголовок."
|
||||
_button:
|
||||
text: "Заголовок."
|
||||
_action:
|
||||
_dialog:
|
||||
content: "Содержание"
|
||||
_pushEvent:
|
||||
no-variable: "Не найдено"
|
||||
callAiScript: "Справка AiScript"
|
||||
_callAiScript:
|
||||
functionName: "Имя функции"
|
||||
_radioButton:
|
||||
name: "Имя переменной"
|
||||
title: "Заголовок."
|
||||
default: "Значение по умолчанию"
|
||||
script:
|
||||
categories:
|
||||
list: "Списки"
|
||||
blocks:
|
||||
strLen: "Длина текста"
|
||||
_strLen:
|
||||
arg1: "Текст"
|
||||
_strReplace:
|
||||
arg1: "Текст"
|
||||
_strReverse:
|
||||
arg1: "Текст"
|
||||
_join:
|
||||
arg1: "Списки"
|
||||
add: "Добавить"
|
||||
_add:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_subtract:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_multiply:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_divide:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_mod:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_eq:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_notEq:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_and:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_or:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_lt:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_gt:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_ltEq:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_gtEq:
|
||||
arg1: "А"
|
||||
arg2: "Б"
|
||||
_if:
|
||||
arg1: "Если"
|
||||
_rannum:
|
||||
arg2: "Максимальное значение"
|
||||
randomPick: "Случайный выбор из списка"
|
||||
_randomPick:
|
||||
arg1: "Списки"
|
||||
_dailyRandom:
|
||||
arg1: "Вероятность"
|
||||
_dailyRannum:
|
||||
arg2: "Максимальное значение"
|
||||
_dailyRandomPick:
|
||||
arg1: "Списки"
|
||||
_seedRannum:
|
||||
arg3: "Максимальное значение"
|
||||
_seedRandomPick:
|
||||
arg2: "Списки"
|
||||
pick: "Выберите из списка"
|
||||
_pick:
|
||||
arg1: "Списки"
|
||||
arg2: "Расположение"
|
||||
_listLen:
|
||||
arg1: "Списки"
|
||||
number: "Номер"
|
||||
_stringToNumber:
|
||||
arg1: "Текст"
|
||||
_numberToString:
|
||||
arg1: "Номер"
|
||||
ref: "Переменная"
|
||||
aiScriptVar: "Переменная AiScript"
|
||||
fn: "функции"
|
||||
_fn:
|
||||
slots: "Слоты"
|
||||
_for:
|
||||
arg1: "Количество повторений"
|
||||
types:
|
||||
array: "Списки"
|
||||
_notification:
|
||||
youWereFollowed: "Новый подписчик"
|
||||
youReceivedFollowRequest: "Запрос на подписку"
|
||||
youWereInvitedToGroup: "Приглашение в группу"
|
||||
_types:
|
||||
follow: "Подписки"
|
||||
mention: "Упоминание"
|
||||
renote: "Репост"
|
||||
quote: "Цитата"
|
||||
reaction: "Реакции"
|
||||
app: "Уведомления из приложений"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "Всегда показывать главную колонку"
|
||||
columnAlign: "Выравнивание колонн"
|
||||
addColumn: "Добавить колонку"
|
||||
swapLeft: "Переместить влево"
|
||||
swapRight: "Переместить вправо"
|
||||
swapUp: "Поднять вверх"
|
||||
swapDown: "Переместить Вниз"
|
||||
_columns:
|
||||
widgets: "Виджеты"
|
||||
notifications: "Уведомления"
|
||||
tl: "Лента"
|
||||
antenna: "Антенны"
|
||||
list: "Списки"
|
||||
mentions: "Упоминания"
|
||||
|
3
locales/ug-CN.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
_lang_: "ياپونچە"
|
||||
search: "ئىزدەش"
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
_lang_: "中文(简体)"
|
||||
introMisskey: "欢迎!Misskey是一个开源的分散型SNS服务。\n通过「帖子」来分享现在发生的事情吧!📡\n「反应」功能,可以让你快速的对大家的「帖子」来表达感情👍\n一起来探索新的世界吧!🚀"
|
||||
introMisskey: "欢迎!Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖文」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能,可以让你快速地对大家的帖文表达反馈👍\n来探索新的世界吧!🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "搜索"
|
||||
notifications: "通知"
|
||||
@ -11,11 +11,14 @@ ok: "OK"
|
||||
gotIt: "我明白了"
|
||||
cancel: "取消"
|
||||
enterUsername: "输入用户名"
|
||||
renotedBy: "由 {user} 转推"
|
||||
noNotes: "没有投稿"
|
||||
renotedBy: "{user} 转贴了"
|
||||
noNotes: "没有帖文"
|
||||
noNotifications: "无通知"
|
||||
instance: "实例"
|
||||
settings: "设置"
|
||||
basicSettings: "基本设置"
|
||||
otherSettings: "其他设置"
|
||||
openInWindow: "在新窗口中打开"
|
||||
profile: "个人资料"
|
||||
timeline: "时间线"
|
||||
noAccountDescription: "这个人很懒,没有写自我介绍"
|
||||
@ -35,16 +38,20 @@ unpin: "取消置顶"
|
||||
copyContent: "复制内容"
|
||||
copyLink: "复制链接"
|
||||
delete: "删除"
|
||||
deleteAndEdit: "删除并编辑"
|
||||
deleteAndEditConfirm: "要删除此帖并再次编辑吗?对此帖的所有回应、转发和回复也将被删除。"
|
||||
addToList: "添加至列表"
|
||||
sendMessage: "发送"
|
||||
copyUsername: "复制用户名"
|
||||
searchUser: "搜索用户"
|
||||
reply: "回复"
|
||||
loadMore: "查看更多"
|
||||
youGotNewFollower: "你有新的关注者"
|
||||
receiveFollowRequest: "收到关注请求"
|
||||
followRequestAccepted: "同意关注请求"
|
||||
receiveFollowRequest: "您收到了关注请求"
|
||||
followRequestAccepted: "您的关注请求被通过了"
|
||||
mention: "提及"
|
||||
mentions: "提及"
|
||||
directNotes: "指定用户可见"
|
||||
directNotes: "私信"
|
||||
importAndExport: "导入和导出"
|
||||
import: "导入"
|
||||
export: "导出"
|
||||
@ -63,8 +70,11 @@ followers: "关注者"
|
||||
followsYou: "关注了你"
|
||||
createList: "创建列表"
|
||||
manageLists: "管理列表"
|
||||
error: "有点小问题"
|
||||
error: "错误"
|
||||
somethingHappened: "出现了问题"
|
||||
retry: "重试"
|
||||
pageLoadError: "页面加载失败。"
|
||||
pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。"
|
||||
enterListName: "输入列表名称"
|
||||
privacy: "隐私"
|
||||
makeFollowManuallyApprove: "关注者请求需要批准"
|
||||
@ -83,10 +93,9 @@ you: "您"
|
||||
clickToShow: "点击以显示"
|
||||
sensitive: "阅读注意"
|
||||
add: "添加"
|
||||
reaction: "反应"
|
||||
reactionSettingDescription: "快速选择回应中的自定义表情符号,以换行符分隔。"
|
||||
reaction: "回应"
|
||||
reactionSettingDescription: "选择您想要置顶的回应。"
|
||||
rememberNoteVisibility: "记录公开范围"
|
||||
renameFile: "重命名文件"
|
||||
attachCancel: "删除附件"
|
||||
markAsSensitive: "阅读注意"
|
||||
unmarkAsSensitive: "取消标记为敏感内容"
|
||||
@ -102,10 +111,16 @@ unblockConfirm: "确定要解除屏蔽吗?"
|
||||
suspendConfirm: "要冻结吗?"
|
||||
unsuspendConfirm: "要解除冻结吗?"
|
||||
selectList: "选择列表"
|
||||
selectAntenna: "天线选择"
|
||||
selectWidget: "选择小工具"
|
||||
editWidgets: "编辑小工具"
|
||||
editWidgetsExit: "完成编辑"
|
||||
customEmojis: "自定义Emoji"
|
||||
emoji: "表情符号"
|
||||
emojiName: "Emoji 名称"
|
||||
emojiUrl: "emoji 地址"
|
||||
addEmoji: "添加Emoji"
|
||||
settingGuide: "推荐配置"
|
||||
cacheRemoteFiles: "远程文件缓存"
|
||||
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
|
||||
flagAsBot: "这个账户是Bot"
|
||||
@ -116,6 +131,7 @@ loginFailed: "登录失败"
|
||||
showOnRemote: "转到所在实例显示"
|
||||
general: "常规设置"
|
||||
wallpaper: "壁纸"
|
||||
setWallpaper: "设置壁纸"
|
||||
removeWallpaper: "移除壁纸"
|
||||
searchWith: "搜索:{q}"
|
||||
youHaveNoLists: "列表为空"
|
||||
@ -168,8 +184,8 @@ intro: "Misskey的部署结束啦!填写管理员账号吧!"
|
||||
done: "完成"
|
||||
processing: "处理中"
|
||||
preview: "预览"
|
||||
default: "默认"
|
||||
noCustomEmojis: "无自定义Emoji"
|
||||
customEmojisOfRemote: "远程Emoji"
|
||||
noJobs: "没有任务"
|
||||
federating: "联合中"
|
||||
blocked: "已拦截"
|
||||
@ -203,10 +219,13 @@ messaging: "聊天"
|
||||
upload: "上传"
|
||||
fromDrive: "从网盘中"
|
||||
fromUrl: "从 URL"
|
||||
uploadFromUrl: "从网址上传"
|
||||
uploadFromUrlDescription: "要上传的文件的URL"
|
||||
uploadFromUrlRequested: "请求上传"
|
||||
uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。"
|
||||
explore: "发现"
|
||||
games: "Misskey游戏"
|
||||
messageRead: "已读"
|
||||
recentUsedEmojis: "最近使用的Emoji表情"
|
||||
noMoreHistory: "没有更多的历史记录"
|
||||
startMessaging: "开始聊天"
|
||||
nUsersRead: "{n}人已读"
|
||||
@ -222,28 +241,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: "复制链接"
|
||||
rename: "重命名"
|
||||
avatar: "头像"
|
||||
banner: "Banner"
|
||||
nsfw: "阅读注意"
|
||||
whenServerDisconnected: "与服务器连接中断时"
|
||||
disconnectedFromServer: "已从服务器断开连接"
|
||||
reload: "重新加载"
|
||||
doNothing: "什么都不做"
|
||||
reloadConfirm: "确定要重新加载吗"
|
||||
watch: "关注"
|
||||
unwatch: "取消关注"
|
||||
accept: "允许"
|
||||
reject: "拒绝"
|
||||
normal: "正常"
|
||||
instanceName: "实例名称"
|
||||
instanceDescription: "实例介绍"
|
||||
maintainerName: "管理员名称"
|
||||
@ -256,7 +294,7 @@ dayX: "{day}日"
|
||||
monthX: "{month}月"
|
||||
yearX: "{year}年"
|
||||
pages: "页面"
|
||||
integration: "连携"
|
||||
integration: "关联"
|
||||
connectSerice: "已连接"
|
||||
disconnectSerice: "断开连接"
|
||||
enableLocalTimeline: "启用本地时间线功能"
|
||||
@ -275,21 +313,35 @@ bannerUrl: "Banner URL"
|
||||
basicInfo: "基本信息"
|
||||
pinnedUsers: "置顶用户"
|
||||
pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "启用 hCaptcha"
|
||||
hcaptchaSiteKey: "网站密钥"
|
||||
hcaptchaSecretKey: "密钥"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "启用 reCAPTCHA\n(请注意, 此功能在中国大陆不可用. 如果启用, 可能导致无法正常使用登录或注册等功能)"
|
||||
recaptchaSiteKey: "网站密钥"
|
||||
recaptchaSecretKey: "reCAPTCHA 密钥"
|
||||
avoidMultiCaptchaConfirm: "使用多种验证方式可能会造成干扰,您要禁用其他验证方式吗?您可以按“取消”按钮,仍然保持启用多种验证方式。"
|
||||
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: "最近投稿用户"
|
||||
@ -315,17 +367,14 @@ moderator: "版主"
|
||||
nUsersMentioned: "{n} 被提到"
|
||||
securityKey: "安全密钥"
|
||||
securityKeyName: "密钥名称"
|
||||
registerSecurityKey: "注册安全密钥"
|
||||
registerSecurityKey: "注册硬件安全密钥"
|
||||
lastUsed: "最后使用:"
|
||||
unregister: "删除账户"
|
||||
passwordLessLogin: "无密码登录"
|
||||
resetPassword: "重置密码"
|
||||
newPasswordIs: "新的密码是「{password}」"
|
||||
post: "投稿"
|
||||
posted: "已投稿"
|
||||
autoReloadWhenDisconnected: "断开连接时自动重新加载"
|
||||
autoNoteWatch: "自动关注帖子"
|
||||
autoNoteWatchDescription: "让您能够收到关于「反应」和回复其他用户的帖子的通知。"
|
||||
autoNoteWatchDescription: "让您能够收到关于「回应」和回复其他用户的帖子的通知。"
|
||||
reduceUiAnimation: "减少UI动画"
|
||||
share: "分享"
|
||||
notFound: "未找到"
|
||||
@ -376,14 +425,15 @@ strongPassword: "密码强度:强"
|
||||
passwordMatched: "密码一致"
|
||||
passwordNotMatched: "密码不一致"
|
||||
signinWith: "以{x}登录"
|
||||
tapSecurityKey: "点击安全密钥"
|
||||
signinFailed: "无法登录,请检查您的用户名和密码。"
|
||||
tapSecurityKey: "轻触硬件安全密钥"
|
||||
or: "或者"
|
||||
uiLanguage: "显示语言"
|
||||
groupInvited: "群组招待"
|
||||
aboutX: "关于 {x}"
|
||||
useOsNativeEmojis: "使用OS原生Emoji"
|
||||
noGroups: "没有组"
|
||||
joinOrCreateGroup: "加入或者创建群组"
|
||||
youHaveNoGroups: "没有群组"
|
||||
joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。"
|
||||
noHistory: "没有历史记录"
|
||||
disableAnimatedMfm: "禁用MFM动画"
|
||||
doing: "正在进行"
|
||||
@ -402,24 +452,253 @@ remote: "远程"
|
||||
total: "总计"
|
||||
weekOverWeekChanges: "与前一周相比"
|
||||
dayOverDayChanges: "与前一日相比"
|
||||
accessibility: "辅助功能"
|
||||
clinetSettings: "客户端设置"
|
||||
appearance: "外观"
|
||||
clientSettings: "客户端设置"
|
||||
accountSettings: "账户设置"
|
||||
promotion: "推广"
|
||||
promote: "推广"
|
||||
numberOfDays: "天数"
|
||||
hideThisNote: "隐藏这条帖子"
|
||||
showFeaturedNotesInTimeline: "在时间轴上显示热门推荐"
|
||||
showFeaturedNotesInTimeline: "在时间线上显示热门推荐"
|
||||
objectStorage: "对象存储"
|
||||
useObjectStorage: "使用对象存储"
|
||||
objectStorageBaseUrl: "基本网址"
|
||||
objectStorageBaseUrlDesc: "URL前缀,用于构造URL到对象(媒体)的引用,如果您使用的是CDN或反向代理,请指定其URL,否则请根据您使用的服务指定可公开访问的地址。例如“https://<bucket>.s3.amazonaws.com”用于AWS S3,“https://storage.googleapis.com/<bucket>”用于GCS"
|
||||
objectStorageBucket: "存储桶"
|
||||
objectStorageBucketDesc: "请指定使用的对象存储服务的存储桶名称。"
|
||||
objectStoragePrefix: "前缀"
|
||||
objectStoragePrefixDesc: "文件将存储在此前缀的目录下。"
|
||||
objectStorageEndpoint: "端点"
|
||||
objectStorageEndpointDesc: "如果你希望使用AWS S3请留空。否则请根据你使用的服务来进行设置,指定端点形式为“<host>”或“<host>:<port>”。"
|
||||
objectStorageRegion: "可用区"
|
||||
objectStorageRegionDesc: "指定一个可用区,例如“xx-east-1”。 如果您的对象存储服务没有可用区概念,请将其留空或填写“us-east-1”。"
|
||||
objectStorageUseSSL: "使用SSL"
|
||||
objectStorageUseSSLDesc: "如果不使用https进行API连接,请关闭。"
|
||||
objectStorageUseProxy: "使用代理"
|
||||
objectStorageUseProxyDesc: "如果您不使用代理进行API连接,请将其关闭。"
|
||||
objectStorageSetPublicRead: "上传时设置为public-read"
|
||||
serverLogs: "服务器日志"
|
||||
deleteAll: "删除全部"
|
||||
showFixedPostForm: "在时间线顶部显示帖子表单"
|
||||
newNoteRecived: "有新的帖子"
|
||||
useNotificationsPopup: "在弹出窗口中显示通知列表"
|
||||
sounds: "声音"
|
||||
listen: "听"
|
||||
none: "空"
|
||||
showInPage: "在页面中显示"
|
||||
popout: "弹窗"
|
||||
volume: "音量"
|
||||
details: "详情"
|
||||
chooseEmoji: "选择表情符号"
|
||||
unableToProcess: "操作无法完成"
|
||||
recentUsed: "最近使用"
|
||||
install: "安装"
|
||||
uninstall: "卸载"
|
||||
installedApps: "已授权的应用"
|
||||
nothing: "没什么"
|
||||
installedDate: "授权日期"
|
||||
lastUsedDate: "最近使用"
|
||||
state: "状态"
|
||||
sort: "排序"
|
||||
ascendingOrder: "升序"
|
||||
descendingOrder: "降序"
|
||||
scratchpad: "便签本"
|
||||
scratchpadDescription: "便签本为AiScript提供了实验环境。您可以编写代码以与Misskey交互,运行它并查看结果。"
|
||||
output: "输出"
|
||||
script: "脚本"
|
||||
disablePagesScript: "禁用页面脚本"
|
||||
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: "Deck"
|
||||
undeck: "取消Deck"
|
||||
useBlurEffectForModal: "模态框使用模糊效果"
|
||||
generateAccessToken: "生成访问令牌"
|
||||
permission: "权限"
|
||||
enableAll: "启用全部"
|
||||
disableAll: "禁用全部"
|
||||
tokenRequested: "允许访问账户"
|
||||
pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限"
|
||||
notificationType: "通知类型"
|
||||
edit: "编辑"
|
||||
useStarForReactionFallback: "如果回应的颜文字未知,则使用★作为代替"
|
||||
emailConfig: "邮件服务器设置"
|
||||
enableEmail: "启用发送邮件功能"
|
||||
emailConfigInfo: "用于确认电子邮件和密码重置"
|
||||
email: "邮件地址"
|
||||
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: "聊天窗口打开时的行为"
|
||||
sample: "示例"
|
||||
abuseReports: "举报"
|
||||
reportAbuse: "举报"
|
||||
reportAbuseOf: "举报{name}"
|
||||
fillAbuseReportDescription: "请填写举报的详细原因。如果有对方发的帖子,请同时填写URL地址。"
|
||||
abuseReported: "内容已发送。感谢您的报告。"
|
||||
send: "发送"
|
||||
abuseMarkAsResolved: "处理完毕"
|
||||
_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} 已安装"
|
||||
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: "转发"
|
||||
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: "帖子"
|
||||
noteMy: "我的帖子"
|
||||
notification: "通知"
|
||||
chat: "聊天"
|
||||
chatBg: "聊天背景"
|
||||
antenna: "天线接收"
|
||||
channel: "频道通知"
|
||||
_ago:
|
||||
unknown: "未知"
|
||||
future: "未来"
|
||||
@ -441,7 +720,7 @@ _tutorial:
|
||||
step1_1: "欢迎!"
|
||||
step1_2: "这个页面叫做「时间线」,它会按照时间顺序显示所有你「关注」的人所发的「帖子」。"
|
||||
step1_3: "如果你并没有发布任何帖子,也没有关注其他的人,你的时间线页面应当什么都没有显示。"
|
||||
step2_1: "在你想发布一些帖子之前,让我们先进行一下个人资料设置。"
|
||||
step2_1: "在您想要发帖或关注其他人之前,请先设置一下个人资料吧。"
|
||||
step2_2: "如果别人能够更加的了解你,关注你的概率也会得到提升。"
|
||||
step3_1: "已经设置完个人资料了吗?"
|
||||
step3_2: "那么接下来,试着写一些什么东西来发布吧。你可以通过点击屏幕上的铅笔图标来打开投稿页面。"
|
||||
@ -449,11 +728,25 @@ _tutorial:
|
||||
step3_4: "不知道说些什么好吗?那就写下「Misskey我来啦!」这样的话吧。"
|
||||
step4_1: "将你的话语发布出去了吗?"
|
||||
step4_2: "太棒了!现在你可以在你的时间线中看到你刚刚发布的帖子了。"
|
||||
step5_1: "接下来,关注其他人来使时间线更生动吧。"
|
||||
step5_2: "{featured}将向您展示热门趋势的帖子。 {explore}将让您找到热门用户。 尝试关注您喜欢的人!"
|
||||
step5_3: "要关注其他用户,请单击他的头像,然后在他的个人资料上按下“关注”按钮。"
|
||||
step5_4: "如果用户的名称旁边有锁定图标,则该用户需要手动批准您的关注请求。"
|
||||
step6_1: "现在,您将可以在时间线上看到其他用户的帖子。"
|
||||
step6_2: "您还可以在其他人的帖子上进行「回应」,以快速做出简单回复。"
|
||||
step6_3: "在他人的贴子上按下「+」图标,即可选择想要的表情来进行「回应」。"
|
||||
step7_1: "对Misskey基本操作的简单介绍,就到此结束了。 辛苦了!"
|
||||
step7_2: "如果你想了解更多有关Misskey的信息,请参见{help}。"
|
||||
step7_3: "接下来,享受Misskey带来的乐趣吧🚀"
|
||||
_2fa:
|
||||
alreadyRegistered: "此设备已被注册"
|
||||
registerDevice: "注册设备"
|
||||
registerKey: "注册密钥"
|
||||
step1: "首先,在您的设备上安装二步验证应用程序,例如{a}或{b}。"
|
||||
step2: "然后,扫描屏幕上显示的二维码。"
|
||||
step3: "输入您的应用提供的动态口令以完成设置。"
|
||||
step4: "从现在开始,任何登录操作都将要求您提供动态口令。"
|
||||
securityKeyInfo: "您可以设置使用支持FIDO2的硬件安全密钥、设备上的指纹或PIN来保护您的登录过程。"
|
||||
_permissions:
|
||||
"read:account": "查看账户信息"
|
||||
"write:account": "更改帐户信息"
|
||||
@ -465,8 +758,11 @@ _permissions:
|
||||
"write:favorites": "编辑收藏夹"
|
||||
"read:following": "查看关注信息"
|
||||
"write:following": "关注/取消关注"
|
||||
"read:messaging": "查看消息"
|
||||
"write:messaging": "撰写或删除消息"
|
||||
"read:mutes": "查看屏蔽列表"
|
||||
"write:mutes": "编辑屏蔽列表"
|
||||
"write:notes": "撰写或删除帖子"
|
||||
"read:notifications": "查看通知"
|
||||
"write:notifications": "管理通知"
|
||||
"read:reactions": "查看回应"
|
||||
@ -478,11 +774,21 @@ _permissions:
|
||||
"write:page-likes": "操作喜欢的页面"
|
||||
"read:user-groups": "查看用户组"
|
||||
"write:user-groups": "操作用户组"
|
||||
"read:channels": "查看频道"
|
||||
"write:channels": "管理频道"
|
||||
_auth:
|
||||
shareAccess: "您要授权允许“{name}”访问您的帐户吗?"
|
||||
shareAccessAsk: "您确定要授权此应用程序访问您的帐户吗?"
|
||||
permissionAsk: "这个应用程序需要以下权限"
|
||||
pleaseGoBack: "请返回到应用程序"
|
||||
callback: "回到应用程序"
|
||||
denied: "拒绝访问"
|
||||
_antennaSources:
|
||||
all: "所有帖子"
|
||||
homeTimeline: "已关注用户的帖子"
|
||||
users: "来自特定用户的帖子"
|
||||
userList: "来自特定清单中的帖子"
|
||||
userGroup: "来自特定组中用户的帖子"
|
||||
_weekday:
|
||||
sunday: "星期日"
|
||||
monday: "星期一"
|
||||
@ -501,12 +807,14 @@ _widgets:
|
||||
rss: "RSS阅读器"
|
||||
activity: "活动"
|
||||
photos: "照片"
|
||||
digitalClock: "数字时钟"
|
||||
federation: "联邦宇宙"
|
||||
postForm: "投稿窗口"
|
||||
_cw:
|
||||
hide: "隐藏"
|
||||
show: "查看更多"
|
||||
chars: "{count}个字符"
|
||||
files: "{count} 个文件"
|
||||
poll: "投票"
|
||||
_poll:
|
||||
noOnlyOneChoice: "需要至少两个选项"
|
||||
choiceN: "选择{n}"
|
||||
@ -531,6 +839,7 @@ _poll:
|
||||
remainingSeconds: "{s}秒后截止"
|
||||
_visibility:
|
||||
public: "公开"
|
||||
publicDescription: "您的帖子将出现在全局时间线上"
|
||||
home: "首页"
|
||||
homeDescription: "仅发送至首页的时间线"
|
||||
followers: "关注者"
|
||||
@ -538,9 +847,11 @@ _visibility:
|
||||
specified: "指定用户"
|
||||
specifiedDescription: "仅发送至指定用户"
|
||||
localOnly: "仅限本地"
|
||||
localOnlyDescription: "对远程用户不可见"
|
||||
_postForm:
|
||||
replyPlaceholder: "回复这个帖子..."
|
||||
quotePlaceholder: "引用这个帖子..."
|
||||
channelPlaceholder: "发布到频道…"
|
||||
_placeholders:
|
||||
a: "现在如何?"
|
||||
b: "发生了什么?"
|
||||
@ -569,64 +880,129 @@ _charts:
|
||||
usersTotal: "用户总数"
|
||||
activeUsers: "活跃用户数"
|
||||
notesIncDec: "帖子:增加/减少"
|
||||
localNotesIncDec: "本地帖子量增减"
|
||||
remoteNotesIncDec: "远程帖子量增减"
|
||||
notesTotal: "帖子总数"
|
||||
filesIncDec: "文件总数增减"
|
||||
filesTotal: "合计文件总数"
|
||||
storageUsageIncDec: "存储空间用量增减"
|
||||
storageUsageTotal: "合计存储空间用量"
|
||||
_instanceCharts:
|
||||
requests: "请求"
|
||||
users: "用户数量:增加/减少"
|
||||
usersTotal: "用户总数"
|
||||
usersTotal: "用户总计"
|
||||
notes: "帖子:增加/减少"
|
||||
notesTotal: "帖子:总数"
|
||||
notesTotal: "帖子总计"
|
||||
ff: "关注/被关注:数量变化"
|
||||
ffTotal: "关注/被关注:总数"
|
||||
ffTotal: "关注/被关注者总计"
|
||||
cacheSize: "缓存大小:增加/减少"
|
||||
cacheSizeTotal: "缓存大小总计"
|
||||
files: "文件总数增减"
|
||||
filesTotal: "文件数总计"
|
||||
_timelines:
|
||||
home: "首页"
|
||||
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: "电视"
|
||||
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: "检查器"
|
||||
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标准中还有一些函数会将函数作为参数(称为高阶函数)。\n除了已经预先定义的函数外,您也可以将它们设置为这些高阶函数的槽函数。"
|
||||
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: "文本区域"
|
||||
@ -639,6 +1015,8 @@ _pages:
|
||||
post: "投稿窗口"
|
||||
_post:
|
||||
text: "内容"
|
||||
attachCanvasImage: "附加画布图像"
|
||||
canvasId: "画布ID"
|
||||
textInput: "文本输入"
|
||||
_textInput:
|
||||
name: "变量名"
|
||||
@ -654,6 +1032,11 @@ _pages:
|
||||
name: "变量名"
|
||||
text: "标题"
|
||||
default: "默认值"
|
||||
canvas: "画布"
|
||||
_canvas:
|
||||
id: "画布ID"
|
||||
width: "宽度"
|
||||
height: "高度"
|
||||
switch: "开关"
|
||||
_switch:
|
||||
name: "变量名"
|
||||
@ -679,6 +1062,9 @@ _pages:
|
||||
message: "按下时显示的消息"
|
||||
variable: "发送的变量"
|
||||
no-variable: "空"
|
||||
callAiScript: "调用AiScript"
|
||||
_callAiScript:
|
||||
functionName: "函数名"
|
||||
radioButton: "选择项"
|
||||
_radioButton:
|
||||
name: "变量名"
|
||||
@ -839,6 +1225,7 @@ _pages:
|
||||
_splitStrByLine:
|
||||
arg1: "文本"
|
||||
ref: "变量"
|
||||
aiScriptVar: "AiScript变量"
|
||||
fn: "函数"
|
||||
_fn:
|
||||
slots: "槽函数"
|
||||
@ -860,3 +1247,51 @@ _pages:
|
||||
enviromentVariables: "环境变量"
|
||||
pageVariables: "页面元素"
|
||||
argVariables: "输入变量"
|
||||
_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: "指定用户"
|
||||
|
@ -1,2 +1,867 @@
|
||||
---
|
||||
_lang_: "中文(繁体)"
|
||||
_lang_: "繁體中文"
|
||||
introMisskey: "歡迎! Misskey是一個開源的去中心化的社群網站。\n通過「貼文」來分享現在發生的事情吧! 📡\n「反應」功能,可以讓你快速的對大家的「帖子」來表達感情👍\n一起來探索新的世界吧! 🚀"
|
||||
monthAndDay: "{month}月 {day}日"
|
||||
search: "搜尋"
|
||||
notifications: "通知"
|
||||
username: "使用名稱"
|
||||
password: "密碼"
|
||||
fetchingAsApObject: "從 Fediverse 查詢中..."
|
||||
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: "載入頁面失敗"
|
||||
enterListName: "輸入清單名稱"
|
||||
privacy: "隱私"
|
||||
makeFollowManuallyApprove: "手動審核追隨請求"
|
||||
defaultNoteVisibility: "預設的筆記隱私權"
|
||||
follow: "追隨"
|
||||
followRequest: "追隨請求"
|
||||
followRequests: "追隨請求"
|
||||
unfollow: "取消追隨"
|
||||
followRequestPending: "追隨許可批准中"
|
||||
enterEmoji: "輸入表情符號"
|
||||
renote: "轉發貼文"
|
||||
unrenote: "取消轉發貼文"
|
||||
quote: "引用"
|
||||
pinnedNote: "已置頂的貼文"
|
||||
you: "您"
|
||||
clickToShow: "按一下以顯示"
|
||||
sensitive: "敏感內容"
|
||||
add: "新增"
|
||||
reaction: "反應"
|
||||
reactionSettingDescription: "置頂「反應」表情符號\n"
|
||||
rememberNoteVisibility: "記住筆記隱私設定"
|
||||
attachCancel: "移除附件"
|
||||
markAsSensitive: "標記為敏感內容"
|
||||
unmarkAsSensitive: "取消標記為敏感內容"
|
||||
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: "此帳戶是Bot"
|
||||
flagAsCat: "此帳戶是Cat"
|
||||
autoAcceptFollowed: "自動許可追隨"
|
||||
addAcount: "新增帳號"
|
||||
loginFailed: "登入失敗"
|
||||
showOnRemote: "轉到所在實例顯示"
|
||||
general: "一般"
|
||||
wallpaper: "桌布"
|
||||
setWallpaper: "設定桌布"
|
||||
removeWallpaper: "移除桌布"
|
||||
searchWith: "搜尋: {q}"
|
||||
youHaveNoLists: "沒有任何清單"
|
||||
followConfirm: "你真的要關注{name}嗎?"
|
||||
proxyAccount: "代理帳號"
|
||||
proxyAccountDescription: "代理帳號是在某些情況下充當其他服務器用戶的帳號。例如,當用戶將一個來自其他服務器的帳號放在列表中時,由於沒有其他用戶關注該帳號,該指令不會傳送到該服務器上,因此會由代理帳戶關注。"
|
||||
host: "主機"
|
||||
selectUser: "選取使用者"
|
||||
recipient: "發送至"
|
||||
annotation: "註解"
|
||||
federation: "聯邦宇宙"
|
||||
instances: "實例"
|
||||
registeredAt: "初次觀測"
|
||||
latestRequestSentAt: "上次發送的請求"
|
||||
latestRequestReceivedAt: "上次收到的請求"
|
||||
latestStatus: "最後狀態"
|
||||
storageUsage: "已使用容量"
|
||||
charts: "圖表"
|
||||
perHour: "每小時"
|
||||
perDay: "每日"
|
||||
blockThisInstance: "封鎖此實例"
|
||||
operations: "操作"
|
||||
software: "軟體"
|
||||
version: "版本"
|
||||
metadata: "元資料(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: "追蹤實例"
|
||||
instanceUsers: "用戶"
|
||||
changePassword: "修改密碼"
|
||||
security: "安全性"
|
||||
retypedNotMatch: "不相符的輸入內容"
|
||||
currentPassword: "現在的密碼"
|
||||
newPassword: "新的密碼"
|
||||
newPasswordRetype: "新的密碼(再輸入一次)"
|
||||
attachFile: "添加附件"
|
||||
more: "更多!"
|
||||
featured: "精選"
|
||||
usernameOrUserId: "使用者名稱或使用者 ID"
|
||||
noSuchUser: "使用者不存在"
|
||||
lookup: "查詢"
|
||||
announcements: "公告"
|
||||
imageUrl: "圖片URL"
|
||||
remove: "刪除"
|
||||
removed: "成功移除"
|
||||
removeAreYouSure: "確定要刪掉「{x}」嗎?"
|
||||
saved: "已保存"
|
||||
messaging: "傳送訊息"
|
||||
upload: "上傳"
|
||||
fromDrive: "從雲端"
|
||||
fromUrl: "從URL"
|
||||
uploadFromUrl: "從網址上傳"
|
||||
uploadFromUrlDescription: "您要上傳的文件的URL"
|
||||
uploadFromUrlRequested: "已請求上傳"
|
||||
uploadFromUrlMayTakeTime: "還需要一些時間才能完成上傳。"
|
||||
explore: "探索"
|
||||
games: "Misskey 遊戲"
|
||||
messageRead: "已讀"
|
||||
noMoreHistory: "沒有更多歷史紀錄"
|
||||
startMessaging: "開始傳送訊息"
|
||||
nUsersRead: "{n}人已讀"
|
||||
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: "以Mbps為單位"
|
||||
iconUrl: "圖像URL"
|
||||
bannerUrl: "橫幅圖片URL"
|
||||
basicInfo: "基本資訊"
|
||||
pinnedUsers: "置頂用戶"
|
||||
pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的用戶。"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "啟用 hCaptcha"
|
||||
hcaptchaSiteKey: "網站金鑰"
|
||||
hcaptchaSecretKey: "金鑰"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "啟用 reCAPTCHA"
|
||||
recaptchaSiteKey: "網站金鑰"
|
||||
recaptchaSecretKey: "金鑰"
|
||||
avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要禁用其他驗證方式嗎?您可以按“取消”保留多種驗證方式。"
|
||||
antennas: "天線"
|
||||
manageAntennas: "管理天線"
|
||||
name: "名稱"
|
||||
antennaSource: "接收來源"
|
||||
antennaKeywords: "包含關鍵字"
|
||||
antennaExcludeKeywords: "排除關鍵字"
|
||||
antennaKeywordsDescription: "用空格分隔指定AND、用換行符分隔指定OR"
|
||||
notifyAntenna: "通知我有新的貼文"
|
||||
serviceworker: "ServiceWorker"
|
||||
enableServiceworker: "開啟 ServiceWorker"
|
||||
antennaUsersDescription: "指定用換行符分隔的用戶名"
|
||||
caseSensitive: "區分大小寫"
|
||||
withReplies: "包含回覆"
|
||||
connectedTo: "您的帳號已連接到以下社交帳號"
|
||||
notesAndReplies: "貼文與回覆"
|
||||
withFiles: "附件"
|
||||
silence: "禁言"
|
||||
silenceConfirm: "確定要禁言此用戶嗎?"
|
||||
unsilence: "解除禁言"
|
||||
unsilenceConfirm: "確定要解除禁言嗎?"
|
||||
popularUsers: "熱門用戶"
|
||||
recentlyUpdatedUsers: "最近發文的用戶"
|
||||
recentlyRegisteredUsers: "新加入用戶"
|
||||
recentlyDiscoveredUsers: "最近發現的用戶"
|
||||
exploreUsersCount: "有{count}個用戶"
|
||||
exploreFediverse: "探索聯邦世界"
|
||||
popularTags: "熱門標籤"
|
||||
userList: "清單"
|
||||
about: "資訊"
|
||||
aboutMisskey: "關於 Misskey"
|
||||
aboutMisskeyText: "Misskey是由syuilo於2014年開發的開放源代碼軟件。"
|
||||
misskeyMembers: "現在由以下成員開發及維護:"
|
||||
misskeySource: "源代碼在這裡公開:"
|
||||
misskeyTranslation: "幫助我們為Misskey的翻譯工作出一分力:"
|
||||
misskeyDonate: "向Misskey捐款以支援我們開發工作:"
|
||||
morePatrons: "感激你們的支持、 幫助。 🥰"
|
||||
patrons: "贊助者"
|
||||
administrator: "管理員"
|
||||
token: "令牌"
|
||||
twoStepAuthentication: "雙重身份驗證"
|
||||
moderator: "板主"
|
||||
nUsersMentioned: "提到了{n}"
|
||||
securityKey: "安全金鑰"
|
||||
securityKeyName: "金鑰名稱"
|
||||
registerSecurityKey: "註冊安全金鑰"
|
||||
lastUsed: "最後活躍時間"
|
||||
unregister: "刪除賬戶"
|
||||
passwordLessLogin: "設置無密碼登入"
|
||||
resetPassword: "重置密碼"
|
||||
newPasswordIs: "新密碼為「{password}」"
|
||||
autoNoteWatch: "自動追隨貼文"
|
||||
autoNoteWatchDescription: "收到反應或回覆過的貼文的通知"
|
||||
reduceUiAnimation: "減少介面的動態視覺"
|
||||
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: "只能添加一個附件"
|
||||
signinRequired: "請先登入"
|
||||
invitationCode: "邀請碼"
|
||||
checking: "確認中"
|
||||
available: "可用的"
|
||||
unavailable: "不可用的"
|
||||
usernameInvalidFormat: "可使用大小寫英文字母、數字和底線"
|
||||
tooShort: "過短"
|
||||
tooLong: "過長"
|
||||
weakPassword: "密碼強度過弱"
|
||||
normalPassword: "密碼強度普通"
|
||||
strongPassword: "密碼強度堅強"
|
||||
passwordMatched: "密碼一致"
|
||||
passwordNotMatched: "密碼不一致"
|
||||
signinWith: "以{x}登錄"
|
||||
signinFailed: "登入失敗。 請檢查用戶名和密碼。"
|
||||
tapSecurityKey: "點擊安全密鑰"
|
||||
or: "或者"
|
||||
uiLanguage: "介面語言"
|
||||
groupInvited: "您有新的群組邀請"
|
||||
aboutX: "關於{x}"
|
||||
useOsNativeEmojis: "使用OS原生表情符號"
|
||||
youHaveNoGroups: "找不到群組"
|
||||
joinOrCreateGroup: "請加入現有群組,或創建新群組。"
|
||||
noHistory: "沒有歷史紀錄"
|
||||
disableAnimatedMfm: "禁用MFM動畫"
|
||||
doing: "正在進行"
|
||||
category: "類別"
|
||||
tags: "標籤"
|
||||
docSource: "文件來源"
|
||||
createAccount: "建立帳戶"
|
||||
existingAcount: "現有帳戶"
|
||||
regenerate: "再生"
|
||||
fontSize: "字體大小"
|
||||
openImageInNewTab: "於新分頁中開啟圖片"
|
||||
local: "本地"
|
||||
remote: "遠端"
|
||||
total: "合計"
|
||||
appearance: "外觀"
|
||||
accountSettings: "帳戶設置"
|
||||
objectStoragePrefix: "前綴"
|
||||
objectStorageUseSSL: "使用SSL"
|
||||
objectStorageUseProxy: "使用網路代理"
|
||||
serverLogs: "伺服器日誌"
|
||||
deleteAll: "刪除所有記錄"
|
||||
sounds: "音效"
|
||||
none: "無"
|
||||
showInPage: "在頁面中顯示"
|
||||
volume: "音量"
|
||||
details: "詳細資訊"
|
||||
chooseEmoji: "選擇您的表情符號\n"
|
||||
unableToProcess: "操作無法完成"
|
||||
recentUsed: "最近使用"
|
||||
install: "安裝"
|
||||
uninstall: "解除安裝"
|
||||
installedApps: "已授權的應用程式"
|
||||
nothing: "未發現"
|
||||
installedDate: "安裝時間"
|
||||
lastUsedDate: "最後上線日期"
|
||||
state: "狀態"
|
||||
sort: "排序"
|
||||
ascendingOrder: "昇冪"
|
||||
descendingOrder: "降冪"
|
||||
scratchpad: "暫存記憶體"
|
||||
output: "輸出"
|
||||
script: "腳本"
|
||||
updateRemoteUser: "更新非本地用戶資料"
|
||||
deleteAllFiles: "刪除所有檔案"
|
||||
deleteAllFilesConfirm: "要删除所有檔案吗?"
|
||||
removeAllFollowing: "解除所有追隨"
|
||||
userSuspended: "該用戶已被凍結"
|
||||
userSilenced: "該用戶已被禁言。"
|
||||
sidebar: "側邊列"
|
||||
divider: "分割線"
|
||||
addItem: "新增項目"
|
||||
rooms: "房間"
|
||||
relays: "中繼"
|
||||
addRelay: "添加中繼"
|
||||
inboxUrl: "私信URL"
|
||||
addedRelays: "已添加的中繼"
|
||||
serviceworkerInfo: "您需要啟用推送通知"
|
||||
deletedNote: "已删除的貼文"
|
||||
invisibleNote: "隱藏的帖子"
|
||||
enableInfiniteScroll: "啟用自動滾動頁面模式"
|
||||
visibility: "公開範圍"
|
||||
poll: "投票"
|
||||
useCw: "隱藏內容"
|
||||
enablePlayer: "打開播放器"
|
||||
disablePlayer: "關閉播放器"
|
||||
expandTweet: "展開推文"
|
||||
themeEditor: "主題編輯器"
|
||||
description: "描述"
|
||||
author: "作者"
|
||||
leaveConfirm: "有未保存的更改。要放棄嗎?"
|
||||
manage: "管理"
|
||||
plugins: "插件"
|
||||
pluginInstallWarn: "請不要安裝來源不明的插件。"
|
||||
deck: "多欄模式"
|
||||
undeck: "取消多欄模式"
|
||||
permission: "權限"
|
||||
enableAll: "啟用全部"
|
||||
disableAll: "停用全部"
|
||||
tokenRequested: "允許訪問帳號"
|
||||
notificationType: "通知形式"
|
||||
edit: "編輯"
|
||||
useStarForReactionFallback: "以★代替未知的表情符號"
|
||||
emailConfig: "電郵服務器設定"
|
||||
enableEmail: "啟用發送電郵功能"
|
||||
emailConfigInfo: "用於確認電郵地址及密碼重置"
|
||||
email: "電郵地址"
|
||||
smtpConfig: "SMTP服務器設定"
|
||||
smtpHost: "主機"
|
||||
smtpPort: "端口"
|
||||
smtpUser: "使用名稱"
|
||||
smtpPass: "密碼"
|
||||
display: "檢視"
|
||||
copy: "複製"
|
||||
metrics: "指標"
|
||||
logs: "日誌"
|
||||
delayed: "延遲"
|
||||
database: "資料庫"
|
||||
channel: "頻道"
|
||||
create: "新增"
|
||||
notificationSetting: "管理通知"
|
||||
_serverDisconnectedBehavior:
|
||||
reload: "自動重載"
|
||||
dialog: "以對話框警告"
|
||||
quiet: "適當地警告"
|
||||
_channel:
|
||||
create: "建立頻道"
|
||||
edit: "編輯頻道"
|
||||
setBanner: "設置封面圖"
|
||||
removeBanner: "移除封面圖"
|
||||
featured: "流行"
|
||||
owned: "管理中"
|
||||
following: "關注中"
|
||||
usersCount: "有{n}人參與"
|
||||
notesCount: "有{n}個帖子"
|
||||
_sidebar:
|
||||
icon: "頭像"
|
||||
hide: "隱藏"
|
||||
_wordMute:
|
||||
muteWords: "加入靜音文字"
|
||||
_theme:
|
||||
color: "顏色"
|
||||
func: "函数"
|
||||
keys:
|
||||
bg: "背景"
|
||||
mention: "提及"
|
||||
renote: "轉發貼文"
|
||||
divider: "分割線"
|
||||
infoBg: "資訊背景"
|
||||
infoFg: "資訊內容"
|
||||
_sfx:
|
||||
note: "貼文"
|
||||
noteMy: "我的貼文"
|
||||
notification: "通知"
|
||||
chat: "傳送訊息"
|
||||
channel: "頻道通知"
|
||||
_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_2: "此為「時間軸」頁面,它會按照時間順序顯示你「追隨」的人的「貼文」"
|
||||
step1_3: "由於你沒有發布任何筆記,也沒有追隨任何人,所以你的時間軸目前是空的。"
|
||||
step2_1: "在發文或追隨其他人之前先讓我們設定一下個人資料吧。"
|
||||
step2_2: "提供一些關於自己的資訊來讓其他人更有追隨你的意願。"
|
||||
step3_1: "個人資料都打理好了嗎?"
|
||||
step3_2: "下一步讓我們來試試看發個文,按一下畫面上的鉛筆圖示來開始"
|
||||
step3_3: "輸入完內容後,按視窗右上角的按鈕來發文"
|
||||
step3_4: "不知道該寫什麼內容嗎?試試看「開始使用Misskey了」如何。"
|
||||
step4_1: "筆記發出去了嗎?"
|
||||
step4_2: "如果你的貼文有顯示在時間軸上,就代表已經發文成功。"
|
||||
step5_1: "現在試試看追隨其他人來讓你的時間軸變得更生動吧。"
|
||||
step5_3: "想要追隨其他人,只要點擊他們的頭像並按「追隨」即可。"
|
||||
step5_4: "如果使用者的名字旁有鎖頭的圖示,代表他們需要手動核准你的追隨請求。"
|
||||
step6_1: "現在你可以在時間軸上看到其他用戶的貼文"
|
||||
step6_2: "你也可以在其他人的貼文上進行「反應」來表達簡單的回覆。"
|
||||
step6_3: "在他人的貼文按下「+」的圖示即可選擇想要的表情符號來進行「反應」。"
|
||||
step7_1: "以上為Misskey的基本操作說明,教學在此告一段落。辛苦了。"
|
||||
step7_2: "歡迎到{help}來瞭解更多Misskey相關介紹。"
|
||||
_permissions:
|
||||
"read:blocks": "已封鎖用戶名單"
|
||||
"write:blocks": "編輯已封鎖用戶名單"
|
||||
"read:drive": "存取雲端硬碟\n"
|
||||
"write:drive": "編輯雲端硬碟的檔案"
|
||||
"read:favorites": "瀏覽已收藏"
|
||||
"write:favorites": "編輯收藏清單"
|
||||
"write:following": "追隨/解除追隨"
|
||||
"write:notes": "撰寫或刪除貼文"
|
||||
"read:notifications": "查看通知"
|
||||
"read:reactions": "查看反應"
|
||||
"write:reactions": "編輯反應"
|
||||
"write:votes": "投票"
|
||||
"read:channels": "已查看的頻道"
|
||||
"write:channels": "操作頻道"
|
||||
_antennaSources:
|
||||
all: "全部貼文"
|
||||
_weekday:
|
||||
sunday: "週日"
|
||||
monday: "週一"
|
||||
tuesday: "週二"
|
||||
wednesday: "週三"
|
||||
thursday: "週四"
|
||||
friday: "週五"
|
||||
saturday: "週六"
|
||||
_widgets:
|
||||
memo: "備忘錄"
|
||||
notifications: "通知"
|
||||
timeline: "時間軸"
|
||||
calendar: "行事曆"
|
||||
trends: "發燒貼文"
|
||||
clock: "時鐘"
|
||||
rss: "RSS閱讀器"
|
||||
activity: "動態"
|
||||
photos: "照片"
|
||||
digitalClock: "電子時鐘"
|
||||
federation: "聯邦宇宙"
|
||||
_cw:
|
||||
hide: "隱藏"
|
||||
show: "瀏覽更多"
|
||||
chars: "{count}字元"
|
||||
files: "{count} 個檔案"
|
||||
_poll:
|
||||
noOnlyOneChoice: "至少需要兩個選項。"
|
||||
expiration: "期限"
|
||||
infinite: "無期限"
|
||||
deadlineDate: "截止日期"
|
||||
deadlineTime: "小時"
|
||||
votesCount: "{n}票"
|
||||
totalVotes: "一共{n}票"
|
||||
vote: "投票"
|
||||
showResult: "顯示結果"
|
||||
voted: "已投票"
|
||||
closed: "已結束"
|
||||
_visibility:
|
||||
home: "首頁"
|
||||
followers: "追隨者"
|
||||
localOnly: "僅限本地"
|
||||
_postForm:
|
||||
channelPlaceholder: "發佈到頻道"
|
||||
_profile:
|
||||
name: "名稱"
|
||||
username: "使用名稱"
|
||||
metadataLabel: "標籤"
|
||||
metadataContent: "内容"
|
||||
_exportOrImport:
|
||||
allNotes: "全部貼文"
|
||||
followingList: "追隨中"
|
||||
muteList: "消音"
|
||||
blockingList: "封鎖"
|
||||
userLists: "清單"
|
||||
_charts:
|
||||
remoteNotesIncDec: "非本地貼文的數目增减"
|
||||
_instanceCharts:
|
||||
cacheSize: "增加或減少快取用量"
|
||||
cacheSizeTotal: "快取大小總計"
|
||||
_timelines:
|
||||
home: "首頁"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "預設"
|
||||
_furnitures:
|
||||
monitor: "監視器"
|
||||
keyboard: "鍵盤"
|
||||
_pages:
|
||||
deleted: "頁面已被刪除"
|
||||
like: "喜歡"
|
||||
unlike: "收回喜歡"
|
||||
blocks:
|
||||
image: "圖片"
|
||||
_post:
|
||||
text: "内容"
|
||||
_textareaInput:
|
||||
name: "變數名稱"
|
||||
numberInput: "輸入數值"
|
||||
_numberInput:
|
||||
name: "變數名稱"
|
||||
_canvas:
|
||||
width: "寬度"
|
||||
_counter:
|
||||
text: "標題"
|
||||
_button:
|
||||
text: "標題"
|
||||
_action:
|
||||
_dialog:
|
||||
content: "内容"
|
||||
script:
|
||||
categories:
|
||||
value: "數值 "
|
||||
fn: "函数"
|
||||
text: "文本操作"
|
||||
convert: "轉換"
|
||||
list: "清單"
|
||||
blocks:
|
||||
text: "文本"
|
||||
multiLineText: "文本 (多行)"
|
||||
textList: "文本列表"
|
||||
_strPick:
|
||||
arg1: "文本"
|
||||
arg2: "字元位置"
|
||||
_strReplace:
|
||||
arg1: "文本"
|
||||
_strReverse:
|
||||
arg1: "本文"
|
||||
_join:
|
||||
arg1: "清單"
|
||||
add: "加"
|
||||
_add:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
_subtract:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
_multiply:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
_divide:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
_mod:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
_round:
|
||||
arg1: "數值"
|
||||
eq: "A和B相等"
|
||||
_eq:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
notEq: "A和B不等"
|
||||
_notEq:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
and: "A和B"
|
||||
_and:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
or: "A或B"
|
||||
_or:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
lt: "< A小於B"
|
||||
_lt:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
gt: "> A大於B"
|
||||
_gt:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
ltEq: "<= A小於或等於B"
|
||||
_ltEq:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
gtEq: ">= A大於或等於B"
|
||||
_gtEq:
|
||||
arg1: "A"
|
||||
arg2: "B"
|
||||
if: "分支"
|
||||
_if:
|
||||
arg1: "如果"
|
||||
arg2: "如果"
|
||||
not: "否"
|
||||
_not:
|
||||
arg1: "否"
|
||||
_random:
|
||||
arg1: "機率"
|
||||
rannum: "亂數"
|
||||
_rannum:
|
||||
arg1: "下限"
|
||||
arg2: "上限"
|
||||
_randomPick:
|
||||
arg1: "清單"
|
||||
_dailyRandom:
|
||||
arg1: "機率"
|
||||
_dailyRannum:
|
||||
arg1: "下限"
|
||||
arg2: "上限"
|
||||
_dailyRandomPick:
|
||||
arg1: "清單"
|
||||
seedRandom: "隨機抽選種子碼"
|
||||
_seedRandom:
|
||||
arg1: "種子"
|
||||
arg2: "機率"
|
||||
seedRannum: "亂數 (種子)"
|
||||
_seedRannum:
|
||||
arg1: "種子"
|
||||
arg2: "最小值"
|
||||
arg3: "最大值"
|
||||
seedRandomPick: "從列表中隨機選擇 (種子)"
|
||||
_seedRandomPick:
|
||||
arg1: "種子"
|
||||
arg2: "清單"
|
||||
_DRPWPM:
|
||||
arg1: "文本列表"
|
||||
pick: "從清單中選取"
|
||||
_pick:
|
||||
arg1: "清單"
|
||||
arg2: "位置"
|
||||
listLen: "取得清單長度"
|
||||
_listLen:
|
||||
arg1: "清單"
|
||||
number: "數值"
|
||||
_stringToNumber:
|
||||
arg1: "文字"
|
||||
_numberToString:
|
||||
arg1: "數值"
|
||||
ref: "變數"
|
||||
aiScriptVar: "AiScript的變數"
|
||||
fn: "函数"
|
||||
_fn:
|
||||
slots: "欄位"
|
||||
arg1: "輸出"
|
||||
_for:
|
||||
arg1: "重複次數"
|
||||
arg2: "處理"
|
||||
types:
|
||||
string: "文字"
|
||||
number: "数值"
|
||||
array: "清單"
|
||||
stringArray: "文本列表"
|
||||
enviromentVariables: "環境變數"
|
||||
_relayStatus:
|
||||
requesting: "等待核准"
|
||||
accepted: "已通過核准"
|
||||
rejected: "已拒絕"
|
||||
_notification:
|
||||
youRenoted: "{name} 轉發了你的貼文"
|
||||
youGotPoll: "{name}已投票"
|
||||
youWereFollowed: "您有新的追隨者"
|
||||
yourFollowRequestAccepted: "您的追隨請求已通過"
|
||||
youWereInvitedToGroup: "您有新的群組邀請"
|
||||
_types:
|
||||
follow: "追隨中"
|
||||
mention: "提及"
|
||||
renote: "轉發貼文"
|
||||
quote: "引用"
|
||||
reaction: "反應"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "通知"
|
||||
tl: "時間軸"
|
||||
antenna: "天線"
|
||||
list: "清單"
|
||||
mentions: "提及"
|
||||
|
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`);
|
||||
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`);
|
||||
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"`);
|
||||
}
|
||||
|
||||
}
|
281
package.json
@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "misskey",
|
||||
"author": "syuilo <syuilotan@yahoo.co.jp>",
|
||||
"version": "12.17.0",
|
||||
"version": "12.49.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.11.0",
|
||||
"@elastic/elasticsearch": "7.8.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.0",
|
||||
"@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.3",
|
||||
"@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",
|
||||
@ -66,206 +73,196 @@
|
||||
"@types/koa__cors": "3.0.1",
|
||||
"@types/koa__multer": "2.0.1",
|
||||
"@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.1",
|
||||
"@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.2",
|
||||
"@types/portscanner": "2.1.0",
|
||||
"@types/pug": "2.0.4",
|
||||
"@types/qrcode": "1.3.4",
|
||||
"@types/random-seed": "0.3.3",
|
||||
"@types/ratelimiter": "2.1.28",
|
||||
"@types/redis": "2.8.15",
|
||||
"@types/redis": "2.8.25",
|
||||
"@types/rename": "1.0.1",
|
||||
"@types/request": "2.48.4",
|
||||
"@types/request-promise-native": "1.0.17",
|
||||
"@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.22",
|
||||
"@types/webpack-stream": "3.2.11",
|
||||
"@types/websocket": "1.0.1",
|
||||
"@types/ws": "7.2.7",
|
||||
"@typescript-eslint/parser": "4.4.0",
|
||||
"@vue/compiler-sfc": "3.0.2",
|
||||
"abort-controller": "3.0.0",
|
||||
"apexcharts": "3.22.0",
|
||||
"autobind-decorator": "2.4.0",
|
||||
"autosize": "4.0.2",
|
||||
"autwh": "0.1.0",
|
||||
"aws-sdk": "2.617.0",
|
||||
"aws-sdk": "2.770.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"bull": "3.12.1",
|
||||
"blurhash": "1.1.3",
|
||||
"bull": "3.18.0",
|
||||
"cafy": "15.2.1",
|
||||
"cbor": "5.0.1",
|
||||
"chai": "4.2.0",
|
||||
"chalk": "3.0.0",
|
||||
"cbor": "5.1.0",
|
||||
"chalk": "4.1.0",
|
||||
"chart.js": "2.9.3",
|
||||
"cli-highlight": "2.1.4",
|
||||
"commander": "4.1.1",
|
||||
"content-disposition": "0.5.3",
|
||||
"core-js": "3.6.5",
|
||||
"crc-32": "1.2.0",
|
||||
"css-loader": "3.4.2",
|
||||
"css-loader": "5.0.0",
|
||||
"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.11.0",
|
||||
"eslint-plugin-vue": "7.1.0",
|
||||
"eventemitter3": "4.0.7",
|
||||
"feed": "4.2.1",
|
||||
"fibers": "5.0.0",
|
||||
"file-type": "16.0.0",
|
||||
"fluent-ffmpeg": "2.1.2",
|
||||
"glob": "7.1.6",
|
||||
"got": "11.7.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-terser": "1.4.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.0",
|
||||
"mocha": "8.1.3",
|
||||
"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.13",
|
||||
"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.4.1",
|
||||
"portscanner": "2.2.0",
|
||||
"postcss-loader": "3.0.0",
|
||||
"prismjs": "1.19.0",
|
||||
"postcss": "8.1.2",
|
||||
"postcss-loader": "4.0.4",
|
||||
"prismjs": "1.22.0",
|
||||
"probe-image-size": "5.0.0",
|
||||
"progress-bar-webpack-plugin": "2.1.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.27.0",
|
||||
"sass-loader": "10.0.3",
|
||||
"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.27.8",
|
||||
"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.6",
|
||||
"ts-node": "9.0.0",
|
||||
"tslint": "6.1.3",
|
||||
"tslint-sonarts": "1.9.0",
|
||||
"typeorm": "0.2.22",
|
||||
"typescript": "3.7.5",
|
||||
"typeorm": "0.2.28",
|
||||
"typescript": "4.0.3",
|
||||
"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",
|
||||
"vue": "3.0.2",
|
||||
"vue-color": "2.7.1",
|
||||
"vue-draggable-next": "1.0.8",
|
||||
"vue-i18n": "9.0.0-beta.6",
|
||||
"vue-json-pretty": "1.7.0",
|
||||
"vue-loader": "16.0.0-beta.8",
|
||||
"vue-prism-editor": "1.2.2",
|
||||
"vue-router": "4.0.0-beta.13",
|
||||
"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",
|
||||
"vue-template-compiler": "2.6.12",
|
||||
"vuex": "4.0.0-beta.4",
|
||||
"vuex-persistedstate": "3.1.0",
|
||||
"web-push": "3.4.4",
|
||||
"webpack": "5.1.3",
|
||||
"webpack-cli": "4.1.0",
|
||||
"websocket": "1.0.32",
|
||||
"ws": "7.3.1",
|
||||
"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.14",
|
||||
"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>;
|
||||
}
|
4
src/@types/http-signature.d.ts
vendored
@ -19,10 +19,12 @@ declare module 'http-signature' {
|
||||
clockSkew?: number;
|
||||
}
|
||||
|
||||
interface IParsedSignature {
|
||||
interface IParsedSignature {
|
||||
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;
|
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 |
BIN
src/client/assets/room/furnitures/bed/bed.blend
Normal file
BIN
src/client/assets/room/furnitures/bed/bed.glb
Normal file
BIN
src/client/assets/room/furnitures/bin/bin.blend
Normal file
BIN
src/client/assets/room/furnitures/bin/bin.glb
Normal file
BIN
src/client/assets/room/furnitures/book/book.blend
Normal file
BIN
src/client/assets/room/furnitures/book/book.glb
Normal file
BIN
src/client/assets/room/furnitures/book2/barcode.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
BIN
src/client/assets/room/furnitures/book2/book2.blend
Normal file
BIN
src/client/assets/room/furnitures/book2/book2.glb
Normal file
BIN
src/client/assets/room/furnitures/book2/texture.afdesign
Normal file
BIN
src/client/assets/room/furnitures/book2/texture.png
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
src/client/assets/room/furnitures/book2/uv.png
Normal file
After Width: | Height: | Size: 8.4 KiB |