Compare commits
326 Commits
Author | SHA1 | Date | |
---|---|---|---|
ccbcc2a738 | |||
07e1882401 | |||
e56589d19e | |||
bfb5367d27 | |||
712c0ef27d | |||
94b2ddef45 | |||
b84a83adf4 | |||
c8514f58c6 | |||
841ddb036b | |||
982a37a413 | |||
741af7cce5 | |||
9954080672 | |||
f47f4b4a5c | |||
1a3fab9cd9 | |||
b683bf6f18 | |||
976ae1bf44 | |||
ffc63383dc | |||
c6ea6de5c2 | |||
fe812530d8 | |||
75d07175ae | |||
544580bd8b | |||
d30d307f80 | |||
5ccdfe258c | |||
8f8b550608 | |||
7836d0b059 | |||
4b9cbe9ca7 | |||
034b223f8f | |||
f87326620b | |||
b4a526ed18 | |||
410cc171c6 | |||
558b897700 | |||
e804757d83 | |||
bd434ed02d | |||
df89f5c8b8 | |||
3aebd8311f | |||
f025296331 | |||
1a58a962bb | |||
079d6b0de8 | |||
321841101b | |||
8071ca0d66 | |||
c1141c5267 | |||
f1fdd4524d | |||
02dd2c7f1a | |||
fc3a323a21 | |||
d92f501b50 | |||
be408ba6ea | |||
c81a204e0c | |||
fce1d619e8 | |||
3e146d5f94 | |||
cb5c0ac2f5 | |||
4798657b70 | |||
f565e60bcf | |||
89461c598f | |||
b320d08a5e | |||
a930d4fc7b | |||
d42197fc2e | |||
2d3138af76 | |||
4ee4b6f332 | |||
fc6c048fad | |||
dae9c4288d | |||
9f37149369 | |||
e476647ab8 | |||
eb23be979c | |||
6d9d6a6779 | |||
1c0cb1ae71 | |||
0ba5dc3900 | |||
872717feeb | |||
85b51f06a4 | |||
94df60d054 | |||
7395284480 | |||
b537fa5467 | |||
dca58c20d2 | |||
0a3030f7d0 | |||
81cc6f3104 | |||
cc0b9c6933 | |||
5671f1c6a4 | |||
89dee86f39 | |||
b414068ada | |||
3be7952e9f | |||
137b5da4aa | |||
2ee1639acb | |||
a05b184595 | |||
f3bacae1dc | |||
af5fb99fe6 | |||
0ebe4ad7a3 | |||
0cf99037c8 | |||
b913debc57 | |||
abe3f1f5e9 | |||
d30b88364c | |||
4840b7acf7 | |||
f5bac11fae | |||
68a70a94fc | |||
bf7436ddf8 | |||
b99155a084 | |||
027e62a6ea | |||
c6b6c8afbd | |||
1236a09247 | |||
6a4d38045e | |||
281aed2797 | |||
3e47f9943a | |||
f6d27dd17d | |||
073704c7af | |||
809db02ca2 | |||
2e45ff6a32 | |||
02d6974be9 | |||
e530afb2fe | |||
dba15f0e8b | |||
8f771c60c5 | |||
d9b1ca8c48 | |||
9e247c119a | |||
08b5e21e96 | |||
2101d3aa5b | |||
aa80fb5d4a | |||
63727f6514 | |||
ade35cbb2d | |||
6ec9059ccc | |||
c93d1711cf | |||
e734ad0413 | |||
047dee3a70 | |||
8c76089caf | |||
ab6cf2dba3 | |||
65a309e605 | |||
f37e713640 | |||
bc1e9245bd | |||
2fa82bde16 | |||
140249172c | |||
9677d1288a | |||
133ae7d171 | |||
5b92a43361 | |||
b839bf6918 | |||
7ea4ba1d5a | |||
f000dbd657 | |||
36e4a24527 | |||
861cc83014 | |||
d2b273dc3b | |||
e49ad120f3 | |||
6f441f35ec | |||
14a5c429bb | |||
100125ad5a | |||
f8c414aafc | |||
14aedb07aa | |||
40b01e0ad3 | |||
f9f6718174 | |||
c41723b09f | |||
1b6effd369 | |||
1bbf7a45a8 | |||
0a5e021128 | |||
52ebde60fc | |||
c77cf79f5d | |||
1233abe5b0 | |||
f2f2b09ff1 | |||
5bf87b7efe | |||
526321adb6 | |||
f816daa59e | |||
5d6f75ec05 | |||
28994d001c | |||
9e7b6790fd | |||
8fae064156 | |||
8451f4830c | |||
deded2bcf7 | |||
51fcaff90e | |||
ce8794f7dd | |||
c61abc3327 | |||
2bff683d52 | |||
4c408c7330 | |||
4505a80383 | |||
ed3e46953d | |||
79fd6c202b | |||
aef25ef565 | |||
a53d786515 | |||
27b8b81d4e | |||
369d9d5641 | |||
56b77d3cf8 | |||
0d2eb2c07c | |||
5bc1fe1f2c | |||
83bf229f5b | |||
492d550410 | |||
22a72d87ea | |||
d5ef52ec17 | |||
42c811a523 | |||
51e3c11acb | |||
b9ab18f5a9 | |||
00357c2f07 | |||
2f756c9988 | |||
4c55a19c6d | |||
a6eb0971a4 | |||
2e25e000de | |||
e3a15532bf | |||
3dcf721c53 | |||
b20b975935 | |||
2e6905c74c | |||
8bb97f2e4c | |||
684a8531b6 | |||
0b6ee98f05 | |||
a66225c67f | |||
67f1d76efe | |||
fdd14c601a | |||
5fb31512c4 | |||
8ab0581661 | |||
f71d9adb75 | |||
26f44edfd2 | |||
71d3265ddd | |||
484fe48076 | |||
b6f60f3785 | |||
eb1aa1ef47 | |||
1f1955490d | |||
533af40ac6 | |||
e2f61e36e1 | |||
aeb59f5bb8 | |||
501bb9638f | |||
2f96db4e45 | |||
c88dba2364 | |||
f146d7bcb6 | |||
5b4de85926 | |||
f6449a7f32 | |||
42849da497 | |||
f044ea7c85 | |||
d1f8b4e8d6 | |||
69520b7c96 | |||
43d09a19c5 | |||
c85caef2d0 | |||
8c02039e44 | |||
6245555e9a | |||
d119f2a0f1 | |||
ee8d1cfdc9 | |||
69a79fa191 | |||
ee48a049fe | |||
e7908ab8bb | |||
c2edb0e393 | |||
ec5b2ce30b | |||
4c36e545ba | |||
7f846f114d | |||
58abaa723d | |||
853ee415ae | |||
ff6409be3f | |||
7ce7bd8a30 | |||
6af37026c9 | |||
a4966573a8 | |||
18b2a5f105 | |||
03bdbd13c8 | |||
5e60e81a98 | |||
91d2738d6c | |||
01db424280 | |||
532e0bcf01 | |||
32de11c4bb | |||
3187cb69ec | |||
aec8a9f70d | |||
0cc9f4661b | |||
0483412c3c | |||
e22a08d8c9 | |||
2aa94faa50 | |||
575b00b7b1 | |||
d66c57dabe | |||
07f7b33fd9 | |||
8abb20d24e | |||
dfdff31b3c | |||
32e34bc72d | |||
29e69785c6 | |||
01e7c0175e | |||
e52246a5f0 | |||
7d78972528 | |||
2be5b2eb03 | |||
d379d295db | |||
eabd6f2b0e | |||
b05d80a7e6 | |||
9e518e8b66 | |||
7981bd3080 | |||
880f552001 | |||
6e75942dda | |||
254fbbbc75 | |||
a97296df45 | |||
7e83dfd4bc | |||
53eeb0e446 | |||
f3e1e27b61 | |||
4952a6050b | |||
48a9eee425 | |||
670ccead0b | |||
1bfaf1728f | |||
4ff138c35e | |||
07162ff341 | |||
bf3100b012 | |||
724675378f | |||
cafb702d87 | |||
2b41542330 | |||
8db7797ed7 | |||
de92233314 | |||
1942305b77 | |||
590e13a2bf | |||
94e8661441 | |||
cda3baa1ae | |||
e6eb1b2ae1 | |||
ddad9da1c1 | |||
db4cbbd9fa | |||
81ef070129 | |||
cab6699ac6 | |||
5bb4ab1a2c | |||
93af018037 | |||
30148d47b1 | |||
0a4460f035 | |||
4de7eb6e62 | |||
3942fb4707 | |||
41d0881f51 | |||
794a49a591 | |||
1dd9821da2 | |||
b1eb2aadbc | |||
706028b20a | |||
1a2d0303bf | |||
c0d7cbca88 | |||
1af05ed96a | |||
96b05f7884 | |||
553e1890d1 | |||
cc486a3313 | |||
565d61674d | |||
f1581a9375 | |||
e6c4ba8133 | |||
db9132987c | |||
0d0c45a4cf | |||
a54ffb2896 | |||
74abc85518 | |||
b917113d9b | |||
68a11ea2ff | |||
ad72e7b624 | |||
7704aca20e | |||
1f472b484f | |||
749e778939 | |||
e175a6ec9f |
@ -22,6 +22,7 @@
|
|||||||
"globals": {
|
"globals": {
|
||||||
"ENV": true,
|
"ENV": true,
|
||||||
"VERSION": true,
|
"VERSION": true,
|
||||||
"API": true
|
"API": true,
|
||||||
|
"LANGS": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -5,6 +5,7 @@
|
|||||||
/build
|
/build
|
||||||
/built
|
/built
|
||||||
/data
|
/data
|
||||||
|
/.cache-loader
|
||||||
npm-debug.log
|
npm-debug.log
|
||||||
*.pem
|
*.pem
|
||||||
run.bat
|
run.bat
|
||||||
|
@ -4,6 +4,10 @@
|
|||||||
notifications:
|
notifications:
|
||||||
email: false
|
email: false
|
||||||
|
|
||||||
|
branches:
|
||||||
|
except:
|
||||||
|
- l10n_master
|
||||||
|
|
||||||
language: node_js
|
language: node_js
|
||||||
|
|
||||||
node_js:
|
node_js:
|
||||||
|
140
assets/title-dark.svg
Normal file
140
assets/title-dark.svg
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="614.71039"
|
||||||
|
height="205.08009"
|
||||||
|
viewBox="0 0 162.64213 54.260776"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
inkscape:version="0.92.1 r15371"
|
||||||
|
sodipodi:docname="misskey.svg"
|
||||||
|
inkscape:export-filename="C:\Users\Takumiya_Cho\Desktop\misskey.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96">
|
||||||
|
<defs
|
||||||
|
id="defs2">
|
||||||
|
<inkscape:path-effect
|
||||||
|
effect="simplify"
|
||||||
|
id="path-effect5115"
|
||||||
|
is_visible="true"
|
||||||
|
steps="1"
|
||||||
|
threshold="0.000408163"
|
||||||
|
smooth_angles="360"
|
||||||
|
helper_size="0"
|
||||||
|
simplify_individual_paths="false"
|
||||||
|
simplify_just_coalesce="false"
|
||||||
|
simplifyindividualpaths="false"
|
||||||
|
simplifyJustCoalesce="false" />
|
||||||
|
<inkscape:path-effect
|
||||||
|
effect="simplify"
|
||||||
|
id="path-effect5104"
|
||||||
|
is_visible="true"
|
||||||
|
steps="1"
|
||||||
|
threshold="0.000408163"
|
||||||
|
smooth_angles="360"
|
||||||
|
helper_size="0"
|
||||||
|
simplify_individual_paths="false"
|
||||||
|
simplify_just_coalesce="false"
|
||||||
|
simplifyindividualpaths="false"
|
||||||
|
simplifyJustCoalesce="false" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="0.9899495"
|
||||||
|
inkscape:cx="370.82839"
|
||||||
|
inkscape:cy="79.043895"
|
||||||
|
inkscape:document-units="mm"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
units="px"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:bbox-nodes="true"
|
||||||
|
inkscape:snap-bbox-edge-midpoints="false"
|
||||||
|
inkscape:snap-smooth-nodes="true"
|
||||||
|
inkscape:snap-center="true"
|
||||||
|
inkscape:snap-page="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1017"
|
||||||
|
inkscape:window-x="-8"
|
||||||
|
inkscape:window-y="1072"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:object-paths="true"
|
||||||
|
inkscape:bbox-paths="true"
|
||||||
|
fit-margin-top="50"
|
||||||
|
fit-margin-left="50"
|
||||||
|
fit-margin-bottom="20"
|
||||||
|
fit-margin-right="50" />
|
||||||
|
<metadata
|
||||||
|
id="metadata5">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="レイヤー 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-11.097531,-173.29664)">
|
||||||
|
<g
|
||||||
|
transform="matrix(0.28612302,0,0,0.28612302,17.176981,141.74334)"
|
||||||
|
id="text4489-6"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.92471898px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
aria-label="Mi">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5210"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#fff;fill-opacity:1;stroke-width:0.92471898px"
|
||||||
|
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5212"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#fff;fill-opacity:1;stroke-width:0.92471898px"
|
||||||
|
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5199"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:136.34428406px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.26458335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 72.022691,200.53715 q 0.968125,0.24203 2.420312,0.5244 2.420313,0.40339 3.791824,1.29083 2.581666,1.69422 2.581666,5.08266 0,2.74302 -1.815234,4.47758 -2.097604,2.01693 -5.849089,2.01693 -2.743021,0 -6.131458,-0.76644 -1.089141,-0.24203 -1.774896,-1.08914 -0.645417,-0.84711 -0.645417,-1.89591 0,-1.29083 0.887448,-2.17828 0.927786,-0.92779 2.178281,-0.92779 0.363047,0 0.685756,0.0807 1.169817,0.24203 4.477578,0.60508 0.443724,0 0.968125,-0.0403 0.201693,0 0.201693,-0.24203 0.04034,-0.20169 -0.242032,-0.28237 -1.37151,-0.24203 -2.541328,-0.5244 -1.331172,-0.28237 -1.895911,-0.48406 -1.12948,-0.32271 -1.895912,-0.84711 -2.581667,-1.69422 -2.622005,-5.08266 0,-2.70268 1.855573,-4.47758 2.258958,-2.17828 6.413828,-1.97659 2.783359,0.12102 5.566719,0.7261 1.048802,0.24203 1.734557,1.08914 0.685756,0.84711 0.685756,1.93625 0,1.25049 -0.927787,2.17828 -0.887448,0.88745 -2.178281,0.88745 -0.322709,0 -0.645417,-0.0807 -1.169818,-0.24203 -4.517917,-0.56474 -0.403385,-0.0403 -0.766432,0 -0.322708,0.0403 -0.322708,0.24203 0.04034,0.24203 0.322708,0.32271 z" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5201"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:136.34428406px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.26458335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 89.577027,200.53715 q 0.968125,0.24203 2.420312,0.5244 2.420313,0.40339 3.791823,1.29083 2.581667,1.69422 2.581667,5.08266 0,2.74302 -1.815234,4.47758 -2.097604,2.01693 -5.849089,2.01693 -2.743021,0 -6.131458,-0.76644 -1.089141,-0.24203 -1.774896,-1.08914 -0.645417,-0.84711 -0.645417,-1.89591 0,-1.29083 0.887448,-2.17828 0.927786,-0.92779 2.178281,-0.92779 0.363047,0 0.685755,0.0807 1.169818,0.24203 4.477579,0.60508 0.443724,0 0.968125,-0.0403 0.201692,0 0.201692,-0.24203 0.04034,-0.20169 -0.242031,-0.28237 -1.37151,-0.24203 -2.541328,-0.5244 -1.331172,-0.28237 -1.895912,-0.48406 -1.129479,-0.32271 -1.895911,-0.84711 -2.581667,-1.69422 -2.622005,-5.08266 0,-2.70268 1.855573,-4.47758 2.258958,-2.17828 6.413828,-1.97659 2.783359,0.12102 5.566719,0.7261 1.048802,0.24203 1.734557,1.08914 0.685755,0.84711 0.685755,1.93625 0,1.25049 -0.927786,2.17828 -0.887448,0.88745 -2.178281,0.88745 -0.322709,0 -0.645417,-0.0807 -1.169818,-0.24203 -4.517917,-0.56474 -0.403385,-0.0403 -0.766432,0 -0.322708,0.0403 -0.322708,0.24203 0.04034,0.24203 0.322708,0.32271 z" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5203"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:136.34428406px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.26458335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 115.65209,203.87137 q 0.12101,0.0807 2.86404,2.78336 1.25049,1.21016 1.25049,2.94471 0,1.61354 -1.16982,2.86404 -1.16982,1.21016 -2.90437,1.21016 -1.65388,0 -2.86404,-1.16982 l -4.03385,-3.91284 q -0.16136,-0.12102 -0.32271,-0.12102 -0.32271,0 -0.32271,1.21016 0,1.69422 -1.21016,2.90438 -1.21015,1.16981 -2.90437,1.16981 -1.69422,0 -2.90438,-1.16981 -1.169807,-1.21016 -1.169807,-2.90438 v -18.79776 q 0,-1.69422 1.169807,-2.86404 1.21016,-1.21015 2.90438,-1.21015 1.69422,0 2.90437,1.21015 1.21016,1.16982 1.21016,2.86404 v 6.29281 q 0,0.40339 0.28237,0.5244 0.24203,0.12102 0.5244,-0.0807 0.16135,-0.0807 4.84063,-3.18675 1.0488,-0.64542 2.25895,-0.64542 2.21862,0 3.42878,1.81524 0.64542,1.0488 0.64542,2.25896 0,2.21862 -1.81524,3.42877 l -2.54133,1.61354 v 0.0403 l -0.0807,0.0403 q -0.56474,0.36305 -0.0403,0.88745 z" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5205"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:136.34428406px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.26458335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 131.25181,213.92955 q -4.19521,0 -7.18026,-2.94472 -2.94472,-2.98505 -2.94472,-7.18026 0,-4.15487 2.94472,-7.09958 2.98505,-2.98505 7.18026,-2.98505 4.15487,0 6.97857,2.78335 0.92778,0.92779 0.92778,2.25896 0,1.33118 -0.92778,2.25896 l -4.67928,4.63893 q -1.00846,1.00847 -2.01692,1.00847 -1.45219,0 -2.25896,-0.80677 -0.80677,-0.80677 -0.80677,-2.13795 0,-1.29083 0.92778,-2.21862 l 0.80678,-0.84711 q 0.16135,-0.12101 0.0807,-0.24203 -0.12101,-0.0807 -0.32271,-0.0403 -0.80677,0.20169 -1.37151,0.80677 -1.12948,1.08914 -1.12948,2.622 0,1.5732 1.08915,2.70268 1.12947,1.08914 2.70268,1.08914 1.53286,0 2.622,-1.12947 0.92779,-0.92779 2.25896,-0.92779 1.33117,0 2.25896,0.92779 0.92779,0.92778 0.92779,2.25895 0,1.33118 -0.92779,2.25896 -2.98505,2.94472 -7.13992,2.94472 z" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5207"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:136.34428406px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#fff;fill-opacity:1;stroke:none;stroke-width:0.26458335px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 160.51049,198.1433 v 5.60705 q 0,0.56474 -0.0807,1.21016 v 7.38195 q 0,4.51792 -2.74302,7.2206 -2.70268,2.70269 -7.30128,2.70269 -2.66234,0 -4.80028,-1.00847 -2.13795,-0.96812 -2.13795,-3.3481 0,-0.80677 0.36305,-1.53286 0.96812,-2.17828 3.3481,-2.17828 0.56474,0 1.5732,0.32271 1.00847,0.3227 1.65388,0.3227 1.69422,0 2.21862,-0.72609 0.20169,-0.28237 0.0807,-0.44372 -0.16136,-0.24204 -0.56474,-0.16136 -0.68576,0.12102 -1.49253,0.12102 -4.07419,0 -6.97856,-2.90438 -2.90438,-2.90437 -2.90438,-6.97857 v -5.60705 q 0,-1.69422 1.16982,-2.86404 1.21015,-1.21016 2.90437,-1.21016 1.69422,0 2.90438,1.21016 1.21015,1.16982 1.21015,2.86404 v 5.60705 q 0,0.68576 0.48407,1.21016 0.5244,0.48406 1.21015,0.48406 0.7261,0 1.21016,-0.48406 0.48406,-0.5244 0.48406,-1.21016 v -5.60705 q 0,-1.69422 1.21016,-2.86404 1.21015,-1.21016 2.90437,-1.21016 1.69422,0 2.86404,1.21016 1.21016,1.16982 1.21016,2.86404 z" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 13 KiB |
@ -8,7 +8,8 @@ const { default: User } = require('../built/models/user');
|
|||||||
const q = {
|
const q = {
|
||||||
'metadata._user.host': {
|
'metadata._user.host': {
|
||||||
$ne: null
|
$ne: null
|
||||||
}
|
},
|
||||||
|
'metadata.isMetaOnly': false
|
||||||
};
|
};
|
||||||
|
|
||||||
async function main() {
|
async function main() {
|
||||||
@ -56,8 +57,7 @@ async function main() {
|
|||||||
|
|
||||||
DriveFile.update({ _id: file._id }, {
|
DriveFile.update({ _id: file._id }, {
|
||||||
$set: {
|
$set: {
|
||||||
'metadata.deletedAt': new Date(),
|
'metadata.isMetaOnly': true
|
||||||
'metadata.isExpired': true
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
]).then(async () => {
|
]).then(async () => {
|
||||||
|
@ -43,13 +43,7 @@ Please install and setup these softwares:
|
|||||||
|
|
||||||
*4.* Prepare configuration
|
*4.* Prepare configuration
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. Copy `example.yml` of `.config` directory
|
You need to generate config file via `npm run config` command.
|
||||||
2. Rename it to `default.yml`
|
|
||||||
3. Edit it
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Or you can generate config file via `npm run config` command.
|
|
||||||
|
|
||||||
*5.* Build Misskey
|
*5.* Build Misskey
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
|
@ -43,18 +43,14 @@ web-push generate-vapid-keys
|
|||||||
|
|
||||||
*4.* 設定ファイルを用意する
|
*4.* 設定ファイルを用意する
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. `.config`ディレクトリ内の`example.yml`をコピー
|
`npm run config`コマンドを利用して、ガイドに従って情報を入力してください。
|
||||||
2. `default.yml`にリネーム
|
|
||||||
3. 編集する
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
または、`npm run config`コマンドを利用して、ガイドに従って情報を
|
|
||||||
入力して設定ファイルを生成することもできます。
|
|
||||||
|
|
||||||
*5.* Misskeyのビルド
|
*5.* Misskeyのビルド
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
1. `npm run build`
|
1. `npm install -g node-gyp`
|
||||||
|
2. `node-gyp configure`
|
||||||
|
3. `node-gyp build`
|
||||||
|
4. `npm run build`
|
||||||
|
|
||||||
*6.* 以上です!
|
*6.* 以上です!
|
||||||
----------------------------------------------------------------
|
----------------------------------------------------------------
|
||||||
@ -78,4 +74,4 @@ VPSなどでビルドする時は、もしかしたらメモリが足りなく
|
|||||||
3. npm run webpack
|
3. npm run webpack
|
||||||
4. built/client をサーバーにアップロードする
|
4. built/client をサーバーにアップロードする
|
||||||
5. サーバー上で、npm run gulp
|
5. サーバー上で、npm run gulp
|
||||||
6. 完了
|
6. 完了
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
Misskey's Translation - English version
|
Misskey's Translation
|
||||||
============
|
=====================
|
||||||
|
|
||||||
How to add a new language?
|
|
||||||
----------------------
|
|
||||||
Copy a language file to `/locales` and rename it after the language you wish to add.
|
|
||||||
|
|
||||||
If you find an untranslated part on Misskey:
|
If you find an untranslated part on Misskey:
|
||||||
-------------------------------
|
--------------------------------------------
|
||||||
|
|
||||||
1. Look for untranslated parts in the miskey's source code.
|
1. Look for untranslated parts in the miskey's source code.
|
||||||
- For instance, if you find an untranslated part in: `src/client/app/mobile/views/pages/home.vue`.
|
- For instance, if you find an untranslated part in: `src/client/app/mobile/views/pages/home.vue`.
|
||||||
|
@ -1,12 +1,8 @@
|
|||||||
Traduction de Misskey - Version Française
|
Traduction de Misskey
|
||||||
============
|
=====================
|
||||||
|
|
||||||
Comment ajouter une nouvelle langue ?
|
|
||||||
----------------------
|
|
||||||
Veuillez copier un fichier de langue dans /locales puis renommez-le du nom de la langue que vous voulez ajouter et modifier.
|
|
||||||
|
|
||||||
Si vous trouvez un segment non-traduit sur Misskey :
|
Si vous trouvez un segment non-traduit sur Misskey :
|
||||||
-------------------------------
|
----------------------------------------------------
|
||||||
|
|
||||||
1. Veuillez chercher des parties non-traduites dans le code source de Misskey.
|
1. Veuillez chercher des parties non-traduites dans le code source de Misskey.
|
||||||
- Par exemple, supposons que vous trouviez un segment non-traduit dans : `src/client/app/mobile/views/pages/home.vue`.
|
- Par exemple, supposons que vous trouviez un segment non-traduit dans : `src/client/app/mobile/views/pages/home.vue`.
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
Misskeyの翻訳
|
Misskeyの翻訳
|
||||||
============
|
============
|
||||||
|
|
||||||
新たな言語を追加するには
|
|
||||||
----------------------
|
|
||||||
/locales 内に既にある何らかの言語ファイルをコピーして、追加したい言語名にリネームして編集してください。
|
|
||||||
|
|
||||||
Misskey内の未翻訳箇所を見つけたら
|
Misskey内の未翻訳箇所を見つけたら
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
|
291
locales/de.yml
291
locales/de.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "Deutsch"
|
||||||
|
divider: " "
|
||||||
common:
|
common:
|
||||||
misskey: "Teile alles mit anderen mithilfe von Misskey"
|
misskey: "Teile alles mit anderen mithilfe von Misskey"
|
||||||
time:
|
time:
|
||||||
@ -140,46 +143,74 @@ common/views/components/stream-indicator.vue:
|
|||||||
reconnecting: "Erneut verbinden"
|
reconnecting: "Erneut verbinden"
|
||||||
connected: "Verbindung hergestellt"
|
connected: "Verbindung hergestellt"
|
||||||
common/views/components/twitter-setting.vue:
|
common/views/components/twitter-setting.vue:
|
||||||
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
|
description: "Wenn du deinen Twitter-Account mit deinem Misskey-Account verbindest, siehst du deine Twitter Account-Informationen auf deinem Profil und du kannst dich mit Twitter einloggen."
|
||||||
connected-to: "次のTwitterアカウントに接続されています"
|
connected-to: "Du bist mit diesem Twitter-Account verbunden"
|
||||||
detail: "Mehr..."
|
detail: "Mehr..."
|
||||||
reconnect: "Erneut verbinden"
|
reconnect: "Erneut verbinden"
|
||||||
connect: "Mit Twitter verbinden"
|
connect: "Mit Twitter verbinden"
|
||||||
disconnect: "Trennen"
|
disconnect: "Trennen"
|
||||||
common/views/components/uploader.vue:
|
common/views/components/uploader.vue:
|
||||||
waiting: "待機中"
|
waiting: "Warten"
|
||||||
common/views/widgets/broadcast.vue:
|
common/views/widgets/broadcast.vue:
|
||||||
fetching: "確認中"
|
fetching: "Laden"
|
||||||
no-broadcasts: "お知らせはありません"
|
no-broadcasts: "Keine Broadcasts"
|
||||||
have-a-nice-day: "良い一日を!"
|
have-a-nice-day: "Schönen Tag!"
|
||||||
next: "次"
|
next: "Nächster"
|
||||||
common/views/widgets/donation.vue:
|
common/views/widgets/donation.vue:
|
||||||
title: "寄付のお願い"
|
title: "Spende"
|
||||||
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
|
text: "Um Misskey am Laufen zu halten geben wir Geld für Domain, Server usw. aus. Wir bekommen dafür kein Geld und würden uns freuen, wenn du spenden würdest. Wenn du interessiert bist, dann kontaktiere {}. Danke für deine Unterstützung!"
|
||||||
common/views/widgets/photo-stream.vue:
|
common/views/widgets/photo-stream.vue:
|
||||||
title: "フォトストリーム"
|
title: "Fotostream"
|
||||||
no-photos: "写真はありません"
|
no-photos: "Keine Fotos"
|
||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "Serverinformationen"
|
||||||
toggle: "表示を切り替え"
|
toggle: "Sicht umschalten"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Schwarz ... komplett"
|
||||||
|
notes: "Blau ... Hinweise"
|
||||||
|
replies: "Rot ... Antworten"
|
||||||
|
renotes: "Grün ... Anmerkungen"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "Aktivität"
|
||||||
toggle: "表示を切り替え"
|
toggle: "Sichten umschalten"
|
||||||
desktop/views/components/calendar.vue:
|
desktop/views/components/calendar.vue:
|
||||||
title: "{1}年 {2}月"
|
title: "{1} / {2}"
|
||||||
prev: "前の月"
|
prev: "Vorheriger Monat"
|
||||||
next: "次の月"
|
next: "Nächster Monat"
|
||||||
go: "クリックして時間遡行"
|
go: "Klicke zur Navigation"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "Datei auswählen"
|
||||||
|
upload: "Dateien von deinem PC hochladen"
|
||||||
|
cancel: "Abbrechen"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Wähle eine Datei aus"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "Abbrechen"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Wähle einen Ordner"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "Zuschneiden überspringen"
|
||||||
|
cancel: "Abbrechen"
|
||||||
|
ok: "OK"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "benutzt"
|
||||||
drive: "ドライブ"
|
drive: "Speicher"
|
||||||
desktop/views/components/drive.file.vue:
|
desktop/views/components/drive.file.vue:
|
||||||
avatar: "アイコン"
|
avatar: "Avatar"
|
||||||
banner: "バナー"
|
banner: "Banner"
|
||||||
contextmenu:
|
contextmenu:
|
||||||
rename: "名前を変更"
|
rename: "Umbenennen"
|
||||||
copy-url: "URLをコピー"
|
copy-url: "URL kopieren"
|
||||||
download: "ダウンロード"
|
download: "Download"
|
||||||
else-files: "その他..."
|
else-files: "その他..."
|
||||||
set-as-avatar: "アイコンに設定"
|
set-as-avatar: "アイコンに設定"
|
||||||
set-as-banner: "バナーに設定"
|
set-as-banner: "バナーに設定"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "Ein Verzeichnis erstellen"
|
create-folder: "Ein Verzeichnis erstellen"
|
||||||
upload: "Eine Datei hochladen"
|
upload: "Eine Datei hochladen"
|
||||||
url-upload: "Von einer URL hochladen"
|
url-upload: "Von einer URL hochladen"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "Spende"
|
||||||
nav: "ナビゲーション"
|
nav: "Navigation"
|
||||||
tips: "ヒント"
|
tips: "Tipps"
|
||||||
add: "追加"
|
add: "Hinzufügen"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "Abbrechen"
|
||||||
|
ok: "OK"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "Nachrichten:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "Nachrichten"
|
title: "Nachrichten"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "Lade weitere Konversationen"
|
||||||
|
private: "(Dieser Post ist privat)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "Ort"
|
||||||
|
renote: "Anmerkung"
|
||||||
|
add-reaction: "Reaktion hinzufügen"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(Dieser Post ist privat)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "Auch geteilt von"
|
reposted-by: "Auch geteilt von"
|
||||||
reply: "Antworten"
|
reply: "Antworten"
|
||||||
renote: "Anmerken"
|
renote: "Anmerken"
|
||||||
add-reaction: "Eine Reaktion hinzufügen"
|
add-reaction: "Eine Reaktion hinzufügen"
|
||||||
detail: "Zeige Details"
|
detail: "Zeige Details"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "Laden fehlgeschlagen."
|
||||||
|
retry: "Erneut versuchen"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "Mehr"
|
more: "Mehr"
|
||||||
empty: "Keine Benachrichtigungen"
|
empty: "Keine Benachrichtigungen"
|
||||||
@ -282,13 +347,15 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "Antworten"
|
reply: "Antworten"
|
||||||
attaches: "{} Medien hinzugefügt"
|
attaches: "{} Medien hinzugefügt"
|
||||||
uploading-media: "Lade {} Medien hoch"
|
uploading-media: "Lade {} Medien hoch"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "Warten"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "Zitieren..."
|
quote: "Zitieren..."
|
||||||
cancel: "Abbrechen"
|
cancel: "Abbrechen"
|
||||||
renote: "Anmerkung"
|
renote: "Anmerkung"
|
||||||
reposting: "しています..."
|
reposting: "Weitersagen..."
|
||||||
success: "Renoteしました!"
|
success: "Weitergesagt!"
|
||||||
failure: "Renoteに失敗しました"
|
failure: "Weitersagen fehlgeschlagen"
|
||||||
desktop/views/components/renote-form-window.vue:
|
desktop/views/components/renote-form-window.vue:
|
||||||
title: "この投稿をRenoteしますか?"
|
title: "この投稿をRenoteしますか?"
|
||||||
desktop/views/components/settings.vue:
|
desktop/views/components/settings.vue:
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "Profil aktualisieren"
|
save: "Profil aktualisieren"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "Home"
|
home: "Home"
|
||||||
local: "Lokal"
|
local: "Lokal"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "Vorheriger Kommentar"
|
prev: "Vorheriger Kommentar"
|
||||||
next: "Nächster Kommentar"
|
next: "Nächster Kommentar"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "OK"
|
ok: "OK"
|
||||||
cancel: "Abbrechen"
|
cancel: "Abbrechen"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
244
locales/en.yml
244
locales/en.yml
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
meta:
|
meta:
|
||||||
lang: "English"
|
lang: "English"
|
||||||
divider: " "
|
divider: ""
|
||||||
common:
|
common:
|
||||||
misskey: "Share everything with others using Misskey."
|
misskey: "Share everything with others using Misskey."
|
||||||
time:
|
time:
|
||||||
@ -22,7 +22,7 @@ common:
|
|||||||
wednesday: "W"
|
wednesday: "W"
|
||||||
thursday: "T"
|
thursday: "T"
|
||||||
friday: "F"
|
friday: "F"
|
||||||
saturday: "土"
|
saturday: "S"
|
||||||
reactions:
|
reactions:
|
||||||
like: "Like"
|
like: "Like"
|
||||||
love: "Love"
|
love: "Love"
|
||||||
@ -56,9 +56,9 @@ common/views/components/connect-failed.troubleshooter.vue:
|
|||||||
no-network-desc: "Please make sure you are connected to the Network."
|
no-network-desc: "Please make sure you are connected to the Network."
|
||||||
no-internet: "There is no Internet connection"
|
no-internet: "There is no Internet connection"
|
||||||
no-internet-desc: "Please make sure you are connected to the Internet."
|
no-internet-desc: "Please make sure you are connected to the Internet."
|
||||||
no-server: "Unable to connect to the server"
|
no-server: "Unable to connect to the Misskey server"
|
||||||
no-server-desc: "The network connection of your PC is normal, but you could not connect to Misskey's server. There is a possibility that the server is either down or under maintenance, please try again later."
|
no-server-desc: "The network connection of your PC is normal, but you could not connect to the Misskey server. There is a possibility that the server is either down or under maintenance, please try again later."
|
||||||
success: "Successfully connected to Misskey's server"
|
success: "Successfully connected to the Misskey server"
|
||||||
success-desc: "It seems to be able to connect. Please reload the page."
|
success-desc: "It seems to be able to connect. Please reload the page."
|
||||||
flush: "Clean cache"
|
flush: "Clean cache"
|
||||||
set-version: "Specify version"
|
set-version: "Specify version"
|
||||||
@ -121,7 +121,7 @@ common/views/components/signup.vue:
|
|||||||
unavailable: "Unavailable"
|
unavailable: "Unavailable"
|
||||||
error: "Network error"
|
error: "Network error"
|
||||||
invalid-format: "Only use letters, numbers and -."
|
invalid-format: "Only use letters, numbers and -."
|
||||||
too-short: "Please enter at least 1 character!"
|
too-short: "Please enter at least 1 character!"
|
||||||
too-long: "Please enter up to 20 characters."
|
too-long: "Please enter up to 20 characters."
|
||||||
password: "Password"
|
password: "Password"
|
||||||
password-placeholder: "We recommend more than 8 characters."
|
password-placeholder: "We recommend more than 8 characters."
|
||||||
@ -165,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "Server info"
|
title: "Server info"
|
||||||
toggle: "Toggle views"
|
toggle: "Toggle views"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "Public"
|
||||||
|
home: "Home"
|
||||||
|
home-desc: "Post to the home timeline only"
|
||||||
|
followers: "Followers"
|
||||||
|
followers-desc: "Post to followers only"
|
||||||
|
specified: "Direct"
|
||||||
|
specified-desc: "Post to specified users only"
|
||||||
|
private: "Private"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "Activity"
|
title: "Activity"
|
||||||
toggle: "Toggle views"
|
toggle: "Toggle views"
|
||||||
@ -173,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "Previous month"
|
prev: "Previous month"
|
||||||
next: "Next month"
|
next: "Next month"
|
||||||
go: "Click to naviguate"
|
go: "Click to naviguate"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "Choosing files"
|
||||||
|
upload: "Upload files from your PC"
|
||||||
|
cancel: "Cancel"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Choose a file"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "Cancel"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Choose a Folder"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "Skip cropping"
|
||||||
|
cancel: "Cancel"
|
||||||
|
ok: "OK"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "used"
|
used: "used"
|
||||||
drive: "Drive"
|
drive: "Drive"
|
||||||
@ -224,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "Create a folder"
|
create-folder: "Create a folder"
|
||||||
upload: "Upload a file"
|
upload: "Upload a file"
|
||||||
url-upload: "Upload from a URL"
|
url-upload: "Upload from a URL"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "Unfollow"
|
||||||
|
follow: "Follow"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "Followers of {}"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "Seems that you don’t have any followers."
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "Following {}"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "You don’t follow anyone."
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "Recommended users:"
|
||||||
|
empty: "Similar users weren’t found."
|
||||||
|
fetching: "Loading…"
|
||||||
|
refresh: "More"
|
||||||
|
close: "Close"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "Othello"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "Submit"
|
done: "Submit"
|
||||||
add-widget: "Add widget:"
|
add-widget: "Add widget:"
|
||||||
@ -240,23 +287,38 @@ desktop/views/components/home.vue:
|
|||||||
notifications: "Notifications"
|
notifications: "Notifications"
|
||||||
users: "Recommended users"
|
users: "Recommended users"
|
||||||
polls: "Polls"
|
polls: "Polls"
|
||||||
post-form: "投稿フォーム"
|
post-form: "Post form"
|
||||||
messaging: "Messaging"
|
messaging: "Messaging"
|
||||||
channel: "Channel"
|
|
||||||
access-log: "Access log"
|
|
||||||
server: "Server info"
|
server: "Server info"
|
||||||
donation: "Donation"
|
donation: "Donation"
|
||||||
nav: "Navigation"
|
nav: "Navigation"
|
||||||
tips: "Tips"
|
tips: "Tips"
|
||||||
add: "Add"
|
add: "Add"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "Cancel"
|
||||||
|
ok: "OK"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "Messages:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "Messaging"
|
title: "Messaging"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "Load more conversations"
|
||||||
|
private: "(this post is private)"
|
||||||
|
reposted-by: "Renoted by {}"
|
||||||
|
location: "Location"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "Add a reaction"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(this post is private)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "Reposted by {}"
|
reposted-by: "Reposted by {}"
|
||||||
reply: "Reply"
|
reply: "Reply"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "Add a reaction"
|
add-reaction: "Add a reaction"
|
||||||
detail: "Show detail"
|
detail: "Show detail"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "Loading failed."
|
||||||
|
retry: "Retry"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "More"
|
more: "More"
|
||||||
empty: "No notifications"
|
empty: "No notifications"
|
||||||
@ -285,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "Reply"
|
reply: "Reply"
|
||||||
attaches: "{} media attached"
|
attaches: "{} media attached"
|
||||||
uploading-media: "Uploading {} media"
|
uploading-media: "Uploading {} media"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "Waiting"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "Quote..."
|
quote: "Quote..."
|
||||||
cancel: "Cancel"
|
cancel: "Cancel"
|
||||||
@ -306,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "Two-factor authentication"
|
2fa: "Two-factor authentication"
|
||||||
other: "Other"
|
other: "Other"
|
||||||
license: "License"
|
license: "License"
|
||||||
|
behaviour: "Behavior"
|
||||||
|
fetch-on-scroll: "Fetch on scroll"
|
||||||
|
fetch-on-scroll-desc: "When you scroll down the page automatically fetches additional content."
|
||||||
|
auto-popout: "Auto pop-out window"
|
||||||
|
auto-popout-desc: "Pop-out an opened window if possible. This setting is stored in the browser."
|
||||||
|
advanced: "Advanced settings"
|
||||||
|
api-via-stream: "API request via stream"
|
||||||
|
api-via-stream-desc: "API request is performed via the WebSocket connection instead of native fetch API (for better performance). This setting is stored in the browser."
|
||||||
|
display: "Design and display"
|
||||||
|
customize: "Customize Home"
|
||||||
|
dark-mode: "Dark Mode"
|
||||||
|
circle-icons: "Use circle icons"
|
||||||
|
gradient-window-header: "Use gradients on window headers"
|
||||||
|
post-form-on-timeline: "Display post form at the top of the timeline"
|
||||||
|
show-reply-target: "Display reply target"
|
||||||
|
show-my-renotes: "Show my renote in the timeline"
|
||||||
|
show-renoted-my-notes: "Show renoted my post in the timeline"
|
||||||
|
show-maps: "Show the map"
|
||||||
|
show-maps-desc: "Show the map of the location attached to the post."
|
||||||
|
sound: "Sound"
|
||||||
|
enable-sounds: "Enable sound"
|
||||||
|
enable-sounds-desc: "Play a sound when you received a post/message. This setting is stored in the browser."
|
||||||
|
volume: "Volume"
|
||||||
|
test: "Test"
|
||||||
|
mobile: "Mobile"
|
||||||
|
disable-via-mobile: "Not mark the post as 'from mobile'"
|
||||||
|
language: "Language"
|
||||||
|
pick-language: "Select a language"
|
||||||
|
recommended: "Recommended"
|
||||||
|
auto: "Auto"
|
||||||
|
specify-language: "Specify the language"
|
||||||
|
language-desc: "You need to reload the page for the changes to take effect."
|
||||||
|
cache: "Cache"
|
||||||
|
clean-cache: "Cleanup"
|
||||||
|
cache-warn: "The cache of account info/posts/replies/messages/settings stored in the browser will be deleted. You need to reload the page after cleaning up."
|
||||||
|
cache-cleared: "Cache cleared"
|
||||||
|
cache-cleared-desc: "Please reload the page."
|
||||||
|
auto-watch: "Auto watch"
|
||||||
|
auto-watch-desc: "Receive notifications about the post/reply/reaction automatically."
|
||||||
|
about: "About Misskey"
|
||||||
|
operator: "The admin of this instance"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "Version:"
|
||||||
|
latest-version: "Latest version:"
|
||||||
|
update-checking: "Checking for updates"
|
||||||
|
do-update: "Check for update"
|
||||||
|
update-settings: "Advanced settings"
|
||||||
|
prevent-update: "Postpone updates (not recommended)"
|
||||||
|
prevent-update-desc: "You may reflect updates even if you select this setting. This setting is valid only this device."
|
||||||
|
no-updates: "No updates available"
|
||||||
|
no-updates-desc: "Your Misskey is up to date."
|
||||||
|
update-available: "New version is available!"
|
||||||
|
update-available-desc: "To reload the page and updates are applied."
|
||||||
|
advanced-settings: "Advanced"
|
||||||
|
debug-mode: "Enable the debug mode"
|
||||||
|
debug-mode-desc: "This setting is stored in the browser."
|
||||||
|
experimental: "Enable experimental features"
|
||||||
|
experimental-desc: "It would make Misskey client unstable. This setting is stored in the browser."
|
||||||
|
tools: "Tools"
|
||||||
|
task-manager: "Task Manager"
|
||||||
|
third-parties: "Third-party"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "If you set up 2-step verification, you will need not only a password at sign-in but also a pre-registered physical device (such as your smartphone), which will improve security. "
|
intro: "If you set up 2-step verification, you will need not only a password at sign-in but also a pre-registered physical device (such as your smartphone), which will improve security. "
|
||||||
detail: "See details..."
|
detail: "See details..."
|
||||||
@ -325,7 +450,7 @@ desktop/views/components/settings.2fa.vue:
|
|||||||
failed: "Failed to setup. please ensure that the token is correct."
|
failed: "Failed to setup. please ensure that the token is correct."
|
||||||
info: "From now on, enter the token that is displayed on your device in addition to your password when signing-in to Misskey."
|
info: "From now on, enter the token that is displayed on your device in addition to your password when signing-in to Misskey."
|
||||||
desktop/views/components/settings.api.vue:
|
desktop/views/components/settings.api.vue:
|
||||||
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
|
intro: "To access the API, set this token as the key 'i' of request parameters."
|
||||||
caution: "Please do not show this token to third parties (do not enter it somewhere else other than here) otherwise your account could get compromised."
|
caution: "Please do not show this token to third parties (do not enter it somewhere else other than here) otherwise your account could get compromised."
|
||||||
regeneration-of-token: "In the unlikely event that this token leaks out you can regenerate it."
|
regeneration-of-token: "In the unlikely event that this token leaks out you can regenerate it."
|
||||||
regenerate-token: "Regenerate the token"
|
regenerate-token: "Regenerate the token"
|
||||||
@ -350,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "Description"
|
description: "Description"
|
||||||
birthday: "Birthday"
|
birthday: "Birthday"
|
||||||
save: "Update profile"
|
save: "Update profile"
|
||||||
|
is-bot: "This account is a Bot"
|
||||||
|
is-cat: "This account is a Cat"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(this post is private)"
|
||||||
|
media: " media"
|
||||||
|
poll: "Polls"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "Task Manager"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "Home"
|
home: "Home"
|
||||||
local: "Local"
|
local: "Local"
|
||||||
@ -385,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "You know"
|
iknow: "You know"
|
||||||
load-more: "More"
|
load-more: "More"
|
||||||
fetching: "Loading…"
|
fetching: "Loading…"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "Follows you"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "Popout"
|
||||||
|
close: "Close"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "Log In"
|
||||||
|
signup: "Sign up"
|
||||||
|
signin-button: "Log in"
|
||||||
|
signup-button: "Sign up"
|
||||||
|
timeline: "Timeline"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "Load More"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "Customize home"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "Previous note"
|
prev: "Previous note"
|
||||||
next: "Next note"
|
next: "Next note"
|
||||||
@ -393,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "OK"
|
ok: "OK"
|
||||||
cancel: "Cancel"
|
cancel: "Cancel"
|
||||||
upload: "Upload files from you PC"
|
upload: "Upload files from you PC"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "User"
|
||||||
|
add-user: "Add a user"
|
||||||
|
username: "Username"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "Followers you know"
|
title: "Followers you know"
|
||||||
loading: "Loading"
|
loading: "Loading"
|
||||||
@ -419,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "Mute"
|
mute: "Mute"
|
||||||
muted: "Muting"
|
muted: "Muting"
|
||||||
unmute: "Unmute"
|
unmute: "Unmute"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "Posts"
|
||||||
|
with-replies: "Posts and replies"
|
||||||
|
with-media: "Media"
|
||||||
|
empty: "This user has never posted yet."
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "Messaging"
|
title: "Messaging"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -432,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "Post"
|
title: "Post"
|
||||||
note: "Post"
|
note: "Post"
|
||||||
placeholder: "What's happening?"
|
placeholder: "What's happening?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "Click to edit your banner"
|
||||||
|
update-avatar: "Click to edit your avatar"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "Trend"
|
title: "Trend"
|
||||||
refresh: "Show others"
|
refresh: "Show others"
|
||||||
@ -440,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "Recommended users"
|
title: "Recommended users"
|
||||||
refresh: "Show others"
|
refresh: "Show others"
|
||||||
no-one: "No one"
|
no-one: "No one"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "Channel"
|
|
||||||
settings: "Widget settings"
|
|
||||||
get-started: "Please click the cog in the upper right corner to specify a channel"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "Drive"
|
drive: "Drive"
|
||||||
used: "used"
|
used: "used"
|
||||||
@ -476,9 +634,9 @@ mobile/views/components/notifications.vue:
|
|||||||
empty: "No notifications"
|
empty: "No notifications"
|
||||||
mobile/views/components/post-form.vue:
|
mobile/views/components/post-form.vue:
|
||||||
submit: "Post"
|
submit: "Post"
|
||||||
reply: "返信"
|
reply: "Reply"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
renote-placeholder: "この投稿を引用... (オプション)"
|
renote-placeholder: "Quote this post. (optional)"
|
||||||
reply-placeholder: "Reply to this note..."
|
reply-placeholder: "Reply to this note..."
|
||||||
note-placeholder: "What's happening?"
|
note-placeholder: "What's happening?"
|
||||||
mobile/views/components/sub-note-content.vue:
|
mobile/views/components/sub-note-content.vue:
|
||||||
@ -510,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "Following of {}"
|
following-of: "Following of {}"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "Timeline"
|
home: "Home"
|
||||||
|
local: "Local"
|
||||||
|
global: "Global"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "Messaging"
|
messaging: "Messaging"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -522,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "Notifications"
|
notifications: "Notifications"
|
||||||
read-all: "Are you sure you want to mark all unread notifications as read?"
|
read-all: "Are you sure you want to mark all unread notifications as read?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "Profile settings"
|
title: "Profile"
|
||||||
will-be-published: "These profile settings will be updated."
|
|
||||||
name: "Name"
|
name: "Name"
|
||||||
|
account: "Account"
|
||||||
location: "Location"
|
location: "Location"
|
||||||
description: "Description"
|
description: "Description"
|
||||||
birthday: "Birthday"
|
birthday: "Birthday"
|
||||||
avatar: "Avatar"
|
avatar: "Avatar"
|
||||||
banner: "Banner"
|
banner: "Banner"
|
||||||
avatar-saved: "Avatar updated successfully"
|
is-cat: "This account is a Cat"
|
||||||
banner-saved: "Banner updated successfully"
|
save: "Update profile"
|
||||||
set-avatar: "Choose an avatar"
|
|
||||||
set-banner: "Choose a banner"
|
|
||||||
save: "Save"
|
|
||||||
saved: "Profile updated successfully"
|
saved: "Profile updated successfully"
|
||||||
|
uploading: "Uploading"
|
||||||
|
upload-failed: "Upload failed"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "Search"
|
search: "Search"
|
||||||
empty: "No posts were found for '{}'"
|
empty: "No posts were found for '{}'"
|
||||||
@ -544,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "Choose a file"
|
select-file: "Choose a file"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "Signed in as {}"
|
signed-in-as: "Signed in as {}"
|
||||||
profile: "Profile"
|
lang: "Language"
|
||||||
|
lang-tip: "You will need to reload the page for the changes to take effect."
|
||||||
|
recommended: "Recommended"
|
||||||
|
auto: "Auto"
|
||||||
|
specify-language: "Specify the language"
|
||||||
|
design: "Design and display"
|
||||||
|
dark-mode: "Dark Mode"
|
||||||
|
i-am-under-limited-internet: "I'm under limited internet"
|
||||||
|
circle-icons: "Use circle icons"
|
||||||
|
timeline: "Timeline"
|
||||||
|
show-reply-target: "Show reply target"
|
||||||
|
show-my-renotes: "Show my renotes"
|
||||||
|
show-renoted-my-notes: "Show renoted my notes"
|
||||||
|
post-style: "Post design"
|
||||||
|
post-style-standard: "Standard"
|
||||||
|
post-style-smart: "Smart"
|
||||||
|
behavior: "Behavior"
|
||||||
|
fetch-on-scroll: "Fetch on scroll"
|
||||||
|
disable-via-mobile: "Without the \"mobile posts\" flag"
|
||||||
|
load-raw-images: "Show attached pictures in high-quality"
|
||||||
|
load-remote-media: "Show media on a remote server"
|
||||||
twitter: "Twitter integration"
|
twitter: "Twitter integration"
|
||||||
signin-history: "Sign in history"
|
twitter-connect: "Connect to your Twitter account"
|
||||||
|
twitter-reconnect: "Reconnect"
|
||||||
|
twitter-disconnect: "Disconnect"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "Current version:"
|
||||||
|
latest-version: "Latest version:"
|
||||||
|
update-checking: "Checking for updates"
|
||||||
|
check-for-updates: "Check for update"
|
||||||
|
no-updates: "No updates available"
|
||||||
|
no-updates-desc: "Your Misskey is up to date."
|
||||||
|
update-available: "New version is available!"
|
||||||
|
update-available-desc: "To reload the page and updates are applied."
|
||||||
settings: "Settings"
|
settings: "Settings"
|
||||||
signout: "Sign out"
|
signout: "Sign out"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
225
locales/es.yml
225
locales/es.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "日本語"
|
||||||
|
divider: ""
|
||||||
common:
|
common:
|
||||||
misskey: "Misskeyで皆と共有しよう。"
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "前の月"
|
prev: "前の月"
|
||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "フォルダーを作成"
|
create-folder: "フォルダーを作成"
|
||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "決定"
|
ok: "決定"
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
241
locales/fr.yml
241
locales/fr.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "Français"
|
||||||
|
divider: " "
|
||||||
common:
|
common:
|
||||||
misskey: "Partagez avec les autres en utilisant Misskey"
|
misskey: "Partagez avec les autres en utilisant Misskey"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "Info sur le serveur"
|
title: "Info sur le serveur"
|
||||||
toggle: "Afficher les vues"
|
toggle: "Afficher les vues"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "Activitié"
|
title: "Activitié"
|
||||||
toggle: "Afficher les vues"
|
toggle: "Afficher les vues"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "Mois dernier"
|
prev: "Mois dernier"
|
||||||
next: "Mois prochain"
|
next: "Mois prochain"
|
||||||
go: "Cliquer pour naviguer"
|
go: "Cliquer pour naviguer"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "utilisé"
|
used: "utilisé"
|
||||||
drive: "Drive"
|
drive: "Drive"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "Créer un dossier"
|
create-folder: "Créer un dossier"
|
||||||
upload: "Uploader un fichier"
|
upload: "Uploader un fichier"
|
||||||
url-upload: "Uploader d'un URL"
|
url-upload: "Uploader d'un URL"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "Messagerie"
|
title: "Messagerie"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "Reposté par {}"
|
reposted-by: "Reposté par {}"
|
||||||
reply: "Répondre"
|
reply: "Répondre"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "Ajouter votre reaction"
|
add-reaction: "Ajouter votre reaction"
|
||||||
detail: "Afficher les détails"
|
detail: "Afficher les détails"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "Plus"
|
more: "Plus"
|
||||||
empty: "Pas de notifications"
|
empty: "Pas de notifications"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "Répondre"
|
reply: "Répondre"
|
||||||
attaches: "{} media joint(s)"
|
attaches: "{} media joint(s)"
|
||||||
uploading-media: "Upload du media {}"
|
uploading-media: "Upload du media {}"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "Citer..."
|
quote: "Citer..."
|
||||||
cancel: "Annuler"
|
cancel: "Annuler"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "Vérification en deux étapes"
|
2fa: "Vérification en deux étapes"
|
||||||
other: "Autres"
|
other: "Autres"
|
||||||
license: "License"
|
license: "License"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "Si vous configurez la vérication en deux étapes vous aurez non seulement besoin de votre mot de passe mais aussi un appareil déjà pré-enregistré(tel que votre smartphone) ce qui ameliora grandement la sécurité de votre compte."
|
intro: "Si vous configurez la vérication en deux étapes vous aurez non seulement besoin de votre mot de passe mais aussi un appareil déjà pré-enregistré(tel que votre smartphone) ce qui ameliora grandement la sécurité de votre compte."
|
||||||
detail: "Voir les détails..."
|
detail: "Voir les détails..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "Description"
|
description: "Description"
|
||||||
birthday: "Date de naissance"
|
birthday: "Date de naissance"
|
||||||
save: "Mettre à jour le profil"
|
save: "Mettre à jour le profil"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "Note précédente"
|
prev: "Note précédente"
|
||||||
next: "Note suivante"
|
next: "Note suivante"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "OK"
|
ok: "OK"
|
||||||
cancel: "Annuler"
|
cancel: "Annuler"
|
||||||
upload: "Uploader un ou plusieurs fichier(s) depuis votre PC"
|
upload: "Uploader un ou plusieurs fichier(s) depuis votre PC"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "Abonnés que vous connaissez"
|
title: "Abonnés que vous connaissez"
|
||||||
loading: "Chargement en cours"
|
loading: "Chargement en cours"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "Mettre en sourdine"
|
mute: "Mettre en sourdine"
|
||||||
muted: "Muting"
|
muted: "Muting"
|
||||||
unmute: "Enlever la sourdine"
|
unmute: "Enlever la sourdine"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "Messagerie"
|
title: "Messagerie"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "Post"
|
title: "Post"
|
||||||
note: "Post"
|
note: "Post"
|
||||||
placeholder: "Qu'est-ce qu'il se passe?"
|
placeholder: "Qu'est-ce qu'il se passe?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "Tendances"
|
title: "Tendances"
|
||||||
refresh: "Afficher d'autres"
|
refresh: "Afficher d'autres"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "Utilisateurs"
|
title: "Utilisateurs"
|
||||||
refresh: "Afficher d'autres"
|
refresh: "Afficher d'autres"
|
||||||
no-one: "Personne"
|
no-one: "Personne"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "Cannal"
|
|
||||||
settings: "Réglages des widgets"
|
|
||||||
get-started: "Veuillez cliquer sur la dent en haute à droite pour choisir un channel"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "Drive"
|
drive: "Drive"
|
||||||
used: "utilisé"
|
used: "utilisé"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "Abonnements de {}"
|
following-of: "Abonnements de {}"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "Fil d'actualité"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "Messagerie"
|
messaging: "Messagerie"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "Notifications"
|
notifications: "Notifications"
|
||||||
read-all: "Êtes vous sûr de vouloir marqués toutes les notifications non-lus en tant que lus?"
|
read-all: "Êtes vous sûr de vouloir marqués toutes les notifications non-lus en tant que lus?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "Réglages du profiles"
|
title: "プロフィール"
|
||||||
will-be-published: "Ces profiles vont être publier"
|
name: "名前"
|
||||||
name: "Nom"
|
account: "アカウント"
|
||||||
location: "Localisation"
|
location: "場所"
|
||||||
description: "Description"
|
description: "自己紹介"
|
||||||
birthday: "Anniversaire"
|
birthday: "誕生日"
|
||||||
avatar: "Avatar"
|
avatar: "アイコン"
|
||||||
banner: "Bannière"
|
banner: "バナー"
|
||||||
avatar-saved: "Avatar mis à jour avec succès!"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "Bannière mise à jour avec succès!"
|
save: "保存"
|
||||||
set-avatar: "Choisir un avatar"
|
saved: "プロフィールを保存しました"
|
||||||
set-banner: "Choisir une bannière"
|
uploading: "アップロード中"
|
||||||
save: "Sauvegarder"
|
upload-failed: "アップロードに失敗しました"
|
||||||
saved: "Profil mis à jour avec succès"
|
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "Chercher"
|
search: "Chercher"
|
||||||
empty: "Aucun message trouvé pour '{}' "
|
empty: "Aucun message trouvé pour '{}' "
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "Choisissez un fichier"
|
select-file: "Choisissez un fichier"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "Connecté en tant que {}"
|
signed-in-as: "Connecté en tant que {}"
|
||||||
profile: "Profile"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "Historique de connexion"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "Réglages"
|
settings: "Réglages"
|
||||||
signout: "Déconnexion"
|
signout: "Déconnexion"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
225
locales/it.yml
225
locales/it.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "日本語"
|
||||||
|
divider: ""
|
||||||
common:
|
common:
|
||||||
misskey: "Misskeyで皆と共有しよう。"
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "前の月"
|
prev: "前の月"
|
||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "フォルダーを作成"
|
create-folder: "フォルダーを作成"
|
||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "決定"
|
ok: "決定"
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
262
locales/ja.yml
262
locales/ja.yml
@ -191,6 +191,22 @@ common/views/widgets/server.vue:
|
|||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
|
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -201,6 +217,23 @@ desktop/views/components/calendar.vue:
|
|||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -257,6 +290,32 @@ desktop/views/components/drive.vue:
|
|||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
|
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -275,17 +334,33 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
|
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
@ -293,6 +368,10 @@ desktop/views/components/notes.note.vue:
|
|||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
|
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -324,6 +403,9 @@ desktop/views/components/post-form-window.vue:
|
|||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
|
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -348,6 +430,77 @@ desktop/views/components/settings.vue:
|
|||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
|
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -397,6 +550,16 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
|
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
@ -442,6 +605,29 @@ desktop/views/components/users-list.vue:
|
|||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
|
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -452,6 +638,11 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
|
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -484,6 +675,12 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
|
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
|
||||||
@ -501,6 +698,10 @@ desktop/views/widgets/post-form.vue:
|
|||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
|
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -511,11 +712,6 @@ desktop/views/widgets/users.vue:
|
|||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
|
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -599,7 +795,9 @@ mobile/views/pages/following.vue:
|
|||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
|
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
|
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
@ -616,21 +814,20 @@ mobile/views/pages/notifications.vue:
|
|||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
|
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
|
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
@ -641,9 +838,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
|
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
|
|
||||||
|
225
locales/ko.yml
225
locales/ko.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "日本語"
|
||||||
|
divider: ""
|
||||||
common:
|
common:
|
||||||
misskey: "Misskeyで皆と共有しよう。"
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "前の月"
|
prev: "前の月"
|
||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "フォルダーを作成"
|
create-folder: "フォルダーを作成"
|
||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "決定"
|
ok: "決定"
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
239
locales/pl.yml
239
locales/pl.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "język polski"
|
||||||
|
divider: " "
|
||||||
common:
|
common:
|
||||||
misskey: "Dziel się zawartością z innymi korzystając z Misskey."
|
misskey: "Dziel się zawartością z innymi korzystając z Misskey."
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "Informacje o serwerze"
|
title: "Informacje o serwerze"
|
||||||
toggle: "Przełącz widok"
|
toggle: "Przełącz widok"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "Publiczny"
|
||||||
|
home: "Lokalny"
|
||||||
|
home-desc: "Widoczny tylko na tej instancji"
|
||||||
|
followers: "Dla śledzących"
|
||||||
|
followers-desc: "Widoczny tylko dla osób, które Cię śledzą"
|
||||||
|
specified: "Bezpośredni"
|
||||||
|
specified-desc: "Tylko dla określonych użytkowników"
|
||||||
|
private: "Prywatny"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Czarny … Łącznie"
|
||||||
|
notes: "Niebieski … Wpisy"
|
||||||
|
replies: "Czerwony … Odpowiedzi"
|
||||||
|
renotes: "Czerwony … Udostępnienia"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "Aktywność"
|
title: "Aktywność"
|
||||||
toggle: "Przełącz widok"
|
toggle: "Przełącz widok"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "Poprzedni miesiąc"
|
prev: "Poprzedni miesiąc"
|
||||||
next: "Następny miesiąc"
|
next: "Następny miesiąc"
|
||||||
go: "Naciśnij, aby przejść"
|
go: "Naciśnij, aby przejść"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "Wybierz plik"
|
||||||
|
upload: "Wyślij pliki z Twojego komputera"
|
||||||
|
cancel: "Anuluj"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Wybierz plik"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "Anuluj"
|
||||||
|
ok: "OK"
|
||||||
|
choose-prompt: "Wybierz katalog"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "Pomiń przycinanie"
|
||||||
|
cancel: "Anuluj"
|
||||||
|
ok: "OK"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "wykorzystane"
|
used: "wykorzystane"
|
||||||
drive: "Dysk"
|
drive: "Dysk"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "Utwórz katalog"
|
create-folder: "Utwórz katalog"
|
||||||
upload: "Wyślij plik"
|
upload: "Wyślij plik"
|
||||||
url-upload: "Wyślij z adresu URL"
|
url-upload: "Wyślij z adresu URL"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "Przestań śledzić"
|
||||||
|
follow: "Śledź"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "Śledzący"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "Wygląda na to, że nikt Cię nie śledzi…"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "Śledzeni przez {}"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "Nikt Cię nie śledzi."
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "Zacznij śledzić ludzi takich jak Ty:"
|
||||||
|
empty: "Nie znaleziono podobnych użytkowników."
|
||||||
|
fetching: "Ładowanie…"
|
||||||
|
refresh: "Więcej"
|
||||||
|
close: "Zamknij"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "Othello"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "Wyślij"
|
done: "Wyślij"
|
||||||
add-widget: "Dodaj widżet:"
|
add-widget: "Dodaj widżet:"
|
||||||
@ -233,27 +283,42 @@ desktop/views/components/home.vue:
|
|||||||
photostream: "Photostream"
|
photostream: "Photostream"
|
||||||
slideshow: "Pokaz slajdów"
|
slideshow: "Pokaz slajdów"
|
||||||
version: "Wersja"
|
version: "Wersja"
|
||||||
broadcast: "ブロードキャスト"
|
broadcast: "Transmisja"
|
||||||
notifications: "Powiadomienia"
|
notifications: "Powiadomienia"
|
||||||
users: "Polecani użytkownicy"
|
users: "Polecani użytkownicy"
|
||||||
polls: "Ankiety"
|
polls: "Ankiety"
|
||||||
post-form: "投稿フォーム"
|
post-form: "Formularz tworzenia"
|
||||||
messaging: "Wiadomości"
|
messaging: "Wiadomości"
|
||||||
channel: "Kanał"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "Informacje o serwerze"
|
server: "Informacje o serwerze"
|
||||||
donation: "Dotacje"
|
donation: "Dotacje"
|
||||||
nav: "Nawigacja"
|
nav: "Nawigacja"
|
||||||
tips: "Wskazówki"
|
tips: "Wskazówki"
|
||||||
add: "Dodaj"
|
add: "Dodaj"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "Anuluj"
|
||||||
|
ok: "OK"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "Wiadomości:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "Wiadomości"
|
title: "Wiadomości"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "Załaduj więcej konwersacji"
|
||||||
|
private: "(ten wpis jest prywatny)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "Informacje o lokalizacji"
|
||||||
|
renote: "Przeredaguj"
|
||||||
|
add-reaction: "Dodaj reakcję"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(ten wpis jest prywatny)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "Udostępniono przez {}"
|
reposted-by: "Udostępniono przez {}"
|
||||||
reply: "Odpowiedz"
|
reply: "Odpowiedz"
|
||||||
renote: "Przeredaguj"
|
renote: "Przeredaguj"
|
||||||
add-reaction: "Dodaj reakcję"
|
add-reaction: "Dodaj reakcję"
|
||||||
detail: "Pokaż szczegóły"
|
detail: "Pokaż szczegóły"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "Ładowanie nie powiodło się."
|
||||||
|
retry: "Spróbuj ponownie"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "Więcej"
|
more: "Więcej"
|
||||||
empty: "Brak powiadomień"
|
empty: "Brak powiadomień"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "Odpowiedz"
|
reply: "Odpowiedz"
|
||||||
attaches: "{} załączników multimedialnych"
|
attaches: "{} załączników multimedialnych"
|
||||||
uploading-media: "Wysyłanie {} treści multimedialnych"
|
uploading-media: "Wysyłanie {} treści multimedialnych"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "Oczekiwanie"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "Cytuj…"
|
quote: "Cytuj…"
|
||||||
cancel: "Anuluj"
|
cancel: "Anuluj"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "Uwierzytelnianie dwuetapowe"
|
2fa: "Uwierzytelnianie dwuetapowe"
|
||||||
other: "Inne"
|
other: "Inne"
|
||||||
license: "Licencja"
|
license: "Licencja"
|
||||||
|
behaviour: "Zachowanie"
|
||||||
|
fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
|
||||||
|
fetch-on-scroll-desc: "Po przewinięciu na dół strony automatycznie zostaną załadowane nowe treści."
|
||||||
|
auto-popout: "Automatycznie pojawiające się okna"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "Ustawienia zaawansowane"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "Wygląd i wyświetlanie"
|
||||||
|
customize: "Dostosuj stronę główną"
|
||||||
|
dark-mode: "Tryb ciemny"
|
||||||
|
circle-icons: "Używaj okrągłych ikon"
|
||||||
|
gradient-window-header: "Używaj gradientów na pasku tytułu okna"
|
||||||
|
post-form-on-timeline: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
|
||||||
|
show-reply-target: "Pokazuj cel odpowiedzi"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "Automatycznie pokazuj mapę"
|
||||||
|
show-maps-desc: "Mapa będzie automatycznie rozwijana dla wpisów zawierających informacje o lokalizacji."
|
||||||
|
sound: "Dźwięk"
|
||||||
|
enable-sounds: "Włącz dźwięk"
|
||||||
|
enable-sounds-desc: "Odtwarzaj dźwięk przy wstawianiu wpisów, wysyłaniu lub otrzymywaniu wiadomości. Opcja ta jest zapamiętywana przez przeglądarkę."
|
||||||
|
volume: "Głośność"
|
||||||
|
test: "Test"
|
||||||
|
mobile: "Wersja mobilna"
|
||||||
|
disable-via-mobile: "Nie oznaczaj wpisów jako „wysłane z telefonu”"
|
||||||
|
language: "Język"
|
||||||
|
pick-language: "Wybierz język"
|
||||||
|
recommended: "Zalecane"
|
||||||
|
auto: "Automatycznie"
|
||||||
|
specify-language: "Wybierz język"
|
||||||
|
language-desc: "Aby zmiany zostały uwzględnione, odśwież stronę."
|
||||||
|
cache: "Pamięć podręczna"
|
||||||
|
clean-cache: "Wyczyść"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "Wyczyszczono pamięć podręczną"
|
||||||
|
cache-cleared-desc: "Proszę odświeżyć stronę."
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "O Misskey"
|
||||||
|
operator: "Administrator instancji"
|
||||||
|
update: "Aktualizacja Misskey"
|
||||||
|
version: "Wersja:"
|
||||||
|
latest-version: "Najnowsza wersja:"
|
||||||
|
update-checking: "Sprawdzanie dostępności aktualizacji"
|
||||||
|
do-update: "Sprawdź dostępność aktualizacji"
|
||||||
|
update-settings: "Ustawienia zaawansowane"
|
||||||
|
prevent-update: "Unikaj aktualizacji (niezalecane)"
|
||||||
|
prevent-update-desc: "Nawet jeżeli opcja jest zaznaczona, aktualizacje mogą zostać wykonane. Opcja dotyczy tylko tego urządzenia."
|
||||||
|
no-updates: "Brak dostępnych aktualizacji"
|
||||||
|
no-updates-desc: "Twój Misskey jest aktualny."
|
||||||
|
update-available: "Dostępna jest nowa wersja"
|
||||||
|
update-available-desc: "Odśwież stronę, aby zastosować aktualizację."
|
||||||
|
advanced-settings: "Ustawienia zaawansowane"
|
||||||
|
debug-mode: "Włącz tryb debugowania"
|
||||||
|
debug-mode-desc: "To ustawienie jest przechowywane w przeglądarce."
|
||||||
|
experimental: "Włącz eksperymentalne funkcje"
|
||||||
|
experimental-desc: "Aktywowanie eksperymentalnych funkcji może spowodować niestabilność Misskey. Opcja ta jest przechowywana w przeglądarce."
|
||||||
|
tools: "Narzędzia"
|
||||||
|
task-manager: "Menedżer zadań"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "Jeżeli skonfigurujesz uwierzytelnianie dwuetapowe, aby zablokować się będziesz potrzebować (oprócz hasła) kodu ze skonfigurowanego urządzenia (np. smartfonu), co zwiększy bezpieczeństwo."
|
intro: "Jeżeli skonfigurujesz uwierzytelnianie dwuetapowe, aby zablokować się będziesz potrzebować (oprócz hasła) kodu ze skonfigurowanego urządzenia (np. smartfonu), co zwiększy bezpieczeństwo."
|
||||||
detail: "Zobacz szczegóły…"
|
detail: "Zobacz szczegóły…"
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "Opis"
|
description: "Opis"
|
||||||
birthday: "Data urodzenia"
|
birthday: "Data urodzenia"
|
||||||
save: "Aktualizuj profil"
|
save: "Aktualizuj profil"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "Menedżer zadań"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "Strona główna"
|
home: "Strona główna"
|
||||||
local: "Lokalne"
|
local: "Lokalne"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "Znasz"
|
iknow: "Znasz"
|
||||||
load-more: "Więcej"
|
load-more: "Więcej"
|
||||||
fetching: "Ładowanie…"
|
fetching: "Ładowanie…"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Dysk Misskey"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "Załaduj więcej"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "Dostosuj stronę główną"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "Poprzedni wpis"
|
prev: "Poprzedni wpis"
|
||||||
next: "Następny wpis"
|
next: "Następny wpis"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "OK"
|
ok: "OK"
|
||||||
cancel: "Anuluj"
|
cancel: "Anuluj"
|
||||||
upload: "Wyślij pliki z Twojego komputera"
|
upload: "Wyślij pliki z Twojego komputera"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "Użytkownicy"
|
||||||
|
add-user: "Dodaj użytkownika"
|
||||||
|
username: "Nazwa użytkownika"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "Śledzący których znasz"
|
title: "Śledzący których znasz"
|
||||||
loading: "Ładowanie"
|
loading: "Ładowanie"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "Wycisz"
|
mute: "Wycisz"
|
||||||
muted: "Wyciszyłeś"
|
muted: "Wyciszyłeś"
|
||||||
unmute: "Cofnij wyciszenie"
|
unmute: "Cofnij wyciszenie"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "Wpisy"
|
||||||
|
with-replies: "Wpisy i odpowiedzi"
|
||||||
|
with-media: "Zawartość multimedialna"
|
||||||
|
empty: "Ten użytkownik nie umieścił jeszcze niczego."
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "Wiadomości"
|
title: "Wiadomości"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "Wpis"
|
title: "Wpis"
|
||||||
note: "Wpis"
|
note: "Wpis"
|
||||||
placeholder: "Co się dzieje?"
|
placeholder: "Co się dzieje?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "Naciśnij, aby zmienić baner"
|
||||||
|
update-avatar: "Naciśnij, aby zmienić awatar"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "Na czasie"
|
title: "Na czasie"
|
||||||
refresh: "Pokaż inne"
|
refresh: "Pokaż inne"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "Polecani użytkownicy"
|
title: "Polecani użytkownicy"
|
||||||
refresh: "Pokaż innych"
|
refresh: "Pokaż innych"
|
||||||
no-one: "Pusto"
|
no-one: "Pusto"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "Kanał"
|
|
||||||
settings: "Ustawienia widżetu"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "Dysk"
|
drive: "Dysk"
|
||||||
used: "użyto"
|
used: "użyto"
|
||||||
@ -473,9 +634,9 @@ mobile/views/components/notifications.vue:
|
|||||||
empty: "Brak powiadomień"
|
empty: "Brak powiadomień"
|
||||||
mobile/views/components/post-form.vue:
|
mobile/views/components/post-form.vue:
|
||||||
submit: "Wyślij"
|
submit: "Wyślij"
|
||||||
reply: "返信"
|
reply: "Odpowiedz"
|
||||||
renote: "Renote"
|
renote: "Przeredaguj"
|
||||||
renote-placeholder: "この投稿を引用... (オプション)"
|
renote-placeholder: "Zacytuj wpis… (nieobowiązkowe)"
|
||||||
reply-placeholder: "Odpowiedź na ten wpis…"
|
reply-placeholder: "Odpowiedź na ten wpis…"
|
||||||
note-placeholder: "Co się dzieje?"
|
note-placeholder: "Co się dzieje?"
|
||||||
mobile/views/components/sub-note-content.vue:
|
mobile/views/components/sub-note-content.vue:
|
||||||
@ -507,33 +668,34 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "Śledzeni przez {}"
|
following-of: "Śledzeni przez {}"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "Oś czasu"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "Wiadomości"
|
messaging: "Wiadomości"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
messaging: "Wiadomości"
|
messaging: "Wiadomości"
|
||||||
mobile/views/pages/note.vue:
|
mobile/views/pages/note.vue:
|
||||||
title: "Wyślij"
|
title: "Wpis"
|
||||||
prev: "Poprzedni wpis"
|
prev: "Poprzedni wpis"
|
||||||
next: "Następny wpis"
|
next: "Następny wpis"
|
||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "Powiadomienia"
|
notifications: "Powiadomienia"
|
||||||
read-all: "Czy na pewno chcesz oznaczyć wszystkie powiadomienia jako przeczytane?"
|
read-all: "Czy na pewno chcesz oznaczyć wszystkie powiadomienia jako przeczytane?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "Ustawienia profilu"
|
title: "Profil"
|
||||||
will-be-published: "Te ustawienia profilu zostaną zaktualizowane."
|
|
||||||
name: "Nazwa"
|
name: "Nazwa"
|
||||||
|
account: "Konto"
|
||||||
location: "Lokalizacja"
|
location: "Lokalizacja"
|
||||||
description: "Opis"
|
description: "Opis"
|
||||||
birthday: "Data urodzenia"
|
birthday: "Data urodzenia"
|
||||||
avatar: "Awatar"
|
avatar: "Awatar"
|
||||||
banner: "Baner"
|
banner: "Baner"
|
||||||
avatar-saved: "Pomyślnie zaktualizowano awatar"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "Pomyślnie zaktualizowano baner"
|
save: "Aktualizuj profil"
|
||||||
set-avatar: "Wybierz awatar"
|
|
||||||
set-banner: "Wybierz baner"
|
|
||||||
save: "Zapisz"
|
|
||||||
saved: "Pomyślnie zaktualizowano profil"
|
saved: "Pomyślnie zaktualizowano profil"
|
||||||
|
uploading: "Wysyłanie"
|
||||||
|
upload-failed: "Wysyłanie nie powiodło się"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "Szukaj"
|
search: "Szukaj"
|
||||||
empty: "Nie znaleziono wpisów zawierających '{}'"
|
empty: "Nie znaleziono wpisów zawierających '{}'"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "Wybierz plik"
|
select-file: "Wybierz plik"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "Zalogowany jako {}"
|
signed-in-as: "Zalogowany jako {}"
|
||||||
profile: "Profil"
|
lang: "Język"
|
||||||
|
lang-tip: "Aby zmiany zostały uwzględnione, odśwież stronę."
|
||||||
|
recommended: "Zalecany"
|
||||||
|
auto: "Automatycznie"
|
||||||
|
specify-language: "Wybierz język"
|
||||||
|
design: "Wygląd i wyświetlanie"
|
||||||
|
dark-mode: "Tryb ciemny"
|
||||||
|
i-am-under-limited-internet: "Ograniczaj zużycie transferu"
|
||||||
|
circle-icons: "Używaj okrągłych ikon"
|
||||||
|
timeline: "Oś czasu"
|
||||||
|
show-reply-target: "Pokazuj cel odpowiedzi"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "Styl wpisów"
|
||||||
|
post-style-standard: "Standardowy"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "Zachowanie"
|
||||||
|
fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
|
||||||
|
disable-via-mobile: "Nie oznaczaj wpisów jako „wysłane z telefonu”"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Połączenie z Twitterem"
|
twitter: "Połączenie z Twitterem"
|
||||||
signin-history: "Historia logowań"
|
twitter-connect: "Połącz z Twitterem"
|
||||||
|
twitter-reconnect: "Połącz ponownie"
|
||||||
|
twitter-disconnect: "Rozłącz"
|
||||||
|
update: "Aktualizacja Misskey"
|
||||||
|
version: "Wersja:"
|
||||||
|
latest-version: "Najnowsza wersja:"
|
||||||
|
update-checking: "Sprawdzanie dostępności aktualizacji"
|
||||||
|
check-for-updates: "Sprawdź dostępność aktualizacji"
|
||||||
|
no-updates: "Brak dostępnych aktualizacji"
|
||||||
|
no-updates-desc: "Twój Misskey jest aktualny."
|
||||||
|
update-available: "Dostępna jest nowa wersja"
|
||||||
|
update-available-desc: "Odśwież stronę, aby zastosować aktualizację."
|
||||||
settings: "Ustawienia"
|
settings: "Ustawienia"
|
||||||
signout: "Wyloguj"
|
signout: "Wyloguj"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
789
locales/pt.yml
Normal file
789
locales/pt.yml
Normal file
@ -0,0 +1,789 @@
|
|||||||
|
---
|
||||||
|
meta:
|
||||||
|
lang: "Português"
|
||||||
|
divider: ""
|
||||||
|
common:
|
||||||
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
|
time:
|
||||||
|
unknown: "なぞのじかん"
|
||||||
|
future: "未来"
|
||||||
|
just_now: "たった今"
|
||||||
|
seconds_ago: "{}秒前"
|
||||||
|
minutes_ago: "{}分前"
|
||||||
|
hours_ago: "{}時間前"
|
||||||
|
days_ago: "{}日前"
|
||||||
|
weeks_ago: "{}週間前"
|
||||||
|
months_ago: "{}ヶ月前"
|
||||||
|
years_ago: "{}年前"
|
||||||
|
weekday-short:
|
||||||
|
sunday: "日"
|
||||||
|
monday: "月"
|
||||||
|
tuesday: "火"
|
||||||
|
wednesday: "水"
|
||||||
|
thursday: "木"
|
||||||
|
friday: "金"
|
||||||
|
saturday: "土"
|
||||||
|
reactions:
|
||||||
|
like: "いいね"
|
||||||
|
love: "しゅき"
|
||||||
|
laugh: "笑"
|
||||||
|
hmm: "ふぅ~む"
|
||||||
|
surprise: "わお"
|
||||||
|
congrats: "おめでとう"
|
||||||
|
angry: "おこ"
|
||||||
|
confused: "こまこまのこまり"
|
||||||
|
pudding: "Pudding"
|
||||||
|
delete: "削除"
|
||||||
|
loading: "読み込み中"
|
||||||
|
ok: "わかった"
|
||||||
|
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
|
||||||
|
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
|
||||||
|
common/views/components/connect-failed.vue:
|
||||||
|
title: "サーバーに接続できません"
|
||||||
|
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
|
||||||
|
thanks: "いつもMisskeyをご利用いただきありがとうございます。"
|
||||||
|
troubleshoot: "トラブルシュート"
|
||||||
|
common/views/components/connect-failed.troubleshooter.vue:
|
||||||
|
title: "トラブルシューティング"
|
||||||
|
network: "ネットワーク接続"
|
||||||
|
checking-network: "ネットワーク接続を確認中"
|
||||||
|
internet: "インターネット接続"
|
||||||
|
checking-internet: "インターネット接続を確認中"
|
||||||
|
server: "サーバー接続"
|
||||||
|
checking-server: "サーバー接続を確認中"
|
||||||
|
finding: "問題を調べています"
|
||||||
|
no-network: "ネットワークに接続されていません"
|
||||||
|
no-network-desc: "お使いのPCのネットワーク接続が正常か確認してください。"
|
||||||
|
no-internet: "インターネットに接続されていません"
|
||||||
|
no-internet-desc: "ネットワークには接続されていますが、インターネットには接続されていないようです。お使いのPCのインターネット接続が正常か確認してください。"
|
||||||
|
no-server: "Misskeyのサーバーに接続できません"
|
||||||
|
no-server-desc: "お使いのPCのインターネット接続は正常ですが、Misskeyのサーバーには接続できませんでした。サーバーがダウンまたはメンテナンスしている可能性があるので、しばらくしてから再度御アクセスください。"
|
||||||
|
success: "Misskeyのサーバーに接続できました"
|
||||||
|
success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
|
||||||
|
flush: "キャッシュの削除"
|
||||||
|
set-version: "バージョン指定"
|
||||||
|
common/views/components/messaging.vue:
|
||||||
|
search-user: "ユーザーを探す"
|
||||||
|
you: "あなた"
|
||||||
|
no-history: "履歴はありません"
|
||||||
|
common/views/components/messaging-room.vue:
|
||||||
|
empty: "このユーザーと話したことはありません"
|
||||||
|
more: "もっと読む"
|
||||||
|
no-history: "これより過去の履歴はありません"
|
||||||
|
resize-form: "ドラッグしてフォームの広さを調整"
|
||||||
|
new-message: "新しいメッセージがあります"
|
||||||
|
common/views/components/messaging-room.form.vue:
|
||||||
|
input-message-here: "ここにメッセージを入力"
|
||||||
|
send: "送信"
|
||||||
|
attach-from-local: "PCからファイルを添付する"
|
||||||
|
attach-from-drive: "ドライブからファイルを添付する"
|
||||||
|
common/views/components/messaging-room.message.vue:
|
||||||
|
is-read: "既読"
|
||||||
|
deleted: "このメッセージは削除されました"
|
||||||
|
common/views/components/nav.vue:
|
||||||
|
about: "Misskeyについて"
|
||||||
|
stats: "統計"
|
||||||
|
status: "ステータス"
|
||||||
|
wiki: "Wiki"
|
||||||
|
donors: "ドナー"
|
||||||
|
repository: "リポジトリ"
|
||||||
|
develop: "開発者"
|
||||||
|
feedback: "フィードバック"
|
||||||
|
common/views/components/note-menu.vue:
|
||||||
|
favorite: "お気に入り"
|
||||||
|
pin: "ピン留め"
|
||||||
|
remote: "投稿元で見る"
|
||||||
|
common/views/components/poll.vue:
|
||||||
|
vote-to: "「{}」に投票する"
|
||||||
|
vote-count: "{}票"
|
||||||
|
total-users: "{}人が投票"
|
||||||
|
vote: "投票する"
|
||||||
|
show-result: "結果を見る"
|
||||||
|
voted: "投票済み"
|
||||||
|
common/views/components/poll-editor.vue:
|
||||||
|
no-only-one-choice: "投票には、選択肢が最低2つ必要です"
|
||||||
|
choice-n: "選択肢{}"
|
||||||
|
remove: "この選択肢を削除"
|
||||||
|
add: "+選択肢を追加"
|
||||||
|
destroy: "投票を破棄"
|
||||||
|
common/views/components/reaction-picker.vue:
|
||||||
|
choose-reaction: "リアクションを選択"
|
||||||
|
common/views/components/signin.vue:
|
||||||
|
username: "ユーザー名"
|
||||||
|
password: "パスワード"
|
||||||
|
token: "トークン"
|
||||||
|
signing-in: "やってます..."
|
||||||
|
signin: "サインイン"
|
||||||
|
common/views/components/signup.vue:
|
||||||
|
username: "ユーザー名"
|
||||||
|
checking: "確認しています..."
|
||||||
|
available: "利用できます"
|
||||||
|
unavailable: "既に利用されています"
|
||||||
|
error: "通信エラー"
|
||||||
|
invalid-format: "a~z、A~Z、0~9、_が使えます"
|
||||||
|
too-short: "1文字以上でお願いします!"
|
||||||
|
too-long: "20文字以内でお願いします"
|
||||||
|
password: "パスワード"
|
||||||
|
password-placeholder: "8文字以上を推奨します"
|
||||||
|
weak-password: "弱いパスワード"
|
||||||
|
normal-password: "まあまあのパスワード"
|
||||||
|
strong-password: "強いパスワード"
|
||||||
|
retype: "再入力"
|
||||||
|
retype-placeholder: "確認のため再入力してください"
|
||||||
|
password-matched: "確認されました"
|
||||||
|
password-not-matched: "一致していません"
|
||||||
|
recaptcha: "認証"
|
||||||
|
create: "アカウント作成"
|
||||||
|
some-error: "何らかの原因によりアカウントの作成に失敗しました。再度お試しください。"
|
||||||
|
common/views/components/special-message.vue:
|
||||||
|
new-year: "Happy New Year!"
|
||||||
|
christmas: "Merry Christmas!"
|
||||||
|
common/views/components/stream-indicator.vue:
|
||||||
|
connecting: "接続中"
|
||||||
|
reconnecting: "再接続中"
|
||||||
|
connected: "接続完了"
|
||||||
|
common/views/components/twitter-setting.vue:
|
||||||
|
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
|
||||||
|
connected-to: "次のTwitterアカウントに接続されています"
|
||||||
|
detail: "詳細..."
|
||||||
|
reconnect: "再接続する"
|
||||||
|
connect: "Twitterと接続する"
|
||||||
|
disconnect: "切断する"
|
||||||
|
common/views/components/uploader.vue:
|
||||||
|
waiting: "待機中"
|
||||||
|
common/views/widgets/broadcast.vue:
|
||||||
|
fetching: "確認中"
|
||||||
|
no-broadcasts: "お知らせはありません"
|
||||||
|
have-a-nice-day: "良い一日を!"
|
||||||
|
next: "次"
|
||||||
|
common/views/widgets/donation.vue:
|
||||||
|
title: "寄付のお願い"
|
||||||
|
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
|
||||||
|
common/views/widgets/photo-stream.vue:
|
||||||
|
title: "フォトストリーム"
|
||||||
|
no-photos: "写真はありません"
|
||||||
|
common/views/widgets/server.vue:
|
||||||
|
title: "サーバー情報"
|
||||||
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
|
desktop/views/components/activity.vue:
|
||||||
|
title: "アクティビティ"
|
||||||
|
toggle: "表示を切り替え"
|
||||||
|
desktop/views/components/calendar.vue:
|
||||||
|
title: "{1}年 {2}月"
|
||||||
|
prev: "前の月"
|
||||||
|
next: "次の月"
|
||||||
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/drive-window.vue:
|
||||||
|
used: "使用中"
|
||||||
|
drive: "ドライブ"
|
||||||
|
desktop/views/components/drive.file.vue:
|
||||||
|
avatar: "アイコン"
|
||||||
|
banner: "バナー"
|
||||||
|
contextmenu:
|
||||||
|
rename: "名前を変更"
|
||||||
|
copy-url: "URLをコピー"
|
||||||
|
download: "ダウンロード"
|
||||||
|
else-files: "その他..."
|
||||||
|
set-as-avatar: "アイコンに設定"
|
||||||
|
set-as-banner: "バナーに設定"
|
||||||
|
open-in-app: "アプリで開く"
|
||||||
|
add-app: "アプリを追加"
|
||||||
|
rename-file: "ファイル名の変更"
|
||||||
|
input-new-file-name: "新しいファイル名を入力してください"
|
||||||
|
copied: "コピー完了"
|
||||||
|
copied-url-to-clipboard: "URLをクリップボードにコピーしました"
|
||||||
|
desktop/views/components/drive.folder.vue:
|
||||||
|
unable-to-process: "操作を完了できません"
|
||||||
|
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
|
||||||
|
unhandled-error: "不明なエラー"
|
||||||
|
contextmenu:
|
||||||
|
move-to-this-folder: "このフォルダへ移動"
|
||||||
|
show-in-new-window: "新しいウィンドウで表示"
|
||||||
|
rename: "名前を変更"
|
||||||
|
rename-folder: "フォルダ名の変更"
|
||||||
|
input-new-folder-name: "新しいフォルダ名を入力してください"
|
||||||
|
desktop/views/components/drive.nav-folder.vue:
|
||||||
|
drive: "ドライブ"
|
||||||
|
desktop/views/components/drive.vue:
|
||||||
|
search: "検索"
|
||||||
|
load-more: "もっと読み込む"
|
||||||
|
empty-draghover: "ドロップですか?いいですよ、ボクはカワイイですからね"
|
||||||
|
empty-drive: "ドライブには何もありません。"
|
||||||
|
empty-drive-description: "右クリックして「ファイルをアップロード」を選んだり、ファイルをドラッグ&ドロップすることでもアップロードできます。"
|
||||||
|
empty-folder: "このフォルダーは空です"
|
||||||
|
unable-to-process: "操作を完了できません"
|
||||||
|
circular-reference-detected: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
|
||||||
|
unhandled-error: "不明なエラー"
|
||||||
|
url-upload: "URLアップロード"
|
||||||
|
url-of-file: "アップロードしたいファイルのURL"
|
||||||
|
url-upload-requested: "アップロードをリクエストしました"
|
||||||
|
may-take-time: "アップロードが完了するまで時間がかかる場合があります。"
|
||||||
|
create-folder: "フォルダー作成"
|
||||||
|
folder-name: "フォルダー名"
|
||||||
|
contextmenu:
|
||||||
|
create-folder: "フォルダーを作成"
|
||||||
|
upload: "ファイルをアップロード"
|
||||||
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
|
desktop/views/components/home.vue:
|
||||||
|
done: "完了"
|
||||||
|
add-widget: "ウィジェットを追加:"
|
||||||
|
profile: "プロフィール"
|
||||||
|
calendar: "カレンダー"
|
||||||
|
timemachine: "カレンダー(タイムマシン)"
|
||||||
|
activity: "アクティビティ"
|
||||||
|
rss: "RSSリーダー"
|
||||||
|
trends: "トレンド"
|
||||||
|
photostream: "フォトストリーム"
|
||||||
|
slideshow: "スライドショー"
|
||||||
|
version: "バージョン"
|
||||||
|
broadcast: "ブロードキャスト"
|
||||||
|
notifications: "通知"
|
||||||
|
users: "おすすめユーザー"
|
||||||
|
polls: "投票"
|
||||||
|
post-form: "投稿フォーム"
|
||||||
|
messaging: "メッセージ"
|
||||||
|
server: "サーバー情報"
|
||||||
|
donation: "寄付のお願い"
|
||||||
|
nav: "ナビゲーション"
|
||||||
|
tips: "ヒント"
|
||||||
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
|
desktop/views/components/messaging-window.vue:
|
||||||
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
desktop/views/components/notes.note.vue:
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
reply: "返信"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
|
desktop/views/components/notifications.vue:
|
||||||
|
more: "もっと見る"
|
||||||
|
empty: "ありません!"
|
||||||
|
desktop/views/components/post-form.vue:
|
||||||
|
note-placeholder: "いまどうしてる?"
|
||||||
|
reply-placeholder: "この投稿への返信..."
|
||||||
|
quote-placeholder: "この投稿を引用..."
|
||||||
|
note: "投稿"
|
||||||
|
reply: "返信"
|
||||||
|
renote: "Renote"
|
||||||
|
posted: "投稿しました!"
|
||||||
|
replied: "返信しました!"
|
||||||
|
reposted: "Renoteしました!"
|
||||||
|
note-failed: "投稿に失敗しました"
|
||||||
|
reply-failed: "返信に失敗しました"
|
||||||
|
renote-failed: "Renoteに失敗しました"
|
||||||
|
posting: "投稿中"
|
||||||
|
attach-media-from-local: "PCからメディアを添付"
|
||||||
|
attach-media-from-drive: "ドライブからメディアを添付"
|
||||||
|
attach-cancel: "添付取り消し"
|
||||||
|
insert-a-kao: "v(‘ω’)v"
|
||||||
|
create-poll: "投票を作成"
|
||||||
|
text-remain: "残り{}文字"
|
||||||
|
desktop/views/components/post-form-window.vue:
|
||||||
|
note: "新規投稿"
|
||||||
|
reply: "返信"
|
||||||
|
attaches: "添付: {}メディア"
|
||||||
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
|
desktop/views/components/renote-form.vue:
|
||||||
|
quote: "引用する..."
|
||||||
|
cancel: "キャンセル"
|
||||||
|
renote: "Renote"
|
||||||
|
reposting: "しています..."
|
||||||
|
success: "Renoteしました!"
|
||||||
|
failure: "Renoteに失敗しました"
|
||||||
|
desktop/views/components/renote-form-window.vue:
|
||||||
|
title: "この投稿をRenoteしますか?"
|
||||||
|
desktop/views/components/settings.vue:
|
||||||
|
profile: "プロフィール"
|
||||||
|
notification: "通知"
|
||||||
|
apps: "アプリ"
|
||||||
|
mute: "ミュート"
|
||||||
|
drive: "ドライブ"
|
||||||
|
security: "セキュリティ"
|
||||||
|
signin: "サインイン履歴"
|
||||||
|
password: "パスワード"
|
||||||
|
2fa: "二段階認証"
|
||||||
|
other: "その他"
|
||||||
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
|
desktop/views/components/settings.2fa.vue:
|
||||||
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
|
detail: "詳細..."
|
||||||
|
url: "https://www.google.co.jp/intl/ja/landing/2step/"
|
||||||
|
caution: "登録したデバイスを紛失するなどした場合、Misskeyにサインインできなくなりますのでご注意ください。"
|
||||||
|
register: "デバイスを登録する"
|
||||||
|
already-registered: "既に設定は完了しています。"
|
||||||
|
unregister: "設定を解除"
|
||||||
|
unregistered: "二段階認証が無効になりました。"
|
||||||
|
enter-password: "パスワードを入力してください"
|
||||||
|
authenticator: "まず、Google Authenticatorをお使いのデバイスにインストールします:"
|
||||||
|
howtoinstall: "インストール方法はこちら"
|
||||||
|
scan: "次に、表示されているQRコードをスキャンします:"
|
||||||
|
done: "お使いのデバイスに表示されているトークンを入力して完了します:"
|
||||||
|
submit: "完了"
|
||||||
|
success: "設定が完了しました!"
|
||||||
|
failed: "設定に失敗しました。トークンに誤りがないかご確認ください。"
|
||||||
|
info: "次回サインインからは、同様にパスワードに加えてデバイスに表示されているトークンを入力します。"
|
||||||
|
desktop/views/components/settings.api.vue:
|
||||||
|
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
|
||||||
|
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
|
||||||
|
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
|
||||||
|
regenerate-token: "トークンを再生成"
|
||||||
|
token: "Token:"
|
||||||
|
enter-password: "パスワードを入力してください"
|
||||||
|
desktop/views/components/settings.app.vue:
|
||||||
|
no-apps: "連携しているアプリケーションはありません"
|
||||||
|
desktop/views/components/settings.mute.vue:
|
||||||
|
no-users: "ミュートしているユーザーはいません"
|
||||||
|
desktop/views/components/settings.password.vue:
|
||||||
|
reset: "パスワードを変更する"
|
||||||
|
enter-current-password: "現在のパスワードを入力してください"
|
||||||
|
enter-new-password: "新しいパスワードを入力してください"
|
||||||
|
enter-new-password-again: "もう一度新しいパスワードを入力してください"
|
||||||
|
not-match: "新しいパスワードが一致しません"
|
||||||
|
changed: "パスワードを変更しました"
|
||||||
|
desktop/views/components/settings.profile.vue:
|
||||||
|
avatar: "アイコン"
|
||||||
|
choice-avatar: "画像を選択"
|
||||||
|
name: "名前"
|
||||||
|
location: "場所"
|
||||||
|
description: "自己紹介"
|
||||||
|
birthday: "誕生日"
|
||||||
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
|
desktop/views/components/timeline.vue:
|
||||||
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
|
list: "リスト"
|
||||||
|
desktop/views/components/ui.header.account.vue:
|
||||||
|
profile: "プロフィール"
|
||||||
|
drive: "ドライブ"
|
||||||
|
favorites: "お気に入り"
|
||||||
|
lists: "リスト"
|
||||||
|
customize: "カスタマイズ"
|
||||||
|
settings: "設定"
|
||||||
|
signout: "サインアウト"
|
||||||
|
dark: "闇に飲まれる"
|
||||||
|
desktop/views/components/ui.header.nav.vue:
|
||||||
|
home: "ホーム"
|
||||||
|
messaging: "メッセージ"
|
||||||
|
game: "ゲーム"
|
||||||
|
desktop/views/components/ui.header.notifications.vue:
|
||||||
|
title: "通知"
|
||||||
|
desktop/views/components/ui.header.post.vue:
|
||||||
|
post: "新規投稿"
|
||||||
|
desktop/views/components/ui.header.search.vue:
|
||||||
|
placeholder: "検索"
|
||||||
|
desktop/views/components/user-lists-window.vue:
|
||||||
|
create-list: "リストを作成"
|
||||||
|
desktop/views/components/user-preview.vue:
|
||||||
|
notes: "投稿"
|
||||||
|
following: "フォロー"
|
||||||
|
followers: "フォロワー"
|
||||||
|
desktop/views/components/users-list.vue:
|
||||||
|
all: "すべて"
|
||||||
|
iknow: "知り合い"
|
||||||
|
load-more: "もっと"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
|
desktop/views/pages/note.vue:
|
||||||
|
prev: "前の投稿"
|
||||||
|
next: "次の投稿"
|
||||||
|
desktop/views/pages/selectdrive.vue:
|
||||||
|
title: "ファイルを選択してください"
|
||||||
|
ok: "決定"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
|
title: "知り合いのフォロワー"
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-users: "知り合いのフォロワーはいません"
|
||||||
|
desktop/views/pages/user/user.friends.vue:
|
||||||
|
title: "よく話すユーザー"
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-users: "よく話すユーザーはいません"
|
||||||
|
desktop/views/pages/user/user.header.vue:
|
||||||
|
is-suspended: "このユーザーは凍結されています。"
|
||||||
|
is-remote: "このユーザーはリモートユーザーです。"
|
||||||
|
view-remote: "正確な情報を見る"
|
||||||
|
desktop/views/pages/user/user.home.vue:
|
||||||
|
last-used-at: "最終アクセス"
|
||||||
|
desktop/views/pages/user/user.photos.vue:
|
||||||
|
title: "フォト"
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-photos: "写真はありません"
|
||||||
|
desktop/views/pages/user/user.profile.vue:
|
||||||
|
follows-you: "フォローされています"
|
||||||
|
stalk: "ストークする"
|
||||||
|
stalking: "ストーキングしています"
|
||||||
|
unstalk: "ストーク解除"
|
||||||
|
mute: "ミュートする"
|
||||||
|
muted: "ミュートしています"
|
||||||
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
|
desktop/views/widgets/messaging.vue:
|
||||||
|
title: "メッセージ"
|
||||||
|
desktop/views/widgets/notifications.vue:
|
||||||
|
title: "通知"
|
||||||
|
settings: "通知の設定"
|
||||||
|
desktop/views/widgets/polls.vue:
|
||||||
|
title: "投票"
|
||||||
|
refresh: "他を見る"
|
||||||
|
nothing: "ありません!"
|
||||||
|
desktop/views/widgets/post-form.vue:
|
||||||
|
title: "投稿"
|
||||||
|
note: "投稿"
|
||||||
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
|
desktop/views/widgets/trends.vue:
|
||||||
|
title: "トレンド"
|
||||||
|
refresh: "他を見る"
|
||||||
|
nothing: "ありません!"
|
||||||
|
desktop/views/widgets/users.vue:
|
||||||
|
title: "おすすめユーザー"
|
||||||
|
refresh: "他を見る"
|
||||||
|
no-one: "いません!"
|
||||||
|
mobile/views/components/drive.vue:
|
||||||
|
drive: "ドライブ"
|
||||||
|
used: "使用中"
|
||||||
|
folder-count: "フォルダ"
|
||||||
|
count-separator: "、"
|
||||||
|
file-count: "ファイル"
|
||||||
|
load-more: "もっと読み込む"
|
||||||
|
nothing-in-drive: "ドライブには何もありません"
|
||||||
|
folder-is-empty: "このフォルダは空です"
|
||||||
|
mobile/views/components/drive-file-chooser.vue:
|
||||||
|
select-file: "ファイルを選択"
|
||||||
|
mobile/views/components/drive-folder-chooser.vue:
|
||||||
|
select-folder: "フォルダーを選択"
|
||||||
|
mobile/views/components/drive.file-detail.vue:
|
||||||
|
download: "ダウンロード"
|
||||||
|
rename: "名前を変更"
|
||||||
|
move: "移動"
|
||||||
|
hash: "ハッシュ (md5)"
|
||||||
|
exif: "EXIF"
|
||||||
|
mobile/views/components/follow-button.vue:
|
||||||
|
follow: "フォロー"
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
mobile/views/components/note.vue:
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
mobile/views/components/note-detail.vue:
|
||||||
|
reply: "返信"
|
||||||
|
reaction: "リアクション"
|
||||||
|
mobile/views/components/notifications.vue:
|
||||||
|
more: "もっと見る"
|
||||||
|
empty: "ありません!"
|
||||||
|
mobile/views/components/post-form.vue:
|
||||||
|
submit: "投稿"
|
||||||
|
reply: "返信"
|
||||||
|
renote: "Renote"
|
||||||
|
renote-placeholder: "この投稿を引用... (オプション)"
|
||||||
|
reply-placeholder: "この投稿への返信..."
|
||||||
|
note-placeholder: "いまどうしてる?"
|
||||||
|
mobile/views/components/sub-note-content.vue:
|
||||||
|
media-count: "{}個のメディア"
|
||||||
|
poll: "投票"
|
||||||
|
mobile/views/components/timeline.vue:
|
||||||
|
empty: "投稿がありません"
|
||||||
|
load-more: "もっと"
|
||||||
|
mobile/views/components/ui.nav.vue:
|
||||||
|
home: "ホーム"
|
||||||
|
notifications: "通知"
|
||||||
|
messaging: "メッセージ"
|
||||||
|
search: "検索"
|
||||||
|
drive: "ドライブ"
|
||||||
|
settings: "設定"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
mobile/views/components/user-timeline.vue:
|
||||||
|
no-notes: "このユーザーは投稿していないようです。"
|
||||||
|
no-notes-with-media: "メディア付き投稿はありません。"
|
||||||
|
load-more: "もっと"
|
||||||
|
mobile/views/components/users-list.vue:
|
||||||
|
all: "すべて"
|
||||||
|
known: "知り合い"
|
||||||
|
load-more: "もっと"
|
||||||
|
mobile/views/pages/drive.vue:
|
||||||
|
drive: "ドライブ"
|
||||||
|
mobile/views/pages/followers.vue:
|
||||||
|
followers-of: "{}のフォロワー"
|
||||||
|
mobile/views/pages/following.vue:
|
||||||
|
following-of: "{}のフォロー"
|
||||||
|
mobile/views/pages/home.vue:
|
||||||
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
|
mobile/views/pages/messaging.vue:
|
||||||
|
messaging: "メッセージ"
|
||||||
|
mobile/views/pages/messaging-room.vue:
|
||||||
|
messaging: "メッセージ"
|
||||||
|
mobile/views/pages/note.vue:
|
||||||
|
title: "投稿"
|
||||||
|
prev: "前の投稿"
|
||||||
|
next: "次の投稿"
|
||||||
|
mobile/views/pages/notifications.vue:
|
||||||
|
notifications: "通知"
|
||||||
|
read-all: "すべての通知を既読にしますか?"
|
||||||
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
|
title: "プロフィール"
|
||||||
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
|
location: "場所"
|
||||||
|
description: "自己紹介"
|
||||||
|
birthday: "誕生日"
|
||||||
|
avatar: "アイコン"
|
||||||
|
banner: "バナー"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
save: "保存"
|
||||||
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
|
mobile/views/pages/search.vue:
|
||||||
|
search: "検索"
|
||||||
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
|
mobile/views/pages/selectdrive.vue:
|
||||||
|
select-file: "ファイルを選択"
|
||||||
|
mobile/views/pages/settings.vue:
|
||||||
|
signed-in-as: "{}としてサインイン中"
|
||||||
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
|
twitter: "Twitter連携"
|
||||||
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
settings: "設定"
|
||||||
|
signout: "サインアウト"
|
||||||
|
mobile/views/pages/user.vue:
|
||||||
|
follows-you: "フォローされています"
|
||||||
|
following: "フォロー"
|
||||||
|
followers: "フォロワー"
|
||||||
|
notes: "投稿"
|
||||||
|
overview: "概要"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
media: "メディア"
|
||||||
|
is-suspended: "このユーザーは凍結されています。"
|
||||||
|
is-remote: "このユーザーはリモートユーザーです。"
|
||||||
|
view-remote: "正確な情報を見る"
|
||||||
|
mobile/views/pages/user/home.vue:
|
||||||
|
recent-notes: "最近の投稿"
|
||||||
|
images: "画像"
|
||||||
|
activity: "アクティビティ"
|
||||||
|
keywords: "キーワード"
|
||||||
|
domains: "頻出ドメイン"
|
||||||
|
frequently-replied-users: "よく会話するユーザー"
|
||||||
|
followers-you-know: "知り合いのフォロワー"
|
||||||
|
last-used-at: "最終ログイン"
|
||||||
|
mobile/views/pages/user/home.followers-you-know.vue:
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-users: "知り合いのユーザーはいません"
|
||||||
|
mobile/views/pages/user/home.friends.vue:
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-users: "よく会話するユーザーはいません"
|
||||||
|
mobile/views/pages/user/home.notes.vue:
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-notes: "投稿はありません"
|
||||||
|
mobile/views/pages/user/home.photos.vue:
|
||||||
|
loading: "読み込み中"
|
||||||
|
no-photos: "写真はありません"
|
||||||
|
docs:
|
||||||
|
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
|
||||||
|
edit-this-page-on-github-link: "このページをGitHubで編集"
|
||||||
|
api:
|
||||||
|
entities:
|
||||||
|
properties: "プロパティ"
|
||||||
|
endpoints:
|
||||||
|
params: "パラメータ"
|
||||||
|
res: "レスポンス"
|
||||||
|
props:
|
||||||
|
name: "名前"
|
||||||
|
type: "型"
|
||||||
|
optional: "オプション"
|
||||||
|
description: "説明"
|
||||||
|
yes: "はい"
|
||||||
|
no: "いいえ"
|
225
locales/ru.yml
225
locales/ru.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "Русский язык"
|
||||||
|
divider: " "
|
||||||
common:
|
common:
|
||||||
misskey: "Misskeyで皆と共有しよう。"
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "前の月"
|
prev: "前の月"
|
||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "フォルダーを作成"
|
create-folder: "フォルダーを作成"
|
||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "決定"
|
ok: "決定"
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
225
locales/zh.yml
225
locales/zh.yml
@ -1,4 +1,7 @@
|
|||||||
---
|
---
|
||||||
|
meta:
|
||||||
|
lang: "中文(简体)"
|
||||||
|
divider: ""
|
||||||
common:
|
common:
|
||||||
misskey: "Misskeyで皆と共有しよう。"
|
misskey: "Misskeyで皆と共有しよう。"
|
||||||
time:
|
time:
|
||||||
@ -162,6 +165,20 @@ common/views/widgets/photo-stream.vue:
|
|||||||
common/views/widgets/server.vue:
|
common/views/widgets/server.vue:
|
||||||
title: "サーバー情報"
|
title: "サーバー情報"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
|
common/views/widgets/visibility-chooser.vue:
|
||||||
|
public: "公開"
|
||||||
|
home: "ホーム"
|
||||||
|
home-desc: "ホームタイムラインにのみ公開"
|
||||||
|
followers: "フォロワー"
|
||||||
|
followers-desc: "自分のフォロワーにのみ公開"
|
||||||
|
specified: "ダイレクト"
|
||||||
|
specified-desc: "指定したユーザーにのみ公開"
|
||||||
|
private: "非公開"
|
||||||
|
desktop/views/components/activity.chart.vue:
|
||||||
|
total: "Black ... Total"
|
||||||
|
notes: "Blue ... Notes"
|
||||||
|
replies: "Red ... Replies"
|
||||||
|
renotes: "Green ... Renotes"
|
||||||
desktop/views/components/activity.vue:
|
desktop/views/components/activity.vue:
|
||||||
title: "アクティビティ"
|
title: "アクティビティ"
|
||||||
toggle: "表示を切り替え"
|
toggle: "表示を切り替え"
|
||||||
@ -170,6 +187,20 @@ desktop/views/components/calendar.vue:
|
|||||||
prev: "前の月"
|
prev: "前の月"
|
||||||
next: "次の月"
|
next: "次の月"
|
||||||
go: "クリックして時間遡行"
|
go: "クリックして時間遡行"
|
||||||
|
desktop/views/components/choose-file-from-drive-window.vue:
|
||||||
|
choose-file: "ファイル選択中"
|
||||||
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "ファイルを選択"
|
||||||
|
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
choose-prompt: "フォルダを選択"
|
||||||
|
desktop/views/components/crop-window.vue:
|
||||||
|
skip: "クロップをスキップ"
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
desktop/views/components/drive-window.vue:
|
desktop/views/components/drive-window.vue:
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
@ -221,6 +252,25 @@ desktop/views/components/drive.vue:
|
|||||||
create-folder: "フォルダーを作成"
|
create-folder: "フォルダーを作成"
|
||||||
upload: "ファイルをアップロード"
|
upload: "ファイルをアップロード"
|
||||||
url-upload: "URLからアップロード"
|
url-upload: "URLからアップロード"
|
||||||
|
desktop/views/components/follow-button.vue:
|
||||||
|
unfollow: "フォロー解除"
|
||||||
|
follow: "フォローする"
|
||||||
|
desktop/views/components/followers-window.vue:
|
||||||
|
followers: "{} のフォロワー"
|
||||||
|
desktop/views/components/followers.vue:
|
||||||
|
empty: "フォロワーはいないようです。"
|
||||||
|
desktop/views/components/following-window.vue:
|
||||||
|
following: "{} のフォロー"
|
||||||
|
desktop/views/components/following.vue:
|
||||||
|
empty: "フォロー中のユーザーはいないようです。"
|
||||||
|
desktop/views/components/friends-maker.vue:
|
||||||
|
title: "気になるユーザーをフォロー:"
|
||||||
|
empty: "おすすめのユーザーは見つかりませんでした。"
|
||||||
|
fetching: "読み込んでいます"
|
||||||
|
refresh: "もっと見る"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/components/game-window.vue:
|
||||||
|
game: "オセロ"
|
||||||
desktop/views/components/home.vue:
|
desktop/views/components/home.vue:
|
||||||
done: "完了"
|
done: "完了"
|
||||||
add-widget: "ウィジェットを追加:"
|
add-widget: "ウィジェットを追加:"
|
||||||
@ -239,21 +289,36 @@ desktop/views/components/home.vue:
|
|||||||
polls: "投票"
|
polls: "投票"
|
||||||
post-form: "投稿フォーム"
|
post-form: "投稿フォーム"
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
channel: "チャンネル"
|
|
||||||
access-log: "アクセスログ"
|
|
||||||
server: "サーバー情報"
|
server: "サーバー情報"
|
||||||
donation: "寄付のお願い"
|
donation: "寄付のお願い"
|
||||||
nav: "ナビゲーション"
|
nav: "ナビゲーション"
|
||||||
tips: "ヒント"
|
tips: "ヒント"
|
||||||
add: "追加"
|
add: "追加"
|
||||||
|
desktop/views/input-dialog.vue:
|
||||||
|
cancel: "キャンセル"
|
||||||
|
ok: "決定"
|
||||||
|
desktop/views/components/messaging-room-window.vue:
|
||||||
|
title: "メッセージ:"
|
||||||
desktop/views/components/messaging-window.vue:
|
desktop/views/components/messaging-window.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
|
desktop/views/components/note-detail.vue:
|
||||||
|
more: "会話をもっと読み込む"
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
|
reposted-by: "{}がRenote"
|
||||||
|
location: "位置情報"
|
||||||
|
renote: "Renote"
|
||||||
|
add-reaction: "リアクション"
|
||||||
|
desktop/views/components/note-detail.sub.vue:
|
||||||
|
private: "(この投稿は非公開です)"
|
||||||
desktop/views/components/notes.note.vue:
|
desktop/views/components/notes.note.vue:
|
||||||
reposted-by: "{}がRenote"
|
reposted-by: "{}がRenote"
|
||||||
reply: "返信"
|
reply: "返信"
|
||||||
renote: "Renote"
|
renote: "Renote"
|
||||||
add-reaction: "リアクション"
|
add-reaction: "リアクション"
|
||||||
detail: "詳細"
|
detail: "詳細"
|
||||||
|
desktop/views/components/notes.vue:
|
||||||
|
error: "読み込みに失敗しました。"
|
||||||
|
retry: "リトライ"
|
||||||
desktop/views/components/notifications.vue:
|
desktop/views/components/notifications.vue:
|
||||||
more: "もっと見る"
|
more: "もっと見る"
|
||||||
empty: "ありません!"
|
empty: "ありません!"
|
||||||
@ -282,6 +347,8 @@ desktop/views/components/post-form-window.vue:
|
|||||||
reply: "返信"
|
reply: "返信"
|
||||||
attaches: "添付: {}メディア"
|
attaches: "添付: {}メディア"
|
||||||
uploading-media: "{}個のメディアをアップロード中"
|
uploading-media: "{}個のメディアをアップロード中"
|
||||||
|
desktop/views/components/progress-dialog.vue:
|
||||||
|
waiting: "待機中"
|
||||||
desktop/views/components/renote-form.vue:
|
desktop/views/components/renote-form.vue:
|
||||||
quote: "引用する..."
|
quote: "引用する..."
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
@ -303,6 +370,67 @@ desktop/views/components/settings.vue:
|
|||||||
2fa: "二段階認証"
|
2fa: "二段階認証"
|
||||||
other: "その他"
|
other: "その他"
|
||||||
license: "ライセンス"
|
license: "ライセンス"
|
||||||
|
behaviour: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
|
||||||
|
auto-popout: "ウィンドウの自動ポップアウト"
|
||||||
|
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
|
||||||
|
advanced: "詳細設定"
|
||||||
|
api-via-stream: "ストリームを経由したAPIリクエスト"
|
||||||
|
api-via-stream-desc: "この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。"
|
||||||
|
display: "デザインと表示"
|
||||||
|
customize: "ホームをカスタマイズ"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
|
||||||
|
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
|
||||||
|
show-maps: "マップの自動展開"
|
||||||
|
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
|
||||||
|
sound: "サウンド"
|
||||||
|
enable-sounds: "サウンドを有効にする"
|
||||||
|
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
|
||||||
|
volume: "ボリューム"
|
||||||
|
test: "テスト"
|
||||||
|
mobile: "モバイル"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
language: "言語"
|
||||||
|
pick-language: "言語を選択"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
language-desc: "変更はページの再度読み込み後に反映されます。"
|
||||||
|
cache: "キャッシュ"
|
||||||
|
clean-cache: "クリーンアップ"
|
||||||
|
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
|
||||||
|
cache-cleared: "キャッシュを削除しました"
|
||||||
|
cache-cleared-desc: "ページを再度読み込みしてください。"
|
||||||
|
auto-watch: "投稿の自動ウォッチ"
|
||||||
|
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
|
||||||
|
about: "Misskeyについて"
|
||||||
|
operator: "このサーバーの運営者"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
do-update: "アップデートを確認"
|
||||||
|
update-settings: "詳細設定"
|
||||||
|
prevent-update: "アップデートを延期する(非推奨)"
|
||||||
|
prevent-update-desc: "この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
|
advanced-settings: "高度な設定"
|
||||||
|
debug-mode: "デバッグモードを有効にする"
|
||||||
|
debug-mode-desc: "この設定はブラウザに記憶されます。"
|
||||||
|
experimental: "実験的機能を有効にする"
|
||||||
|
experimental-desc: "実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。"
|
||||||
|
tools: "ツール"
|
||||||
|
task-manager: "タスクマネージャ"
|
||||||
|
third-parties: "サードパーティ"
|
||||||
desktop/views/components/settings.2fa.vue:
|
desktop/views/components/settings.2fa.vue:
|
||||||
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
intro: "二段階認証を設定すると、サインイン時にパスワードだけでなく、予め登録しておいた物理的なデバイス(例えばあなたのスマートフォンなど)も必要になり、よりセキュリティが向上します。"
|
||||||
detail: "詳細..."
|
detail: "詳細..."
|
||||||
@ -347,6 +475,14 @@ desktop/views/components/settings.profile.vue:
|
|||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
save: "保存"
|
save: "保存"
|
||||||
|
is-bot: "このアカウントはBotです"
|
||||||
|
is-cat: "このアカウントはCatです"
|
||||||
|
desktop/views/components/sub-note-content.vue:
|
||||||
|
hidden: "(この投稿は非公開です)"
|
||||||
|
media: "つのメディア"
|
||||||
|
poll: "投票"
|
||||||
|
desktop/views/components/taskmanager.vue:
|
||||||
|
title: "タスクマネージャ"
|
||||||
desktop/views/components/timeline.vue:
|
desktop/views/components/timeline.vue:
|
||||||
home: "ホーム"
|
home: "ホーム"
|
||||||
local: "ローカル"
|
local: "ローカル"
|
||||||
@ -382,6 +518,23 @@ desktop/views/components/users-list.vue:
|
|||||||
iknow: "知り合い"
|
iknow: "知り合い"
|
||||||
load-more: "もっと"
|
load-more: "もっと"
|
||||||
fetching: "読み込んでいます"
|
fetching: "読み込んでいます"
|
||||||
|
desktop/views/components/users-list-item.vue:
|
||||||
|
followed: "フォローされています"
|
||||||
|
desktop/views/components/window.vue:
|
||||||
|
popout: "ポップアウト"
|
||||||
|
close: "閉じる"
|
||||||
|
desktop/views/pages/welcome.vue:
|
||||||
|
signin: "ログイン"
|
||||||
|
signup: "新規登録"
|
||||||
|
signin-button: "やってる"
|
||||||
|
signup-button: "やる"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
desktop/views/pages/drive.vue:
|
||||||
|
title: "Misskey Drive"
|
||||||
|
desktop/views/pages/favorites.vue:
|
||||||
|
more: "さらに読み込む"
|
||||||
|
desktop/views/pages/home-customize.vue:
|
||||||
|
title: "ホームのカスタマイズ"
|
||||||
desktop/views/pages/note.vue:
|
desktop/views/pages/note.vue:
|
||||||
prev: "前の投稿"
|
prev: "前の投稿"
|
||||||
next: "次の投稿"
|
next: "次の投稿"
|
||||||
@ -390,6 +543,10 @@ desktop/views/pages/selectdrive.vue:
|
|||||||
ok: "決定"
|
ok: "決定"
|
||||||
cancel: "キャンセル"
|
cancel: "キャンセル"
|
||||||
upload: "PCからドライブにファイルをアップロード"
|
upload: "PCからドライブにファイルをアップロード"
|
||||||
|
desktop/views/pages/user-list.users.vue:
|
||||||
|
users: "ユーザー"
|
||||||
|
add-user: "ユーザーを追加"
|
||||||
|
username: "ユーザー名"
|
||||||
desktop/views/pages/user/user.followers-you-know.vue:
|
desktop/views/pages/user/user.followers-you-know.vue:
|
||||||
title: "知り合いのフォロワー"
|
title: "知り合いのフォロワー"
|
||||||
loading: "読み込み中"
|
loading: "読み込み中"
|
||||||
@ -416,6 +573,11 @@ desktop/views/pages/user/user.profile.vue:
|
|||||||
mute: "ミュートする"
|
mute: "ミュートする"
|
||||||
muted: "ミュートしています"
|
muted: "ミュートしています"
|
||||||
unmute: "ミュート解除"
|
unmute: "ミュート解除"
|
||||||
|
desktop/views/pages/user/user.timeline.vue:
|
||||||
|
default: "投稿"
|
||||||
|
with-replies: "投稿と返信"
|
||||||
|
with-media: "メディア"
|
||||||
|
empty: "このユーザーはまだ何も投稿していないようです。"
|
||||||
desktop/views/widgets/messaging.vue:
|
desktop/views/widgets/messaging.vue:
|
||||||
title: "メッセージ"
|
title: "メッセージ"
|
||||||
desktop/views/widgets/notifications.vue:
|
desktop/views/widgets/notifications.vue:
|
||||||
@ -429,6 +591,9 @@ desktop/views/widgets/post-form.vue:
|
|||||||
title: "投稿"
|
title: "投稿"
|
||||||
note: "投稿"
|
note: "投稿"
|
||||||
placeholder: "いまどうしてる?"
|
placeholder: "いまどうしてる?"
|
||||||
|
desktop/views/widgets/profile.vue:
|
||||||
|
update-banner: "クリックでバナー編集"
|
||||||
|
update-avatar: "クリックでアバター編集"
|
||||||
desktop/views/widgets/trends.vue:
|
desktop/views/widgets/trends.vue:
|
||||||
title: "トレンド"
|
title: "トレンド"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
@ -437,10 +602,6 @@ desktop/views/widgets/users.vue:
|
|||||||
title: "おすすめユーザー"
|
title: "おすすめユーザー"
|
||||||
refresh: "他を見る"
|
refresh: "他を見る"
|
||||||
no-one: "いません!"
|
no-one: "いません!"
|
||||||
desktop/views/widgets/channel.vue:
|
|
||||||
title: "チャンネル"
|
|
||||||
settings: "ウィジェットの設定"
|
|
||||||
get-started: "右上の歯車をクリックして受信するチャンネルを指定してください"
|
|
||||||
mobile/views/components/drive.vue:
|
mobile/views/components/drive.vue:
|
||||||
drive: "ドライブ"
|
drive: "ドライブ"
|
||||||
used: "使用中"
|
used: "使用中"
|
||||||
@ -507,7 +668,9 @@ mobile/views/pages/followers.vue:
|
|||||||
mobile/views/pages/following.vue:
|
mobile/views/pages/following.vue:
|
||||||
following-of: "{}のフォロー"
|
following-of: "{}のフォロー"
|
||||||
mobile/views/pages/home.vue:
|
mobile/views/pages/home.vue:
|
||||||
timeline: "タイムライン"
|
home: "ホーム"
|
||||||
|
local: "ローカル"
|
||||||
|
global: "グローバル"
|
||||||
mobile/views/pages/messaging.vue:
|
mobile/views/pages/messaging.vue:
|
||||||
messaging: "メッセージ"
|
messaging: "メッセージ"
|
||||||
mobile/views/pages/messaging-room.vue:
|
mobile/views/pages/messaging-room.vue:
|
||||||
@ -519,21 +682,20 @@ mobile/views/pages/note.vue:
|
|||||||
mobile/views/pages/notifications.vue:
|
mobile/views/pages/notifications.vue:
|
||||||
notifications: "通知"
|
notifications: "通知"
|
||||||
read-all: "すべての通知を既読にしますか?"
|
read-all: "すべての通知を既読にしますか?"
|
||||||
mobile/views/pages/profile-setting.vue:
|
mobile/views/pages/settings/settings.profile.vue:
|
||||||
title: "プロフィール設定"
|
title: "プロフィール"
|
||||||
will-be-published: "これらのプロフィールは公開されます。"
|
|
||||||
name: "名前"
|
name: "名前"
|
||||||
|
account: "アカウント"
|
||||||
location: "場所"
|
location: "場所"
|
||||||
description: "自己紹介"
|
description: "自己紹介"
|
||||||
birthday: "誕生日"
|
birthday: "誕生日"
|
||||||
avatar: "アイコン"
|
avatar: "アイコン"
|
||||||
banner: "バナー"
|
banner: "バナー"
|
||||||
avatar-saved: "アイコンを保存しました"
|
is-cat: "このアカウントはCatです"
|
||||||
banner-saved: "バナーを保存しました"
|
|
||||||
set-avatar: "アイコンを選択する"
|
|
||||||
set-banner: "バナーを選択する"
|
|
||||||
save: "保存"
|
save: "保存"
|
||||||
saved: "プロフィールを保存しました"
|
saved: "プロフィールを保存しました"
|
||||||
|
uploading: "アップロード中"
|
||||||
|
upload-failed: "アップロードに失敗しました"
|
||||||
mobile/views/pages/search.vue:
|
mobile/views/pages/search.vue:
|
||||||
search: "検索"
|
search: "検索"
|
||||||
empty: "「{}」に関する投稿は見つかりませんでした。"
|
empty: "「{}」に関する投稿は見つかりませんでした。"
|
||||||
@ -541,9 +703,40 @@ mobile/views/pages/selectdrive.vue:
|
|||||||
select-file: "ファイルを選択"
|
select-file: "ファイルを選択"
|
||||||
mobile/views/pages/settings.vue:
|
mobile/views/pages/settings.vue:
|
||||||
signed-in-as: "{}としてサインイン中"
|
signed-in-as: "{}としてサインイン中"
|
||||||
profile: "プロフィール"
|
lang: "言語"
|
||||||
|
lang-tip: "変更はページの再読み込み後に反映されます。"
|
||||||
|
recommended: "推奨"
|
||||||
|
auto: "自動"
|
||||||
|
specify-language: "言語を指定"
|
||||||
|
design: "デザインと表示"
|
||||||
|
dark-mode: "ダークモード"
|
||||||
|
i-am-under-limited-internet: "私は通信を制限されている"
|
||||||
|
circle-icons: "円形のアイコンを使用"
|
||||||
|
timeline: "タイムライン"
|
||||||
|
show-reply-target: "リプライ先を表示する"
|
||||||
|
show-my-renotes: "自分の行ったRenoteを表示する"
|
||||||
|
show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
|
||||||
|
post-style: "投稿の表示スタイル"
|
||||||
|
post-style-standard: "標準"
|
||||||
|
post-style-smart: "スマート"
|
||||||
|
behavior: "動作"
|
||||||
|
fetch-on-scroll: "スクロールで自動読み込み"
|
||||||
|
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
|
||||||
|
load-raw-images: "添付された画像を高画質で表示する"
|
||||||
|
load-remote-media: "リモートサーバーのメディアを表示する"
|
||||||
twitter: "Twitter連携"
|
twitter: "Twitter連携"
|
||||||
signin-history: "サインイン履歴"
|
twitter-connect: "Twitterアカウントに接続する"
|
||||||
|
twitter-reconnect: "再接続する"
|
||||||
|
twitter-disconnect: "切断する"
|
||||||
|
update: "Misskey Update"
|
||||||
|
version: "バージョン:"
|
||||||
|
latest-version: "最新のバージョン:"
|
||||||
|
update-checking: "アップデートを確認中"
|
||||||
|
check-for-updates: "アップデートを確認"
|
||||||
|
no-updates: "利用可能な更新はありません"
|
||||||
|
no-updates-desc: "お使いのMisskeyは最新です。"
|
||||||
|
update-available: "新しいバージョンが利用可能です"
|
||||||
|
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
|
||||||
settings: "設定"
|
settings: "設定"
|
||||||
signout: "サインアウト"
|
signout: "サインアウト"
|
||||||
mobile/views/pages/user.vue:
|
mobile/views/pages/user.vue:
|
||||||
|
24
package.json
24
package.json
@ -1,8 +1,8 @@
|
|||||||
{
|
{
|
||||||
"name": "misskey",
|
"name": "misskey",
|
||||||
"author": "syuilo <i@syuilo.com>",
|
"author": "syuilo <i@syuilo.com>",
|
||||||
"version": "2.10.0",
|
"version": "2.17.0",
|
||||||
"clientVersion": "1.0.5406",
|
"clientVersion": "1.0.5731",
|
||||||
"codename": "nighthike",
|
"codename": "nighthike",
|
||||||
"main": "./built/index.js",
|
"main": "./built/index.js",
|
||||||
"private": true,
|
"private": true,
|
||||||
@ -65,7 +65,7 @@
|
|||||||
"@types/mongodb": "3.0.18",
|
"@types/mongodb": "3.0.18",
|
||||||
"@types/monk": "6.0.0",
|
"@types/monk": "6.0.0",
|
||||||
"@types/ms": "0.7.30",
|
"@types/ms": "0.7.30",
|
||||||
"@types/node": "10.1.0",
|
"@types/node": "10.1.2",
|
||||||
"@types/nopt": "3.0.29",
|
"@types/nopt": "3.0.29",
|
||||||
"@types/parse5": "3.0.0",
|
"@types/parse5": "3.0.0",
|
||||||
"@types/pug": "2.0.4",
|
"@types/pug": "2.0.4",
|
||||||
@ -80,7 +80,7 @@
|
|||||||
"@types/speakeasy": "2.0.2",
|
"@types/speakeasy": "2.0.2",
|
||||||
"@types/tmp": "0.0.33",
|
"@types/tmp": "0.0.33",
|
||||||
"@types/uuid": "3.4.3",
|
"@types/uuid": "3.4.3",
|
||||||
"@types/webpack": "4.1.7",
|
"@types/webpack": "4.4.0",
|
||||||
"@types/webpack-stream": "3.2.10",
|
"@types/webpack-stream": "3.2.10",
|
||||||
"@types/websocket": "0.0.39",
|
"@types/websocket": "0.0.39",
|
||||||
"@types/ws": "5.1.1",
|
"@types/ws": "5.1.1",
|
||||||
@ -98,8 +98,8 @@
|
|||||||
"deepcopy": "0.6.3",
|
"deepcopy": "0.6.3",
|
||||||
"diskusage": "0.2.4",
|
"diskusage": "0.2.4",
|
||||||
"dompurify": "1.0.4",
|
"dompurify": "1.0.4",
|
||||||
"elasticsearch": "14.2.2",
|
"elasticsearch": "15.0.0",
|
||||||
"element-ui": "2.3.8",
|
"element-ui": "2.3.9",
|
||||||
"emojilib": "2.2.12",
|
"emojilib": "2.2.12",
|
||||||
"escape-regexp": "0.0.1",
|
"escape-regexp": "0.0.1",
|
||||||
"eslint": "4.19.1",
|
"eslint": "4.19.1",
|
||||||
@ -124,7 +124,7 @@
|
|||||||
"gulp-typescript": "4.0.2",
|
"gulp-typescript": "4.0.2",
|
||||||
"gulp-uglify": "3.0.0",
|
"gulp-uglify": "3.0.0",
|
||||||
"gulp-util": "3.0.8",
|
"gulp-util": "3.0.8",
|
||||||
"hard-source-webpack-plugin": "0.6.7",
|
"hard-source-webpack-plugin": "0.6.9",
|
||||||
"highlight.js": "9.12.0",
|
"highlight.js": "9.12.0",
|
||||||
"html-minifier": "3.5.15",
|
"html-minifier": "3.5.15",
|
||||||
"http-signature": "1.2.0",
|
"http-signature": "1.2.0",
|
||||||
@ -146,11 +146,11 @@
|
|||||||
"koa-slow": "2.1.0",
|
"koa-slow": "2.1.0",
|
||||||
"koa-views": "6.1.4",
|
"koa-views": "6.1.4",
|
||||||
"kue": "0.11.6",
|
"kue": "0.11.6",
|
||||||
"license-checker": "19.0.0",
|
"license-checker": "20.0.0",
|
||||||
"loader-utils": "1.1.0",
|
"loader-utils": "1.1.0",
|
||||||
"mecab-async": "0.1.2",
|
"mecab-async": "0.1.2",
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "0.5.1",
|
||||||
"mocha": "5.1.1",
|
"mocha": "5.2.0",
|
||||||
"moji": "0.5.1",
|
"moji": "0.5.1",
|
||||||
"mongodb": "3.0.8",
|
"mongodb": "3.0.8",
|
||||||
"monk": "6.0.6",
|
"monk": "6.0.6",
|
||||||
@ -186,7 +186,7 @@
|
|||||||
"style-loader": "0.21.0",
|
"style-loader": "0.21.0",
|
||||||
"stylus": "0.54.5",
|
"stylus": "0.54.5",
|
||||||
"stylus-loader": "3.0.2",
|
"stylus-loader": "3.0.2",
|
||||||
"summaly": "2.0.4",
|
"summaly": "2.0.6",
|
||||||
"swagger-jsdoc": "1.9.7",
|
"swagger-jsdoc": "1.9.7",
|
||||||
"syuilo-password-strength": "0.0.1",
|
"syuilo-password-strength": "0.0.1",
|
||||||
"tcp-port-used": "0.1.2",
|
"tcp-port-used": "0.1.2",
|
||||||
@ -205,11 +205,13 @@
|
|||||||
"vue-cropperjs": "2.2.0",
|
"vue-cropperjs": "2.2.0",
|
||||||
"vue-js-modal": "1.3.13",
|
"vue-js-modal": "1.3.13",
|
||||||
"vue-json-tree-view": "2.1.4",
|
"vue-json-tree-view": "2.1.4",
|
||||||
"vue-loader": "15.0.11",
|
"vue-loader": "15.1.0",
|
||||||
|
"vue-material": "^1.0.0-beta-10.2",
|
||||||
"vue-router": "3.0.1",
|
"vue-router": "3.0.1",
|
||||||
"vue-template-compiler": "2.5.16",
|
"vue-template-compiler": "2.5.16",
|
||||||
"vuedraggable": "2.16.0",
|
"vuedraggable": "2.16.0",
|
||||||
"vuex": "3.0.1",
|
"vuex": "3.0.1",
|
||||||
|
"vuex-persistedstate": "^2.5.4",
|
||||||
"web-push": "3.3.1",
|
"web-push": "3.3.1",
|
||||||
"webfinger.js": "2.6.6",
|
"webfinger.js": "2.6.6",
|
||||||
"webpack": "4.8.3",
|
"webpack": "4.8.3",
|
||||||
|
@ -7,7 +7,7 @@ import locale from '../../locales';
|
|||||||
export default class Replacer {
|
export default class Replacer {
|
||||||
private lang: string;
|
private lang: string;
|
||||||
|
|
||||||
public pattern = /%i18n:([a-z0-9_\-\.\/\|\!]+?)%/g;
|
public pattern = /%i18n:([a-z0-9_\-\.\/\|]+?)%/g;
|
||||||
|
|
||||||
constructor(lang: string) {
|
constructor(lang: string) {
|
||||||
this.lang = lang;
|
this.lang = lang;
|
||||||
@ -56,11 +56,6 @@ export default class Replacer {
|
|||||||
public replacement(match, key) {
|
public replacement(match, key) {
|
||||||
let path = null;
|
let path = null;
|
||||||
|
|
||||||
const shouldEscape = key[0] == '!';
|
|
||||||
if (shouldEscape) {
|
|
||||||
key = key.substr(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (key.indexOf('|') != -1) {
|
if (key.indexOf('|') != -1) {
|
||||||
path = key.split('|')[0];
|
path = key.split('|')[0];
|
||||||
key = key.split('|')[1];
|
key = key.split('|')[1];
|
||||||
@ -68,8 +63,6 @@ export default class Replacer {
|
|||||||
|
|
||||||
const txt = this.get(path, key);
|
const txt = this.get(path, key);
|
||||||
|
|
||||||
return shouldEscape
|
return txt.replace(/'/g, '\\x27').replace(/"/g, '\\x22');
|
||||||
? txt.replace(/'/g, '\\x27').replace(/"/g, '\\x22')
|
|
||||||
: txt.replace(/"/g, '"');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,11 @@ html
|
|||||||
cursor progress !important
|
cursor progress !important
|
||||||
|
|
||||||
body
|
body
|
||||||
|
// for md
|
||||||
|
font-size 16px !important
|
||||||
|
line-height initial !important
|
||||||
|
letter-spacing initial !important
|
||||||
|
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
|
|
||||||
#error
|
#error
|
||||||
|
@ -18,6 +18,14 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//#region Load settings
|
||||||
|
let settings = null;
|
||||||
|
const vuex = localStorage.getItem('vuex');
|
||||||
|
if (vuex) {
|
||||||
|
settings = JSON.parse(vuex);
|
||||||
|
}
|
||||||
|
//#endregion
|
||||||
|
|
||||||
// Get the current url information
|
// Get the current url information
|
||||||
const url = new URL(location.href);
|
const url = new URL(location.href);
|
||||||
|
|
||||||
@ -29,11 +37,16 @@
|
|||||||
if (url.pathname == '/auth') app = 'auth';
|
if (url.pathname == '/auth') app = 'auth';
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
// Detect the user language
|
//#region Detect the user language
|
||||||
// Note: The default language is Japanese
|
|
||||||
let lang = navigator.language.split('-')[0];
|
let lang = navigator.language.split('-')[0];
|
||||||
|
|
||||||
|
// The default language is English
|
||||||
if (!LANGS.includes(lang)) lang = 'en';
|
if (!LANGS.includes(lang)) lang = 'en';
|
||||||
if (localStorage.getItem('lang')) lang = localStorage.getItem('lang');
|
|
||||||
|
if (settings) {
|
||||||
|
if (settings.device.lang) lang = settings.device.lang;
|
||||||
|
}
|
||||||
|
//#endregion
|
||||||
|
|
||||||
// Detect the user agent
|
// Detect the user agent
|
||||||
const ua = navigator.userAgent.toLowerCase();
|
const ua = navigator.userAgent.toLowerCase();
|
||||||
@ -61,20 +74,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Dark/Light
|
// Dark/Light
|
||||||
if (localStorage.getItem('darkmode') == 'true') {
|
if (settings) {
|
||||||
document.documentElement.setAttribute('data-darkmode', 'true');
|
if (settings.device.darkmode) {
|
||||||
|
document.documentElement.setAttribute('data-darkmode', 'true');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Script version
|
// Script version
|
||||||
const ver = localStorage.getItem('v') || VERSION;
|
const ver = localStorage.getItem('v') || VERSION;
|
||||||
|
|
||||||
// Whether in debug mode
|
|
||||||
const isDebug = localStorage.getItem('debug') == 'true';
|
|
||||||
|
|
||||||
// Whether use raw version script
|
|
||||||
const raw = (localStorage.getItem('useRawScript') == 'true' && isDebug)
|
|
||||||
|| ENV != 'production';
|
|
||||||
|
|
||||||
// Get salt query
|
// Get salt query
|
||||||
const salt = localStorage.getItem('salt')
|
const salt = localStorage.getItem('salt')
|
||||||
? '?salt=' + localStorage.getItem('salt')
|
? '?salt=' + localStorage.getItem('salt')
|
||||||
@ -84,7 +92,7 @@
|
|||||||
// Note: 'async' make it possible to load the script asyncly.
|
// Note: 'async' make it possible to load the script asyncly.
|
||||||
// 'defer' make it possible to run the script when the dom loaded.
|
// 'defer' make it possible to run the script when the dom loaded.
|
||||||
const script = document.createElement('script');
|
const script = document.createElement('script');
|
||||||
script.setAttribute('src', `/assets/${app}.${ver}.${lang}.${raw ? 'raw' : 'min'}.js${salt}`);
|
script.setAttribute('src', `/assets/${app}.${ver}.${lang}.js${salt}`);
|
||||||
script.setAttribute('async', 'true');
|
script.setAttribute('async', 'true');
|
||||||
script.setAttribute('defer', 'true');
|
script.setAttribute('defer', 'true');
|
||||||
head.appendChild(script);
|
head.appendChild(script);
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* Channels
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Style
|
|
||||||
import './style.styl';
|
|
||||||
|
|
||||||
require('./tags');
|
|
||||||
import init from '../init';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* init
|
|
||||||
*/
|
|
||||||
init(() => {
|
|
||||||
});
|
|
@ -1,10 +0,0 @@
|
|||||||
@import "../app"
|
|
||||||
|
|
||||||
html
|
|
||||||
padding 8px
|
|
||||||
background #efefef
|
|
||||||
|
|
||||||
#wait
|
|
||||||
top auto
|
|
||||||
bottom 15px
|
|
||||||
left 15px
|
|
@ -1,409 +0,0 @@
|
|||||||
<mk-channel>
|
|
||||||
<mk-header/>
|
|
||||||
<hr>
|
|
||||||
<main v-if="!fetching">
|
|
||||||
<h1>{ channel.title }</h1>
|
|
||||||
|
|
||||||
<div v-if="$root.$data.os.isSignedIn">
|
|
||||||
<p v-if="channel.isWatching">このチャンネルをウォッチしています <a @click="unwatch">ウォッチ解除</a></p>
|
|
||||||
<p v-if="!channel.isWatching"><a @click="watch">このチャンネルをウォッチする</a></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="share">
|
|
||||||
<mk-twitter-button/>
|
|
||||||
<mk-line-button/>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="body">
|
|
||||||
<p v-if="notesFetching">読み込み中<mk-ellipsis/></p>
|
|
||||||
<div v-if="!notesFetching">
|
|
||||||
<p v-if="notes == null || notes.length == 0">まだ投稿がありません</p>
|
|
||||||
<template v-if="notes != null">
|
|
||||||
<mk-channel-note each={ note in notes.slice().reverse() } note={ note } form={ parent.refs.form }/>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<mk-channel-form v-if="$root.$data.os.isSignedIn" channel={ channel } ref="form"/>
|
|
||||||
<div v-if="!$root.$data.os.isSignedIn">
|
|
||||||
<p>参加するには<a href={ _URL_ }>ログインまたは新規登録</a>してください</p>
|
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<footer>
|
|
||||||
<small><a href={ _URL_ }>Misskey</a> ver { _VERSION_ } (葵 aoi)</small>
|
|
||||||
</footer>
|
|
||||||
</main>
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
:scope
|
|
||||||
display block
|
|
||||||
|
|
||||||
> main
|
|
||||||
> h1
|
|
||||||
font-size 1.5em
|
|
||||||
color #f00
|
|
||||||
|
|
||||||
> .share
|
|
||||||
> *
|
|
||||||
margin-right 4px
|
|
||||||
|
|
||||||
> .body
|
|
||||||
margin 8px 0 0 0
|
|
||||||
|
|
||||||
> mk-channel-form
|
|
||||||
max-width 500px
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<script lang="typescript">
|
|
||||||
import Progress from '../../common/scripts/loading';
|
|
||||||
import ChannelStream from '../../common/scripts/streaming/channel-stream';
|
|
||||||
|
|
||||||
this.mixin('i');
|
|
||||||
this.mixin('api');
|
|
||||||
|
|
||||||
this.id = this.opts.id;
|
|
||||||
this.fetching = true;
|
|
||||||
this.notesFetching = true;
|
|
||||||
this.channel = null;
|
|
||||||
this.notes = null;
|
|
||||||
this.connection = new ChannelStream(this.id);
|
|
||||||
this.unreadCount = 0;
|
|
||||||
|
|
||||||
this.on('mount', () => {
|
|
||||||
document.documentElement.style.background = '#efefef';
|
|
||||||
|
|
||||||
Progress.start();
|
|
||||||
|
|
||||||
let fetched = false;
|
|
||||||
|
|
||||||
// チャンネル概要読み込み
|
|
||||||
this.$root.$data.os.api('channels/show', {
|
|
||||||
channelId: this.id
|
|
||||||
}).then(channel => {
|
|
||||||
if (fetched) {
|
|
||||||
Progress.done();
|
|
||||||
} else {
|
|
||||||
Progress.set(0.5);
|
|
||||||
fetched = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.update({
|
|
||||||
fetching: false,
|
|
||||||
channel: channel
|
|
||||||
});
|
|
||||||
|
|
||||||
document.title = channel.title + ' | Misskey'
|
|
||||||
});
|
|
||||||
|
|
||||||
// 投稿読み込み
|
|
||||||
this.$root.$data.os.api('channels/notes', {
|
|
||||||
channelId: this.id
|
|
||||||
}).then(notes => {
|
|
||||||
if (fetched) {
|
|
||||||
Progress.done();
|
|
||||||
} else {
|
|
||||||
Progress.set(0.5);
|
|
||||||
fetched = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.update({
|
|
||||||
notesFetching: false,
|
|
||||||
notes: notes
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
this.connection.on('note', this.onNote);
|
|
||||||
document.addEventListener('visibilitychange', this.onVisibilitychange, false);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.on('unmount', () => {
|
|
||||||
this.connection.off('note', this.onNote);
|
|
||||||
this.connection.close();
|
|
||||||
document.removeEventListener('visibilitychange', this.onVisibilitychange);
|
|
||||||
});
|
|
||||||
|
|
||||||
this.onNote = note => {
|
|
||||||
this.notes.unshift(note);
|
|
||||||
this.update();
|
|
||||||
|
|
||||||
if (document.hidden && this.$root.$data.os.isSignedIn && note.userId !== this.$root.$data.os.i.id) {
|
|
||||||
this.unreadCount++;
|
|
||||||
document.title = `(${this.unreadCount}) ${this.channel.title} | Misskey`;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.onVisibilitychange = () => {
|
|
||||||
if (!document.hidden) {
|
|
||||||
this.unreadCount = 0;
|
|
||||||
document.title = this.channel.title + ' | Misskey'
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
this.watch = () => {
|
|
||||||
this.$root.$data.os.api('channels/watch', {
|
|
||||||
channelId: this.id
|
|
||||||
}).then(() => {
|
|
||||||
this.channel.isWatching = true;
|
|
||||||
this.update();
|
|
||||||
}, e => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
this.unwatch = () => {
|
|
||||||
this.$root.$data.os.api('channels/unwatch', {
|
|
||||||
channelId: this.id
|
|
||||||
}).then(() => {
|
|
||||||
this.channel.isWatching = false;
|
|
||||||
this.update();
|
|
||||||
}, e => {
|
|
||||||
alert('error');
|
|
||||||
});
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
</mk-channel>
|
|
||||||
|
|
||||||
<mk-channel-note>
|
|
||||||
<header>
|
|
||||||
<a class="index" @click="reply">{ note.index }:</a>
|
|
||||||
<a class="name" href={ _URL_ + '/@' + acct }><b>{ getUserName(note.user) }</b></a>
|
|
||||||
<mk-time time={ note.createdAt }/>
|
|
||||||
<mk-time time={ note.createdAt } mode="detail"/>
|
|
||||||
<span>ID:<i>{ acct }</i></span>
|
|
||||||
</header>
|
|
||||||
<div>
|
|
||||||
<a v-if="note.reply">>>{ note.reply.index }</a>
|
|
||||||
{ note.text }
|
|
||||||
<div class="media" v-if="note.media">
|
|
||||||
<template each={ file in note.media }>
|
|
||||||
<a href={ file.url } target="_blank">
|
|
||||||
<img src={ file.url + '?thumbnail&size=512' } alt={ file.name } title={ file.name }/>
|
|
||||||
</a>
|
|
||||||
</template>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
:scope
|
|
||||||
display block
|
|
||||||
margin 0
|
|
||||||
padding 0
|
|
||||||
|
|
||||||
> header
|
|
||||||
position -webkit-sticky
|
|
||||||
position sticky
|
|
||||||
z-index 1
|
|
||||||
top 0
|
|
||||||
background rgba(239, 239, 239, 0.9)
|
|
||||||
|
|
||||||
> .index
|
|
||||||
margin-right 0.25em
|
|
||||||
color #000
|
|
||||||
|
|
||||||
> .name
|
|
||||||
margin-right 0.5em
|
|
||||||
color #008000
|
|
||||||
|
|
||||||
> mk-time
|
|
||||||
margin-right 0.5em
|
|
||||||
|
|
||||||
&:first-of-type
|
|
||||||
display none
|
|
||||||
|
|
||||||
@media (max-width 600px)
|
|
||||||
> mk-time
|
|
||||||
&:first-of-type
|
|
||||||
display initial
|
|
||||||
|
|
||||||
&:last-of-type
|
|
||||||
display none
|
|
||||||
|
|
||||||
> div
|
|
||||||
padding 0 0 1em 2em
|
|
||||||
|
|
||||||
> .media
|
|
||||||
> a
|
|
||||||
display inline-block
|
|
||||||
|
|
||||||
> img
|
|
||||||
max-width 100%
|
|
||||||
vertical-align bottom
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<script lang="typescript">
|
|
||||||
import getAcct from '../../../../acct/render';
|
|
||||||
import getUserName from '../../../../renderers/get-user-name';
|
|
||||||
|
|
||||||
this.note = this.opts.note;
|
|
||||||
this.form = this.opts.form;
|
|
||||||
this.acct = getAcct(this.note.user);
|
|
||||||
this.name = getUserName(this.note.user);
|
|
||||||
|
|
||||||
this.reply = () => {
|
|
||||||
this.form.update({
|
|
||||||
reply: this.note
|
|
||||||
});
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
</mk-channel-note>
|
|
||||||
|
|
||||||
<mk-channel-form>
|
|
||||||
<p v-if="reply"><b>>>{ reply.index }</b> ({ getUserName(reply.user) }): <a @click="clearReply">[x]</a></p>
|
|
||||||
<textarea ref="text" disabled={ wait } oninput={ update } onkeydown={ onkeydown } onpaste={ onpaste } placeholder="%i18n:ch.tags.mk-channel-form.textarea%"></textarea>
|
|
||||||
<div class="actions">
|
|
||||||
<button @click="selectFile">%fa:upload%%i18n:ch.tags.mk-channel-form.upload%</button>
|
|
||||||
<button @click="drive">%fa:cloud%%i18n:ch.tags.mk-channel-form.drive%</button>
|
|
||||||
<button :class="{ wait: wait }" ref="submit" disabled={ wait || (refs.text.value.length == 0) } @click="note">
|
|
||||||
<template v-if="!wait">%fa:paper-plane%</template>{ wait ? '%i18n:!ch.tags.mk-channel-form.posting%' : '%i18n:!ch.tags.mk-channel-form.note%' }<mk-ellipsis v-if="wait"/>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<mk-uploader ref="uploader"/>
|
|
||||||
<ol v-if="files">
|
|
||||||
<li each={ files }>{ name }</li>
|
|
||||||
</ol>
|
|
||||||
<input ref="file" type="file" accept="image/*" multiple="multiple" onchange={ changeFile }/>
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
:scope
|
|
||||||
display block
|
|
||||||
|
|
||||||
> textarea
|
|
||||||
width 100%
|
|
||||||
max-width 100%
|
|
||||||
min-width 100%
|
|
||||||
min-height 5em
|
|
||||||
|
|
||||||
> .actions
|
|
||||||
display flex
|
|
||||||
|
|
||||||
> button
|
|
||||||
> [data-fa]
|
|
||||||
margin-right 0.25em
|
|
||||||
|
|
||||||
&:last-child
|
|
||||||
margin-left auto
|
|
||||||
|
|
||||||
&.wait
|
|
||||||
cursor wait
|
|
||||||
|
|
||||||
> input[type='file']
|
|
||||||
display none
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<script lang="typescript">
|
|
||||||
import getUserName from '../../../../renderers/get-user-name';
|
|
||||||
|
|
||||||
this.mixin('api');
|
|
||||||
|
|
||||||
this.channel = this.opts.channel;
|
|
||||||
this.files = null;
|
|
||||||
|
|
||||||
this.on('mount', () => {
|
|
||||||
this.$refs.uploader.on('uploaded', file => {
|
|
||||||
this.update({
|
|
||||||
files: [file]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
this.upload = file => {
|
|
||||||
this.$refs.uploader.upload(file);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.clearReply = () => {
|
|
||||||
this.update({
|
|
||||||
reply: null
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
this.clear = () => {
|
|
||||||
this.clearReply();
|
|
||||||
this.update({
|
|
||||||
files: null
|
|
||||||
});
|
|
||||||
this.$refs.text.value = '';
|
|
||||||
};
|
|
||||||
|
|
||||||
this.note = () => {
|
|
||||||
this.update({
|
|
||||||
wait: true
|
|
||||||
});
|
|
||||||
|
|
||||||
const files = this.files && this.files.length > 0
|
|
||||||
? this.files.map(f => f.id)
|
|
||||||
: undefined;
|
|
||||||
|
|
||||||
this.$root.$data.os.api('notes/create', {
|
|
||||||
text: this.$refs.text.value == '' ? undefined : this.$refs.text.value,
|
|
||||||
mediaIds: files,
|
|
||||||
replyId: this.reply ? this.reply.id : undefined,
|
|
||||||
channelId: this.channel.id
|
|
||||||
}).then(data => {
|
|
||||||
this.clear();
|
|
||||||
}).catch(err => {
|
|
||||||
alert('失敗した');
|
|
||||||
}).then(() => {
|
|
||||||
this.update({
|
|
||||||
wait: false
|
|
||||||
});
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
this.changeFile = () => {
|
|
||||||
Array.from(this.$refs.file.files).forEach(this.upload);
|
|
||||||
};
|
|
||||||
|
|
||||||
this.selectFile = () => {
|
|
||||||
this.$refs.file.click();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.drive = () => {
|
|
||||||
window['cb'] = files => {
|
|
||||||
this.update({
|
|
||||||
files: files
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
window.open(_URL_ + '/selectdrive?multiple=true',
|
|
||||||
'drive_window',
|
|
||||||
'height=500,width=800');
|
|
||||||
};
|
|
||||||
|
|
||||||
this.onkeydown = e => {
|
|
||||||
if ((e.which == 10 || e.which == 13) && (e.ctrlKey || e.metaKey)) this.post();
|
|
||||||
};
|
|
||||||
|
|
||||||
this.onpaste = e => {
|
|
||||||
Array.from(e.clipboardData.items).forEach(item => {
|
|
||||||
if (item.kind == 'file') {
|
|
||||||
this.upload(item.getAsFile());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
this.getUserName = getUserName;
|
|
||||||
</script>
|
|
||||||
</mk-channel-form>
|
|
||||||
|
|
||||||
<mk-twitter-button>
|
|
||||||
<a href="https://twitter.com/share?ref_src=twsrc%5Etfw" class="twitter-share-button" data-show-count="false">Tweet</a>
|
|
||||||
<script lang="typescript">
|
|
||||||
this.on('mount', () => {
|
|
||||||
const head = document.getElementsByTagName('head')[0];
|
|
||||||
const script = document.createElement('script');
|
|
||||||
script.setAttribute('src', 'https://platform.twitter.com/widgets.js');
|
|
||||||
script.setAttribute('async', 'async');
|
|
||||||
head.appendChild(script);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</mk-twitter-button>
|
|
||||||
|
|
||||||
<mk-line-button>
|
|
||||||
<div class="line-it-button" data-lang="ja" data-type="share-a" data-url={ _CH_URL_ } style="display: none;"></div>
|
|
||||||
<script lang="typescript">
|
|
||||||
this.on('mount', () => {
|
|
||||||
const head = document.getElementsByTagName('head')[0];
|
|
||||||
const script = document.createElement('script');
|
|
||||||
script.setAttribute('src', 'https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js');
|
|
||||||
script.setAttribute('async', 'async');
|
|
||||||
head.appendChild(script);
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</mk-line-button>
|
|
@ -1,20 +0,0 @@
|
|||||||
<mk-header>
|
|
||||||
<div>
|
|
||||||
<a href={ _CH_URL_ }>Index</a> | <a href={ _URL_ }>Misskey</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a v-if="!$root.$data.os.isSignedIn" href={ _URL_ }>ログイン(新規登録)</a>
|
|
||||||
<a v-if="$root.$data.os.isSignedIn" href={ _URL_ + '/@' + I.username }>{ I.username }</a>
|
|
||||||
</div>
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
:scope
|
|
||||||
display flex
|
|
||||||
|
|
||||||
> div:last-child
|
|
||||||
margin-left auto
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<script lang="typescript">
|
|
||||||
this.mixin('i');
|
|
||||||
</script>
|
|
||||||
</mk-header>
|
|
@ -1,37 +0,0 @@
|
|||||||
<mk-index>
|
|
||||||
<mk-header/>
|
|
||||||
<hr>
|
|
||||||
<button @click="n">%i18n:ch.tags.mk-index.new%</button>
|
|
||||||
<hr>
|
|
||||||
<ul v-if="channels">
|
|
||||||
<li each={ channels }><a href={ '/' + this.id }>{ this.title }</a></li>
|
|
||||||
</ul>
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
:scope
|
|
||||||
display block
|
|
||||||
|
|
||||||
</style>
|
|
||||||
<script lang="typescript">
|
|
||||||
this.mixin('api');
|
|
||||||
|
|
||||||
this.on('mount', () => {
|
|
||||||
this.$root.$data.os.api('channels', {
|
|
||||||
limit: 100
|
|
||||||
}).then(channels => {
|
|
||||||
this.update({
|
|
||||||
channels: channels
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
this.n = () => {
|
|
||||||
const title = window.prompt('%i18n:!ch.tags.mk-index.channel-title%');
|
|
||||||
|
|
||||||
this.$root.$data.os.api('channels/create', {
|
|
||||||
title: title
|
|
||||||
}).then(channel => {
|
|
||||||
location.href = '/' + channel.id;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
</mk-index>
|
|
@ -1,3 +0,0 @@
|
|||||||
require('./index.tag');
|
|
||||||
require('./channel.tag');
|
|
||||||
require('./header.tag');
|
|
@ -23,7 +23,7 @@ export default async function(mios: MiOS, force = false, silent = false) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!silent) {
|
if (!silent) {
|
||||||
alert('%i18n:!common.update-available%'.replace('{newer}', newer).replace('{current}', current));
|
alert('%i18n:common.update-available%'.replace('{newer}', newer).replace('{current}', current));
|
||||||
}
|
}
|
||||||
|
|
||||||
return newer;
|
return newer;
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
import Stream from './stream';
|
|
||||||
import MiOS from '../../../mios';
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Channel stream connection
|
|
||||||
*/
|
|
||||||
export default class Connection extends Stream {
|
|
||||||
constructor(os: MiOS, channelId) {
|
|
||||||
super(os, 'channel', {
|
|
||||||
channel: channelId
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -62,7 +62,7 @@ export class HomeStream extends Stream {
|
|||||||
// トークンが再生成されたとき
|
// トークンが再生成されたとき
|
||||||
// このままではMisskeyが利用できないので強制的にサインアウトさせる
|
// このままではMisskeyが利用できないので強制的にサインアウトさせる
|
||||||
this.on('my_token_regenerated', () => {
|
this.on('my_token_regenerated', () => {
|
||||||
alert('%i18n:!common.my-token-regenerated%');
|
alert('%i18n:common.my-token-regenerated%');
|
||||||
os.signout();
|
os.signout();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -21,10 +21,17 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
lightmode(): boolean {
|
||||||
|
return this.$store.state.device.lightmode;
|
||||||
|
},
|
||||||
style(): any {
|
style(): any {
|
||||||
return {
|
return {
|
||||||
backgroundColor: this.user.avatarColor && this.user.avatarColor.length == 3 ? `rgb(${ this.user.avatarColor.join(',') })` : null,
|
backgroundColor: this.lightmode
|
||||||
backgroundImage: `url(${ this.user.avatarUrl }?thumbnail)`,
|
? `rgb(${ this.user.avatarColor.slice(0, 3).join(',') })`
|
||||||
|
: this.user.avatarColor && this.user.avatarColor.length == 3
|
||||||
|
? `rgb(${ this.user.avatarColor.join(',') })`
|
||||||
|
: null,
|
||||||
|
backgroundImage: this.lightmode ? null : `url(${ this.user.avatarUrl }?thumbnail)`,
|
||||||
borderRadius: (this as any).clientSettings.circleIcons ? '100%' : null
|
borderRadius: (this as any).clientSettings.circleIcons ? '100%' : null
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,21 +8,21 @@
|
|||||||
<template v-if="network">%fa:check%</template>
|
<template v-if="network">%fa:check%</template>
|
||||||
<template v-if="!network">%fa:times%</template>
|
<template v-if="!network">%fa:times%</template>
|
||||||
</template>
|
</template>
|
||||||
{{ network == null ? '%i18n:!@checking-network%' : '%i18n:!@network%' }}<mk-ellipsis v-if="network == null"/>
|
{{ network == null ? '%i18n:@checking-network%' : '%i18n:@network%' }}<mk-ellipsis v-if="network == null"/>
|
||||||
</p>
|
</p>
|
||||||
<p v-if="network == true" :data-wip="internet == null">
|
<p v-if="network == true" :data-wip="internet == null">
|
||||||
<template v-if="internet != null">
|
<template v-if="internet != null">
|
||||||
<template v-if="internet">%fa:check%</template>
|
<template v-if="internet">%fa:check%</template>
|
||||||
<template v-if="!internet">%fa:times%</template>
|
<template v-if="!internet">%fa:times%</template>
|
||||||
</template>
|
</template>
|
||||||
{{ internet == null ? '%i18n:!@checking-internet%' : '%i18n:!@internet%' }}<mk-ellipsis v-if="internet == null"/>
|
{{ internet == null ? '%i18n:@checking-internet%' : '%i18n:@internet%' }}<mk-ellipsis v-if="internet == null"/>
|
||||||
</p>
|
</p>
|
||||||
<p v-if="internet == true" :data-wip="server == null">
|
<p v-if="internet == true" :data-wip="server == null">
|
||||||
<template v-if="server != null">
|
<template v-if="server != null">
|
||||||
<template v-if="server">%fa:check%</template>
|
<template v-if="server">%fa:check%</template>
|
||||||
<template v-if="!server">%fa:times%</template>
|
<template v-if="!server">%fa:times%</template>
|
||||||
</template>
|
</template>
|
||||||
{{ server == null ? '%i18n:!@checking-server%' : '%i18n:!@server%' }}<mk-ellipsis v-if="server == null"/>
|
{{ server == null ? '%i18n:@checking-server%' : '%i18n:@server%' }}<mk-ellipsis v-if="server == null"/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<p v-if="!end">%i18n:@finding%<mk-ellipsis/></p>
|
<p v-if="!end">%i18n:@finding%<mk-ellipsis/></p>
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
<img src="data:image/jpeg;base64,%base64:/assets/error.jpg%" alt=""/>
|
<img src="data:image/jpeg;base64,%base64:/assets/error.jpg%" alt=""/>
|
||||||
<h1>%i18n:@title%</h1>
|
<h1>%i18n:@title%</h1>
|
||||||
<p class="text">
|
<p class="text">
|
||||||
<span>{{ '%i18n:!@description%'.substr(0, '%i18n:!@description%'.indexOf('{')) }}</span>
|
<span>{{ '%i18n:@description%'.substr(0, '%i18n:@description%'.indexOf('{')) }}</span>
|
||||||
<a @click="reload">{{ '%i18n:!@description%'.match(/\{(.+?)\}/)[1] }}</a>
|
<a @click="reload">{{ '%i18n:@description%'.match(/\{(.+?)\}/)[1] }}</a>
|
||||||
<span>{{ '%i18n:!@description%'.substr('%i18n:!@description%'.indexOf('}') + 1) }}</span>
|
<span>{{ '%i18n:@description%'.substr('%i18n:@description%'.indexOf('}') + 1) }}</span>
|
||||||
</p>
|
</p>
|
||||||
<button v-if="!troubleshooting" @click="troubleshooting = true">%i18n:@troubleshoot%</button>
|
<button v-if="!troubleshooting" @click="troubleshooting = true">%i18n:@troubleshoot%</button>
|
||||||
<x-troubleshooter v-if="troubleshooting"/>
|
<x-troubleshooter v-if="troubleshooting"/>
|
||||||
@ -28,7 +28,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
document.title = 'Oops!';
|
document.title = 'Oops!';
|
||||||
document.documentElement.style.background = '#f8f8f8';
|
document.documentElement.style.setProperty('background', '#f8f8f8', 'important');
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
reload() {
|
reload() {
|
||||||
|
@ -197,7 +197,7 @@ export default Vue.extend({
|
|||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
@import '~const.styl'
|
||||||
|
|
||||||
.mk-messaging-form
|
root(isDark)
|
||||||
> textarea
|
> textarea
|
||||||
cursor auto
|
cursor auto
|
||||||
display block
|
display block
|
||||||
@ -209,10 +209,10 @@ export default Vue.extend({
|
|||||||
padding 8px
|
padding 8px
|
||||||
resize none
|
resize none
|
||||||
font-size 1em
|
font-size 1em
|
||||||
color #000
|
color isDark ? #fff : #000
|
||||||
outline none
|
outline none
|
||||||
border none
|
border none
|
||||||
border-top solid 1px #eee
|
border-top solid 1px isDark ? #4b5056 : #eee
|
||||||
border-radius 0
|
border-radius 0
|
||||||
box-shadow none
|
box-shadow none
|
||||||
background transparent
|
background transparent
|
||||||
@ -302,4 +302,10 @@ export default Vue.extend({
|
|||||||
input[type=file]
|
input[type=file]
|
||||||
display none
|
display none
|
||||||
|
|
||||||
|
.mk-messaging-form[data-darkmode]
|
||||||
|
root(true)
|
||||||
|
|
||||||
|
.mk-messaging-form:not([data-darkmode])
|
||||||
|
root(false)
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -59,8 +59,10 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
.message
|
@import '~const.styl'
|
||||||
$me-balloon-color = #23A7B6
|
|
||||||
|
root(isDark)
|
||||||
|
$me-balloon-color = $theme-color
|
||||||
|
|
||||||
padding 10px 12px 10px 12px
|
padding 10px 12px 10px 12px
|
||||||
background-color transparent
|
background-color transparent
|
||||||
@ -126,7 +128,7 @@ export default Vue.extend({
|
|||||||
bottom -4px
|
bottom -4px
|
||||||
left -12px
|
left -12px
|
||||||
margin 0
|
margin 0
|
||||||
color rgba(#000, 0.5)
|
color isDark ? rgba(#fff, 0.5) : rgba(#000, 0.5)
|
||||||
font-size 11px
|
font-size 11px
|
||||||
|
|
||||||
> .content
|
> .content
|
||||||
@ -187,7 +189,7 @@ export default Vue.extend({
|
|||||||
display block
|
display block
|
||||||
margin 2px 0 0 0
|
margin 2px 0 0 0
|
||||||
font-size 10px
|
font-size 10px
|
||||||
color rgba(#000, 0.4)
|
color isDark ? rgba(#fff, 0.4) : rgba(#000, 0.4)
|
||||||
|
|
||||||
> [data-fa]
|
> [data-fa]
|
||||||
margin-left 4px
|
margin-left 4px
|
||||||
@ -200,8 +202,9 @@ export default Vue.extend({
|
|||||||
padding-left 66px
|
padding-left 66px
|
||||||
|
|
||||||
> .balloon
|
> .balloon
|
||||||
|
$color = isDark ? #2d3338 : #eee
|
||||||
float left
|
float left
|
||||||
background #eee
|
background $color
|
||||||
|
|
||||||
&[data-no-text]
|
&[data-no-text]
|
||||||
background transparent
|
background transparent
|
||||||
@ -209,10 +212,15 @@ export default Vue.extend({
|
|||||||
&:not([data-no-text]):before
|
&:not([data-no-text]):before
|
||||||
left -14px
|
left -14px
|
||||||
border-top solid 8px transparent
|
border-top solid 8px transparent
|
||||||
border-right solid 8px #eee
|
border-right solid 8px $color
|
||||||
border-bottom solid 8px transparent
|
border-bottom solid 8px transparent
|
||||||
border-left solid 8px transparent
|
border-left solid 8px transparent
|
||||||
|
|
||||||
|
> .content
|
||||||
|
> .text
|
||||||
|
if isDark
|
||||||
|
color #fff
|
||||||
|
|
||||||
> footer
|
> footer
|
||||||
text-align left
|
text-align left
|
||||||
|
|
||||||
@ -241,7 +249,7 @@ export default Vue.extend({
|
|||||||
> .content
|
> .content
|
||||||
|
|
||||||
> p.is-deleted
|
> p.is-deleted
|
||||||
color rgba(255, 255, 255, 0.5)
|
color rgba(#fff, 0.5)
|
||||||
|
|
||||||
> .text >>>
|
> .text >>>
|
||||||
&, *
|
&, *
|
||||||
@ -254,4 +262,10 @@ export default Vue.extend({
|
|||||||
> .baloon
|
> .baloon
|
||||||
opacity 0.5
|
opacity 0.5
|
||||||
|
|
||||||
|
.message[data-darkmode]
|
||||||
|
root(true)
|
||||||
|
|
||||||
|
.message:not([data-darkmode])
|
||||||
|
root(false)
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
<p class="empty" v-if="!init && messages.length == 0">%fa:info-circle%%i18n:@empty%</p>
|
<p class="empty" v-if="!init && messages.length == 0">%fa:info-circle%%i18n:@empty%</p>
|
||||||
<p class="no-history" v-if="!init && messages.length > 0 && !existMoreMessages">%fa:flag%%i18n:@no-history%</p>
|
<p class="no-history" v-if="!init && messages.length > 0 && !existMoreMessages">%fa:flag%%i18n:@no-history%</p>
|
||||||
<button class="more" :class="{ fetching: fetchingMoreMessages }" v-if="existMoreMessages" @click="fetchMoreMessages" :disabled="fetchingMoreMessages">
|
<button class="more" :class="{ fetching: fetchingMoreMessages }" v-if="existMoreMessages" @click="fetchMoreMessages" :disabled="fetchingMoreMessages">
|
||||||
<template v-if="fetchingMoreMessages">%fa:spinner .pulse .fw%</template>{{ fetchingMoreMessages ? '%i18n:!common.loading%' : '%i18n:!@more%' }}
|
<template v-if="fetchingMoreMessages">%fa:spinner .pulse .fw%</template>{{ fetchingMoreMessages ? '%i18n:common.loading%' : '%i18n:@more%' }}
|
||||||
</button>
|
</button>
|
||||||
<template v-for="(message, i) in _messages">
|
<template v-for="(message, i) in _messages">
|
||||||
<x-message :message="message" :key="message.id"/>
|
<x-message :message="message" :key="message.id"/>
|
||||||
@ -18,7 +18,11 @@
|
|||||||
</template>
|
</template>
|
||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<div ref="notifications" class="notifications"></div>
|
<transition name="fade">
|
||||||
|
<div class="new-message" v-show="showIndicator">
|
||||||
|
<button @click="onIndicatorClick">%fa:arrow-circle-down%%i18n:@new-message%</button>
|
||||||
|
</div>
|
||||||
|
</transition>
|
||||||
<x-form :user="user" ref="form"/>
|
<x-form :user="user" ref="form"/>
|
||||||
</footer>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
@ -45,7 +49,9 @@ export default Vue.extend({
|
|||||||
fetchingMoreMessages: false,
|
fetchingMoreMessages: false,
|
||||||
messages: [],
|
messages: [],
|
||||||
existMoreMessages: false,
|
existMoreMessages: false,
|
||||||
connection: null
|
connection: null,
|
||||||
|
showIndicator: false,
|
||||||
|
timer: null
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -149,9 +155,9 @@ export default Vue.extend({
|
|||||||
|
|
||||||
onMessage(message) {
|
onMessage(message) {
|
||||||
// サウンドを再生する
|
// サウンドを再生する
|
||||||
if ((this as any).os.isEnableSounds) {
|
if (this.$store.state.device.enableSounds) {
|
||||||
const sound = new Audio(`${url}/assets/message.mp3`);
|
const sound = new Audio(`${url}/assets/message.mp3`);
|
||||||
sound.volume = localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) / 100 : 0.5;
|
sound.volume = this.$store.state.device.soundVolume;
|
||||||
sound.play();
|
sound.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +178,7 @@ export default Vue.extend({
|
|||||||
});
|
});
|
||||||
} else if (message.userId != (this as any).os.i.id) {
|
} else if (message.userId != (this as any).os.i.id) {
|
||||||
// Notify
|
// Notify
|
||||||
this.notify('%i18n:!@new-message%');
|
this.notifyNewMessage();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -205,18 +211,18 @@ export default Vue.extend({
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
notify(message) {
|
onIndicatorClick() {
|
||||||
const n = document.createElement('p') as any;
|
this.showIndicator = false;
|
||||||
n.innerHTML = '%fa:arrow-circle-down%' + message;
|
this.scrollToBottom();
|
||||||
n.onclick = () => {
|
},
|
||||||
this.scrollToBottom();
|
|
||||||
n.parentNode.removeChild(n);
|
|
||||||
};
|
|
||||||
(this.$refs.notifications as any).appendChild(n);
|
|
||||||
|
|
||||||
setTimeout(() => {
|
notifyNewMessage() {
|
||||||
n.style.opacity = 0;
|
this.showIndicator = true;
|
||||||
setTimeout(() => n.parentNode.removeChild(n), 1000);
|
|
||||||
|
if (this.timer) clearTimeout(this.timer);
|
||||||
|
|
||||||
|
this.timer = setTimeout(() => {
|
||||||
|
this.showIndicator = false;
|
||||||
}, 4000);
|
}, 4000);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -238,11 +244,12 @@ export default Vue.extend({
|
|||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
@import '~const.styl'
|
@import '~const.styl'
|
||||||
|
|
||||||
.mk-messaging-room
|
root(isDark)
|
||||||
display flex
|
display flex
|
||||||
flex 1
|
flex 1
|
||||||
flex-direction column
|
flex-direction column
|
||||||
height 100%
|
height 100%
|
||||||
|
background isDark ? #191b22 : #fff
|
||||||
|
|
||||||
> .stream
|
> .stream
|
||||||
width 100%
|
width 100%
|
||||||
@ -267,7 +274,7 @@ export default Vue.extend({
|
|||||||
padding 16px 8px 8px 8px
|
padding 16px 8px 8px 8px
|
||||||
text-align center
|
text-align center
|
||||||
font-size 0.8em
|
font-size 0.8em
|
||||||
color rgba(#000, 0.4)
|
color rgba(isDark ? #fff : #000, 0.4)
|
||||||
|
|
||||||
[data-fa]
|
[data-fa]
|
||||||
margin-right 4px
|
margin-right 4px
|
||||||
@ -278,7 +285,7 @@ export default Vue.extend({
|
|||||||
padding 16px
|
padding 16px
|
||||||
text-align center
|
text-align center
|
||||||
font-size 0.8em
|
font-size 0.8em
|
||||||
color rgba(#000, 0.4)
|
color rgba(isDark ? #fff : #000, 0.4)
|
||||||
|
|
||||||
[data-fa]
|
[data-fa]
|
||||||
margin-right 4px
|
margin-right 4px
|
||||||
@ -322,7 +329,7 @@ export default Vue.extend({
|
|||||||
left 0
|
left 0
|
||||||
right 0
|
right 0
|
||||||
margin 0 auto
|
margin 0 auto
|
||||||
background rgba(#000, 0.1)
|
background rgba(isDark ? #fff : #000, 0.1)
|
||||||
|
|
||||||
> span
|
> span
|
||||||
display inline-block
|
display inline-block
|
||||||
@ -330,8 +337,8 @@ export default Vue.extend({
|
|||||||
padding 0 16px
|
padding 0 16px
|
||||||
//font-weight bold
|
//font-weight bold
|
||||||
line-height 32px
|
line-height 32px
|
||||||
color rgba(#000, 0.3)
|
color rgba(isDark ? #fff : #000, 0.3)
|
||||||
background #fff
|
background isDark ? #191b22 : #fff
|
||||||
|
|
||||||
> footer
|
> footer
|
||||||
position -webkit-sticky
|
position -webkit-sticky
|
||||||
@ -342,30 +349,32 @@ export default Vue.extend({
|
|||||||
max-width 600px
|
max-width 600px
|
||||||
margin 0 auto
|
margin 0 auto
|
||||||
padding 0
|
padding 0
|
||||||
background rgba(255, 255, 255, 0.95)
|
background rgba(isDark ? #282c37 : #fff, 0.95)
|
||||||
background-clip content-box
|
background-clip content-box
|
||||||
|
|
||||||
> .notifications
|
> .new-message
|
||||||
position absolute
|
position absolute
|
||||||
top -48px
|
top -48px
|
||||||
width 100%
|
width 100%
|
||||||
padding 8px 0
|
padding 8px 0
|
||||||
text-align center
|
text-align center
|
||||||
|
|
||||||
&:empty
|
> button
|
||||||
display none
|
|
||||||
|
|
||||||
> p
|
|
||||||
display inline-block
|
display inline-block
|
||||||
margin 0
|
margin 0
|
||||||
padding 0 12px 0 28px
|
padding 0 12px 0 30px
|
||||||
cursor pointer
|
cursor pointer
|
||||||
line-height 32px
|
line-height 32px
|
||||||
font-size 12px
|
font-size 12px
|
||||||
color $theme-color-foreground
|
color $theme-color-foreground
|
||||||
background $theme-color
|
background $theme-color
|
||||||
border-radius 16px
|
border-radius 16px
|
||||||
transition opacity 1s ease
|
|
||||||
|
&:hover
|
||||||
|
background lighten($theme-color, 10%)
|
||||||
|
|
||||||
|
&:active
|
||||||
|
background darken($theme-color, 10%)
|
||||||
|
|
||||||
> [data-fa]
|
> [data-fa]
|
||||||
position absolute
|
position absolute
|
||||||
@ -374,4 +383,17 @@ export default Vue.extend({
|
|||||||
line-height 32px
|
line-height 32px
|
||||||
font-size 16px
|
font-size 16px
|
||||||
|
|
||||||
|
.fade-enter-active, .fade-leave-active
|
||||||
|
transition opacity 0.1s
|
||||||
|
|
||||||
|
.fade-enter, .fade-leave-to
|
||||||
|
transition opacity 0.5s
|
||||||
|
opacity 0
|
||||||
|
|
||||||
|
.mk-messaging-room[data-darkmode]
|
||||||
|
root(true)
|
||||||
|
|
||||||
|
.mk-messaging-room:not([data-darkmode])
|
||||||
|
root(false)
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -162,9 +162,9 @@ export default Vue.extend({
|
|||||||
this.o.put(this.myColor, pos);
|
this.o.put(this.myColor, pos);
|
||||||
|
|
||||||
// サウンドを再生する
|
// サウンドを再生する
|
||||||
if ((this as any).os.isEnableSounds) {
|
if (this.$store.state.device.enableSounds) {
|
||||||
const sound = new Audio(`${url}/assets/othello-put-me.mp3`);
|
const sound = new Audio(`${url}/assets/othello-put-me.mp3`);
|
||||||
sound.volume = localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) / 100 : 0.5;
|
sound.volume = this.$store.state.device.soundVolume;
|
||||||
sound.play();
|
sound.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,9 +186,9 @@ export default Vue.extend({
|
|||||||
this.$forceUpdate();
|
this.$forceUpdate();
|
||||||
|
|
||||||
// サウンドを再生する
|
// サウンドを再生する
|
||||||
if ((this as any).os.isEnableSounds && x.color != this.myColor) {
|
if (this.$store.state.device.enableSounds && x.color != this.myColor) {
|
||||||
const sound = new Audio(`${url}/assets/othello-put-you.mp3`);
|
const sound = new Audio(`${url}/assets/othello-put-you.mp3`);
|
||||||
sound.volume = localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) / 100 : 0.5;
|
sound.volume = this.$store.state.device.soundVolume;
|
||||||
sound.play();
|
sound.play();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
</p>
|
</p>
|
||||||
<ul ref="choices">
|
<ul ref="choices">
|
||||||
<li v-for="(choice, i) in choices">
|
<li v-for="(choice, i) in choices">
|
||||||
<input :value="choice" @input="onInput(i, $event)" :placeholder="'%i18n:!@choice-n%'.replace('{}', i + 1)">
|
<input :value="choice" @input="onInput(i, $event)" :placeholder="'%i18n:@choice-n%'.replace('{}', i + 1)">
|
||||||
<button @click="remove(i)" title="%i18n:@remove%">
|
<button @click="remove(i)" title="%i18n:@remove%">
|
||||||
%fa:times%
|
%fa:times%
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,19 +1,19 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="mk-poll" :data-is-voted="isVoted">
|
<div class="mk-poll" :data-is-voted="isVoted">
|
||||||
<ul>
|
<ul>
|
||||||
<li v-for="choice in poll.choices" :key="choice.id" @click="vote(choice.id)" :class="{ voted: choice.voted }" :title="!isVoted ? '%i18n:!@vote-to%'.replace('{}', choice.text) : ''">
|
<li v-for="choice in poll.choices" :key="choice.id" @click="vote(choice.id)" :class="{ voted: choice.voted }" :title="!isVoted ? '%i18n:@vote-to%'.replace('{}', choice.text) : ''">
|
||||||
<div class="backdrop" :style="{ 'width': (showResult ? (choice.votes / total * 100) : 0) + '%' }"></div>
|
<div class="backdrop" :style="{ 'width': (showResult ? (choice.votes / total * 100) : 0) + '%' }"></div>
|
||||||
<span>
|
<span>
|
||||||
<template v-if="choice.isVoted">%fa:check%</template>
|
<template v-if="choice.isVoted">%fa:check%</template>
|
||||||
<span>{{ choice.text }}</span>
|
<span>{{ choice.text }}</span>
|
||||||
<span class="votes" v-if="showResult">({{ '%i18n:!@vote-count%'.replace('{}', choice.votes) }})</span>
|
<span class="votes" v-if="showResult">({{ '%i18n:@vote-count%'.replace('{}', choice.votes) }})</span>
|
||||||
</span>
|
</span>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p v-if="total > 0">
|
<p v-if="total > 0">
|
||||||
<span>{{ '%i18n:!@total-users%'.replace('{}', total) }}</span>
|
<span>{{ '%i18n:@total-users%'.replace('{}', total) }}</span>
|
||||||
<span>・</span>
|
<span>・</span>
|
||||||
<a v-if="!isVoted" @click="toggleShowResult">{{ showResult ? '%i18n:!@vote%' : '%i18n:!@show-result%' }}</a>
|
<a v-if="!isVoted" @click="toggleShowResult">{{ showResult ? '%i18n:@vote%' : '%i18n:@show-result%' }}</a>
|
||||||
<span v-if="isVoted">%i18n:@voted%</span>
|
<span v-if="isVoted">%i18n:@voted%</span>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
import * as anime from 'animejs';
|
import * as anime from 'animejs';
|
||||||
|
|
||||||
const placeholder = '%i18n:!@choose-reaction%';
|
const placeholder = '%i18n:@choose-reaction%';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['note', 'source', 'compact', 'cb'],
|
props: ['note', 'source', 'compact', 'cb'],
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
<label class="token" v-if="user && user.twoFactorEnabled">
|
<label class="token" v-if="user && user.twoFactorEnabled">
|
||||||
<input v-model="token" type="number" placeholder="%i18n:@token%" required/>%fa:lock%
|
<input v-model="token" type="number" placeholder="%i18n:@token%" required/>%fa:lock%
|
||||||
</label>
|
</label>
|
||||||
<button type="submit" :disabled="signing">{{ signing ? '%i18n:!@signing-in%' : '%i18n:!@signin%' }}</button>
|
<button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</button>
|
||||||
もしくは <a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a>
|
もしくは <a :href="`${apiUrl}/signin/twitter`">Twitterでログイン</a>
|
||||||
</form>
|
</form>
|
||||||
</template>
|
</template>
|
||||||
|
@ -127,7 +127,7 @@ export default Vue.extend({
|
|||||||
location.href = '/';
|
location.href = '/';
|
||||||
});
|
});
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
alert('%i18n:!@some-error%');
|
alert('%i18n:@some-error%');
|
||||||
|
|
||||||
(window as any).grecaptcha.reset();
|
(window as any).grecaptcha.reset();
|
||||||
this.recaptchaed = false;
|
this.recaptchaed = false;
|
||||||
|
@ -44,16 +44,16 @@ export default Vue.extend({
|
|||||||
const time = this._time;
|
const time = this._time;
|
||||||
const ago = (this.now.getTime() - time.getTime()) / 1000/*ms*/;
|
const ago = (this.now.getTime() - time.getTime()) / 1000/*ms*/;
|
||||||
return (
|
return (
|
||||||
ago >= 31536000 ? '%i18n:!common.time.years_ago%' .replace('{}', (~~(ago / 31536000)).toString()) :
|
ago >= 31536000 ? '%i18n:common.time.years_ago%' .replace('{}', (~~(ago / 31536000)).toString()) :
|
||||||
ago >= 2592000 ? '%i18n:!common.time.months_ago%' .replace('{}', (~~(ago / 2592000)).toString()) :
|
ago >= 2592000 ? '%i18n:common.time.months_ago%' .replace('{}', (~~(ago / 2592000)).toString()) :
|
||||||
ago >= 604800 ? '%i18n:!common.time.weeks_ago%' .replace('{}', (~~(ago / 604800)).toString()) :
|
ago >= 604800 ? '%i18n:common.time.weeks_ago%' .replace('{}', (~~(ago / 604800)).toString()) :
|
||||||
ago >= 86400 ? '%i18n:!common.time.days_ago%' .replace('{}', (~~(ago / 86400)).toString()) :
|
ago >= 86400 ? '%i18n:common.time.days_ago%' .replace('{}', (~~(ago / 86400)).toString()) :
|
||||||
ago >= 3600 ? '%i18n:!common.time.hours_ago%' .replace('{}', (~~(ago / 3600)).toString()) :
|
ago >= 3600 ? '%i18n:common.time.hours_ago%' .replace('{}', (~~(ago / 3600)).toString()) :
|
||||||
ago >= 60 ? '%i18n:!common.time.minutes_ago%'.replace('{}', (~~(ago / 60)).toString()) :
|
ago >= 60 ? '%i18n:common.time.minutes_ago%'.replace('{}', (~~(ago / 60)).toString()) :
|
||||||
ago >= 10 ? '%i18n:!common.time.seconds_ago%'.replace('{}', (~~(ago % 60)).toString()) :
|
ago >= 10 ? '%i18n:common.time.seconds_ago%'.replace('{}', (~~(ago % 60)).toString()) :
|
||||||
ago >= 0 ? '%i18n:!common.time.just_now%' :
|
ago >= 0 ? '%i18n:common.time.just_now%' :
|
||||||
ago < 0 ? '%i18n:!common.time.future%' :
|
ago < 0 ? '%i18n:common.time.future%' :
|
||||||
'%i18n:!common.time.unknown%');
|
'%i18n:common.time.unknown%');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<p>%i18n:@description%<a :href="`${docsUrl}/link-to-twitter`" target="_blank">%i18n:@detail%</a></p>
|
<p>%i18n:@description%<a :href="`${docsUrl}/link-to-twitter`" target="_blank">%i18n:@detail%</a></p>
|
||||||
<p class="account" v-if="os.i.twitter" :title="`Twitter ID: ${os.i.twitter.userId}`">%i18n:@connected-to%: <a :href="`https://twitter.com/${os.i.twitter.screenName}`" target="_blank">@{{ os.i.twitter.screenName }}</a></p>
|
<p class="account" v-if="os.i.twitter" :title="`Twitter ID: ${os.i.twitter.userId}`">%i18n:@connected-to%: <a :href="`https://twitter.com/${os.i.twitter.screenName}`" target="_blank">@{{ os.i.twitter.screenName }}</a></p>
|
||||||
<p>
|
<p>
|
||||||
<a :href="`${apiUrl}/connect/twitter`" target="_blank" @click.prevent="connect">{{ os.i.twitter ? '%i18n:!@reconnect%' : '%i18n:!@connect%' }}</a>
|
<a :href="`${apiUrl}/connect/twitter`" target="_blank" @click.prevent="connect">{{ os.i.twitter ? '%i18n:@reconnect%' : '%i18n:@connect%' }}</a>
|
||||||
<span v-if="os.i.twitter"> or </span>
|
<span v-if="os.i.twitter"> or </span>
|
||||||
<a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="os.i.twitter" @click.prevent="disconnect">%i18n:@disconnect%</a>
|
<a :href="`${apiUrl}/disconnect/twitter`" target="_blank" v-if="os.i.twitter" @click.prevent="disconnect">%i18n:@disconnect%</a>
|
||||||
</p>
|
</p>
|
||||||
|
@ -5,34 +5,34 @@
|
|||||||
<div @click="choose('public')" :class="{ active: v == 'public' }">
|
<div @click="choose('public')" :class="{ active: v == 'public' }">
|
||||||
<div>%fa:globe%</div>
|
<div>%fa:globe%</div>
|
||||||
<div>
|
<div>
|
||||||
<span>公開</span>
|
<span>%i18n:@public%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="choose('home')" :class="{ active: v == 'home' }">
|
<div @click="choose('home')" :class="{ active: v == 'home' }">
|
||||||
<div>%fa:home%</div>
|
<div>%fa:home%</div>
|
||||||
<div>
|
<div>
|
||||||
<span>ホーム</span>
|
<span>%i18n:@home%</span>
|
||||||
<span>ホームタイムラインにのみ公開</span>
|
<span>%i18n:@home-desc%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="choose('followers')" :class="{ active: v == 'followers' }">
|
<div @click="choose('followers')" :class="{ active: v == 'followers' }">
|
||||||
<div>%fa:unlock%</div>
|
<div>%fa:unlock%</div>
|
||||||
<div>
|
<div>
|
||||||
<span>フォロワー</span>
|
<span>%i18n:@followers%</span>
|
||||||
<span>自分のフォロワーにのみ公開</span>
|
<span>%i18n:@followers-desc%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="choose('specified')" :class="{ active: v == 'specified' }">
|
<div @click="choose('specified')" :class="{ active: v == 'specified' }">
|
||||||
<div>%fa:envelope%</div>
|
<div>%fa:envelope%</div>
|
||||||
<div>
|
<div>
|
||||||
<span>ダイレクト</span>
|
<span>%i18n:@specified%</span>
|
||||||
<span>指定したユーザーにのみ公開</span>
|
<span>%i18n:@specified-desc%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div @click="choose('private')" :class="{ active: v == 'private' }">
|
<div @click="choose('private')" :class="{ active: v == 'private' }">
|
||||||
<div>%fa:lock%</div>
|
<div>%fa:lock%</div>
|
||||||
<div>
|
<div>
|
||||||
<span>非公開</span>
|
<span>%i18n:@private%</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -37,6 +37,7 @@ export default Vue.extend({
|
|||||||
fetch(cb?) {
|
fetch(cb?) {
|
||||||
this.fetching = true;
|
this.fetching = true;
|
||||||
(this as any).api('notes', {
|
(this as any).api('notes', {
|
||||||
|
local: true,
|
||||||
reply: false,
|
reply: false,
|
||||||
renote: false,
|
renote: false,
|
||||||
media: false,
|
media: false,
|
||||||
@ -52,15 +53,15 @@ export default Vue.extend({
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
<style lang="stylus" scoped>
|
||||||
.mk-welcome-timeline
|
root(isDark)
|
||||||
background #fff
|
background isDark ? #282C37 : #fff
|
||||||
|
|
||||||
> div
|
> div
|
||||||
padding 16px
|
padding 16px
|
||||||
overflow-wrap break-word
|
overflow-wrap break-word
|
||||||
font-size .9em
|
font-size .9em
|
||||||
color #4C4C4C
|
color isDark ? #fff : #4C4C4C
|
||||||
border-bottom 1px solid rgba(#000, 0.05)
|
border-bottom 1px solid isDark ? rgba(#000, 0.1) : rgba(#000, 0.05)
|
||||||
|
|
||||||
&:after
|
&:after
|
||||||
content ""
|
content ""
|
||||||
@ -95,17 +96,23 @@ export default Vue.extend({
|
|||||||
overflow hidden
|
overflow hidden
|
||||||
font-weight bold
|
font-weight bold
|
||||||
text-overflow ellipsis
|
text-overflow ellipsis
|
||||||
color #627079
|
color isDark ? #fff : #627079
|
||||||
|
|
||||||
> .username
|
> .username
|
||||||
margin 0 .5em 0 0
|
margin 0 .5em 0 0
|
||||||
color #ccc
|
color isDark ? #606984 : #ccc
|
||||||
|
|
||||||
> .info
|
> .info
|
||||||
margin-left auto
|
margin-left auto
|
||||||
font-size 0.9em
|
font-size 0.9em
|
||||||
|
|
||||||
> .created-at
|
> .created-at
|
||||||
color #c0c0c0
|
color isDark ? #606984 : #c0c0c0
|
||||||
|
|
||||||
|
.mk-welcome-timeline[data-darkmode]
|
||||||
|
root(true)
|
||||||
|
|
||||||
|
.mk-welcome-timeline:not([data-darkmode])
|
||||||
|
root(false)
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="mkw-access-log">
|
|
||||||
<mk-widget-container :show-header="props.design == 0">
|
|
||||||
<template slot="header">%fa:server%%i18n:@title%</template>
|
|
||||||
|
|
||||||
<div :class="$style.logs" ref="log">
|
|
||||||
<p v-for="req in requests">
|
|
||||||
<span :class="$style.ip" :style="`color:${ req.fg }; background:${ req.bg }`">{{ req.ip }}</span>
|
|
||||||
<b>{{ req.method }}</b>
|
|
||||||
<span>{{ req.path }}</span>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</mk-widget-container>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import define from '../../../common/define-widget';
|
|
||||||
import * as seedrandom from 'seedrandom';
|
|
||||||
|
|
||||||
export default define({
|
|
||||||
name: 'broadcast',
|
|
||||||
props: () => ({
|
|
||||||
design: 0
|
|
||||||
})
|
|
||||||
}).extend({
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
requests: [],
|
|
||||||
connection: null,
|
|
||||||
connectionId: null
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
this.connection = (this as any).os.streams.requestsStream.getConnection();
|
|
||||||
this.connectionId = (this as any).os.streams.requestsStream.use();
|
|
||||||
this.connection.on('request', this.onRequest);
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
this.connection.off('request', this.onRequest);
|
|
||||||
(this as any).os.streams.requestsStream.dispose(this.connectionId);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onRequest(request) {
|
|
||||||
const random = seedrandom(request.ip);
|
|
||||||
const r = Math.floor(random() * 255);
|
|
||||||
const g = Math.floor(random() * 255);
|
|
||||||
const b = Math.floor(random() * 255);
|
|
||||||
const luma = (0.2126 * r) + (0.7152 * g) + (0.0722 * b); // SMPTE C, Rec. 709 weightings
|
|
||||||
request.bg = `rgb(${r}, ${g}, ${b})`;
|
|
||||||
request.fg = luma >= 165 ? '#000' : '#fff';
|
|
||||||
|
|
||||||
this.requests.push(request);
|
|
||||||
if (this.requests.length > 30) this.requests.shift();
|
|
||||||
|
|
||||||
(this.$refs.log as any).scrollTop = (this.$refs.log as any).scrollHeight;
|
|
||||||
},
|
|
||||||
func() {
|
|
||||||
if (this.props.design == 1) {
|
|
||||||
this.props.design = 0;
|
|
||||||
} else {
|
|
||||||
this.props.design++;
|
|
||||||
}
|
|
||||||
this.save();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="stylus" module>
|
|
||||||
.logs
|
|
||||||
max-height 250px
|
|
||||||
overflow auto
|
|
||||||
|
|
||||||
> p
|
|
||||||
margin 0
|
|
||||||
padding 8px
|
|
||||||
font-size 0.8em
|
|
||||||
color #555
|
|
||||||
|
|
||||||
&:nth-child(odd)
|
|
||||||
background rgba(#000, 0.025)
|
|
||||||
|
|
||||||
> b
|
|
||||||
margin-right 4px
|
|
||||||
|
|
||||||
.ip
|
|
||||||
margin-right 4px
|
|
||||||
padding 0 4px
|
|
||||||
|
|
||||||
</style>
|
|
@ -14,7 +14,7 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<p class="fetching" v-if="fetching">%i18n:@fetching%<mk-ellipsis/></p>
|
<p class="fetching" v-if="fetching">%i18n:@fetching%<mk-ellipsis/></p>
|
||||||
<h1 v-if="!fetching">{{ broadcasts.length == 0 ? '%i18n:!@no-broadcasts%' : broadcasts[i].title }}</h1>
|
<h1 v-if="!fetching">{{ broadcasts.length == 0 ? '%i18n:@no-broadcasts%' : broadcasts[i].title }}</h1>
|
||||||
<p v-if="!fetching">
|
<p v-if="!fetching">
|
||||||
<span v-if="broadcasts.length != 0" v-html="broadcasts[i].text"></span>
|
<span v-if="broadcasts.length != 0" v-html="broadcasts[i].text"></span>
|
||||||
<template v-if="broadcasts.length == 0">%i18n:@have-a-nice-day%</template>
|
<template v-if="broadcasts.length == 0">%i18n:@have-a-nice-day%</template>
|
||||||
|
@ -3,9 +3,9 @@
|
|||||||
<article>
|
<article>
|
||||||
<h1>%fa:heart%%i18n:@title%</h1>
|
<h1>%fa:heart%%i18n:@title%</h1>
|
||||||
<p>
|
<p>
|
||||||
{{ '%i18n:!@text%'.substr(0, '%i18n:!@text%'.indexOf('{')) }}
|
{{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }}
|
||||||
<a href="https://syuilo.com">@syuilo</a>
|
<a href="https://syuilo.com">@syuilo</a>
|
||||||
{{ '%i18n:!@text%'.substr('%i18n:!@text%'.indexOf('}') + 1) }}
|
{{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }}
|
||||||
</p>
|
</p>
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
import wAccessLog from './access-log.vue';
|
|
||||||
import wVersion from './version.vue';
|
import wVersion from './version.vue';
|
||||||
import wRss from './rss.vue';
|
import wRss from './rss.vue';
|
||||||
import wServer from './server.vue';
|
import wServer from './server.vue';
|
||||||
@ -22,4 +21,3 @@ Vue.component('mkw-broadcast', wBroadcast);
|
|||||||
Vue.component('mkw-server', wServer);
|
Vue.component('mkw-server', wServer);
|
||||||
Vue.component('mkw-rss', wRss);
|
Vue.component('mkw-rss', wRss);
|
||||||
Vue.component('mkw-version', wVersion);
|
Vue.component('mkw-version', wVersion);
|
||||||
Vue.component('mkw-access-log', wAccessLog);
|
|
||||||
|
@ -8,6 +8,7 @@ declare const _STATS_URL_: string;
|
|||||||
declare const _STATUS_URL_: string;
|
declare const _STATUS_URL_: string;
|
||||||
declare const _DEV_URL_: string;
|
declare const _DEV_URL_: string;
|
||||||
declare const _LANG_: string;
|
declare const _LANG_: string;
|
||||||
|
declare const _LANGS_: string;
|
||||||
declare const _RECAPTCHA_SITEKEY_: string;
|
declare const _RECAPTCHA_SITEKEY_: string;
|
||||||
declare const _SW_PUBLICKEY_: string;
|
declare const _SW_PUBLICKEY_: string;
|
||||||
declare const _THEME_COLOR_: string;
|
declare const _THEME_COLOR_: string;
|
||||||
@ -27,6 +28,7 @@ export const statsUrl = _STATS_URL_;
|
|||||||
export const statusUrl = _STATUS_URL_;
|
export const statusUrl = _STATUS_URL_;
|
||||||
export const devUrl = _DEV_URL_;
|
export const devUrl = _DEV_URL_;
|
||||||
export const lang = _LANG_;
|
export const lang = _LANG_;
|
||||||
|
export const langs = _LANGS_;
|
||||||
export const recaptchaSitekey = _RECAPTCHA_SITEKEY_;
|
export const recaptchaSitekey = _RECAPTCHA_SITEKEY_;
|
||||||
export const swPublickey = _SW_PUBLICKEY_;
|
export const swPublickey = _SW_PUBLICKEY_;
|
||||||
export const themeColor = _THEME_COLOR_;
|
export const themeColor = _THEME_COLOR_;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" preserveAspectRatio="none" @mousedown.prevent="onMousedown">
|
<svg :viewBox="`0 0 ${ viewBoxX } ${ viewBoxY }`" preserveAspectRatio="none" @mousedown.prevent="onMousedown">
|
||||||
<title>Black ... Total<br/>Blue ... Notes<br/>Red ... Replies<br/>Green ... Renotes</title>
|
<title>%i18n:@total%<br/>%i18n:@notes%<br/>%i18n:@replies%<br/>%i18n:@renotes%</title>
|
||||||
<polyline
|
<polyline
|
||||||
:points="pointsNote"
|
:points="pointsNote"
|
||||||
fill="none"
|
fill="none"
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<div class="mk-calendar" :data-melt="design == 4 || design == 5">
|
<div class="mk-calendar" :data-melt="design == 4 || design == 5">
|
||||||
<template v-if="design == 0 || design == 1">
|
<template v-if="design == 0 || design == 1">
|
||||||
<button @click="prev" title="%i18n:@prev%">%fa:chevron-circle-left%</button>
|
<button @click="prev" title="%i18n:@prev%">%fa:chevron-circle-left%</button>
|
||||||
<p class="title">{{ '%i18n:!@title%'.replace('{1}', year).replace('{2}', month) }}</p>
|
<p class="title">{{ '%i18n:@title%'.replace('{1}', year).replace('{2}', month) }}</p>
|
||||||
<button @click="next" title="%i18n:@next%">%fa:chevron-circle-right%</button>
|
<button @click="next" title="%i18n:@next%">%fa:chevron-circle-right%</button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -21,7 +21,7 @@
|
|||||||
:data-is-out-of-range="isOutOfRange(i + 1)"
|
:data-is-out-of-range="isOutOfRange(i + 1)"
|
||||||
:data-is-donichi="isDonichi(i + 1)"
|
:data-is-donichi="isDonichi(i + 1)"
|
||||||
@click="go(i + 1)"
|
@click="go(i + 1)"
|
||||||
:title="isOutOfRange(i + 1) ? null : '%i18n:!@go%'"
|
:title="isOutOfRange(i + 1) ? null : '%i18n:@go%'"
|
||||||
>
|
>
|
||||||
<div>{{ i + 1 }}</div>
|
<div>{{ i + 1 }}</div>
|
||||||
</div>
|
</div>
|
||||||
@ -58,13 +58,13 @@ export default Vue.extend({
|
|||||||
month: new Date().getMonth() + 1,
|
month: new Date().getMonth() + 1,
|
||||||
selected: new Date(),
|
selected: new Date(),
|
||||||
weekdayText: [
|
weekdayText: [
|
||||||
'%i18n:!common.weekday-short.sunday%',
|
'%i18n:common.weekday-short.sunday%',
|
||||||
'%i18n:!common.weekday-short.monday%',
|
'%i18n:common.weekday-short.monday%',
|
||||||
'%i18n:!common.weekday-short.tuesday%',
|
'%i18n:common.weekday-short.tuesday%',
|
||||||
'%i18n:!common.weekday-short.wednesday%',
|
'%i18n:common.weekday-short.wednesday%',
|
||||||
'%i18n:!common.weekday-short.thursday%',
|
'%i18n:common.weekday-short.thursday%',
|
||||||
'%i18n:!common.weekday-short.friday%',
|
'%i18n:common.weekday-short.friday%',
|
||||||
'%i18n:!common.weekday-short.saturday%'
|
'%i18n:common.weekday-short.saturday%'
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<mk-window ref="window" is-modal width="800px" height="500px" @closed="$destroy">
|
<mk-window ref="window" is-modal width="800px" height="500px" @closed="$destroy">
|
||||||
<span slot="header">
|
<span slot="header">
|
||||||
<span v-html="title" :class="$style.title"></span>
|
<span v-html="title" :class="$style.title"></span>
|
||||||
<span :class="$style.count" v-if="multiple && files.length > 0">({{ files.length }}ファイル選択中)</span>
|
<span :class="$style.count" v-if="multiple && files.length > 0">({{ files.length }}%i18n:@choose-file%)</span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<mk-drive
|
<mk-drive
|
||||||
@ -13,9 +13,9 @@
|
|||||||
@change-selection="onChangeSelection"
|
@change-selection="onChangeSelection"
|
||||||
/>
|
/>
|
||||||
<div :class="$style.footer">
|
<div :class="$style.footer">
|
||||||
<button :class="$style.upload" title="PCからドライブにファイルをアップロード" @click="upload">%fa:upload%</button>
|
<button :class="$style.upload" title="%i18n:@upload%" @click="upload">%fa:upload%</button>
|
||||||
<button :class="$style.cancel" @click="cancel">キャンセル</button>
|
<button :class="$style.cancel" @click="cancel">%i18n:@cancel%</button>
|
||||||
<button :class="$style.ok" :disabled="multiple && files.length == 0" @click="ok">決定</button>
|
<button :class="$style.ok" :disabled="multiple && files.length == 0" @click="ok">%i18n:@ok%</button>
|
||||||
</div>
|
</div>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
@ -28,7 +28,7 @@ export default Vue.extend({
|
|||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
title: {
|
title: {
|
||||||
default: '%fa:R file%ファイルを選択'
|
default: '%fa:R file%%i18n:@choose-prompt%s'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data() {
|
data() {
|
||||||
@ -177,4 +177,3 @@ export default Vue.extend({
|
|||||||
border-color #dcdcdc
|
border-color #dcdcdc
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
:multiple="false"
|
:multiple="false"
|
||||||
/>
|
/>
|
||||||
<div :class="$style.footer">
|
<div :class="$style.footer">
|
||||||
<button :class="$style.cancel" @click="cancel">キャンセル</button>
|
<button :class="$style.cancel" @click="cancel">%i18n:@cancel%</button>
|
||||||
<button :class="$style.ok" @click="ok">決定</button>
|
<button :class="$style.ok" @click="ok">%i18n:@ok%</button>
|
||||||
</div>
|
</div>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
@ -21,7 +21,7 @@ import Vue from 'vue';
|
|||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: {
|
props: {
|
||||||
title: {
|
title: {
|
||||||
default: '%fa:R folder%フォルダを選択'
|
default: '%fa:R folder%%i18n:@choose-prompt%'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -10,9 +10,9 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.actions">
|
<div :class="$style.actions">
|
||||||
<button :class="$style.skip" @click="skip">クロップをスキップ</button>
|
<button :class="$style.skip" @click="skip">%i18n:@skip%</button>
|
||||||
<button :class="$style.cancel" @click="cancel">キャンセル</button>
|
<button :class="$style.cancel" @click="cancel">%i18n:@cancel%</button>
|
||||||
<button :class="$style.ok" @click="ok">決定</button>
|
<button :class="$style.ok" @click="ok">%i18n:@ok%</button>
|
||||||
</div>
|
</div>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
|
@ -64,46 +64,46 @@ export default Vue.extend({
|
|||||||
this.isContextmenuShowing = true;
|
this.isContextmenuShowing = true;
|
||||||
contextmenu(e, [{
|
contextmenu(e, [{
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.rename%',
|
text: '%i18n:@contextmenu.rename%',
|
||||||
icon: '%fa:i-cursor%',
|
icon: '%fa:i-cursor%',
|
||||||
onClick: this.rename
|
onClick: this.rename
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.copy-url%',
|
text: '%i18n:@contextmenu.copy-url%',
|
||||||
icon: '%fa:link%',
|
icon: '%fa:link%',
|
||||||
onClick: this.copyUrl
|
onClick: this.copyUrl
|
||||||
}, {
|
}, {
|
||||||
type: 'link',
|
type: 'link',
|
||||||
href: `${this.file.url}?download`,
|
href: `${this.file.url}?download`,
|
||||||
text: '%i18n:!@contextmenu.download%',
|
text: '%i18n:@contextmenu.download%',
|
||||||
icon: '%fa:download%',
|
icon: '%fa:download%',
|
||||||
}, {
|
}, {
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!common.delete%',
|
text: '%i18n:common.delete%',
|
||||||
icon: '%fa:R trash-alt%',
|
icon: '%fa:R trash-alt%',
|
||||||
onClick: this.deleteFile
|
onClick: this.deleteFile
|
||||||
}, {
|
}, {
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
}, {
|
}, {
|
||||||
type: 'nest',
|
type: 'nest',
|
||||||
text: '%i18n:!@contextmenu.else-files%',
|
text: '%i18n:@contextmenu.else-files%',
|
||||||
menu: [{
|
menu: [{
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.set-as-avatar%',
|
text: '%i18n:@contextmenu.set-as-avatar%',
|
||||||
onClick: this.setAsAvatar
|
onClick: this.setAsAvatar
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.set-as-banner%',
|
text: '%i18n:@contextmenu.set-as-banner%',
|
||||||
onClick: this.setAsBanner
|
onClick: this.setAsBanner
|
||||||
}]
|
}]
|
||||||
}, {
|
}, {
|
||||||
type: 'nest',
|
type: 'nest',
|
||||||
text: '%i18n:!@contextmenu.open-in-app%',
|
text: '%i18n:@contextmenu.open-in-app%',
|
||||||
menu: [{
|
menu: [{
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.add-app%...',
|
text: '%i18n:@contextmenu.add-app%...',
|
||||||
onClick: this.addApp
|
onClick: this.addApp
|
||||||
}]
|
}]
|
||||||
}], {
|
}], {
|
||||||
@ -141,8 +141,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
rename() {
|
rename() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@contextmenu.rename-file%',
|
title: '%i18n:@contextmenu.rename-file%',
|
||||||
placeholder: '%i18n:!@contextmenu.input-new-file-name%',
|
placeholder: '%i18n:@contextmenu.input-new-file-name%',
|
||||||
default: this.file.name,
|
default: this.file.name,
|
||||||
allowEmpty: false
|
allowEmpty: false
|
||||||
}).then(name => {
|
}).then(name => {
|
||||||
@ -157,9 +157,9 @@ export default Vue.extend({
|
|||||||
copyToClipboard(this.file.url);
|
copyToClipboard(this.file.url);
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '%fa:check%%i18n:@contextmenu.copied%',
|
title: '%fa:check%%i18n:@contextmenu.copied%',
|
||||||
text: '%i18n:!@contextmenu.copied-url-to-clipboard%',
|
text: '%i18n:@contextmenu.copied-url-to-clipboard%',
|
||||||
actions: [{
|
actions: [{
|
||||||
text: '%i18n:!common.ok%'
|
text: '%i18n:common.ok%'
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
@ -54,26 +54,26 @@ export default Vue.extend({
|
|||||||
this.isContextmenuShowing = true;
|
this.isContextmenuShowing = true;
|
||||||
contextmenu(e, [{
|
contextmenu(e, [{
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.move-to-this-folder%',
|
text: '%i18n:@contextmenu.move-to-this-folder%',
|
||||||
icon: '%fa:arrow-right%',
|
icon: '%fa:arrow-right%',
|
||||||
onClick: this.go
|
onClick: this.go
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.show-in-new-window%',
|
text: '%i18n:@contextmenu.show-in-new-window%',
|
||||||
icon: '%fa:R window-restore%',
|
icon: '%fa:R window-restore%',
|
||||||
onClick: this.newWindow
|
onClick: this.newWindow
|
||||||
}, {
|
}, {
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.rename%',
|
text: '%i18n:@contextmenu.rename%',
|
||||||
icon: '%fa:i-cursor%',
|
icon: '%fa:i-cursor%',
|
||||||
onClick: this.rename
|
onClick: this.rename
|
||||||
}, {
|
}, {
|
||||||
type: 'divider',
|
type: 'divider',
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!common.delete%',
|
text: '%i18n:common.delete%',
|
||||||
icon: '%fa:R trash-alt%',
|
icon: '%fa:R trash-alt%',
|
||||||
onClick: this.deleteFolder
|
onClick: this.deleteFolder
|
||||||
}], {
|
}], {
|
||||||
@ -159,15 +159,15 @@ export default Vue.extend({
|
|||||||
switch (err) {
|
switch (err) {
|
||||||
case 'detected-circular-definition':
|
case 'detected-circular-definition':
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '%fa:exclamation-triangle%%i18n:!@unable-to-process%',
|
title: '%fa:exclamation-triangle%%i18n:@unable-to-process%',
|
||||||
text: '%i18n:!@circular-reference-detected%',
|
text: '%i18n:@circular-reference-detected%',
|
||||||
actions: [{
|
actions: [{
|
||||||
text: '%i18n:!common.ok%'
|
text: '%i18n:common.ok%'
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
alert('%i18n:!@unhandled-error% ' + err);
|
alert('%i18n:@unhandled-error% ' + err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -199,8 +199,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
rename() {
|
rename() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@contextmenu.rename-folder%',
|
title: '%i18n:@contextmenu.rename-folder%',
|
||||||
placeholder: '%i18n:!@contextmenu.input-new-folder-name%',
|
placeholder: '%i18n:@contextmenu.input-new-folder-name%',
|
||||||
default: this.folder.name
|
default: this.folder.name
|
||||||
}).then(name => {
|
}).then(name => {
|
||||||
(this as any).api('drive/folders/update', {
|
(this as any).api('drive/folders/update', {
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
@drop.stop="onDrop"
|
@drop.stop="onDrop"
|
||||||
>
|
>
|
||||||
<template v-if="folder == null">%fa:cloud%</template>
|
<template v-if="folder == null">%fa:cloud%</template>
|
||||||
<span>{{ folder == null ? '%i18n:!@drive%' : folder.name }}</span>
|
<span>{{ folder == null ? '%i18n:@drive%' : folder.name }}</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -138,17 +138,17 @@ export default Vue.extend({
|
|||||||
onContextmenu(e) {
|
onContextmenu(e) {
|
||||||
contextmenu(e, [{
|
contextmenu(e, [{
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.create-folder%',
|
text: '%i18n:@contextmenu.create-folder%',
|
||||||
icon: '%fa:R folder%',
|
icon: '%fa:R folder%',
|
||||||
onClick: this.createFolder
|
onClick: this.createFolder
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.upload%',
|
text: '%i18n:@contextmenu.upload%',
|
||||||
icon: '%fa:upload%',
|
icon: '%fa:upload%',
|
||||||
onClick: this.selectLocalFile
|
onClick: this.selectLocalFile
|
||||||
}, {
|
}, {
|
||||||
type: 'item',
|
type: 'item',
|
||||||
text: '%i18n:!@contextmenu.url-upload%',
|
text: '%i18n:@contextmenu.url-upload%',
|
||||||
icon: '%fa:cloud-upload-alt%',
|
icon: '%fa:cloud-upload-alt%',
|
||||||
onClick: this.urlUpload
|
onClick: this.urlUpload
|
||||||
}]);
|
}]);
|
||||||
@ -306,15 +306,15 @@ export default Vue.extend({
|
|||||||
switch (err) {
|
switch (err) {
|
||||||
case 'detected-circular-definition':
|
case 'detected-circular-definition':
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '%fa:exclamation-triangle%%i18n:!@unable-to-process%',
|
title: '%fa:exclamation-triangle%%i18n:@unable-to-process%',
|
||||||
text: '%i18n:!@circular-reference-detected%',
|
text: '%i18n:@circular-reference-detected%',
|
||||||
actions: [{
|
actions: [{
|
||||||
text: '%i18n:!common.ok%'
|
text: '%i18n:common.ok%'
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
alert('%i18n:!@unhandled-error% ' + err);
|
alert('%i18n:@unhandled-error% ' + err);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -327,8 +327,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
urlUpload() {
|
urlUpload() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@url-upload%',
|
title: '%i18n:@url-upload%',
|
||||||
placeholder: '%i18n:!@url-of-file%'
|
placeholder: '%i18n:@url-of-file%'
|
||||||
}).then(url => {
|
}).then(url => {
|
||||||
(this as any).api('drive/files/upload_from_url', {
|
(this as any).api('drive/files/upload_from_url', {
|
||||||
url: url,
|
url: url,
|
||||||
@ -337,9 +337,9 @@ export default Vue.extend({
|
|||||||
|
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '%fa:check%%i18n:@url-upload-requested%',
|
title: '%fa:check%%i18n:@url-upload-requested%',
|
||||||
text: '%i18n:!@may-take-time%',
|
text: '%i18n:@may-take-time%',
|
||||||
actions: [{
|
actions: [{
|
||||||
text: '%i18n:!common.ok%'
|
text: '%i18n:common.ok%'
|
||||||
}]
|
}]
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -347,8 +347,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
createFolder() {
|
createFolder() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@create-folder%',
|
title: '%i18n:@create-folder%',
|
||||||
placeholder: '%i18n:!@folder-name%'
|
placeholder: '%i18n:@folder-name%'
|
||||||
}).then(name => {
|
}).then(name => {
|
||||||
(this as any).api('drive/folders/create', {
|
(this as any).api('drive/folders/create', {
|
||||||
name: name,
|
name: name,
|
||||||
|
@ -3,15 +3,15 @@
|
|||||||
:class="{ wait, follow: !user.isFollowing, unfollow: user.isFollowing, big: size == 'big' }"
|
:class="{ wait, follow: !user.isFollowing, unfollow: user.isFollowing, big: size == 'big' }"
|
||||||
@click="onClick"
|
@click="onClick"
|
||||||
:disabled="wait"
|
:disabled="wait"
|
||||||
:title="user.isFollowing ? 'フォロー解除' : 'フォローする'"
|
:title="user.isFollowing ? '%i18n:@unfollow%' : '%i18n:@follow%'"
|
||||||
>
|
>
|
||||||
<template v-if="!wait && user.isFollowing">
|
<template v-if="!wait && user.isFollowing">
|
||||||
<template v-if="size == 'compact'">%fa:minus%</template>
|
<template v-if="size == 'compact'">%fa:minus%</template>
|
||||||
<template v-if="size == 'big'">%fa:minus%フォロー解除</template>
|
<template v-if="size == 'big'">%fa:minus%%i18n:@unfollow%</template>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="!wait && !user.isFollowing">
|
<template v-if="!wait && !user.isFollowing">
|
||||||
<template v-if="size == 'compact'">%fa:plus%</template>
|
<template v-if="size == 'compact'">%fa:plus%</template>
|
||||||
<template v-if="size == 'big'">%fa:plus%フォロー</template>
|
<template v-if="size == 'big'">%fa:plus%%i18n:@follow%</template>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="wait">%fa:spinner .pulse .fw%</template>
|
<template v-if="wait">%fa:spinner .pulse .fw%</template>
|
||||||
</button>
|
</button>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window width="400px" height="550px" @closed="$destroy">
|
<mk-window width="400px" height="550px" @closed="$destroy">
|
||||||
<span slot="header" :class="$style.header">
|
<span slot="header" :class="$style.header">
|
||||||
<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>{{ user | userName }}のフォロワー
|
<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>{{ '%i18n:@followers%'.replace('{}', name) }}
|
||||||
</span>
|
</span>
|
||||||
<mk-followers :user="user"/>
|
<mk-followers :user="user"/>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
@ -11,7 +11,12 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['user']
|
props: ['user'],
|
||||||
|
computed: {
|
||||||
|
name(): string {
|
||||||
|
return Vue.filter('userName')(this.user);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
:count="user.followersCount"
|
:count="user.followersCount"
|
||||||
:you-know-count="user.followersYouKnowCount"
|
:you-know-count="user.followersYouKnowCount"
|
||||||
>
|
>
|
||||||
フォロワーはいないようです。
|
%i18n:@empty%
|
||||||
</mk-users-list>
|
</mk-users-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window width="400px" height="550px" @closed="$destroy">
|
<mk-window width="400px" height="550px" @closed="$destroy">
|
||||||
<span slot="header" :class="$style.header">
|
<span slot="header" :class="$style.header">
|
||||||
<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>{{ user | userName }}のフォロー
|
<img :src="`${user.avatarUrl}?thumbnail&size=64`" alt=""/>{{ '%i18n:@following%'.replace('{}', name) }}
|
||||||
</span>
|
</span>
|
||||||
<mk-following :user="user"/>
|
<mk-following :user="user"/>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
@ -11,7 +11,12 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
|
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
props: ['user']
|
props: ['user'],
|
||||||
|
computed: {
|
||||||
|
name(): string {
|
||||||
|
return Vue.filter('userName')(this.user);
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
:count="user.followingCount"
|
:count="user.followingCount"
|
||||||
:you-know-count="user.followingYouKnowCount"
|
:you-know-count="user.followingYouKnowCount"
|
||||||
>
|
>
|
||||||
フォロー中のユーザーはいないようです。
|
%i18n:@empty%
|
||||||
</mk-users-list>
|
</mk-users-list>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="mk-friends-maker">
|
<div class="mk-friends-maker">
|
||||||
<p class="title">気になるユーザーをフォロー:</p>
|
<p class="title">%i18n:@title%</p>
|
||||||
<div class="users" v-if="!fetching && users.length > 0">
|
<div class="users" v-if="!fetching && users.length > 0">
|
||||||
<div class="user" v-for="user in users" :key="user.id">
|
<div class="user" v-for="user in users" :key="user.id">
|
||||||
<mk-avatar class="avatar" :user="user" target="_blank"/>
|
<mk-avatar class="avatar" :user="user" target="_blank"/>
|
||||||
@ -11,10 +11,10 @@
|
|||||||
<mk-follow-button :user="user"/>
|
<mk-follow-button :user="user"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<p class="empty" v-if="!fetching && users.length == 0">おすすめのユーザーは見つかりませんでした。</p>
|
<p class="empty" v-if="!fetching && users.length == 0">%i18n:@empty%</p>
|
||||||
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%読み込んでいます<mk-ellipsis/></p>
|
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:@fetching%<mk-ellipsis/></p>
|
||||||
<a class="refresh" @click="refresh">もっと見る</a>
|
<a class="refresh" @click="refresh">%i18n:@refresh%</a>
|
||||||
<button class="close" @click="$destroy()" title="閉じる">%fa:times%</button>
|
<button class="close" @click="$destroy()" title="%i18n:@close%">%fa:times%</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="$destroy">
|
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="$destroy">
|
||||||
<span slot="header" :class="$style.header">%fa:gamepad%オセロ</span>
|
<span slot="header" :class="$style.header">%fa:gamepad%%i18n:@game%</span>
|
||||||
<mk-othello :class="$style.content" @gamed="g => game = g"/>
|
<mk-othello :class="$style.content" @gamed="g => game = g"/>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
|
@ -21,8 +21,6 @@
|
|||||||
<option value="polls">%i18n:@polls%</option>
|
<option value="polls">%i18n:@polls%</option>
|
||||||
<option value="post-form">%i18n:@post-form%</option>
|
<option value="post-form">%i18n:@post-form%</option>
|
||||||
<option value="messaging">%i18n:@messaging%</option>
|
<option value="messaging">%i18n:@messaging%</option>
|
||||||
<option value="channel">%i18n:@channel%</option>
|
|
||||||
<option value="access-log">%i18n:@access-log%</option>
|
|
||||||
<option value="server">%i18n:@server%</option>
|
<option value="server">%i18n:@server%</option>
|
||||||
<option value="donation">%i18n:@donation%</option>
|
<option value="donation">%i18n:@donation%</option>
|
||||||
<option value="nav">%i18n:@nav%</option>
|
<option value="nav">%i18n:@nav%</option>
|
||||||
@ -104,7 +102,7 @@ export default Vue.extend({
|
|||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
home(): any[] {
|
home(): any[] {
|
||||||
return this.$store.state.settings.data.home;
|
return this.$store.state.settings.home;
|
||||||
},
|
},
|
||||||
left(): any[] {
|
left(): any[] {
|
||||||
return this.home.filter(w => w.place == 'left');
|
return this.home.filter(w => w.place == 'left');
|
||||||
|
@ -8,8 +8,8 @@
|
|||||||
<input ref="text" v-model="text" :type="type" @keydown="onKeydown" :placeholder="placeholder"/>
|
<input ref="text" v-model="text" :type="type" @keydown="onKeydown" :placeholder="placeholder"/>
|
||||||
</div>
|
</div>
|
||||||
<div :class="$style.actions">
|
<div :class="$style.actions">
|
||||||
<button :class="$style.cancel" @click="cancel">キャンセル</button>
|
<button :class="$style.cancel" @click="cancel">%i18n:@cancel%</button>
|
||||||
<button :class="$style.ok" :disabled="!allowEmpty && text.length == 0" @click="ok">決定</button>
|
<button :class="$style.ok" :disabled="!allowEmpty && text.length == 0" @click="ok">%i18n:@ok%</button>
|
||||||
</div>
|
</div>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
|
@ -1,125 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="mk-mentions">
|
|
||||||
<header>
|
|
||||||
<span :data-active="mode == 'all'" @click="mode = 'all'">すべて</span>
|
|
||||||
<span :data-active="mode == 'following'" @click="mode = 'following'">フォロー中</span>
|
|
||||||
</header>
|
|
||||||
<div class="fetching" v-if="fetching">
|
|
||||||
<mk-ellipsis-icon/>
|
|
||||||
</div>
|
|
||||||
<p class="empty" v-if="notes.length == 0 && !fetching">
|
|
||||||
%fa:R comments%
|
|
||||||
<span v-if="mode == 'all'">あなた宛ての投稿はありません。</span>
|
|
||||||
<span v-if="mode == 'following'">あなたがフォローしているユーザーからの言及はありません。</span>
|
|
||||||
</p>
|
|
||||||
<mk-notes :notes="notes" ref="timeline"/>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script lang="ts">
|
|
||||||
import Vue from 'vue';
|
|
||||||
export default Vue.extend({
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
fetching: true,
|
|
||||||
moreFetching: false,
|
|
||||||
mode: 'all',
|
|
||||||
notes: []
|
|
||||||
};
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
mode() {
|
|
||||||
this.fetch();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
document.addEventListener('keydown', this.onDocumentKeydown);
|
|
||||||
window.addEventListener('scroll', this.onScroll);
|
|
||||||
|
|
||||||
this.fetch(() => this.$emit('loaded'));
|
|
||||||
},
|
|
||||||
beforeDestroy() {
|
|
||||||
document.removeEventListener('keydown', this.onDocumentKeydown);
|
|
||||||
window.removeEventListener('scroll', this.onScroll);
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
onDocumentKeydown(e) {
|
|
||||||
if (e.target.tagName != 'INPUT' && e.target.tagName != 'TEXTAREA') {
|
|
||||||
if (e.which == 84) { // t
|
|
||||||
(this.$refs.timeline as any).focus();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
onScroll() {
|
|
||||||
const current = window.scrollY + window.innerHeight;
|
|
||||||
if (current > document.body.offsetHeight - 8) this.more();
|
|
||||||
},
|
|
||||||
fetch(cb?) {
|
|
||||||
this.fetching = true;
|
|
||||||
this.notes = [];
|
|
||||||
(this as any).api('notes/mentions', {
|
|
||||||
following: this.mode == 'following'
|
|
||||||
}).then(notes => {
|
|
||||||
this.notes = notes;
|
|
||||||
this.fetching = false;
|
|
||||||
if (cb) cb();
|
|
||||||
});
|
|
||||||
},
|
|
||||||
more() {
|
|
||||||
if (this.moreFetching || this.fetching || this.notes.length == 0) return;
|
|
||||||
this.moreFetching = true;
|
|
||||||
(this as any).api('notes/mentions', {
|
|
||||||
following: this.mode == 'following',
|
|
||||||
untilId: this.notes[this.notes.length - 1].id
|
|
||||||
}).then(notes => {
|
|
||||||
this.notes = this.notes.concat(notes);
|
|
||||||
this.moreFetching = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<style lang="stylus" scoped>
|
|
||||||
@import '~const.styl'
|
|
||||||
|
|
||||||
.mk-mentions
|
|
||||||
background #fff
|
|
||||||
border solid 1px rgba(#000, 0.075)
|
|
||||||
border-radius 6px
|
|
||||||
|
|
||||||
> header
|
|
||||||
padding 8px 16px
|
|
||||||
border-bottom solid 1px #eee
|
|
||||||
|
|
||||||
> span
|
|
||||||
margin-right 16px
|
|
||||||
line-height 27px
|
|
||||||
font-size 18px
|
|
||||||
color #555
|
|
||||||
|
|
||||||
&:not([data-active])
|
|
||||||
color $theme-color
|
|
||||||
cursor pointer
|
|
||||||
|
|
||||||
&:hover
|
|
||||||
text-decoration underline
|
|
||||||
|
|
||||||
> .fetching
|
|
||||||
padding 64px 0
|
|
||||||
|
|
||||||
> .empty
|
|
||||||
display block
|
|
||||||
margin 0 auto
|
|
||||||
padding 32px
|
|
||||||
max-width 400px
|
|
||||||
text-align center
|
|
||||||
color #999
|
|
||||||
|
|
||||||
> [data-fa]
|
|
||||||
display block
|
|
||||||
margin-bottom 16px
|
|
||||||
font-size 3em
|
|
||||||
color #ccc
|
|
||||||
|
|
||||||
</style>
|
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="$destroy">
|
<mk-window ref="window" width="500px" height="560px" :popout-url="popout" @closed="$destroy">
|
||||||
<span slot="header" :class="$style.header">%fa:comments%メッセージ: {{ user | userName }}</span>
|
<span slot="header" :class="$style.header">%fa:comments%%i18n:@title% {{ user | userName }}</span>
|
||||||
<mk-messaging-room :user="user" :class="$style.content"/>
|
<mk-messaging-room :user="user" :class="$style.content"/>
|
||||||
</mk-window>
|
</mk-window>
|
||||||
</template>
|
</template>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="note.isHidden" style="opacity: 0.5">(この投稿は非公開です)</span>
|
<span v-if="note.isHidden" style="opacity: 0.5">%i18n:@private%</span>
|
||||||
<mk-note-html v-if="note.text" :text="note.text" :i="os.i"/>
|
<mk-note-html v-if="note.text" :text="note.text" :i="os.i"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="media" v-if="note.mediaIds.length > 0">
|
<div class="media" v-if="note.mediaIds.length > 0">
|
||||||
|
@ -2,16 +2,16 @@
|
|||||||
<div class="mk-note-detail" :title="title">
|
<div class="mk-note-detail" :title="title">
|
||||||
<button
|
<button
|
||||||
class="read-more"
|
class="read-more"
|
||||||
v-if="p.reply && p.reply.replyId && context.length == 0"
|
v-if="p.reply && p.reply.replyId && conversation.length == 0"
|
||||||
title="会話をもっと読み込む"
|
title="%i18n:@more%"
|
||||||
@click="fetchContext"
|
@click="fetchConversation"
|
||||||
:disabled="contextFetching"
|
:disabled="conversationFetching"
|
||||||
>
|
>
|
||||||
<template v-if="!contextFetching">%fa:ellipsis-v%</template>
|
<template v-if="!conversationFetching">%fa:ellipsis-v%</template>
|
||||||
<template v-if="contextFetching">%fa:spinner .pulse%</template>
|
<template v-if="conversationFetching">%fa:spinner .pulse%</template>
|
||||||
</button>
|
</button>
|
||||||
<div class="context">
|
<div class="conversation">
|
||||||
<x-sub v-for="note in context" :key="note.id" :note="note"/>
|
<x-sub v-for="note in conversation" :key="note.id" :note="note"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="reply-to" v-if="p.reply">
|
<div class="reply-to" v-if="p.reply">
|
||||||
<x-sub :note="p.reply"/>
|
<x-sub :note="p.reply"/>
|
||||||
@ -21,7 +21,10 @@
|
|||||||
<mk-avatar class="avatar" :user="note.user"/>
|
<mk-avatar class="avatar" :user="note.user"/>
|
||||||
%fa:retweet%
|
%fa:retweet%
|
||||||
<router-link class="name" :href="note.user | userPage">{{ note.user | userName }}</router-link>
|
<router-link class="name" :href="note.user | userPage">{{ note.user | userName }}</router-link>
|
||||||
がRenote
|
<span>{{ '%i18n:@reposted-by%'.substr(0, '%i18n:@reposted-by%'.indexOf('{')) }}</span>
|
||||||
|
<a class="name" :href="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</a>
|
||||||
|
<span>{{ '%i18n:@reposted-by%'.substr('%i18n:@reposted-by%'.indexOf('}') + 1) }}</span>
|
||||||
|
<mk-time :time="note.createdAt"/>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<article>
|
<article>
|
||||||
@ -35,7 +38,7 @@
|
|||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<div class="text">
|
<div class="text">
|
||||||
<span v-if="p.isHidden" style="opacity: 0.5">(この投稿は非公開です)</span>
|
<span v-if="p.isHidden" style="opacity: 0.5">%i18n:@private%</span>
|
||||||
<mk-note-html v-if="p.text" :text="p.text" :i="os.i"/>
|
<mk-note-html v-if="p.text" :text="p.text" :i="os.i"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="media" v-if="p.media.length > 0">
|
<div class="media" v-if="p.media.length > 0">
|
||||||
@ -46,7 +49,7 @@
|
|||||||
<div class="tags" v-if="p.tags && p.tags.length > 0">
|
<div class="tags" v-if="p.tags && p.tags.length > 0">
|
||||||
<router-link v-for="tag in p.tags" :key="tag" :to="`/search?q=#${tag}`">{{ tag }}</router-link>
|
<router-link v-for="tag in p.tags" :key="tag" :to="`/search?q=#${tag}`">{{ tag }}</router-link>
|
||||||
</div>
|
</div>
|
||||||
<a class="location" v-if="p.geo" :href="`http://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% 位置情報</a>
|
<a class="location" v-if="p.geo" :href="`http://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% %i18n:@location%</a>
|
||||||
<div class="map" v-if="p.geo" ref="map"></div>
|
<div class="map" v-if="p.geo" ref="map"></div>
|
||||||
<div class="renote" v-if="p.renote">
|
<div class="renote" v-if="p.renote">
|
||||||
<mk-note-preview :note="p.renote"/>
|
<mk-note-preview :note="p.renote"/>
|
||||||
@ -54,15 +57,15 @@
|
|||||||
</div>
|
</div>
|
||||||
<footer>
|
<footer>
|
||||||
<mk-reactions-viewer :note="p"/>
|
<mk-reactions-viewer :note="p"/>
|
||||||
<button @click="reply" title="返信">
|
<button @click="reply" title="">
|
||||||
<template v-if="p.reply">%fa:reply-all%</template>
|
<template v-if="p.reply">%fa:reply-all%</template>
|
||||||
<template v-else>%fa:reply%</template>
|
<template v-else>%fa:reply%</template>
|
||||||
<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
|
<p class="count" v-if="p.repliesCount > 0">{{ p.repliesCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button @click="renote" title="Renote">
|
<button @click="renote" title="%i18n:@renote%">
|
||||||
%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
|
%fa:retweet%<p class="count" v-if="p.renoteCount > 0">{{ p.renoteCount }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="リアクション">
|
<button :class="{ reacted: p.myReaction != null }" @click="react" ref="reactButton" title="%i18n:@add-reaction%">
|
||||||
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
|
%fa:plus%<p class="count" v-if="p.reactions_count > 0">{{ p.reactions_count }}</p>
|
||||||
</button>
|
</button>
|
||||||
<button @click="menu" ref="menuButton">
|
<button @click="menu" ref="menuButton">
|
||||||
@ -104,8 +107,8 @@ export default Vue.extend({
|
|||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
context: [],
|
conversation: [],
|
||||||
contextFetching: false,
|
conversationFetching: false,
|
||||||
replies: []
|
replies: []
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -173,15 +176,15 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
fetchContext() {
|
fetchConversation() {
|
||||||
this.contextFetching = true;
|
this.conversationFetching = true;
|
||||||
|
|
||||||
// Fetch context
|
// Fetch conversation
|
||||||
(this as any).api('notes/context', {
|
(this as any).api('notes/conversation', {
|
||||||
noteId: this.p.replyId
|
noteId: this.p.replyId
|
||||||
}).then(context => {
|
}).then(conversation => {
|
||||||
this.contextFetching = false;
|
this.conversationFetching = false;
|
||||||
this.context = context.reverse();
|
this.conversation = conversation.reverse();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
reply() {
|
reply() {
|
||||||
@ -246,7 +249,7 @@ root(isDark)
|
|||||||
&:disabled
|
&:disabled
|
||||||
color isDark ? #21242b : #ccc
|
color isDark ? #21242b : #ccc
|
||||||
|
|
||||||
> .context
|
> .conversation
|
||||||
> *
|
> *
|
||||||
border-bottom 1px solid isDark ? #1c2023 : #eef0f2
|
border-bottom 1px solid isDark ? #1c2023 : #eef0f2
|
||||||
|
|
||||||
|
@ -4,6 +4,9 @@
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<header>
|
<header>
|
||||||
<router-link class="name" :to="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</router-link>
|
<router-link class="name" :to="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</router-link>
|
||||||
|
<span class="is-admin" v-if="note.user.isAdmin">admin</span>
|
||||||
|
<span class="is-bot" v-if="note.user.isBot">bot</span>
|
||||||
|
<span class="is-cat" v-if="note.user.isCat">cat</span>
|
||||||
<span class="username"><mk-acct :user="note.user"/></span>
|
<span class="username"><mk-acct :user="note.user"/></span>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<span class="mobile" v-if="note.viaMobile">%fa:mobile-alt%</span>
|
<span class="mobile" v-if="note.viaMobile">%fa:mobile-alt%</span>
|
||||||
@ -68,7 +71,6 @@ root(isDark)
|
|||||||
align-items baseline
|
align-items baseline
|
||||||
margin-bottom 2px
|
margin-bottom 2px
|
||||||
white-space nowrap
|
white-space nowrap
|
||||||
line-height 21px
|
|
||||||
|
|
||||||
> .name
|
> .name
|
||||||
display block
|
display block
|
||||||
@ -84,6 +86,20 @@ root(isDark)
|
|||||||
&:hover
|
&:hover
|
||||||
text-decoration underline
|
text-decoration underline
|
||||||
|
|
||||||
|
> .is-admin
|
||||||
|
> .is-bot
|
||||||
|
> .is-cat
|
||||||
|
margin 0 0.5em 0 0
|
||||||
|
padding 1px 5px
|
||||||
|
font-size 10px
|
||||||
|
color isDark ? #758188 : #aaa
|
||||||
|
border solid 1px isDark ? #57616f : #ddd
|
||||||
|
border-radius 3px
|
||||||
|
|
||||||
|
&.is-admin
|
||||||
|
border-color isDark ? #d42c41 : #f56a7b
|
||||||
|
color isDark ? #d42c41 : #f56a7b
|
||||||
|
|
||||||
> .username
|
> .username
|
||||||
margin 0 .5em 0 0
|
margin 0 .5em 0 0
|
||||||
color isDark ? #606984 : #d1d8da
|
color isDark ? #606984 : #d1d8da
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
<div class="renote" v-if="isRenote">
|
<div class="renote" v-if="isRenote">
|
||||||
<mk-avatar class="avatar" :user="note.user"/>
|
<mk-avatar class="avatar" :user="note.user"/>
|
||||||
%fa:retweet%
|
%fa:retweet%
|
||||||
<span>{{ '%i18n:!@reposted-by%'.substr(0, '%i18n:!@reposted-by%'.indexOf('{')) }}</span>
|
<span>{{ '%i18n:@reposted-by%'.substr(0, '%i18n:@reposted-by%'.indexOf('{')) }}</span>
|
||||||
<a class="name" :href="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</a>
|
<a class="name" :href="note.user | userPage" v-user-preview="note.userId">{{ note.user | userName }}</a>
|
||||||
<span>{{ '%i18n:!@reposted-by%'.substr('%i18n:!@reposted-by%'.indexOf('}') + 1) }}</span>
|
<span>{{ '%i18n:@reposted-by%'.substr('%i18n:@reposted-by%'.indexOf('}') + 1) }}</span>
|
||||||
<mk-time :time="note.createdAt"/>
|
<mk-time :time="note.createdAt"/>
|
||||||
</div>
|
</div>
|
||||||
<article>
|
<article>
|
||||||
@ -16,7 +16,9 @@
|
|||||||
<div class="main">
|
<div class="main">
|
||||||
<header>
|
<header>
|
||||||
<router-link class="name" :to="p.user | userPage" v-user-preview="p.user.id">{{ p.user | userName }}</router-link>
|
<router-link class="name" :to="p.user | userPage" v-user-preview="p.user.id">{{ p.user | userName }}</router-link>
|
||||||
<span class="is-bot" v-if="p.user.host === null && p.user.isBot">bot</span>
|
<span class="is-admin" v-if="p.user.isAdmin">admin</span>
|
||||||
|
<span class="is-bot" v-if="p.user.isBot">bot</span>
|
||||||
|
<span class="is-cat" v-if="p.user.isCat">cat</span>
|
||||||
<span class="username"><mk-acct :user="p.user"/></span>
|
<span class="username"><mk-acct :user="p.user"/></span>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<span class="app" v-if="p.app">via <b>{{ p.app.name }}</b></span>
|
<span class="app" v-if="p.app">via <b>{{ p.app.name }}</b></span>
|
||||||
@ -33,9 +35,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p class="channel" v-if="p.channel">
|
|
||||||
<a :href="`${_CH_URL_}/${p.channel.id}`" target="_blank">{{ p.channel.title }}</a>:
|
|
||||||
</p>
|
|
||||||
<p v-if="p.cw != null" class="cw">
|
<p v-if="p.cw != null" class="cw">
|
||||||
<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
|
<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
|
||||||
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '隠す' : 'もっと見る' }}</span>
|
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '隠す' : 'もっと見る' }}</span>
|
||||||
@ -433,7 +432,9 @@ root(isDark)
|
|||||||
&:hover
|
&:hover
|
||||||
text-decoration underline
|
text-decoration underline
|
||||||
|
|
||||||
|
> .is-admin
|
||||||
> .is-bot
|
> .is-bot
|
||||||
|
> .is-cat
|
||||||
margin 0 .5em 0 0
|
margin 0 .5em 0 0
|
||||||
padding 1px 6px
|
padding 1px 6px
|
||||||
font-size 12px
|
font-size 12px
|
||||||
@ -441,6 +442,10 @@ root(isDark)
|
|||||||
border solid 1px isDark ? #57616f : #ddd
|
border solid 1px isDark ? #57616f : #ddd
|
||||||
border-radius 3px
|
border-radius 3px
|
||||||
|
|
||||||
|
&.is-admin
|
||||||
|
border-color isDark ? #d42c41 : #f56a7b
|
||||||
|
color isDark ? #d42c41 : #f56a7b
|
||||||
|
|
||||||
> .username
|
> .username
|
||||||
margin 0 .5em 0 0
|
margin 0 .5em 0 0
|
||||||
overflow hidden
|
overflow hidden
|
||||||
@ -574,9 +579,6 @@ root(isDark)
|
|||||||
.mk-url-preview
|
.mk-url-preview
|
||||||
margin-top 8px
|
margin-top 8px
|
||||||
|
|
||||||
> .channel
|
|
||||||
margin 0
|
|
||||||
|
|
||||||
> .mk-poll
|
> .mk-poll
|
||||||
font-size 80%
|
font-size 80%
|
||||||
|
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
<slot name="empty" v-if="notes.length == 0 && !fetching && requestInitPromise == null"></slot>
|
<slot name="empty" v-if="notes.length == 0 && !fetching && requestInitPromise == null"></slot>
|
||||||
|
|
||||||
<div v-if="!fetching && requestInitPromise != null">
|
<div v-if="!fetching && requestInitPromise != null">
|
||||||
<p>読み込みに失敗しました。</p>
|
<p>%i18n:@error%</p>
|
||||||
<button @click="resolveInitPromise">リトライ</button>
|
<button @click="resolveInitPromise">%i18n:@retry%</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<transition-group name="mk-notes" class="transition">
|
<transition-group name="mk-notes" class="transition">
|
||||||
@ -145,9 +145,9 @@ export default Vue.extend({
|
|||||||
this.notes.unshift(note);
|
this.notes.unshift(note);
|
||||||
|
|
||||||
// サウンドを再生する
|
// サウンドを再生する
|
||||||
if ((this as any).os.isEnableSounds && !silent) {
|
if (this.$store.state.device.enableSounds && !silent) {
|
||||||
const sound = new Audio(`${url}/assets/post.mp3`);
|
const sound = new Audio(`${url}/assets/post.mp3`);
|
||||||
sound.volume = localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) / 100 : 0.5;
|
sound.volume = this.$store.state.device.soundVolume;
|
||||||
sound.play();
|
sound.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@
|
|||||||
</transition-group>
|
</transition-group>
|
||||||
</div>
|
</div>
|
||||||
<button class="more" :class="{ fetching: fetchingMoreNotifications }" v-if="moreNotifications" @click="fetchMoreNotifications" :disabled="fetchingMoreNotifications">
|
<button class="more" :class="{ fetching: fetchingMoreNotifications }" v-if="moreNotifications" @click="fetchMoreNotifications" :disabled="fetchingMoreNotifications">
|
||||||
<template v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</template>{{ fetchingMoreNotifications ? '%i18n:!common.loading%' : '%i18n:!@more%' }}
|
<template v-if="fetchingMoreNotifications">%fa:spinner .pulse .fw%</template>{{ fetchingMoreNotifications ? '%i18n:common.loading%' : '%i18n:@more%' }}
|
||||||
</button>
|
</button>
|
||||||
<p class="empty" v-if="notifications.length == 0 && !fetching">%i18n:@empty%</p>
|
<p class="empty" v-if="notifications.length == 0 && !fetching">%i18n:@empty%</p>
|
||||||
<p class="loading" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
<p class="loading" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
<span :class="$style.icon" v-if="geo">%fa:map-marker-alt%</span>
|
<span :class="$style.icon" v-if="geo">%fa:map-marker-alt%</span>
|
||||||
<span v-if="!reply">%i18n:@note%</span>
|
<span v-if="!reply">%i18n:@note%</span>
|
||||||
<span v-if="reply">%i18n:@reply%</span>
|
<span v-if="reply">%i18n:@reply%</span>
|
||||||
<span :class="$style.count" v-if="media.length != 0">{{ '%i18n:!@attaches%'.replace('{}', media.length) }}</span>
|
<span :class="$style.count" v-if="media.length != 0">{{ '%i18n:@attaches%'.replace('{}', media.length) }}</span>
|
||||||
<span :class="$style.count" v-if="uploadings.length != 0">{{ '%i18n:!@uploading-media%'.replace('{}', uploadings.length) }}<mk-ellipsis/></span>
|
<span :class="$style.count" v-if="uploadings.length != 0">{{ '%i18n:@uploading-media%'.replace('{}', uploadings.length) }}<mk-ellipsis/></span>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<mk-note-preview v-if="reply" :class="$style.notePreview" :note="reply"/>
|
<mk-note-preview v-if="reply" :class="$style.notePreview" :note="reply"/>
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
<button class="visibility" title="公開範囲" @click="setVisibility" ref="visibilityButton">%fa:lock%</button>
|
<button class="visibility" title="公開範囲" @click="setVisibility" ref="visibilityButton">%fa:lock%</button>
|
||||||
<p class="text-count" :class="{ over: text.length > 1000 }">{{ 1000 - text.length }}</p>
|
<p class="text-count" :class="{ over: text.length > 1000 }">{{ 1000 - text.length }}</p>
|
||||||
<button :class="{ posting }" class="submit" :disabled="!canPost" @click="post">
|
<button :class="{ posting }" class="submit" :disabled="!canPost" @click="post">
|
||||||
{{ posting ? '%i18n:!@posting%' : submitText }}<mk-ellipsis v-if="posting"/>
|
{{ posting ? '%i18n:@posting%' : submitText }}<mk-ellipsis v-if="posting"/>
|
||||||
</button>
|
</button>
|
||||||
<input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" @change="onChangeFile"/>
|
<input ref="file" type="file" accept="image/*" multiple="multiple" tabindex="-1" @change="onChangeFile"/>
|
||||||
<div class="dropzone" v-if="draghover"></div>
|
<div class="dropzone" v-if="draghover"></div>
|
||||||
@ -86,18 +86,18 @@ export default Vue.extend({
|
|||||||
|
|
||||||
placeholder(): string {
|
placeholder(): string {
|
||||||
return this.renote
|
return this.renote
|
||||||
? '%i18n:!@quote-placeholder%'
|
? '%i18n:@quote-placeholder%'
|
||||||
: this.reply
|
: this.reply
|
||||||
? '%i18n:!@reply-placeholder%'
|
? '%i18n:@reply-placeholder%'
|
||||||
: '%i18n:!@note-placeholder%';
|
: '%i18n:@note-placeholder%';
|
||||||
},
|
},
|
||||||
|
|
||||||
submitText(): string {
|
submitText(): string {
|
||||||
return this.renote
|
return this.renote
|
||||||
? '%i18n:!@renote%'
|
? '%i18n:@renote%'
|
||||||
: this.reply
|
: this.reply
|
||||||
? '%i18n:!@reply%'
|
? '%i18n:@reply%'
|
||||||
: '%i18n:!@note%';
|
: '%i18n:@note%';
|
||||||
},
|
},
|
||||||
|
|
||||||
canPost(): boolean {
|
canPost(): boolean {
|
||||||
@ -304,16 +304,16 @@ export default Vue.extend({
|
|||||||
this.deleteDraft();
|
this.deleteDraft();
|
||||||
this.$emit('posted');
|
this.$emit('posted');
|
||||||
(this as any).apis.notify(this.renote
|
(this as any).apis.notify(this.renote
|
||||||
? '%i18n:!@reposted%'
|
? '%i18n:@reposted%'
|
||||||
: this.reply
|
: this.reply
|
||||||
? '%i18n:!@replied%'
|
? '%i18n:@replied%'
|
||||||
: '%i18n:!@posted%');
|
: '%i18n:@posted%');
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
(this as any).apis.notify(this.renote
|
(this as any).apis.notify(this.renote
|
||||||
? '%i18n:!@renote-failed%'
|
? '%i18n:@renote-failed%'
|
||||||
: this.reply
|
: this.reply
|
||||||
? '%i18n:!@reply-failed%'
|
? '%i18n:@reply-failed%'
|
||||||
: '%i18n:!@note-failed%');
|
: '%i18n:@note-failed%');
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.posting = false;
|
this.posting = false;
|
||||||
});
|
});
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<mk-window ref="window" :is-modal="false" :can-close="false" width="500px" @closed="$destroy">
|
<mk-window ref="window" :is-modal="false" :can-close="false" width="500px" @closed="$destroy">
|
||||||
<span slot="header">{{ title }}<mk-ellipsis/></span>
|
<span slot="header">{{ title }}<mk-ellipsis/></span>
|
||||||
<div :class="$style.body">
|
<div :class="$style.body">
|
||||||
<p :class="$style.init" v-if="isNaN(value)">待機中<mk-ellipsis/></p>
|
<p :class="$style.init" v-if="isNaN(value)">%i18n:@waiting%<mk-ellipsis/></p>
|
||||||
<p :class="$style.percentage" v-if="!isNaN(value)">{{ Math.floor((value / max) * 100) }}</p>
|
<p :class="$style.percentage" v-if="!isNaN(value)">{{ Math.floor((value / max) * 100) }}</p>
|
||||||
<progress :class="$style.progress"
|
<progress :class="$style.progress"
|
||||||
v-if="!isNaN(value) && value < max"
|
v-if="!isNaN(value) && value < max"
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<footer>
|
<footer>
|
||||||
<a class="quote" v-if="!quote" @click="onQuote">%i18n:@quote%</a>
|
<a class="quote" v-if="!quote" @click="onQuote">%i18n:@quote%</a>
|
||||||
<button class="ui cancel" @click="cancel">%i18n:@cancel%</button>
|
<button class="ui cancel" @click="cancel">%i18n:@cancel%</button>
|
||||||
<button class="ui primary ok" @click="ok" :disabled="wait">{{ wait ? '%i18n:!@reposting%' : '%i18n:!@renote%' }}</button>
|
<button class="ui primary ok" @click="ok" :disabled="wait">{{ wait ? '%i18n:@reposting%' : '%i18n:@renote%' }}</button>
|
||||||
</footer>
|
</footer>
|
||||||
</template>
|
</template>
|
||||||
<template v-if="quote">
|
<template v-if="quote">
|
||||||
@ -32,9 +32,9 @@ export default Vue.extend({
|
|||||||
renoteId: this.note.id
|
renoteId: this.note.id
|
||||||
}).then(data => {
|
}).then(data => {
|
||||||
this.$emit('posted');
|
this.$emit('posted');
|
||||||
(this as any).apis.notify('%i18n:!@success%');
|
(this as any).apis.notify('%i18n:@success%');
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
(this as any).apis.notify('%i18n:!@failure%');
|
(this as any).apis.notify('%i18n:@failure%');
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
this.wait = false;
|
this.wait = false;
|
||||||
});
|
});
|
||||||
|
@ -34,7 +34,7 @@ export default Vue.extend({
|
|||||||
methods: {
|
methods: {
|
||||||
register() {
|
register() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-password%',
|
title: '%i18n:@enter-password%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(password => {
|
}).then(password => {
|
||||||
(this as any).api('i/2fa/register', {
|
(this as any).api('i/2fa/register', {
|
||||||
@ -47,13 +47,13 @@ export default Vue.extend({
|
|||||||
|
|
||||||
unregister() {
|
unregister() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-password%',
|
title: '%i18n:@enter-password%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(password => {
|
}).then(password => {
|
||||||
(this as any).api('i/2fa/unregister', {
|
(this as any).api('i/2fa/unregister', {
|
||||||
password: password
|
password: password
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
(this as any).apis.notify('%i18n:!@unregistered%');
|
(this as any).apis.notify('%i18n:@unregistered%');
|
||||||
(this as any).os.i.twoFactorEnabled = false;
|
(this as any).os.i.twoFactorEnabled = false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -63,10 +63,10 @@ export default Vue.extend({
|
|||||||
(this as any).api('i/2fa/done', {
|
(this as any).api('i/2fa/done', {
|
||||||
token: this.token
|
token: this.token
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
(this as any).apis.notify('%i18n:!@success%');
|
(this as any).apis.notify('%i18n:@success%');
|
||||||
(this as any).os.i.twoFactorEnabled = true;
|
(this as any).os.i.twoFactorEnabled = true;
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
(this as any).apis.notify('%i18n:!@failed%');
|
(this as any).apis.notify('%i18n:@failed%');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ export default Vue.extend({
|
|||||||
methods: {
|
methods: {
|
||||||
regenerateToken() {
|
regenerateToken() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-password%',
|
title: '%i18n:@enter-password%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(password => {
|
}).then(password => {
|
||||||
(this as any).api('i/regenerate_token', {
|
(this as any).api('i/regenerate_token', {
|
||||||
|
@ -11,21 +11,21 @@ export default Vue.extend({
|
|||||||
methods: {
|
methods: {
|
||||||
reset() {
|
reset() {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-current-password%',
|
title: '%i18n:@enter-current-password%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(currentPassword => {
|
}).then(currentPassword => {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-new-password%',
|
title: '%i18n:@enter-new-password%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(newPassword => {
|
}).then(newPassword => {
|
||||||
(this as any).apis.input({
|
(this as any).apis.input({
|
||||||
title: '%i18n:!@enter-new-password-again%',
|
title: '%i18n:@enter-new-password-again%',
|
||||||
type: 'password'
|
type: 'password'
|
||||||
}).then(newPassword2 => {
|
}).then(newPassword2 => {
|
||||||
if (newPassword !== newPassword2) {
|
if (newPassword !== newPassword2) {
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: null,
|
title: null,
|
||||||
text: '%i18n:!@not-match%',
|
text: '%i18n:@not-match%',
|
||||||
actions: [{
|
actions: [{
|
||||||
text: 'OK'
|
text: 'OK'
|
||||||
}]
|
}]
|
||||||
@ -36,7 +36,7 @@ export default Vue.extend({
|
|||||||
currentPasword: currentPassword,
|
currentPasword: currentPassword,
|
||||||
newPassword: newPassword
|
newPassword: newPassword
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
(this as any).apis.notify('%i18n:!@changed%');
|
(this as any).apis.notify('%i18n:@changed%');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
<button class="ui primary" @click="save">%i18n:@save%</button>
|
<button class="ui primary" @click="save">%i18n:@save%</button>
|
||||||
<section>
|
<section>
|
||||||
<h2>その他</h2>
|
<h2>その他</h2>
|
||||||
<mk-switch v-model="os.i.isBot" @change="onChangeIsBot" text="このアカウントはbotです"/>
|
<mk-switch v-model="os.i.isBot" @change="onChangeIsBot" text="%i18n:@is-bot%"/>
|
||||||
|
<mk-switch v-model="os.i.isCat" @change="onChangeIsCat" text="%i18n:@is-cat%"/>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -65,6 +66,11 @@ export default Vue.extend({
|
|||||||
(this as any).api('i/update', {
|
(this as any).api('i/update', {
|
||||||
isBot: (this as any).os.i.isBot
|
isBot: (this as any).os.i.isBot
|
||||||
});
|
});
|
||||||
|
},
|
||||||
|
onChangeIsCat() {
|
||||||
|
(this as any).api('i/update', {
|
||||||
|
isCat: (this as any).os.i.isCat
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -19,91 +19,89 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>動作</h1>
|
<h1>%i18n:@behaviour%</h1>
|
||||||
<mk-switch v-model="clientSettings.fetchOnScroll" @change="onChangeFetchOnScroll" text="スクロールで自動読み込み">
|
<mk-switch v-model="clientSettings.fetchOnScroll" @change="onChangeFetchOnScroll" text="%i18n:@fetch-on-scroll%">
|
||||||
<span>ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。</span>
|
<span>%i18n:@fetch-on-scroll-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<mk-switch v-model="autoPopout" text="ウィンドウの自動ポップアウト">
|
<mk-switch v-model="autoPopout" text="%i18n:@auto-popout%">
|
||||||
<span>ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。</span>
|
<span>%i18n:@auto-popout-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<details>
|
<details>
|
||||||
<summary>詳細設定</summary>
|
<summary>%i18n:@advanced%</summary>
|
||||||
<mk-switch v-model="apiViaStream" text="ストリームを経由したAPIリクエスト">
|
<mk-switch v-model="apiViaStream" text="%i18n:@api-via-stream%">
|
||||||
<span>この設定をオンにすると、websocket接続を経由してAPIリクエストが行われます(パフォーマンス向上が期待できます)。オフにすると、ネイティブの fetch APIが利用されます。この設定はこのデバイスのみ有効です。</span>
|
<span>%i18n:@api-via-stream-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
</details>
|
</details>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>デザインと表示</h1>
|
<h1>%i18n:@display%</h1>
|
||||||
<div class="div">
|
<div class="div">
|
||||||
<button class="ui button" @click="customizeHome" style="margin-bottom: 16px">ホームをカスタマイズ</button>
|
<button class="ui button" @click="customizeHome" style="margin-bottom: 16px">%i18n:@customize%</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="div">
|
<div class="div">
|
||||||
<mk-switch v-model="darkmode" text="ダークモード"/>
|
<mk-switch v-model="darkmode" text="%i18n:@dark-mode%"/>
|
||||||
<mk-switch v-model="clientSettings.circleIcons" @change="onChangeCircleIcons" text="円形のアイコンを使用"/>
|
<mk-switch v-model="clientSettings.circleIcons" @change="onChangeCircleIcons" text="%i18n:@circle-icons%"/>
|
||||||
<mk-switch v-model="clientSettings.gradientWindowHeader" @change="onChangeGradientWindowHeader" text="ウィンドウのタイトルバーにグラデーションを使用"/>
|
<mk-switch v-model="clientSettings.gradientWindowHeader" @change="onChangeGradientWindowHeader" text="%i18n:@gradient-window-header%"/>
|
||||||
</div>
|
</div>
|
||||||
<mk-switch v-model="clientSettings.showPostFormOnTopOfTl" @change="onChangeShowPostFormOnTopOfTl" text="タイムライン上部に投稿フォームを表示する"/>
|
<mk-switch v-model="clientSettings.showPostFormOnTopOfTl" @change="onChangeShowPostFormOnTopOfTl" text="%i18n:@post-form-on-timeline%"/>
|
||||||
<mk-switch v-model="clientSettings.showReplyTarget" @change="onChangeShowReplyTarget" text="リプライ先を表示する"/>
|
<mk-switch v-model="clientSettings.showReplyTarget" @change="onChangeShowReplyTarget" text="%i18n:@show-reply-target%"/>
|
||||||
<mk-switch v-model="clientSettings.showMyRenotes" @change="onChangeShowMyRenotes" text="自分の行ったRenoteをタイムラインに表示する"/>
|
<mk-switch v-model="clientSettings.showMyRenotes" @change="onChangeShowMyRenotes" text="%i18n:@show-my-renotes%"/>
|
||||||
<mk-switch v-model="clientSettings.showRenotedMyNotes" @change="onChangeShowRenotedMyNotes" text="Renoteされた自分の投稿をタイムラインに表示する"/>
|
<mk-switch v-model="clientSettings.showRenotedMyNotes" @change="onChangeShowRenotedMyNotes" text="%i18n:@show-renoted-my-notes%"/>
|
||||||
<mk-switch v-model="clientSettings.showMaps" @change="onChangeShowMaps" text="マップの自動展開">
|
<mk-switch v-model="clientSettings.showMaps" @change="onChangeShowMaps" text="%i18n:@show-maps%">
|
||||||
<span>位置情報が添付された投稿のマップを自動的に展開します。</span>
|
<span>%i18n:@show-maps-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>サウンド</h1>
|
<h1>%i18n:@sound%</h1>
|
||||||
<mk-switch v-model="enableSounds" text="サウンドを有効にする">
|
<mk-switch v-model="enableSounds" text="%i18n:@enable-sounds%">
|
||||||
<span>投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。</span>
|
<span>%i18n:@enable-sounds-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<label>ボリューム</label>
|
<label>%i18n:@volume%</label>
|
||||||
<el-slider
|
<el-slider
|
||||||
v-model="soundVolume"
|
v-model="soundVolume"
|
||||||
:show-input="true"
|
:show-input="true"
|
||||||
:format-tooltip="v => `${v}%`"
|
:format-tooltip="v => `${v * 100}%`"
|
||||||
:disabled="!enableSounds"
|
:disabled="!enableSounds"
|
||||||
|
:max="1"
|
||||||
|
:step="0.1"
|
||||||
/>
|
/>
|
||||||
<button class="ui button" @click="soundTest">%fa:volume-up% テスト</button>
|
<button class="ui button" @click="soundTest">%fa:volume-up% %i18n:@test%</button>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>モバイル</h1>
|
<h1>%i18n:@mobile%</h1>
|
||||||
<mk-switch v-model="clientSettings.disableViaMobile" @change="onChangeDisableViaMobile" text="「モバイルからの投稿」フラグを付けない"/>
|
<mk-switch v-model="clientSettings.disableViaMobile" @change="onChangeDisableViaMobile" text="%i18n:@disable-via-mobile%"/>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>言語</h1>
|
<h1>%i18n:@language%</h1>
|
||||||
<el-select v-model="lang" placeholder="言語を選択">
|
<el-select v-model="lang" placeholder="%i18n:@pick-language%">
|
||||||
<el-option-group label="推奨">
|
<el-option-group label="%i18n:@recommended%">
|
||||||
<el-option label="自動" value=""/>
|
<el-option label="%i18n:@auto%" :value="null"/>
|
||||||
</el-option-group>
|
</el-option-group>
|
||||||
<el-option-group label="言語を指定">
|
<el-option-group label="%i18n:@specify-language%">
|
||||||
<el-option label="ja" value="ja"/>
|
<el-option v-for="x in langs" :label="x[1]" :value="x[0]" :key="x[0]"/>
|
||||||
<el-option label="en" value="en"/>
|
|
||||||
<el-option label="fr" value="fr"/>
|
|
||||||
<el-option label="pl" value="pl"/>
|
|
||||||
<el-option label="de" value="de"/>
|
|
||||||
</el-option-group>
|
</el-option-group>
|
||||||
</el-select>
|
</el-select>
|
||||||
<div class="none ui info">
|
<div class="none ui info">
|
||||||
<p>%fa:info-circle%変更はページの再度読み込み後に反映されます。</p>
|
<p>%fa:info-circle%%i18n:@language-desc%</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="web" v-show="page == 'web'">
|
<section class="web" v-show="page == 'web'">
|
||||||
<h1>キャッシュ</h1>
|
<h1>%i18n:@cache%</h1>
|
||||||
<button class="ui button" @click="clean">クリーンアップ</button>
|
<button class="ui button" @click="clean">%i18n:@clean-cache%</button>
|
||||||
<div class="none ui info warn">
|
<div class="none ui info warn">
|
||||||
<p>%fa:exclamation-triangle%クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。</p>
|
<p>%fa:exclamation-triangle%%i18n:@cache-warn%</p>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="notification" v-show="page == 'notification'">
|
<section class="notification" v-show="page == 'notification'">
|
||||||
<h1>%i18n:@notification%</h1>
|
<h1>%i18n:@notification%</h1>
|
||||||
<mk-switch v-model="os.i.settings.autoWatch" @change="onChangeAutoWatch" text="投稿の自動ウォッチ">
|
<mk-switch v-model="os.i.settings.autoWatch" @change="onChangeAutoWatch" text="%i18n:@auto-watch%">
|
||||||
<span>リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。</span>
|
<span>%i18n:@auto-watch-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -148,57 +146,49 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="other" v-show="page == 'other'">
|
<section class="other" v-show="page == 'other'">
|
||||||
<h1>Misskeyについて</h1>
|
<h1>%i18n:@about%</h1>
|
||||||
<p v-if="meta">このサーバーの運営者: <i><a :href="meta.maintainer.url" target="_blank">{{ meta.maintainer.name }}</a></i></p>
|
<p v-if="meta">%i18n:@operator%: <i><a :href="meta.maintainer.url" target="_blank">{{ meta.maintainer.name }}</a></i></p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="other" v-show="page == 'other'">
|
<section class="other" v-show="page == 'other'">
|
||||||
<h1>Misskey Update</h1>
|
<h1>%i18n:@update%</h1>
|
||||||
<p>
|
<p>
|
||||||
<span>バージョン: <i>{{ version }}</i></span>
|
<span>%i18n:@version% <i>{{ version }}</i></span>
|
||||||
<template v-if="latestVersion !== undefined">
|
<template v-if="latestVersion !== undefined">
|
||||||
<br>
|
<br>
|
||||||
<span>最新のバージョン: <i>{{ latestVersion ? latestVersion : version }}</i></span>
|
<span>%i18n:@latest-version% <i>{{ latestVersion ? latestVersion : version }}</i></span>
|
||||||
</template>
|
</template>
|
||||||
</p>
|
</p>
|
||||||
<button class="ui button block" @click="checkForUpdate" :disabled="checkingForUpdate">
|
<button class="ui button block" @click="checkForUpdate" :disabled="checkingForUpdate">
|
||||||
<template v-if="checkingForUpdate">アップデートを確認中<mk-ellipsis/></template>
|
<template v-if="checkingForUpdate">%i18n:@update-checking%<mk-ellipsis/></template>
|
||||||
<template v-else>アップデートを確認</template>
|
<template v-else>%i18n:@do-update%</template>
|
||||||
</button>
|
</button>
|
||||||
<details>
|
<details>
|
||||||
<summary>詳細設定</summary>
|
<summary>%i18n:@update-settings%</summary>
|
||||||
<mk-switch v-model="preventUpdate" text="アップデートを延期する(非推奨)">
|
<mk-switch v-model="preventUpdate" text="%i18n:@prevent-update%">
|
||||||
<span>この設定をオンにしてもアップデートが反映される場合があります。この設定はこのデバイスのみ有効です。</span>
|
<span>%i18n:@prevent-update-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
</details>
|
</details>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="other" v-show="page == 'other'">
|
<section class="other" v-show="page == 'other'">
|
||||||
<h1>高度な設定</h1>
|
<h1>%i18n:@advanced-settings%</h1>
|
||||||
<mk-switch v-model="debug" text="デバッグモードを有効にする">
|
<mk-switch v-model="debug" text="%i18n:@debug-mode%">
|
||||||
<span>この設定はブラウザに記憶されます。</span>
|
<span>%i18n:@debug-mode-desc%</span>
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<template v-if="debug">
|
<mk-switch v-model="enableExperimentalFeatures" text="%i18n:@experimental%">
|
||||||
<mk-switch v-model="useRawScript" text="生のスクリプトを読み込む">
|
<span>%i18n:@experimental-desc%</span>
|
||||||
<span>圧縮されていない「生の」スクリプトを使用します。サイズが大きいため、読み込みに時間がかかる場合があります。この設定はブラウザに記憶されます。</span>
|
|
||||||
</mk-switch>
|
|
||||||
<div class="none ui info">
|
|
||||||
<p>%fa:info-circle%Misskeyはソースマップも提供しています。</p>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<mk-switch v-model="enableExperimental" text="実験的機能を有効にする">
|
|
||||||
<span>実験的機能を有効にするとMisskeyの動作が不安定になる可能性があります。この設定はブラウザに記憶されます。</span>
|
|
||||||
</mk-switch>
|
</mk-switch>
|
||||||
<details v-if="debug">
|
<details v-if="debug">
|
||||||
<summary>ツール</summary>
|
<summary>%i18n:@tools%</summary>
|
||||||
<button class="ui button block" @click="taskmngr">タスクマネージャ</button>
|
<button class="ui button block" @click="taskmngr">%i18n:@task-manager%</button>
|
||||||
</details>
|
</details>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section class="other" v-show="page == 'other'">
|
<section class="other" v-show="page == 'other'">
|
||||||
<h1>%i18n:@license%</h1>
|
<h1>%i18n:@license%</h1>
|
||||||
<div v-html="license"></div>
|
<div v-html="license"></div>
|
||||||
<a :href="licenseUrl" target="_blank">サードパーティ</a>
|
<a :href="licenseUrl" target="_blank">%i18n:@third-parties%</a>
|
||||||
</section>
|
</section>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -214,7 +204,7 @@ import XApi from './settings.api.vue';
|
|||||||
import XApps from './settings.apps.vue';
|
import XApps from './settings.apps.vue';
|
||||||
import XSignins from './settings.signins.vue';
|
import XSignins from './settings.signins.vue';
|
||||||
import XDrive from './settings.drive.vue';
|
import XDrive from './settings.drive.vue';
|
||||||
import { url, docsUrl, license, lang, version } from '../../../config';
|
import { url, docsUrl, license, lang, langs, version } from '../../../config';
|
||||||
import checkForUpdate from '../../../common/scripts/check-for-update';
|
import checkForUpdate from '../../../common/scripts/check-for-update';
|
||||||
import MkTaskManager from './taskmanager.vue';
|
import MkTaskManager from './taskmanager.vue';
|
||||||
|
|
||||||
@ -235,55 +225,59 @@ export default Vue.extend({
|
|||||||
meta: null,
|
meta: null,
|
||||||
license,
|
license,
|
||||||
version,
|
version,
|
||||||
|
langs,
|
||||||
latestVersion: undefined,
|
latestVersion: undefined,
|
||||||
checkingForUpdate: false,
|
checkingForUpdate: false
|
||||||
darkmode: localStorage.getItem('darkmode') == 'true',
|
|
||||||
enableSounds: localStorage.getItem('enableSounds') == 'true',
|
|
||||||
autoPopout: localStorage.getItem('autoPopout') == 'true',
|
|
||||||
apiViaStream: localStorage.getItem('apiViaStream') ? localStorage.getItem('apiViaStream') == 'true' : true,
|
|
||||||
soundVolume: localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) : 50,
|
|
||||||
lang: localStorage.getItem('lang') || '',
|
|
||||||
preventUpdate: localStorage.getItem('preventUpdate') == 'true',
|
|
||||||
debug: localStorage.getItem('debug') == 'true',
|
|
||||||
useRawScript: localStorage.getItem('useRawScript') == 'true',
|
|
||||||
enableExperimental: localStorage.getItem('enableExperimental') == 'true'
|
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
licenseUrl(): string {
|
licenseUrl(): string {
|
||||||
return `${docsUrl}/${lang}/license`;
|
return `${docsUrl}/${lang}/license`;
|
||||||
}
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
autoPopout() {
|
|
||||||
localStorage.setItem('autoPopout', this.autoPopout ? 'true' : 'false');
|
|
||||||
},
|
},
|
||||||
apiViaStream() {
|
|
||||||
localStorage.setItem('apiViaStream', this.apiViaStream ? 'true' : 'false');
|
apiViaStream: {
|
||||||
|
get() { return this.$store.state.device.apiViaStream; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'apiViaStream', value }); }
|
||||||
},
|
},
|
||||||
darkmode() {
|
|
||||||
(this as any)._updateDarkmode_(this.darkmode);
|
autoPopout: {
|
||||||
|
get() { return this.$store.state.device.autoPopout; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'autoPopout', value }); }
|
||||||
},
|
},
|
||||||
enableSounds() {
|
|
||||||
localStorage.setItem('enableSounds', this.enableSounds ? 'true' : 'false');
|
darkmode: {
|
||||||
|
get() { return this.$store.state.device.darkmode; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'darkmode', value }); }
|
||||||
},
|
},
|
||||||
soundVolume() {
|
|
||||||
localStorage.setItem('soundVolume', this.soundVolume.toString());
|
enableSounds: {
|
||||||
|
get() { return this.$store.state.device.enableSounds; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'enableSounds', value }); }
|
||||||
},
|
},
|
||||||
lang() {
|
|
||||||
localStorage.setItem('lang', this.lang);
|
soundVolume: {
|
||||||
|
get() { return this.$store.state.device.soundVolume; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'soundVolume', value }); }
|
||||||
},
|
},
|
||||||
preventUpdate() {
|
|
||||||
localStorage.setItem('preventUpdate', this.preventUpdate ? 'true' : 'false');
|
lang: {
|
||||||
|
get() { return this.$store.state.device.lang; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'lang', value }); }
|
||||||
},
|
},
|
||||||
debug() {
|
|
||||||
localStorage.setItem('debug', this.debug ? 'true' : 'false');
|
preventUpdate: {
|
||||||
|
get() { return this.$store.state.device.preventUpdate; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'preventUpdate', value }); }
|
||||||
},
|
},
|
||||||
useRawScript() {
|
|
||||||
localStorage.setItem('useRawScript', this.useRawScript ? 'true' : 'false');
|
debug: {
|
||||||
|
get() { return this.$store.state.device.debug; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'debug', value }); }
|
||||||
},
|
},
|
||||||
enableExperimental() {
|
|
||||||
localStorage.setItem('enableExperimental', this.enableExperimental ? 'true' : 'false');
|
enableExperimentalFeatures: {
|
||||||
|
get() { return this.$store.state.device.enableExperimentalFeatures; },
|
||||||
|
set(value) { this.$store.commit('device/set', { key: 'enableExperimentalFeatures', value }); }
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
@ -371,13 +365,13 @@ export default Vue.extend({
|
|||||||
this.latestVersion = newer;
|
this.latestVersion = newer;
|
||||||
if (newer == null) {
|
if (newer == null) {
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '利用可能な更新はありません',
|
title: '%i18n:@no-updates%',
|
||||||
text: 'お使いのMisskeyは最新です。'
|
text: '%i18n:@no-updates-desc%'
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: '新しいバージョンが利用可能です',
|
title: '%i18n:@update-available%',
|
||||||
text: 'ページを再度読み込みすると更新が適用されます。'
|
text: '%i18n:@update-available-desc%'
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -385,13 +379,13 @@ export default Vue.extend({
|
|||||||
clean() {
|
clean() {
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
(this as any).apis.dialog({
|
(this as any).apis.dialog({
|
||||||
title: 'キャッシュを削除しました',
|
title: '%i18n:@cache-cleared%',
|
||||||
text: 'ページを再度読み込みしてください。'
|
text: '%i18n:@caache-cleared-desc%'
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
soundTest() {
|
soundTest() {
|
||||||
const sound = new Audio(`${url}/assets/message.mp3`);
|
const sound = new Audio(`${url}/assets/message.mp3`);
|
||||||
sound.volume = localStorage.getItem('soundVolume') ? parseInt(localStorage.getItem('soundVolume'), 10) / 100 : 0.5;
|
sound.volume = this.$store.state.device.soundVolume;
|
||||||
sound.play();
|
sound.play();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,17 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="mk-sub-note-content">
|
<div class="mk-sub-note-content">
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<span v-if="note.isHidden" style="opacity: 0.5">(この投稿は非公開です)</span>
|
<span v-if="note.isHidden" style="opacity: 0.5">%i18n:@hidden%</span>
|
||||||
<a class="reply" v-if="note.replyId">%fa:reply%</a>
|
<a class="reply" v-if="note.replyId">%fa:reply%</a>
|
||||||
<mk-note-html :text="note.text" :i="os.i"/>
|
<mk-note-html :text="note.text" :i="os.i"/>
|
||||||
<a class="rp" v-if="note.renoteId" :href="`/note:${note.renoteId}`">RP: ...</a>
|
<a class="rp" v-if="note.renoteId" :href="`/note:${note.renoteId}`">RP: ...</a>
|
||||||
</div>
|
</div>
|
||||||
<details v-if="note.media.length > 0">
|
<details v-if="note.media.length > 0">
|
||||||
<summary>({{ note.media.length }}つのメディア)</summary>
|
<summary>({{ note.media.length }}%i18n:@media%)</summary>
|
||||||
<mk-media-list :media-list="note.media"/>
|
<mk-media-list :media-list="note.media"/>
|
||||||
</details>
|
</details>
|
||||||
<details v-if="note.poll">
|
<details v-if="note.poll">
|
||||||
<summary>投票</summary>
|
<summary>%i18n:@poll%</summary>
|
||||||
<mk-poll :note="note"/>
|
<mk-poll :note="note"/>
|
||||||
</details>
|
</details>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<mk-window ref="window" width="750px" height="500px" @closed="$destroy" name="TaskManager">
|
<mk-window ref="window" width="750px" height="500px" @closed="$destroy" name="TaskManager">
|
||||||
<span slot="header" :class="$style.header">%fa:stethoscope%タスクマネージャ</span>
|
<span slot="header" :class="$style.header">%fa:stethoscope%%i18n:@title%</span>
|
||||||
<el-tabs :class="$style.content">
|
<el-tabs :class="$style.content">
|
||||||
<el-tab-pane label="Requests">
|
<el-tab-pane label="Requests">
|
||||||
<el-table
|
<el-table
|
||||||
|
@ -35,7 +35,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
<ul>
|
<ul>
|
||||||
<li @click="dark">
|
<li @click="dark">
|
||||||
<p><span>%i18n:@dark%</span><template v-if="_darkmode_">%fa:moon%</template><template v-else>%fa:R moon%</template></p>
|
<p><span>%i18n:@dark%</span><template v-if="$store.state.device.darkmode">%fa:moon%</template><template v-else>%fa:R moon%</template></p>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@ -99,7 +99,10 @@ export default Vue.extend({
|
|||||||
(this as any).os.signout();
|
(this as any).os.signout();
|
||||||
},
|
},
|
||||||
dark() {
|
dark() {
|
||||||
(this as any)._updateDarkmode_(!(this as any)._darkmode_);
|
this.$store.commit('device/set', {
|
||||||
|
key: 'darkmode',
|
||||||
|
value: !this.$store.state.device.darkmode
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
<mk-window ref="window" is-modal width="450px" height="500px" @closed="$destroy">
|
<mk-window ref="window" is-modal width="450px" height="500px" @closed="$destroy">
|
||||||
<span slot="header">%fa:list% リスト</span>
|
<span slot="header">%fa:list% リスト</span>
|
||||||
|
|
||||||
<div data-id="6e4caea3-d8f9-4ab7-96de-ab67fe8d5c82" :data-darkmode="_darkmode_">
|
<div data-id="6e4caea3-d8f9-4ab7-96de-ab67fe8d5c82" :data-darkmode="$store.state.device.darkmode">
|
||||||
<button class="ui" @click="add">%i18n:@create-list%</button>
|
<button class="ui" @click="add">%i18n:@create-list%</button>
|
||||||
<a v-for="list in lists" :key="list.id" @click="choice(list)">{{ list.title }}</a>
|
<a v-for="list in lists" :key="list.id" @click="choice(list)">{{ list.title }}</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<mk-avatar class="avatar" :user="u" :disable-preview="true"/>
|
<mk-avatar class="avatar" :user="u" :disable-preview="true"/>
|
||||||
<div class="title">
|
<div class="title">
|
||||||
<router-link class="name" :to="u | userPage">{{ u | userName }}</router-link>
|
<router-link class="name" :to="u | userPage">{{ u | userName }}</router-link>
|
||||||
<p class="username">@{{ u | acct }}</p>
|
<p class="username"><mk-acct :user="u"/></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="description">{{ u.description }}</div>
|
<div class="description">{{ u.description }}</div>
|
||||||
<div class="status">
|
<div class="status">
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<span class="username">@{{ user | acct }}</span>
|
<span class="username">@{{ user | acct }}</span>
|
||||||
</header>
|
</header>
|
||||||
<div class="body">
|
<div class="body">
|
||||||
<p class="followed" v-if="user.isFollowed">フォローされています</p>
|
<p class="followed" v-if="user.isFollowed">%i18n:@followed%</p>
|
||||||
<div class="description">{{ user.description }}</div>
|
<div class="description">{{ user.description }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
>
|
>
|
||||||
<h1><slot name="header"></slot></h1>
|
<h1><slot name="header"></slot></h1>
|
||||||
<div>
|
<div>
|
||||||
<button class="popout" v-if="popoutUrl" @mousedown.stop="() => {}" @click="popout" title="ポップアウト">%fa:R window-restore%</button>
|
<button class="popout" v-if="popoutUrl" @mousedown.stop="() => {}" @click="popout" title="%i18n:@popout%">%fa:R window-restore%</button>
|
||||||
<button class="close" v-if="canClose" @mousedown.stop="() => {}" @click="close" title="閉じる">%fa:times%</button>
|
<button class="close" v-if="canClose" @mousedown.stop="() => {}" @click="close" title="%i18n:@close%">%fa:times%</button>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
@ -95,7 +95,7 @@ export default Vue.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
if (localStorage.getItem('autoPopout') == 'true' && this.popoutUrl) {
|
if ((this as any).os.store.state.device.autoPopout && this.popoutUrl) {
|
||||||
this.popout();
|
this.popout();
|
||||||
this.preventMount = true;
|
this.preventMount = true;
|
||||||
} else {
|
} else {
|
||||||
|
@ -16,11 +16,11 @@ export default Vue.extend({
|
|||||||
this.folder = this.$route.params.folder;
|
this.folder = this.$route.params.folder;
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
document.title = 'Misskey Drive';
|
document.title = '%i18n:@title%';
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
onMoveRoot() {
|
onMoveRoot() {
|
||||||
const title = 'Misskey Drive';
|
const title = '%i18n:@title%';
|
||||||
|
|
||||||
// Rewrite URL
|
// Rewrite URL
|
||||||
history.pushState(null, title, '/i/drive');
|
history.pushState(null, title, '/i/drive');
|
||||||
@ -28,7 +28,7 @@ export default Vue.extend({
|
|||||||
document.title = title;
|
document.title = title;
|
||||||
},
|
},
|
||||||
onOpenFolder(folder) {
|
onOpenFolder(folder) {
|
||||||
const title = folder.name + ' | Misskey Drive';
|
const title = folder.name + ' | %i18n:@title%';
|
||||||
|
|
||||||
// Rewrite URL
|
// Rewrite URL
|
||||||
history.pushState(null, title, '/i/drive/folder/' + folder.id);
|
history.pushState(null, title, '/i/drive/folder/' + folder.id);
|
||||||
@ -49,4 +49,3 @@ export default Vue.extend({
|
|||||||
> .mk-drive
|
> .mk-drive
|
||||||
height 100%
|
height 100%
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<template v-for="favorite in favorites">
|
<template v-for="favorite in favorites">
|
||||||
<mk-note-detail :note="favorite.note" :key="favorite.note.id"/>
|
<mk-note-detail :note="favorite.note" :key="favorite.note.id"/>
|
||||||
</template>
|
</template>
|
||||||
<a v-if="existMore" @click="more">さらに読み込む</a>
|
<a v-if="existMore" @click="more">%i18n:@more%</a>
|
||||||
</main>
|
</main>
|
||||||
</mk-ui>
|
</mk-ui>
|
||||||
</template>
|
</template>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
import Vue from 'vue';
|
import Vue from 'vue';
|
||||||
export default Vue.extend({
|
export default Vue.extend({
|
||||||
mounted() {
|
mounted() {
|
||||||
document.title = 'Misskey - ホームのカスタマイズ';
|
document.title = 'Misskey - %i18n:@title%';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user