Compare commits
	
		
			3035 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					1012b2b2c7 | ||
| 
						 | 
					5149be4b1b | ||
| 
						 | 
					d12deeb0d8 | ||
| 
						 | 
					9df81d1939 | ||
| 
						 | 
					3be0079868 | ||
| 
						 | 
					9b253ccb3a | ||
| 
						 | 
					dded76099c | ||
| 
						 | 
					41a7ec7d3d | ||
| 
						 | 
					168c773ba0 | ||
| 
						 | 
					9abed92196 | ||
| 
						 | 
					4a75e3602a | ||
| 
						 | 
					1a689f6641 | ||
| 
						 | 
					08d7ae11d6 | ||
| 
						 | 
					9535759787 | ||
| 
						 | 
					f8fc31f14a | ||
| 
						 | 
					b74bf97761 | ||
| 
						 | 
					a090b908bd | ||
| 
						 | 
					3046821026 | ||
| 
						 | 
					e94c73efe2 | ||
| 
						 | 
					e85f9f4aa5 | ||
| 
						 | 
					ad67886f96 | ||
| 
						 | 
					5df0e102fd | ||
| 
						 | 
					a04f0e3545 | ||
| 
						 | 
					dff9c7ac48 | ||
| 
						 | 
					3a80b59986 | ||
| 
						 | 
					07560a4fdd | ||
| 
						 | 
					7edca21c05 | ||
| 
						 | 
					34105abd9d | ||
| 
						 | 
					1bbca48a0b | ||
| 
						 | 
					21f6a86772 | ||
| 
						 | 
					6559197c55 | ||
| 
						 | 
					05f9ad11bb | ||
| 
						 | 
					f06d586680 | ||
| 
						 | 
					4f45e8125c | ||
| 
						 | 
					cc2843503d | ||
| 
						 | 
					324a974dec | ||
| 
						 | 
					4d4ffd70ac | ||
| 
						 | 
					bf98a11b65 | ||
| 
						 | 
					1117ce4b54 | ||
| 
						 | 
					57e93b9b4e | ||
| 
						 | 
					9e4b061ed0 | ||
| 
						 | 
					1067bef7d6 | ||
| 
						 | 
					8bff529acd | ||
| 
						 | 
					4b08677839 | ||
| 
						 | 
					70997cb551 | ||
| 
						 | 
					bf0ef17e23 | ||
| 
						 | 
					7dae5107f8 | ||
| 
						 | 
					2dea88a147 | ||
| 
						 | 
					f44c2a3e4f | ||
| 
						 | 
					1fad3cbaae | ||
| 
						 | 
					40d2e3e97c | ||
| 
						 | 
					2efabe612e | ||
| 
						 | 
					3107cbd6b9 | ||
| 
						 | 
					3a061ed1c3 | ||
| 
						 | 
					d4f0e6461a | ||
| 
						 | 
					3285687652 | ||
| 
						 | 
					51c53f64d0 | ||
| 
						 | 
					1d582f5ad2 | ||
| 
						 | 
					8a62748e39 | ||
| 
						 | 
					b9290a021b | ||
| 
						 | 
					129ce93868 | ||
| 
						 | 
					5f41e5d6d0 | ||
| 
						 | 
					c706d030ea | ||
| 
						 | 
					34716a34f8 | ||
| 
						 | 
					6db3d6dfb6 | ||
| 
						 | 
					38e2853dcf | ||
| 
						 | 
					ba5a540ca3 | ||
| 
						 | 
					fb1e05c2e9 | ||
| 
						 | 
					aba84612a7 | ||
| 
						 | 
					9bebbf4e03 | ||
| 
						 | 
					e41b3f9c10 | ||
| 
						 | 
					890dc05022 | ||
| 
						 | 
					375f86ec82 | ||
| 
						 | 
					db248a69c8 | ||
| 
						 | 
					5951288159 | ||
| 
						 | 
					17b92c9db2 | ||
| 
						 | 
					962d1060d9 | ||
| 
						 | 
					cb2640d961 | ||
| 
						 | 
					29aeb0f082 | ||
| 
						 | 
					990347f856 | ||
| 
						 | 
					7a406c1f13 | ||
| 
						 | 
					9432af2ab5 | ||
| 
						 | 
					136b13e7ca | ||
| 
						 | 
					ba1c823fb1 | ||
| 
						 | 
					f1301a4780 | ||
| 
						 | 
					7957cd4963 | ||
| 
						 | 
					ee6590d03f | ||
| 
						 | 
					f2a1238b20 | ||
| 
						 | 
					e9ce84f368 | ||
| 
						 | 
					52e84decb4 | ||
| 
						 | 
					e893002bb6 | ||
| 
						 | 
					3792103e80 | ||
| 
						 | 
					7a861c9481 | ||
| 
						 | 
					942b565224 | ||
| 
						 | 
					88390d7a9a | ||
| 
						 | 
					966fc4c5d7 | ||
| 
						 | 
					84dbdf1196 | ||
| 
						 | 
					211e7f90d9 | ||
| 
						 | 
					e54b8e3fb2 | ||
| 
						 | 
					836c89ed33 | ||
| 
						 | 
					c7c73afea1 | ||
| 
						 | 
					7b9ca63b1e | ||
| 
						 | 
					c464183329 | ||
| 
						 | 
					389f420cad | ||
| 
						 | 
					6b2888383c | ||
| 
						 | 
					3c38a867b4 | ||
| 
						 | 
					7f5a69f4d8 | ||
| 
						 | 
					bb9ab31d5e | ||
| 
						 | 
					9def80af8a | ||
| 
						 | 
					9256bcdbe4 | ||
| 
						 | 
					9b775022bc | ||
| 
						 | 
					32371ed2bd | ||
| 
						 | 
					8b98c08a81 | ||
| 
						 | 
					7cf72f7447 | ||
| 
						 | 
					913385b10d | ||
| 
						 | 
					7306468d08 | ||
| 
						 | 
					11e5667778 | ||
| 
						 | 
					38cc02e261 | ||
| 
						 | 
					d52cf46cc1 | ||
| 
						 | 
					c6110dd996 | ||
| 
						 | 
					51d8de2c38 | ||
| 
						 | 
					4455a1aa9d | ||
| 
						 | 
					040d395ddb | ||
| 
						 | 
					8296cac636 | ||
| 
						 | 
					3eafe8b87d | ||
| 
						 | 
					c01512e261 | ||
| 
						 | 
					e5cf3aecd5 | ||
| 
						 | 
					a8f90b41b7 | ||
| 
						 | 
					b79169b975 | ||
| 
						 | 
					437d52e2ed | ||
| 
						 | 
					1329721440 | ||
| 
						 | 
					6affb4fe97 | ||
| 
						 | 
					15395686aa | ||
| 
						 | 
					047bcc78ad | ||
| 
						 | 
					9df68618f2 | ||
| 
						 | 
					732db087ab | ||
| 
						 | 
					0e95b33b6a | ||
| 
						 | 
					816ae7eb7e | ||
| 
						 | 
					5a5ff194fa | ||
| 
						 | 
					a60edf9cff | ||
| 
						 | 
					1c2dbb914e | ||
| 
						 | 
					9c170c426b | ||
| 
						 | 
					c6239c8ad9 | ||
| 
						 | 
					159b361bac | ||
| 
						 | 
					160f64c18e | ||
| 
						 | 
					e5916b3789 | ||
| 
						 | 
					70982b33c5 | ||
| 
						 | 
					b4d614ad45 | ||
| 
						 | 
					6d2ef41b37 | ||
| 
						 | 
					e102237aab | ||
| 
						 | 
					665af87031 | ||
| 
						 | 
					6f4e439697 | ||
| 
						 | 
					742dcf35c9 | ||
| 
						 | 
					9cd70c568c | ||
| 
						 | 
					facabf274f | ||
| 
						 | 
					e3ab51022f | ||
| 
						 | 
					d278367cf9 | ||
| 
						 | 
					a70ced8e90 | ||
| 
						 | 
					567cedc7cc | ||
| 
						 | 
					9b3af6efcd | ||
| 
						 | 
					d9edc1eb1d | ||
| 
						 | 
					65e46b5cec | ||
| 
						 | 
					e00b5f11cb | ||
| 
						 | 
					6b53d5f269 | ||
| 
						 | 
					59c80ab140 | ||
| 
						 | 
					da323aad36 | ||
| 
						 | 
					7c1611c939 | ||
| 
						 | 
					ab861beabe | ||
| 
						 | 
					d260e93161 | ||
| 
						 | 
					65a1855606 | ||
| 
						 | 
					c0e08e44a4 | ||
| 
						 | 
					5c1cebcef4 | ||
| 
						 | 
					af25d3a85e | ||
| 
						 | 
					8cb7183107 | ||
| 
						 | 
					1bf228d73e | ||
| 
						 | 
					d952b996e6 | ||
| 
						 | 
					1e407c4059 | ||
| 
						 | 
					b56d1fa60e | ||
| 
						 | 
					6340f95bfc | ||
| 
						 | 
					3c08dacf6c | ||
| 
						 | 
					2908124ad8 | ||
| 
						 | 
					3d62faaaf2 | ||
| 
						 | 
					b1efa9700d | ||
| 
						 | 
					1d08af5747 | ||
| 
						 | 
					2f82d0db87 | ||
| 
						 | 
					d88159907d | ||
| 
						 | 
					9ed9fbef65 | ||
| 
						 | 
					86c2e5bb91 | ||
| 
						 | 
					d9b548de1a | ||
| 
						 | 
					2271c6cbd8 | ||
| 
						 | 
					c4d4293c46 | ||
| 
						 | 
					39bdfb6e0d | ||
| 
						 | 
					1003fd393e | ||
| 
						 | 
					2ede3c0864 | ||
| 
						 | 
					674764a035 | ||
| 
						 | 
					a780e7b936 | ||
| 
						 | 
					03d0ce1f89 | ||
| 
						 | 
					4182a0cf4c | ||
| 
						 | 
					305915611e | ||
| 
						 | 
					b0cd59bed9 | ||
| 
						 | 
					599dcbaa48 | ||
| 
						 | 
					2806dc98bd | ||
| 
						 | 
					bdc52dc114 | ||
| 
						 | 
					3f6b9e554c | ||
| 
						 | 
					f47ad7bf31 | ||
| 
						 | 
					f992f72d31 | ||
| 
						 | 
					a26f1db2cb | ||
| 
						 | 
					361ab00c61 | ||
| 
						 | 
					f5cbcf3452 | ||
| 
						 | 
					599386190a | ||
| 
						 | 
					ec541d3cd0 | ||
| 
						 | 
					3199819ded | ||
| 
						 | 
					ccf04d63ec | ||
| 
						 | 
					b9f5fca333 | ||
| 
						 | 
					b6a330928d | ||
| 
						 | 
					1c65cb3e36 | ||
| 
						 | 
					dbb8c99efb | ||
| 
						 | 
					0adcb646fe | ||
| 
						 | 
					a1ef70c0bf | ||
| 
						 | 
					75cd580c3a | ||
| 
						 | 
					e05acb8d18 | ||
| 
						 | 
					10af684804 | ||
| 
						 | 
					3e897727ca | ||
| 
						 | 
					d0570d7fe3 | ||
| 
						 | 
					5cf1956135 | ||
| 
						 | 
					0b98a2364b | ||
| 
						 | 
					fff307d4bb | ||
| 
						 | 
					2b7782ba03 | ||
| 
						 | 
					96d961ee80 | ||
| 
						 | 
					9f064d76d9 | ||
| 
						 | 
					2e39106c4b | ||
| 
						 | 
					1305006391 | ||
| 
						 | 
					04650464f3 | ||
| 
						 | 
					3bc7e1e35c | ||
| 
						 | 
					7019ddbfc7 | ||
| 
						 | 
					106d990bd2 | ||
| 
						 | 
					b29eb29556 | ||
| 
						 | 
					aeac1854ed | ||
| 
						 | 
					dbc57dd0d3 | ||
| 
						 | 
					328a87609e | ||
| 
						 | 
					5d848f3900 | ||
| 
						 | 
					cf4ed45fe4 | ||
| 
						 | 
					07293094d5 | ||
| 
						 | 
					0917696c86 | ||
| 
						 | 
					030a027366 | ||
| 
						 | 
					372c488585 | ||
| 
						 | 
					738b8ff1ee | ||
| 
						 | 
					1561fc5994 | ||
| 
						 | 
					c84f18545e | ||
| 
						 | 
					48e4dc75f4 | ||
| 
						 | 
					63a8d556e5 | ||
| 
						 | 
					e5591618ee | ||
| 
						 | 
					4794748c73 | ||
| 
						 | 
					02e7e3b971 | ||
| 
						 | 
					d2aca3c28b | ||
| 
						 | 
					11b84a04b3 | ||
| 
						 | 
					f243ce66e7 | ||
| 
						 | 
					baf9b65801 | ||
| 
						 | 
					55419d2524 | ||
| 
						 | 
					401d0b1298 | ||
| 
						 | 
					fce7dc0f4e | ||
| 
						 | 
					35489ef5b7 | ||
| 
						 | 
					546d494587 | ||
| 
						 | 
					e8afa2c940 | ||
| 
						 | 
					c1ef1bf605 | ||
| 
						 | 
					4ab0dbe7e3 | ||
| 
						 | 
					44f86a94f4 | ||
| 
						 | 
					a0278154a3 | ||
| 
						 | 
					8b7e6b200e | ||
| 
						 | 
					d6f6c26725 | ||
| 
						 | 
					cf66343b31 | ||
| 
						 | 
					d53689332f | ||
| 
						 | 
					4105237027 | ||
| 
						 | 
					436962e4b8 | ||
| 
						 | 
					a85efa1392 | ||
| 
						 | 
					f0115a5e21 | ||
| 
						 | 
					80105239dc | ||
| 
						 | 
					baad11288a | ||
| 
						 | 
					7e50646ede | ||
| 
						 | 
					d4b8e47bcb | ||
| 
						 | 
					0eefd2922c | ||
| 
						 | 
					30c0f98691 | ||
| 
						 | 
					06a7c2e138 | ||
| 
						 | 
					3537b3de8e | ||
| 
						 | 
					ed6450244d | ||
| 
						 | 
					e813880392 | ||
| 
						 | 
					9a57efa6d9 | ||
| 
						 | 
					03ee5eba3b | ||
| 
						 | 
					295ea79231 | ||
| 
						 | 
					a5486176c1 | ||
| 
						 | 
					de58325fd0 | ||
| 
						 | 
					1e7932d9c7 | ||
| 
						 | 
					8ba76df409 | ||
| 
						 | 
					a8f9d20229 | ||
| 
						 | 
					5e6d1b9ae8 | ||
| 
						 | 
					c5afbaef35 | ||
| 
						 | 
					3b5a36a09f | ||
| 
						 | 
					fcb20d05d7 | ||
| 
						 | 
					9e6990c44b | ||
| 
						 | 
					8f3fd9b0dc | ||
| 
						 | 
					5b1b4a02d8 | ||
| 
						 | 
					31de530497 | ||
| 
						 | 
					16b6b1f2b3 | ||
| 
						 | 
					dba83aa50d | ||
| 
						 | 
					bade054a6a | ||
| 
						 | 
					34d3485dc9 | ||
| 
						 | 
					a84d066daa | ||
| 
						 | 
					3360cf27cd | ||
| 
						 | 
					c1a13af611 | ||
| 
						 | 
					47274a658b | ||
| 
						 | 
					b194334031 | ||
| 
						 | 
					4136c4a807 | ||
| 
						 | 
					f1c212fe75 | ||
| 
						 | 
					d08cbff4b7 | ||
| 
						 | 
					0b774475fa | ||
| 
						 | 
					c4f6195df3 | ||
| 
						 | 
					192cdbe322 | ||
| 
						 | 
					a2a25eb5f8 | ||
| 
						 | 
					274cf1af1c | ||
| 
						 | 
					7d11c8b767 | ||
| 
						 | 
					abef6bafe3 | ||
| 
						 | 
					da237a5e2d | ||
| 
						 | 
					7e50e03cfb | ||
| 
						 | 
					89d5df20a5 | ||
| 
						 | 
					c09a2a37fe | ||
| 
						 | 
					b5745877ca | ||
| 
						 | 
					c0ac15cad7 | ||
| 
						 | 
					90ce09be2e | ||
| 
						 | 
					fd39afb374 | ||
| 
						 | 
					6e04549a9b | ||
| 
						 | 
					80e56fddd9 | ||
| 
						 | 
					4daf9e1180 | ||
| 
						 | 
					f72abc0e47 | ||
| 
						 | 
					9c177f3df2 | ||
| 
						 | 
					a279b32c93 | ||
| 
						 | 
					51465ba026 | ||
| 
						 | 
					6a7bdcc533 | ||
| 
						 | 
					fddb3a5f10 | ||
| 
						 | 
					643c7abc12 | ||
| 
						 | 
					5715afd44c | ||
| 
						 | 
					d65c1c420e | ||
| 
						 | 
					38139ee6c9 | ||
| 
						 | 
					6b96bd0185 | ||
| 
						 | 
					f2b9863eea | ||
| 
						 | 
					f56adce51f | ||
| 
						 | 
					35598c8064 | ||
| 
						 | 
					a5e716eb5d | ||
| 
						 | 
					e8073b7484 | ||
| 
						 | 
					d6a5fc20bb | ||
| 
						 | 
					e763d43085 | ||
| 
						 | 
					a6904d5249 | ||
| 
						 | 
					7bcb91d3ca | ||
| 
						 | 
					fb0c1efa41 | ||
| 
						 | 
					03d243d444 | ||
| 
						 | 
					b91585d1fe | ||
| 
						 | 
					d1fa318cda | ||
| 
						 | 
					42decae424 | ||
| 
						 | 
					78bc7c20ed | ||
| 
						 | 
					e6616bdf57 | ||
| 
						 | 
					35362ed3c7 | ||
| 
						 | 
					cd0b9a8e3f | ||
| 
						 | 
					110aadd65c | ||
| 
						 | 
					cefe1f34be | ||
| 
						 | 
					d469e2152c | ||
| 
						 | 
					35c2d47518 | ||
| 
						 | 
					c00634a2cf | ||
| 
						 | 
					d1835e262d | ||
| 
						 | 
					d0f304f0ce | ||
| 
						 | 
					154abe06a7 | ||
| 
						 | 
					ac41cd378c | ||
| 
						 | 
					d59afda2c9 | ||
| 
						 | 
					4d213833e2 | ||
| 
						 | 
					e9214d4330 | ||
| 
						 | 
					6b41bb95b2 | ||
| 
						 | 
					36de13d543 | ||
| 
						 | 
					3893def9f4 | ||
| 
						 | 
					ff76c815b1 | ||
| 
						 | 
					1b9b8912ae | ||
| 
						 | 
					b91b0d17c3 | ||
| 
						 | 
					579b61a806 | ||
| 
						 | 
					1e2b484929 | ||
| 
						 | 
					ab7d4fa2a2 | ||
| 
						 | 
					f30c8b8a47 | ||
| 
						 | 
					25dd19dd8c | ||
| 
						 | 
					fdaebc6315 | ||
| 
						 | 
					f1a05c214e | ||
| 
						 | 
					9ad32ffee9 | ||
| 
						 | 
					70f83ab019 | ||
| 
						 | 
					07e64631f2 | ||
| 
						 | 
					498416e2e3 | ||
| 
						 | 
					87c4f908fe | ||
| 
						 | 
					27e6eaacde | ||
| 
						 | 
					ada47920ca | ||
| 
						 | 
					f2606d62ff | ||
| 
						 | 
					35032152b3 | ||
| 
						 | 
					90b545fd69 | ||
| 
						 | 
					4f7776d1f9 | ||
| 
						 | 
					03bd0c4c9e | ||
| 
						 | 
					b8b4991a46 | ||
| 
						 | 
					8b68c5da37 | ||
| 
						 | 
					f26e641905 | ||
| 
						 | 
					57669c9c03 | ||
| 
						 | 
					094d873f2e | ||
| 
						 | 
					7b42653271 | ||
| 
						 | 
					6a82e94c54 | ||
| 
						 | 
					1fa4d0d3f8 | ||
| 
						 | 
					d5818214f3 | ||
| 
						 | 
					0c63ec8157 | ||
| 
						 | 
					8317a219a5 | ||
| 
						 | 
					ec652dd0ac | ||
| 
						 | 
					8e3dd75c85 | ||
| 
						 | 
					3f4de3b1cc | ||
| 
						 | 
					e0d3fd17ce | ||
| 
						 | 
					671c7cf06b | ||
| 
						 | 
					99a2c5b3fa | ||
| 
						 | 
					0343de95b8 | ||
| 
						 | 
					13f258308e | ||
| 
						 | 
					c627288bde | ||
| 
						 | 
					1eef90f6cb | ||
| 
						 | 
					29476ea3da | ||
| 
						 | 
					7609741680 | ||
| 
						 | 
					5df85b5feb | ||
| 
						 | 
					b4a4d784c3 | ||
| 
						 | 
					d715af0620 | ||
| 
						 | 
					fe8c384618 | ||
| 
						 | 
					47d4de75da | ||
| 
						 | 
					016c7fd2c4 | ||
| 
						 | 
					7ca5e33a3a | ||
| 
						 | 
					436773837b | ||
| 
						 | 
					fccfe19e13 | ||
| 
						 | 
					18be0d36f3 | ||
| 
						 | 
					9ea7de3564 | ||
| 
						 | 
					d1dce76e28 | ||
| 
						 | 
					f4bf824e79 | ||
| 
						 | 
					cbf5d4b71d | ||
| 
						 | 
					61e5cb2041 | ||
| 
						 | 
					38a6aa26bc | ||
| 
						 | 
					32942709bf | ||
| 
						 | 
					a0305c4c04 | ||
| 
						 | 
					74be1c81b1 | ||
| 
						 | 
					e82a44c03d | ||
| 
						 | 
					1e9eeeb980 | ||
| 
						 | 
					0c7111b438 | ||
| 
						 | 
					ef74653a4b | ||
| 
						 | 
					b032f78769 | ||
| 
						 | 
					7a0a8b5d2b | ||
| 
						 | 
					459b374d61 | ||
| 
						 | 
					cc6af402be | ||
| 
						 | 
					f3eeadcd8f | ||
| 
						 | 
					5b0b83faa7 | ||
| 
						 | 
					5f289e4767 | ||
| 
						 | 
					a36d73cb52 | ||
| 
						 | 
					9e319006f3 | ||
| 
						 | 
					7b8a2aef0f | ||
| 
						 | 
					4fe2f29478 | ||
| 
						 | 
					76a25917c0 | ||
| 
						 | 
					df6c9b1a1c | ||
| 
						 | 
					0ef64a6d0b | ||
| 
						 | 
					1eb6ad58d5 | ||
| 
						 | 
					49f8cfb0db | ||
| 
						 | 
					15a8b4c6e5 | ||
| 
						 | 
					97d68d7b31 | ||
| 
						 | 
					4dde54e344 | ||
| 
						 | 
					3304cc106e | ||
| 
						 | 
					dabda21eb7 | ||
| 
						 | 
					0a64f638c6 | ||
| 
						 | 
					3cbdfcb43d | ||
| 
						 | 
					5734221c8f | ||
| 
						 | 
					b6e33e93de | ||
| 
						 | 
					77b441f14c | ||
| 
						 | 
					297019c22c | ||
| 
						 | 
					f5f2215b47 | ||
| 
						 | 
					904114740b | ||
| 
						 | 
					d2d3f7810e | ||
| 
						 | 
					2b07b3a873 | ||
| 
						 | 
					d17280b341 | ||
| 
						 | 
					f523d3f3bc | ||
| 
						 | 
					f6e4a1770e | ||
| 
						 | 
					31006507c0 | ||
| 
						 | 
					9ca6a6bf06 | ||
| 
						 | 
					afdacf14b7 | ||
| 
						 | 
					5da18ba535 | ||
| 
						 | 
					e6cc937ac2 | ||
| 
						 | 
					87091a2e03 | ||
| 
						 | 
					d23bc1e02a | ||
| 
						 | 
					86fcd9208e | ||
| 
						 | 
					f2b97a889c | ||
| 
						 | 
					97f91102fe | ||
| 
						 | 
					07b04578c8 | ||
| 
						 | 
					31f3c1996b | ||
| 
						 | 
					f4116e7300 | ||
| 
						 | 
					5e5239c16e | ||
| 
						 | 
					3adfcd1d13 | ||
| 
						 | 
					3eb43a5413 | ||
| 
						 | 
					80f41e2ac1 | ||
| 
						 | 
					9e0b0b4210 | ||
| 
						 | 
					f3380d3184 | ||
| 
						 | 
					54bc91ea2b | ||
| 
						 | 
					59d67d3140 | ||
| 
						 | 
					7b4c307c46 | ||
| 
						 | 
					92484be87f | ||
| 
						 | 
					56b8f8b07d | ||
| 
						 | 
					722de35037 | ||
| 
						 | 
					d93f76c1af | ||
| 
						 | 
					cba0dd5e17 | ||
| 
						 | 
					7bb25917f8 | ||
| 
						 | 
					a2e2d5ba77 | ||
| 
						 | 
					61e05cb50e | ||
| 
						 | 
					49e82adc6c | ||
| 
						 | 
					e4e668b327 | ||
| 
						 | 
					8028c85c67 | ||
| 
						 | 
					28cb9cae51 | ||
| 
						 | 
					7f2eb64131 | ||
| 
						 | 
					c5ff6df7e6 | ||
| 
						 | 
					e2b2982f95 | ||
| 
						 | 
					a6e307010f | ||
| 
						 | 
					c636e35467 | ||
| 
						 | 
					3d26bd0532 | ||
| 
						 | 
					16130e46dd | ||
| 
						 | 
					9f703085ba | ||
| 
						 | 
					0af09f13cf | ||
| 
						 | 
					cd8619113a | ||
| 
						 | 
					4bf6d9f80b | ||
| 
						 | 
					a559b2c20c | ||
| 
						 | 
					72411abfcd | ||
| 
						 | 
					491c3f1dc0 | ||
| 
						 | 
					d2ffc4df6c | ||
| 
						 | 
					3e5330a92b | ||
| 
						 | 
					93e5e4afc0 | ||
| 
						 | 
					aa5528d11e | ||
| 
						 | 
					251629ab61 | ||
| 
						 | 
					82d94b5963 | ||
| 
						 | 
					8240901332 | ||
| 
						 | 
					0a870b8e7e | ||
| 
						 | 
					88dd653fa5 | ||
| 
						 | 
					b712b70330 | ||
| 
						 | 
					a018c2f09f | ||
| 
						 | 
					04c16e53a5 | ||
| 
						 | 
					5e89e73f76 | ||
| 
						 | 
					2c9432d7a9 | ||
| 
						 | 
					19d1775b36 | ||
| 
						 | 
					ecc235c545 | ||
| 
						 | 
					382b1d2250 | ||
| 
						 | 
					629693355a | ||
| 
						 | 
					00a3f8d392 | ||
| 
						 | 
					80b6e8090e | ||
| 
						 | 
					a5f817d896 | ||
| 
						 | 
					51b0244cf2 | ||
| 
						 | 
					01131e2606 | ||
| 
						 | 
					6283b7668e | ||
| 
						 | 
					d058ecc4ea | ||
| 
						 | 
					77a0450b5d | ||
| 
						 | 
					1dd1b9084f | ||
| 
						 | 
					6341807d02 | ||
| 
						 | 
					51a1f30225 | ||
| 
						 | 
					5422482696 | ||
| 
						 | 
					cd7f8b080e | ||
| 
						 | 
					faf29b768f | ||
| 
						 | 
					7576569dc9 | ||
| 
						 | 
					ea3bcbbc37 | ||
| 
						 | 
					d9f0e158a3 | ||
| 
						 | 
					195f676500 | ||
| 
						 | 
					a9a2f4820b | ||
| 
						 | 
					8414db57f0 | ||
| 
						 | 
					609d68933e | ||
| 
						 | 
					a23b8cebbc | ||
| 
						 | 
					89f6b03cd6 | ||
| 
						 | 
					7bc9de03a6 | ||
| 
						 | 
					3c865d6054 | ||
| 
						 | 
					fd770b008e | ||
| 
						 | 
					b0d60ef2c2 | ||
| 
						 | 
					7b9cea06ef | ||
| 
						 | 
					30608d3e22 | ||
| 
						 | 
					8bf4e55338 | ||
| 
						 | 
					6ead1de383 | ||
| 
						 | 
					3b628ec3c4 | ||
| 
						 | 
					0ed704d173 | ||
| 
						 | 
					87b6ef0ec5 | ||
| 
						 | 
					5184a07cf2 | ||
| 
						 | 
					dba04cc59c | ||
| 
						 | 
					f4045fb5b3 | ||
| 
						 | 
					16c36163b4 | ||
| 
						 | 
					1ac033ff18 | ||
| 
						 | 
					ccfd48232a | ||
| 
						 | 
					429bf179dc | ||
| 
						 | 
					8ba3fb13eb | ||
| 
						 | 
					11496d887e | ||
| 
						 | 
					bec48319ec | ||
| 
						 | 
					71a93b2b43 | ||
| 
						 | 
					6ed3f9e414 | ||
| 
						 | 
					dc8f592c1f | ||
| 
						 | 
					f66c31c771 | ||
| 
						 | 
					55e2ae1408 | ||
| 
						 | 
					19c72627fc | ||
| 
						 | 
					2a4c53c3a4 | ||
| 
						 | 
					1f2ebce8ed | ||
| 
						 | 
					fcea9dacb7 | ||
| 
						 | 
					908872f374 | ||
| 
						 | 
					f688ceafb8 | ||
| 
						 | 
					b47b5d6d8b | ||
| 
						 | 
					31ce3aa312 | ||
| 
						 | 
					5b22d92e99 | ||
| 
						 | 
					df148e25da | ||
| 
						 | 
					4b26df5c3a | ||
| 
						 | 
					e765be4205 | ||
| 
						 | 
					f7d2457063 | ||
| 
						 | 
					6032d803aa | ||
| 
						 | 
					0de371db38 | ||
| 
						 | 
					ce3797c4af | ||
| 
						 | 
					56dd8c298b | ||
| 
						 | 
					3533257efe | ||
| 
						 | 
					dc2f08721d | ||
| 
						 | 
					66608a4131 | ||
| 
						 | 
					2fa90131eb | ||
| 
						 | 
					a51ed28db6 | ||
| 
						 | 
					5ec290663b | ||
| 
						 | 
					1374d6e34d | ||
| 
						 | 
					45ade17c58 | ||
| 
						 | 
					c753e26187 | ||
| 
						 | 
					577929eed1 | ||
| 
						 | 
					1fde8a8fb0 | ||
| 
						 | 
					77e53cbf9e | ||
| 
						 | 
					ab83e08bc7 | ||
| 
						 | 
					2fad6e6d5f | ||
| 
						 | 
					a3604a6c95 | ||
| 
						 | 
					44f6fe6f1f | ||
| 
						 | 
					311b4e90ca | ||
| 
						 | 
					f5a937c523 | ||
| 
						 | 
					0632a3ed3f | ||
| 
						 | 
					71bada97df | ||
| 
						 | 
					62509edcbe | ||
| 
						 | 
					f97cdfaa20 | ||
| 
						 | 
					67ec10e86d | ||
| 
						 | 
					481b3f2c58 | ||
| 
						 | 
					7d599a68ea | ||
| 
						 | 
					7ccff732b8 | ||
| 
						 | 
					7587c896d5 | ||
| 
						 | 
					91297f1ab3 | ||
| 
						 | 
					d872a16fe0 | ||
| 
						 | 
					60aa35adf8 | ||
| 
						 | 
					5035b66773 | ||
| 
						 | 
					fa9da8ecab | ||
| 
						 | 
					1f9bca7188 | ||
| 
						 | 
					ffa5bdeb50 | ||
| 
						 | 
					e6bfb7398e | ||
| 
						 | 
					6def0c776f | ||
| 
						 | 
					24bae9eaed | ||
| 
						 | 
					fb5175a283 | ||
| 
						 | 
					6e49437154 | ||
| 
						 | 
					2511ed56ac | ||
| 
						 | 
					c4bfc99cf5 | ||
| 
						 | 
					4efe38440d | ||
| 
						 | 
					4a5f2c3c40 | ||
| 
						 | 
					109738ccb9 | ||
| 
						 | 
					433dbe179d | ||
| 
						 | 
					b21b33831a | ||
| 
						 | 
					020cc471da | ||
| 
						 | 
					43b47c4494 | ||
| 
						 | 
					8751d91794 | ||
| 
						 | 
					374b276f5c | ||
| 
						 | 
					6138a74231 | ||
| 
						 | 
					25438c4d64 | ||
| 
						 | 
					ae6ce19886 | ||
| 
						 | 
					e17a9bfd6f | ||
| 
						 | 
					dc2055f5bc | ||
| 
						 | 
					afeb8058b1 | ||
| 
						 | 
					9299f99ac3 | ||
| 
						 | 
					858fc7ebcc | ||
| 
						 | 
					35089c65d3 | ||
| 
						 | 
					643ca42829 | ||
| 
						 | 
					935dc4fe33 | ||
| 
						 | 
					3a9e74feb1 | ||
| 
						 | 
					92e66fbf0c | ||
| 
						 | 
					a50515f569 | ||
| 
						 | 
					2f8f47acea | ||
| 
						 | 
					dcb296db93 | ||
| 
						 | 
					0bdae9ede7 | ||
| 
						 | 
					11290c2a0f | ||
| 
						 | 
					428b8f8669 | ||
| 
						 | 
					7ced10f84e | ||
| 
						 | 
					8ac54139c9 | ||
| 
						 | 
					32afe77a26 | ||
| 
						 | 
					6db8e33662 | ||
| 
						 | 
					569561f247 | ||
| 
						 | 
					d132d82acf | ||
| 
						 | 
					9ba0db9372 | ||
| 
						 | 
					5d468b542d | ||
| 
						 | 
					32273165c7 | ||
| 
						 | 
					46fdb75bf4 | ||
| 
						 | 
					baf381814b | ||
| 
						 | 
					e90387c14e | ||
| 
						 | 
					876790d499 | ||
| 
						 | 
					8b56edda4b | ||
| 
						 | 
					33352256d6 | ||
| 
						 | 
					e368ef11fa | ||
| 
						 | 
					045f7c3185 | ||
| 
						 | 
					bf40e5a5c5 | ||
| 
						 | 
					cda3635d97 | ||
| 
						 | 
					2eb561f132 | ||
| 
						 | 
					b5f6465d61 | ||
| 
						 | 
					9725076c46 | ||
| 
						 | 
					f7228e79bb | ||
| 
						 | 
					d3e250288a | ||
| 
						 | 
					38f8043cb2 | ||
| 
						 | 
					a61320ca8c | ||
| 
						 | 
					4bc9bad34f | ||
| 
						 | 
					4392e64672 | ||
| 
						 | 
					74a0d60766 | ||
| 
						 | 
					012a2b6b00 | ||
| 
						 | 
					584bca7658 | ||
| 
						 | 
					5dcd96d926 | ||
| 
						 | 
					bd2be2815c | ||
| 
						 | 
					2a5635492a | ||
| 
						 | 
					eeea7527c1 | ||
| 
						 | 
					d943a9a2f4 | ||
| 
						 | 
					d4335f0e4d | ||
| 
						 | 
					054f7cbdaa | ||
| 
						 | 
					6ff95dab89 | ||
| 
						 | 
					4461bde5da | ||
| 
						 | 
					19152c28cb | ||
| 
						 | 
					dda2967e2d | ||
| 
						 | 
					a680bcda1f | ||
| 
						 | 
					8d24fcba6a | ||
| 
						 | 
					2a96429be8 | ||
| 
						 | 
					5c6f376f4e | ||
| 
						 | 
					1b24fad95f | ||
| 
						 | 
					87743d9ef9 | ||
| 
						 | 
					8ffd0abb1b | ||
| 
						 | 
					2fed09ec18 | ||
| 
						 | 
					6daabb35de | ||
| 
						 | 
					59e98aa06c | ||
| 
						 | 
					3601d95733 | ||
| 
						 | 
					2c57dfd528 | ||
| 
						 | 
					2348f2586c | ||
| 
						 | 
					ed11f954aa | ||
| 
						 | 
					5765a8e38e | ||
| 
						 | 
					4a925fade1 | ||
| 
						 | 
					fca86f43c4 | ||
| 
						 | 
					12005de4c0 | ||
| 
						 | 
					2e3d0d3435 | ||
| 
						 | 
					7d76887517 | ||
| 
						 | 
					bf39ecd1e5 | ||
| 
						 | 
					7ebee09f74 | ||
| 
						 | 
					952a49f749 | ||
| 
						 | 
					8f8c67ad6d | ||
| 
						 | 
					ce659f9926 | ||
| 
						 | 
					c23ec555ff | ||
| 
						 | 
					25b0a93acd | ||
| 
						 | 
					7b2b7d1456 | ||
| 
						 | 
					37444939ab | ||
| 
						 | 
					2fee2e5166 | ||
| 
						 | 
					98bd6c3cb8 | ||
| 
						 | 
					fc31e44fd2 | ||
| 
						 | 
					12f89f0e2e | ||
| 
						 | 
					cdf15fc43a | ||
| 
						 | 
					2a12af28dd | ||
| 
						 | 
					f128fceaba | ||
| 
						 | 
					26c5d66994 | ||
| 
						 | 
					bd390d424a | ||
| 
						 | 
					6b85730361 | ||
| 
						 | 
					d6176d1901 | ||
| 
						 | 
					43f336bea4 | ||
| 
						 | 
					d2ed9e965e | ||
| 
						 | 
					ea73e9d5de | ||
| 
						 | 
					36ef862fc6 | ||
| 
						 | 
					999275ca2c | ||
| 
						 | 
					78c36ec260 | ||
| 
						 | 
					c985fed3e4 | ||
| 
						 | 
					f13fe431b8 | ||
| 
						 | 
					f1d7cc08bb | ||
| 
						 | 
					e662dfbcfb | ||
| 
						 | 
					8aaf667f78 | ||
| 
						 | 
					fdfea73bdb | ||
| 
						 | 
					50161bc84d | ||
| 
						 | 
					8046a4488d | ||
| 
						 | 
					e818c37a0c | ||
| 
						 | 
					16ffa0c3c7 | ||
| 
						 | 
					6a9b839e62 | ||
| 
						 | 
					b5da01931c | ||
| 
						 | 
					99b6896cf4 | ||
| 
						 | 
					0ac05df628 | ||
| 
						 | 
					83726ddcec | ||
| 
						 | 
					be627d488c | ||
| 
						 | 
					e615a3fdf3 | ||
| 
						 | 
					f670345d45 | ||
| 
						 | 
					6032ec3823 | ||
| 
						 | 
					01ed052ae6 | ||
| 
						 | 
					88a9a7c48f | ||
| 
						 | 
					d74755f0a4 | ||
| 
						 | 
					e05871a7f8 | ||
| 
						 | 
					fed44e2f2b | ||
| 
						 | 
					2189f450df | ||
| 
						 | 
					288e8f0f75 | ||
| 
						 | 
					dfe7eaaa04 | ||
| 
						 | 
					51b166b419 | ||
| 
						 | 
					0ac9a85314 | ||
| 
						 | 
					d153297294 | ||
| 
						 | 
					ec71658087 | ||
| 
						 | 
					3f359e67b3 | ||
| 
						 | 
					3220d69a69 | ||
| 
						 | 
					385116bf30 | ||
| 
						 | 
					f3b476a348 | ||
| 
						 | 
					d0dec99222 | ||
| 
						 | 
					b3fa50d4d1 | ||
| 
						 | 
					1dbf245f76 | ||
| 
						 | 
					7c092bc04c | ||
| 
						 | 
					b8f1a8a243 | ||
| 
						 | 
					c2b235b4a3 | ||
| 
						 | 
					19a9d8d254 | ||
| 
						 | 
					c79d29bd6c | ||
| 
						 | 
					14816a1c6d | ||
| 
						 | 
					0c86f1c1aa | ||
| 
						 | 
					8f440ae633 | ||
| 
						 | 
					863a5ba872 | ||
| 
						 | 
					c87a43bdba | ||
| 
						 | 
					fa6a7186e0 | ||
| 
						 | 
					34a5adf951 | ||
| 
						 | 
					4b3ece439e | ||
| 
						 | 
					10dc97c43f | ||
| 
						 | 
					2c59da36c2 | ||
| 
						 | 
					f457fb6067 | ||
| 
						 | 
					6843019481 | ||
| 
						 | 
					17cc5a9b95 | ||
| 
						 | 
					b51843ed50 | ||
| 
						 | 
					ecf44a4fc7 | ||
| 
						 | 
					8be0188140 | ||
| 
						 | 
					1008e38abc | ||
| 
						 | 
					b862e53a56 | ||
| 
						 | 
					94042c2ea9 | ||
| 
						 | 
					1d76bb42bb | ||
| 
						 | 
					d71a3b59b4 | ||
| 
						 | 
					1e0c486f2a | ||
| 
						 | 
					98ec9e2254 | ||
| 
						 | 
					f18c6c26a5 | ||
| 
						 | 
					b6f69b6477 | ||
| 
						 | 
					901709057e | ||
| 
						 | 
					30c4718b0d | ||
| 
						 | 
					24fe68d75f | ||
| 
						 | 
					d0de0bc815 | ||
| 
						 | 
					9643b1c44a | ||
| 
						 | 
					c1d02a4e1b | ||
| 
						 | 
					be842b5071 | ||
| 
						 | 
					c2eb80b44c | ||
| 
						 | 
					9ed2a82d3b | ||
| 
						 | 
					b28eb54cac | ||
| 
						 | 
					683d3a70b2 | ||
| 
						 | 
					84fb010789 | ||
| 
						 | 
					278c586414 | ||
| 
						 | 
					e9165bc6e0 | ||
| 
						 | 
					e3d190072f | ||
| 
						 | 
					e7004ef9f1 | ||
| 
						 | 
					8336601ded | ||
| 
						 | 
					1dfb82b85b | ||
| 
						 | 
					0ffc30dcbf | ||
| 
						 | 
					3aa74de53c | ||
| 
						 | 
					f78f5c7b02 | ||
| 
						 | 
					0345fe6b30 | ||
| 
						 | 
					a51ba0d57c | ||
| 
						 | 
					6a7719ccf3 | ||
| 
						 | 
					4c18d9edc6 | ||
| 
						 | 
					c6d0fe3c6e | ||
| 
						 | 
					03e1d3fbc4 | ||
| 
						 | 
					700f8c9bb4 | ||
| 
						 | 
					5a0fd674bb | ||
| 
						 | 
					44099c551c | ||
| 
						 | 
					111f44ce09 | ||
| 
						 | 
					c3c885de47 | ||
| 
						 | 
					6d536c61e8 | ||
| 
						 | 
					8a8c079b2f | ||
| 
						 | 
					b4a30e2a25 | ||
| 
						 | 
					f19f92c538 | ||
| 
						 | 
					e1a946ab45 | ||
| 
						 | 
					aa1817737e | ||
| 
						 | 
					25ec5a24ab | ||
| 
						 | 
					68784b3f8e | ||
| 
						 | 
					2118fadc48 | ||
| 
						 | 
					f14cde4db9 | ||
| 
						 | 
					75ce3f2eb8 | ||
| 
						 | 
					ca2230f690 | ||
| 
						 | 
					aa1dbe2710 | ||
| 
						 | 
					deddeb570e | ||
| 
						 | 
					0ed197d4d9 | ||
| 
						 | 
					046976dffc | ||
| 
						 | 
					bb8139196e | ||
| 
						 | 
					1fea2cdcbe | ||
| 
						 | 
					fe3dd25bc3 | ||
| 
						 | 
					5b09209ef9 | ||
| 
						 | 
					62db650e3c | ||
| 
						 | 
					b847886254 | ||
| 
						 | 
					c6e69ffae4 | ||
| 
						 | 
					b24f368d3f | ||
| 
						 | 
					4dc8351f56 | ||
| 
						 | 
					f3ab8199a5 | ||
| 
						 | 
					28d953933a | ||
| 
						 | 
					77d9ae92f6 | ||
| 
						 | 
					7d00754587 | ||
| 
						 | 
					982b5eb698 | ||
| 
						 | 
					20a9c25d70 | ||
| 
						 | 
					eebed9944c | ||
| 
						 | 
					507a192489 | ||
| 
						 | 
					689dc3b9d5 | ||
| 
						 | 
					d765803b83 | ||
| 
						 | 
					0fabb6a057 | ||
| 
						 | 
					23efaae85e | ||
| 
						 | 
					5b2f15726f | ||
| 
						 | 
					bc3a5f3512 | ||
| 
						 | 
					ba05f236bd | ||
| 
						 | 
					6ac92ac4b8 | ||
| 
						 | 
					d9a1cd082c | ||
| 
						 | 
					a32071541a | ||
| 
						 | 
					eb4f625bbd | ||
| 
						 | 
					e36d45507a | ||
| 
						 | 
					e32884f07f | ||
| 
						 | 
					1344ffa67d | ||
| 
						 | 
					e07210524f | ||
| 
						 | 
					6f3996c061 | ||
| 
						 | 
					fd06fd4dc1 | ||
| 
						 | 
					d86d5feae3 | ||
| 
						 | 
					0e20a8f07b | ||
| 
						 | 
					a40d784e3a | ||
| 
						 | 
					e145131b95 | ||
| 
						 | 
					92873b8bb5 | ||
| 
						 | 
					d359b71c81 | ||
| 
						 | 
					f1a0bf4257 | ||
| 
						 | 
					ea4e2da58d | ||
| 
						 | 
					1301b3b49e | ||
| 
						 | 
					424625846e | ||
| 
						 | 
					0790dd7a2c | ||
| 
						 | 
					b238d7b934 | ||
| 
						 | 
					011e4fded2 | ||
| 
						 | 
					2fe872a9c9 | ||
| 
						 | 
					02c1515a0f | ||
| 
						 | 
					408118a1e8 | ||
| 
						 | 
					6a45bb21c3 | ||
| 
						 | 
					5d4e9aa949 | ||
| 
						 | 
					c87b98c2af | ||
| 
						 | 
					5a13c38a6d | ||
| 
						 | 
					67f60ab307 | ||
| 
						 | 
					08c278578d | ||
| 
						 | 
					5e9d2d079d | ||
| 
						 | 
					0e01fb5fc3 | ||
| 
						 | 
					d44dc7e00d | ||
| 
						 | 
					82ee3a538b | ||
| 
						 | 
					fdc16253d1 | ||
| 
						 | 
					7e83cd2d74 | ||
| 
						 | 
					083eb75eff | ||
| 
						 | 
					f50afa768f | ||
| 
						 | 
					1a80fe91ce | ||
| 
						 | 
					4de1a5ef6c | ||
| 
						 | 
					d0d389299b | ||
| 
						 | 
					dc70804350 | ||
| 
						 | 
					78d691571b | ||
| 
						 | 
					b7cbf4a42a | ||
| 
						 | 
					87ca7c50b4 | ||
| 
						 | 
					6c7550b3f3 | ||
| 
						 | 
					4239ffa13f | ||
| 
						 | 
					c6cfb0df76 | ||
| 
						 | 
					380cf0de69 | ||
| 
						 | 
					11f25ea2e7 | ||
| 
						 | 
					ef62497777 | ||
| 
						 | 
					2824d8a5b6 | ||
| 
						 | 
					1c84c0828e | ||
| 
						 | 
					39e4494836 | ||
| 
						 | 
					dc174ca759 | ||
| 
						 | 
					b61cfd0407 | ||
| 
						 | 
					53405e54a8 | ||
| 
						 | 
					c7ef7531a9 | ||
| 
						 | 
					626b4bf314 | ||
| 
						 | 
					323d0e0154 | ||
| 
						 | 
					6d1338317b | ||
| 
						 | 
					1ce26d8aec | ||
| 
						 | 
					7ba3d3ec98 | ||
| 
						 | 
					24f58b3ecb | ||
| 
						 | 
					d1d8587096 | ||
| 
						 | 
					96db630f5e | ||
| 
						 | 
					91fae0ae8b | ||
| 
						 | 
					bfa1235b48 | ||
| 
						 | 
					95d324a413 | ||
| 
						 | 
					ef3535319b | ||
| 
						 | 
					e9c04f4fa0 | ||
| 
						 | 
					e7180d529a | ||
| 
						 | 
					b8cd872738 | ||
| 
						 | 
					efaaa76185 | ||
| 
						 | 
					19e1f996a6 | ||
| 
						 | 
					40a69bf200 | ||
| 
						 | 
					9e3abb9989 | ||
| 
						 | 
					5ba48e06f7 | ||
| 
						 | 
					8b3a0a524b | ||
| 
						 | 
					d9fe9cc5df | ||
| 
						 | 
					b202c7906a | ||
| 
						 | 
					b9c868cac6 | ||
| 
						 | 
					33adf3c88d | ||
| 
						 | 
					8b84f40975 | ||
| 
						 | 
					fa131d2023 | ||
| 
						 | 
					a83b38b50a | ||
| 
						 | 
					dcd7b286ef | ||
| 
						 | 
					b85bf769cd | ||
| 
						 | 
					630a20d61e | ||
| 
						 | 
					88c3794cf1 | ||
| 
						 | 
					42eb457ad0 | ||
| 
						 | 
					d153a8de20 | ||
| 
						 | 
					7f7551f44c | ||
| 
						 | 
					23082b55a4 | ||
| 
						 | 
					dac7387a7f | ||
| 
						 | 
					8c6856d894 | ||
| 
						 | 
					2c0e514fb2 | ||
| 
						 | 
					1917b0339e | ||
| 
						 | 
					c05419f223 | ||
| 
						 | 
					e0deaec695 | ||
| 
						 | 
					d70e2a788e | ||
| 
						 | 
					7343e6e2e8 | ||
| 
						 | 
					106d4cc0d6 | ||
| 
						 | 
					c98879cb7a | ||
| 
						 | 
					9ca755c313 | ||
| 
						 | 
					25e0b98840 | ||
| 
						 | 
					5599c43c71 | ||
| 
						 | 
					eb7597d7e4 | ||
| 
						 | 
					d5767e92c4 | ||
| 
						 | 
					ba3749d373 | ||
| 
						 | 
					d8088acdf2 | ||
| 
						 | 
					ad93e0aa3d | ||
| 
						 | 
					691e58f03d | ||
| 
						 | 
					95d5bccfca | ||
| 
						 | 
					2aa8e0a4bf | ||
| 
						 | 
					6e96d6677d | ||
| 
						 | 
					8816c20f51 | ||
| 
						 | 
					e955fe1ffd | ||
| 
						 | 
					5cbcac713a | ||
| 
						 | 
					2b50364ab4 | ||
| 
						 | 
					fa04ac789e | ||
| 
						 | 
					95ce8dce3d | ||
| 
						 | 
					0b5eec4ca8 | ||
| 
						 | 
					6d9716f90e | ||
| 
						 | 
					aa31061d90 | ||
| 
						 | 
					acc7797dff | ||
| 
						 | 
					7959196dc7 | ||
| 
						 | 
					c6ff6939a5 | ||
| 
						 | 
					769960f29e | ||
| 
						 | 
					d92e9759f3 | ||
| 
						 | 
					bf7e19b288 | ||
| 
						 | 
					98954cd6d4 | ||
| 
						 | 
					538bb978ed | ||
| 
						 | 
					10232c5866 | ||
| 
						 | 
					5cd6a0db16 | ||
| 
						 | 
					ff0a05a2d6 | ||
| 
						 | 
					e34b264af2 | ||
| 
						 | 
					00d79487cd | ||
| 
						 | 
					3cace734c7 | ||
| 
						 | 
					f428372869 | ||
| 
						 | 
					5dd2feba9b | ||
| 
						 | 
					a1b026239e | ||
| 
						 | 
					40735ce76b | ||
| 
						 | 
					4a00c13b33 | ||
| 
						 | 
					8e359d54bd | ||
| 
						 | 
					fb76dff836 | ||
| 
						 | 
					2448bf4e4e | ||
| 
						 | 
					91e0fc8c62 | ||
| 
						 | 
					b4f86feddb | ||
| 
						 | 
					7167c8c593 | ||
| 
						 | 
					51b79d4250 | ||
| 
						 | 
					925fcc1c64 | ||
| 
						 | 
					fcdc14862c | ||
| 
						 | 
					dac2844cae | ||
| 
						 | 
					706b0cea16 | ||
| 
						 | 
					842e7844c7 | ||
| 
						 | 
					1dceda50d8 | ||
| 
						 | 
					af8b9abba4 | ||
| 
						 | 
					07b07685fa | ||
| 
						 | 
					cde43fe3c8 | ||
| 
						 | 
					2fe84aa75b | ||
| 
						 | 
					7d79a4840d | ||
| 
						 | 
					3ee9479572 | ||
| 
						 | 
					ccf8e44acc | ||
| 
						 | 
					451acb77df | ||
| 
						 | 
					e2c6227f47 | ||
| 
						 | 
					ebd1c877ad | ||
| 
						 | 
					498094b3c7 | ||
| 
						 | 
					1cc183ecdb | ||
| 
						 | 
					e8948452fd | ||
| 
						 | 
					ade7e62836 | ||
| 
						 | 
					395cfa6108 | ||
| 
						 | 
					b5ff2abdb9 | ||
| 
						 | 
					229e85b2c5 | ||
| 
						 | 
					4257fed500 | ||
| 
						 | 
					37058e3480 | ||
| 
						 | 
					a1b82e9723 | ||
| 
						 | 
					db943df0c8 | ||
| 
						 | 
					299f83684b | ||
| 
						 | 
					ff8d300ea8 | ||
| 
						 | 
					8b490b9b94 | ||
| 
						 | 
					f83f8631ac | ||
| 
						 | 
					16da91d8d1 | ||
| 
						 | 
					8ffd62b462 | ||
| 
						 | 
					935367e167 | ||
| 
						 | 
					00618260f2 | ||
| 
						 | 
					77d66fac7b | ||
| 
						 | 
					17d7f59b06 | ||
| 
						 | 
					2561547db1 | ||
| 
						 | 
					7738438616 | ||
| 
						 | 
					3d8fc4a794 | ||
| 
						 | 
					87b4e7905e | ||
| 
						 | 
					13c5d4985a | ||
| 
						 | 
					f0df4096fd | ||
| 
						 | 
					5044424549 | ||
| 
						 | 
					8ce67cdcd6 | ||
| 
						 | 
					1915ccabdd | ||
| 
						 | 
					6fea2f52f1 | ||
| 
						 | 
					f77eaaa08a | ||
| 
						 | 
					7c5bc03492 | ||
| 
						 | 
					72a1af6cd4 | ||
| 
						 | 
					4bce6f14f3 | ||
| 
						 | 
					a38ce86f87 | ||
| 
						 | 
					f539491502 | ||
| 
						 | 
					ebeaef94e2 | ||
| 
						 | 
					2399ba05cd | ||
| 
						 | 
					8bcfa97349 | ||
| 
						 | 
					dd3e3ddcdd | ||
| 
						 | 
					2555e23b10 | ||
| 
						 | 
					1595683904 | ||
| 
						 | 
					d279f8e9ff | ||
| 
						 | 
					eaec936fa6 | ||
| 
						 | 
					a0735b0e7a | ||
| 
						 | 
					5b039a1bee | ||
| 
						 | 
					921609cab1 | ||
| 
						 | 
					199573ccee | ||
| 
						 | 
					977200b7cd | ||
| 
						 | 
					6abff253ea | ||
| 
						 | 
					ba64de334a | ||
| 
						 | 
					dc1d7fa9d7 | ||
| 
						 | 
					f42665d4bc | ||
| 
						 | 
					a5eb19c878 | ||
| 
						 | 
					60fa8e13d6 | ||
| 
						 | 
					ecbaea463b | ||
| 
						 | 
					814ddeb436 | ||
| 
						 | 
					d6466106e8 | ||
| 
						 | 
					633f5384f9 | ||
| 
						 | 
					fa7989772c | ||
| 
						 | 
					0e395612a6 | ||
| 
						 | 
					fb3f52f3ad | ||
| 
						 | 
					ba11c71d65 | ||
| 
						 | 
					bdc3081167 | ||
| 
						 | 
					430efcf1b9 | ||
| 
						 | 
					996450dd7c | ||
| 
						 | 
					fa779f0417 | ||
| 
						 | 
					25cec6d28a | ||
| 
						 | 
					c5f8403cea | ||
| 
						 | 
					a9ae9a65c8 | ||
| 
						 | 
					3698c679e2 | ||
| 
						 | 
					881df20f1b | ||
| 
						 | 
					7d269c0441 | ||
| 
						 | 
					ba38f64353 | ||
| 
						 | 
					db3ae303cb | ||
| 
						 | 
					66f3a155e6 | ||
| 
						 | 
					639b483e6c | ||
| 
						 | 
					09843a409b | ||
| 
						 | 
					e894ed5a8b | ||
| 
						 | 
					d7808299fd | ||
| 
						 | 
					f92e0c16d2 | ||
| 
						 | 
					d94b3757be | ||
| 
						 | 
					13e822cba6 | ||
| 
						 | 
					c57bf87f52 | ||
| 
						 | 
					99fbd60265 | ||
| 
						 | 
					ea9b48db3c | ||
| 
						 | 
					c145c994a9 | ||
| 
						 | 
					d033998b56 | ||
| 
						 | 
					3136c714bf | ||
| 
						 | 
					c0ee134f19 | ||
| 
						 | 
					d15ebe5732 | ||
| 
						 | 
					ef630195fa | ||
| 
						 | 
					e31921151e | ||
| 
						 | 
					f94992abbe | ||
| 
						 | 
					b00060c09c | ||
| 
						 | 
					f6217d96d2 | ||
| 
						 | 
					3a6947c7ed | ||
| 
						 | 
					0fb528ddf8 | ||
| 
						 | 
					14c03f226d | ||
| 
						 | 
					4f0d844b43 | ||
| 
						 | 
					b93395fc4c | ||
| 
						 | 
					34eacb7e2d | ||
| 
						 | 
					0177023ead | ||
| 
						 | 
					a4678e45de | ||
| 
						 | 
					f24869625e | ||
| 
						 | 
					01beb705a2 | ||
| 
						 | 
					ce28c70c35 | ||
| 
						 | 
					5e0f5c31e7 | ||
| 
						 | 
					b28dd4be52 | ||
| 
						 | 
					d8dcc4da27 | ||
| 
						 | 
					291beb45fc | ||
| 
						 | 
					ffb345ccb5 | ||
| 
						 | 
					d2abe2cd81 | ||
| 
						 | 
					acffc3e522 | ||
| 
						 | 
					0962e62b8c | ||
| 
						 | 
					91ebd310b7 | ||
| 
						 | 
					2974c74b4e | ||
| 
						 | 
					3d24112d2d | ||
| 
						 | 
					4a977cd523 | ||
| 
						 | 
					4b1886990f | ||
| 
						 | 
					f3499b787c | ||
| 
						 | 
					5209a584a2 | ||
| 
						 | 
					57a63d38aa | ||
| 
						 | 
					3efffbcf22 | ||
| 
						 | 
					15eaebe522 | ||
| 
						 | 
					eee98358ac | ||
| 
						 | 
					795fc5e7bc | ||
| 
						 | 
					70ac668474 | ||
| 
						 | 
					1004e0d6e8 | ||
| 
						 | 
					52aa64fcb6 | ||
| 
						 | 
					7860d97a10 | ||
| 
						 | 
					409b37b271 | ||
| 
						 | 
					ad9b9964fa | ||
| 
						 | 
					d2b5276f43 | ||
| 
						 | 
					7204e2a84c | ||
| 
						 | 
					1377fa3332 | ||
| 
						 | 
					bf087bfccf | ||
| 
						 | 
					e846e3d571 | ||
| 
						 | 
					d646e62888 | ||
| 
						 | 
					c008154d18 | ||
| 
						 | 
					29bd4de26a | ||
| 
						 | 
					7559b8da6c | ||
| 
						 | 
					35218e84fc | ||
| 
						 | 
					2c135fa2f6 | ||
| 
						 | 
					21da6bd047 | ||
| 
						 | 
					f1d65a66b4 | ||
| 
						 | 
					63e2dbbb0d | ||
| 
						 | 
					a228c522f1 | ||
| 
						 | 
					a951c337b8 | ||
| 
						 | 
					db3efb3791 | ||
| 
						 | 
					8ee771ca77 | ||
| 
						 | 
					488bbc9651 | ||
| 
						 | 
					29b2bdf613 | ||
| 
						 | 
					7e35048829 | ||
| 
						 | 
					4d6b9f62e5 | ||
| 
						 | 
					5f9a9867eb | ||
| 
						 | 
					059a8e07d2 | ||
| 
						 | 
					cf82f56e66 | ||
| 
						 | 
					2778bd14d4 | ||
| 
						 | 
					5b0446739c | ||
| 
						 | 
					55f235d0ac | ||
| 
						 | 
					4ec44c68e9 | ||
| 
						 | 
					e6952d499a | ||
| 
						 | 
					e0b82f827b | ||
| 
						 | 
					0bccb17e82 | ||
| 
						 | 
					b251b8c6a9 | ||
| 
						 | 
					c2a62f632b | ||
| 
						 | 
					359da9a5a1 | ||
| 
						 | 
					2a235151ed | ||
| 
						 | 
					9e318d5ebc | ||
| 
						 | 
					6819eb3b4d | ||
| 
						 | 
					4c6fb60dd2 | ||
| 
						 | 
					bffb9a5c45 | ||
| 
						 | 
					dca4053a67 | ||
| 
						 | 
					fd07f00d14 | ||
| 
						 | 
					bbeb6d534e | ||
| 
						 | 
					37b5afa1a3 | ||
| 
						 | 
					63b8af4531 | ||
| 
						 | 
					e89e76076a | ||
| 
						 | 
					18b4f74cdb | ||
| 
						 | 
					b80d0a3b12 | ||
| 
						 | 
					e53dde385c | ||
| 
						 | 
					6a7a4c20e6 | ||
| 
						 | 
					6434dac04d | ||
| 
						 | 
					5deb1bf40e | ||
| 
						 | 
					9cd334576c | ||
| 
						 | 
					ae36bf301a | ||
| 
						 | 
					9f60688d37 | ||
| 
						 | 
					6a5a9de795 | ||
| 
						 | 
					ca0ea9e57c | ||
| 
						 | 
					a77a7e8112 | ||
| 
						 | 
					b26ea2edc0 | ||
| 
						 | 
					02b99dfd76 | ||
| 
						 | 
					af02b0f115 | ||
| 
						 | 
					9b3c379678 | ||
| 
						 | 
					a423fd7695 | ||
| 
						 | 
					de6e1d8c9b | ||
| 
						 | 
					d9db3e8629 | ||
| 
						 | 
					ac1c81b7d6 | ||
| 
						 | 
					49b2eec534 | ||
| 
						 | 
					f0abc46429 | ||
| 
						 | 
					9fd4f5ee0a | ||
| 
						 | 
					5e202c3def | ||
| 
						 | 
					48223c1c76 | ||
| 
						 | 
					dddf7834cc | ||
| 
						 | 
					66ef30b2cc | ||
| 
						 | 
					f802fe57b9 | ||
| 
						 | 
					ead884ce89 | ||
| 
						 | 
					6a87e9f690 | ||
| 
						 | 
					5b943722fb | ||
| 
						 | 
					4d92b14308 | ||
| 
						 | 
					167c96d14e | ||
| 
						 | 
					8a42373753 | ||
| 
						 | 
					c1751a9b84 | ||
| 
						 | 
					4e11da98d9 | ||
| 
						 | 
					1b7d98c17e | ||
| 
						 | 
					3038434712 | ||
| 
						 | 
					117ab633a1 | ||
| 
						 | 
					e50fa4762d | ||
| 
						 | 
					aed1e839ba | ||
| 
						 | 
					00f2974a2a | ||
| 
						 | 
					073c96af47 | ||
| 
						 | 
					71da498364 | ||
| 
						 | 
					8e9c11f160 | ||
| 
						 | 
					98f6b23249 | ||
| 
						 | 
					89288d8e0d | ||
| 
						 | 
					724121eeaa | ||
| 
						 | 
					edee95a5ca | ||
| 
						 | 
					0c2361bf72 | ||
| 
						 | 
					92f8dc48e3 | ||
| 
						 | 
					06a0fff4b0 | ||
| 
						 | 
					d55e4621ac | ||
| 
						 | 
					bc6bda3714 | ||
| 
						 | 
					d3aafd3f13 | ||
| 
						 | 
					1a508de1c4 | ||
| 
						 | 
					768cc0aff5 | ||
| 
						 | 
					67f4c1f429 | ||
| 
						 | 
					2d4ceec0a5 | ||
| 
						 | 
					3e2a0cd89a | ||
| 
						 | 
					d1f4f2f663 | ||
| 
						 | 
					6e3bf26cad | ||
| 
						 | 
					672377f116 | ||
| 
						 | 
					80ee5afba7 | ||
| 
						 | 
					f55fcd3305 | ||
| 
						 | 
					64fc14ade5 | ||
| 
						 | 
					807f245657 | ||
| 
						 | 
					62f966dc27 | ||
| 
						 | 
					09f97bf7a7 | ||
| 
						 | 
					69460e494c | ||
| 
						 | 
					9bef723346 | ||
| 
						 | 
					b99eabb2cf | ||
| 
						 | 
					17be3f3d0f | ||
| 
						 | 
					05fe2cb173 | ||
| 
						 | 
					428be14c27 | ||
| 
						 | 
					a04fa8441e | ||
| 
						 | 
					7bcfa84e1a | ||
| 
						 | 
					1cc5986df3 | ||
| 
						 | 
					7aa5d03875 | ||
| 
						 | 
					a59fbfac19 | ||
| 
						 | 
					677f9ee8f6 | ||
| 
						 | 
					f4a16be2b4 | ||
| 
						 | 
					46b967ee4a | ||
| 
						 | 
					78568accd1 | ||
| 
						 | 
					e9f20a0fad | ||
| 
						 | 
					bbd9894e6b | ||
| 
						 | 
					f92745e381 | ||
| 
						 | 
					2762b78bcc | ||
| 
						 | 
					2d4ed2c8c2 | ||
| 
						 | 
					2de8e8c358 | ||
| 
						 | 
					eb7b638db3 | ||
| 
						 | 
					321e851b26 | ||
| 
						 | 
					f8340be3bf | ||
| 
						 | 
					02341ceb6e | ||
| 
						 | 
					3dcdd7a5d7 | ||
| 
						 | 
					85188b5de2 | ||
| 
						 | 
					b721d049c6 | ||
| 
						 | 
					e518fff944 | ||
| 
						 | 
					048128c7e1 | ||
| 
						 | 
					d3717449c2 | ||
| 
						 | 
					04de6218d3 | ||
| 
						 | 
					0082473d78 | ||
| 
						 | 
					77baca8e6e | ||
| 
						 | 
					6a7169630c | ||
| 
						 | 
					6b2089e043 | ||
| 
						 | 
					14ad3af30d | ||
| 
						 | 
					e7e6d833b7 | ||
| 
						 | 
					d1a9561135 | ||
| 
						 | 
					c7bda6f908 | ||
| 
						 | 
					ef43721e32 | ||
| 
						 | 
					ba6cd874aa | ||
| 
						 | 
					f283d2423f | ||
| 
						 | 
					c07f668f14 | ||
| 
						 | 
					596524a63c | ||
| 
						 | 
					975e4dd285 | ||
| 
						 | 
					09b05c8552 | ||
| 
						 | 
					530ee6f80e | ||
| 
						 | 
					6ad31dca76 | ||
| 
						 | 
					d423f8ae57 | ||
| 
						 | 
					8e5ce7f8e3 | ||
| 
						 | 
					33dfc21e4b | ||
| 
						 | 
					3266f3948a | ||
| 
						 | 
					7259887124 | ||
| 
						 | 
					800de03187 | ||
| 
						 | 
					78ba305e5c | ||
| 
						 | 
					bfed1475bb | ||
| 
						 | 
					3281d263c4 | ||
| 
						 | 
					a9a1798e3a | ||
| 
						 | 
					6806eafaed | ||
| 
						 | 
					3e20ea5b2e | ||
| 
						 | 
					3f30a69b8b | ||
| 
						 | 
					2d2e16d9f6 | ||
| 
						 | 
					9c32118b77 | ||
| 
						 | 
					ecf2eb4738 | ||
| 
						 | 
					3d754ea7eb | ||
| 
						 | 
					f755f24560 | ||
| 
						 | 
					699879d95d | ||
| 
						 | 
					6677508ba7 | ||
| 
						 | 
					58da32358b | ||
| 
						 | 
					491bc75095 | ||
| 
						 | 
					b9eafeee3f | ||
| 
						 | 
					c56ff5d88d | ||
| 
						 | 
					f5dd83a44a | ||
| 
						 | 
					9a295a85b1 | ||
| 
						 | 
					8e06d93c31 | ||
| 
						 | 
					1a42200137 | ||
| 
						 | 
					bbf33d2475 | ||
| 
						 | 
					93203ebfd1 | ||
| 
						 | 
					67053eeaa0 | ||
| 
						 | 
					43baf4ad6a | ||
| 
						 | 
					5b2a36e47b | ||
| 
						 | 
					2a0862a24e | ||
| 
						 | 
					ce31027b2e | ||
| 
						 | 
					3f66c77821 | ||
| 
						 | 
					bc713656ec | ||
| 
						 | 
					46d89faebc | ||
| 
						 | 
					7135c0e308 | ||
| 
						 | 
					1962bfb4a5 | ||
| 
						 | 
					a1fca2550e | ||
| 
						 | 
					c17f99b7a5 | ||
| 
						 | 
					7cd76d60c2 | ||
| 
						 | 
					fa7c8cfe5b | ||
| 
						 | 
					05fb8d35af | ||
| 
						 | 
					eaa827e2d9 | ||
| 
						 | 
					f365ea4585 | ||
| 
						 | 
					5d2e43ffb9 | ||
| 
						 | 
					e9a97ed99a | ||
| 
						 | 
					fe98102600 | ||
| 
						 | 
					aae8845664 | ||
| 
						 | 
					81a4388ecc | ||
| 
						 | 
					be3ab026fd | ||
| 
						 | 
					f92f9d8cb0 | ||
| 
						 | 
					08a59591ae | ||
| 
						 | 
					a09a244242 | ||
| 
						 | 
					483a61d90d | ||
| 
						 | 
					385fb7586b | ||
| 
						 | 
					c624da70ef | ||
| 
						 | 
					675668c395 | ||
| 
						 | 
					bc9c7efe85 | ||
| 
						 | 
					2488d40421 | ||
| 
						 | 
					bf7875bfaa | ||
| 
						 | 
					a84fa30774 | ||
| 
						 | 
					c19a763b3d | ||
| 
						 | 
					0875460974 | ||
| 
						 | 
					f0b08d3936 | ||
| 
						 | 
					16520c7b4c | ||
| 
						 | 
					65549d06d9 | ||
| 
						 | 
					52da66d550 | ||
| 
						 | 
					251c3c3fe4 | ||
| 
						 | 
					ce2d2a10c1 | ||
| 
						 | 
					3b6d242ef6 | ||
| 
						 | 
					0ebe801af4 | ||
| 
						 | 
					05daa7ac7d | ||
| 
						 | 
					990a583e5e | ||
| 
						 | 
					d9b02a18bf | ||
| 
						 | 
					30aae79e5c | ||
| 
						 | 
					a149c121fb | ||
| 
						 | 
					47f4b51207 | ||
| 
						 | 
					79f4d886d0 | ||
| 
						 | 
					2b556aba03 | ||
| 
						 | 
					4f62043b0c | ||
| 
						 | 
					b1ae304c51 | ||
| 
						 | 
					425bc032d0 | ||
| 
						 | 
					0156b75bde | ||
| 
						 | 
					8bc8fc58de | ||
| 
						 | 
					9bf847b1fb | ||
| 
						 | 
					0b078d203b | ||
| 
						 | 
					df59018b47 | ||
| 
						 | 
					b2681dcb5d | ||
| 
						 | 
					46fa471636 | ||
| 
						 | 
					5f2c441996 | ||
| 
						 | 
					a79cc42b26 | ||
| 
						 | 
					739c993911 | ||
| 
						 | 
					cb180e00de | ||
| 
						 | 
					4d46a61051 | ||
| 
						 | 
					81969ea8b2 | ||
| 
						 | 
					ac474f3884 | ||
| 
						 | 
					a39aaf6eb1 | ||
| 
						 | 
					68a7661f08 | ||
| 
						 | 
					ffcb2f755c | ||
| 
						 | 
					366e0d6bde | ||
| 
						 | 
					b3a3238e43 | ||
| 
						 | 
					92828028db | ||
| 
						 | 
					bd97e315ff | ||
| 
						 | 
					51083419f5 | ||
| 
						 | 
					b23bfd4d86 | ||
| 
						 | 
					7de3e847bd | ||
| 
						 | 
					0d1a541dba | ||
| 
						 | 
					2717109fe2 | ||
| 
						 | 
					60ca0626ce | ||
| 
						 | 
					15dae0ae65 | ||
| 
						 | 
					1c680118a0 | ||
| 
						 | 
					ad5efbba59 | ||
| 
						 | 
					6dc7baa5e9 | ||
| 
						 | 
					c2b886e750 | ||
| 
						 | 
					edb61e52c5 | ||
| 
						 | 
					ded297b04c | ||
| 
						 | 
					65e1d5978a | ||
| 
						 | 
					86e76358b1 | ||
| 
						 | 
					435e0257a4 | ||
| 
						 | 
					1c45cc808b | ||
| 
						 | 
					ed27a2f963 | ||
| 
						 | 
					1f53d1a149 | ||
| 
						 | 
					8295f6d7a3 | ||
| 
						 | 
					b02f6341c9 | ||
| 
						 | 
					f6d577d411 | ||
| 
						 | 
					db3e73318e | ||
| 
						 | 
					29c2071711 | ||
| 
						 | 
					3acd524d09 | ||
| 
						 | 
					dae65cc123 | ||
| 
						 | 
					695f154d87 | ||
| 
						 | 
					59dca9a812 | ||
| 
						 | 
					b9f04f8f53 | ||
| 
						 | 
					0985f14f18 | ||
| 
						 | 
					56684dd7c3 | ||
| 
						 | 
					47a5f3bc67 | ||
| 
						 | 
					1c1e3009e9 | ||
| 
						 | 
					c7c3f6999b | ||
| 
						 | 
					fb4aa9bc1c | ||
| 
						 | 
					ef57f5907b | ||
| 
						 | 
					eff44f9cd1 | ||
| 
						 | 
					d7fa92d58f | ||
| 
						 | 
					4e8033d5a4 | ||
| 
						 | 
					8a207d8311 | ||
| 
						 | 
					94ba9c8437 | ||
| 
						 | 
					88c71c2998 | ||
| 
						 | 
					7b6e55047f | ||
| 
						 | 
					9d85d0bb08 | ||
| 
						 | 
					27ac0bbc00 | ||
| 
						 | 
					affde9b4e2 | ||
| 
						 | 
					88324b6dd9 | ||
| 
						 | 
					9b95ffe6c6 | ||
| 
						 | 
					6b137f8d69 | ||
| 
						 | 
					e78b2b0ab8 | ||
| 
						 | 
					8b51428347 | ||
| 
						 | 
					b8d53a7b40 | ||
| 
						 | 
					b0d9e9caa2 | ||
| 
						 | 
					1fc4ec8dc1 | ||
| 
						 | 
					a1e1e25800 | ||
| 
						 | 
					3b020732ec | ||
| 
						 | 
					dcf92945fe | ||
| 
						 | 
					f9f33903d4 | ||
| 
						 | 
					d8bf06ab0f | ||
| 
						 | 
					806dabe58b | ||
| 
						 | 
					a17b8c56d7 | ||
| 
						 | 
					0eaaaba8f2 | ||
| 
						 | 
					f359d79d36 | ||
| 
						 | 
					1d84000d94 | ||
| 
						 | 
					b70e22c150 | ||
| 
						 | 
					0774ffe376 | ||
| 
						 | 
					0096d7d8ac | ||
| 
						 | 
					38db966b3d | ||
| 
						 | 
					cb7d313a66 | ||
| 
						 | 
					91b7905f3f | ||
| 
						 | 
					9a81fba992 | ||
| 
						 | 
					43553d5c09 | ||
| 
						 | 
					e0ca8ce173 | ||
| 
						 | 
					13624ea7c2 | ||
| 
						 | 
					9502586c8b | ||
| 
						 | 
					d6753f2cf2 | ||
| 
						 | 
					5ba36efcd2 | ||
| 
						 | 
					fd497ef105 | ||
| 
						 | 
					9c4a7bf94c | ||
| 
						 | 
					91f8adc138 | ||
| 
						 | 
					69fa2373cb | ||
| 
						 | 
					8b37fc4772 | ||
| 
						 | 
					81e4ed9591 | ||
| 
						 | 
					9cda89ec04 | ||
| 
						 | 
					fc180f030f | ||
| 
						 | 
					a827b6028d | ||
| 
						 | 
					4517bf7342 | ||
| 
						 | 
					b21287262e | ||
| 
						 | 
					a60ae130c1 | ||
| 
						 | 
					dd88acd411 | ||
| 
						 | 
					b63fc1a9e5 | ||
| 
						 | 
					17f143cfb2 | ||
| 
						 | 
					cf57d847d1 | ||
| 
						 | 
					7c4c7bea14 | ||
| 
						 | 
					e5ec47fc75 | ||
| 
						 | 
					ad91dc2423 | ||
| 
						 | 
					7acbe53948 | ||
| 
						 | 
					fe1b8ba0cb | ||
| 
						 | 
					b0a8a51b69 | ||
| 
						 | 
					c3ca21e610 | ||
| 
						 | 
					c1b47a2119 | ||
| 
						 | 
					caf625afee | ||
| 
						 | 
					2bad3865a3 | ||
| 
						 | 
					3f7d248684 | ||
| 
						 | 
					4e7382b793 | ||
| 
						 | 
					552ff4a044 | ||
| 
						 | 
					afb52a0cd5 | ||
| 
						 | 
					1ac89b0f5b | ||
| 
						 | 
					5039ca7ee1 | ||
| 
						 | 
					a48fd9ce18 | ||
| 
						 | 
					58859c4811 | ||
| 
						 | 
					5988fb3111 | ||
| 
						 | 
					8dce821789 | ||
| 
						 | 
					16fde0b507 | ||
| 
						 | 
					9723662706 | ||
| 
						 | 
					df4415b4fe | ||
| 
						 | 
					6e179e7cde | ||
| 
						 | 
					87f248b8ec | ||
| 
						 | 
					027140eccc | ||
| 
						 | 
					92cf205c66 | ||
| 
						 | 
					fa3299840f | ||
| 
						 | 
					f54529d46f | ||
| 
						 | 
					b772add064 | ||
| 
						 | 
					231f2e77a4 | ||
| 
						 | 
					a000a9e607 | ||
| 
						 | 
					e8da15ab1e | ||
| 
						 | 
					e070ccb313 | ||
| 
						 | 
					2b06579228 | ||
| 
						 | 
					853c847ba1 | ||
| 
						 | 
					e852680b0a | ||
| 
						 | 
					0b0ee915b3 | ||
| 
						 | 
					516d1d093f | ||
| 
						 | 
					aee9c79c0f | ||
| 
						 | 
					2d4b183c14 | ||
| 
						 | 
					03b20e11ca | ||
| 
						 | 
					e0e006e284 | ||
| 
						 | 
					a294a881ec | ||
| 
						 | 
					53926082e7 | ||
| 
						 | 
					2d185becc3 | ||
| 
						 | 
					67fff324b0 | ||
| 
						 | 
					f64b7fcabc | ||
| 
						 | 
					4cefa16db6 | ||
| 
						 | 
					22722379df | ||
| 
						 | 
					b2b83dc45d | ||
| 
						 | 
					ebf6f8bbfd | ||
| 
						 | 
					3e1631d180 | ||
| 
						 | 
					97cb3c8613 | ||
| 
						 | 
					6dda3a5d8a | ||
| 
						 | 
					e50b0540f5 | ||
| 
						 | 
					63b4aee9bd | ||
| 
						 | 
					5b5de6a89c | ||
| 
						 | 
					a11c991f83 | ||
| 
						 | 
					a0adcf0d1a | ||
| 
						 | 
					93b2b82993 | ||
| 
						 | 
					4dee7d91b1 | ||
| 
						 | 
					839be6477d | ||
| 
						 | 
					59e2ed8ab0 | ||
| 
						 | 
					83790004dd | ||
| 
						 | 
					b70e9824ac | ||
| 
						 | 
					155d49e8ac | ||
| 
						 | 
					4ae10ab33d | ||
| 
						 | 
					7124586eb1 | ||
| 
						 | 
					74f6ed1851 | ||
| 
						 | 
					efae7a7bce | ||
| 
						 | 
					e59f13e8ff | ||
| 
						 | 
					31ed8949b9 | ||
| 
						 | 
					f1174a15e0 | ||
| 
						 | 
					912ffae600 | ||
| 
						 | 
					71a5662195 | ||
| 
						 | 
					774834a31f | ||
| 
						 | 
					91f1c3a10a | ||
| 
						 | 
					8fc1e07136 | ||
| 
						 | 
					a62e2b83ff | ||
| 
						 | 
					e31a2f7e55 | ||
| 
						 | 
					1598e996b1 | ||
| 
						 | 
					4fb7ee760a | ||
| 
						 | 
					37865cb381 | ||
| 
						 | 
					ab8b882435 | ||
| 
						 | 
					1b2996947e | ||
| 
						 | 
					1d9c88e9a1 | ||
| 
						 | 
					ea56d368e3 | ||
| 
						 | 
					dbd3a750f5 | ||
| 
						 | 
					f41818141f | ||
| 
						 | 
					d2f576accd | ||
| 
						 | 
					4e483856d4 | ||
| 
						 | 
					2997f26e3c | ||
| 
						 | 
					cdab596240 | ||
| 
						 | 
					fca7a9da94 | ||
| 
						 | 
					8ba178f795 | ||
| 
						 | 
					8eb8243153 | ||
| 
						 | 
					b4967b862c | ||
| 
						 | 
					aee3517736 | ||
| 
						 | 
					52ff8e84fa | ||
| 
						 | 
					9bb6db649c | ||
| 
						 | 
					da99be9897 | ||
| 
						 | 
					2d7ec8a471 | ||
| 
						 | 
					4cbbfdad1a | ||
| 
						 | 
					2924858311 | ||
| 
						 | 
					85916bfea1 | ||
| 
						 | 
					38ccd9e794 | ||
| 
						 | 
					c64b6be915 | ||
| 
						 | 
					d98c67e13c | ||
| 
						 | 
					d129151fdf | ||
| 
						 | 
					1b9c69f793 | ||
| 
						 | 
					42dd092334 | ||
| 
						 | 
					8dc9ec06f8 | ||
| 
						 | 
					ae5da782e5 | ||
| 
						 | 
					313b0cec65 | ||
| 
						 | 
					12a51972ed | ||
| 
						 | 
					a2f3b2966f | ||
| 
						 | 
					0c2627f08b | ||
| 
						 | 
					9535df12dd | ||
| 
						 | 
					2400471a0d | ||
| 
						 | 
					784da8c37b | ||
| 
						 | 
					3778f9c521 | ||
| 
						 | 
					e1cec85f1e | ||
| 
						 | 
					ca9c087060 | ||
| 
						 | 
					5b2d91baad | ||
| 
						 | 
					08e099b88d | ||
| 
						 | 
					4153b0db38 | ||
| 
						 | 
					88701a21bb | ||
| 
						 | 
					3ddc73ca94 | ||
| 
						 | 
					693d793265 | ||
| 
						 | 
					5d685233dd | ||
| 
						 | 
					16575751d9 | ||
| 
						 | 
					1f6295f437 | ||
| 
						 | 
					6737fe2ead | ||
| 
						 | 
					4e77939fca | ||
| 
						 | 
					21f528c07d | ||
| 
						 | 
					23f835fac0 | ||
| 
						 | 
					f21343225c | ||
| 
						 | 
					f13a59f7db | ||
| 
						 | 
					0315b9274c | ||
| 
						 | 
					da88043962 | ||
| 
						 | 
					0352bf0cc2 | ||
| 
						 | 
					baa71070a8 | ||
| 
						 | 
					2713064f27 | ||
| 
						 | 
					f6387ac115 | ||
| 
						 | 
					d704aca035 | ||
| 
						 | 
					2b54b4ac06 | ||
| 
						 | 
					7410f2f4c0 | ||
| 
						 | 
					99c3c1258a | ||
| 
						 | 
					e51184931d | ||
| 
						 | 
					3bc9a40b48 | ||
| 
						 | 
					9f49ca8fdb | ||
| 
						 | 
					550d1547b4 | ||
| 
						 | 
					ca0b56ee57 | ||
| 
						 | 
					ef1d854f2c | ||
| 
						 | 
					a5023271ef | ||
| 
						 | 
					c3747db670 | ||
| 
						 | 
					fe1e60a28c | ||
| 
						 | 
					f91d2e8c8d | ||
| 
						 | 
					dccc2c60e3 | ||
| 
						 | 
					933e25804c | ||
| 
						 | 
					0b503661af | ||
| 
						 | 
					58082431ff | ||
| 
						 | 
					2536bfb5f5 | ||
| 
						 | 
					6428066552 | ||
| 
						 | 
					4bf3827b73 | ||
| 
						 | 
					3cad494404 | ||
| 
						 | 
					ef0793311f | ||
| 
						 | 
					6f3e341e89 | ||
| 
						 | 
					2fea3be7c0 | ||
| 
						 | 
					82059d4fd9 | ||
| 
						 | 
					07ddeae2f1 | ||
| 
						 | 
					f2279758b2 | ||
| 
						 | 
					1ed189a518 | ||
| 
						 | 
					137741d307 | ||
| 
						 | 
					d702f6e090 | ||
| 
						 | 
					f33701233c | ||
| 
						 | 
					70003269e5 | ||
| 
						 | 
					61896d2386 | ||
| 
						 | 
					52d640c5a7 | ||
| 
						 | 
					c65f5761e1 | ||
| 
						 | 
					3016ac4805 | ||
| 
						 | 
					28a47cd331 | ||
| 
						 | 
					6ecb88b0d1 | ||
| 
						 | 
					8df1278c8e | ||
| 
						 | 
					52bec430d4 | ||
| 
						 | 
					da4cec8767 | ||
| 
						 | 
					ad0087d7dd | ||
| 
						 | 
					9630860035 | ||
| 
						 | 
					75e4c8d74d | ||
| 
						 | 
					1a5ee81e7e | ||
| 
						 | 
					3476be16ab | ||
| 
						 | 
					c42f61a0f4 | ||
| 
						 | 
					b42a9e1c4e | ||
| 
						 | 
					4495525705 | ||
| 
						 | 
					a603602f32 | ||
| 
						 | 
					67b28f9b6e | ||
| 
						 | 
					fd947407af | ||
| 
						 | 
					30444e5f1a | ||
| 
						 | 
					f0d818de24 | ||
| 
						 | 
					3fb98e808f | ||
| 
						 | 
					2c9bacfcea | ||
| 
						 | 
					ae0284b1b1 | ||
| 
						 | 
					166c4ebda0 | ||
| 
						 | 
					319eed029b | ||
| 
						 | 
					ec5aa10167 | ||
| 
						 | 
					a542765cf8 | ||
| 
						 | 
					fd3f8d43db | ||
| 
						 | 
					4f4496078a | ||
| 
						 | 
					8f4f5b4ce0 | ||
| 
						 | 
					bdc6718ae5 | ||
| 
						 | 
					09d1f1c20d | ||
| 
						 | 
					0efb7af17b | ||
| 
						 | 
					a45a78b94f | ||
| 
						 | 
					6337c26cf0 | ||
| 
						 | 
					208dec25d9 | ||
| 
						 | 
					7d65a0c3d5 | ||
| 
						 | 
					bb925e5de3 | ||
| 
						 | 
					c9de5b65d4 | ||
| 
						 | 
					9bc3fcf74f | ||
| 
						 | 
					19d979c330 | ||
| 
						 | 
					bb7b335491 | ||
| 
						 | 
					be5a0b4794 | ||
| 
						 | 
					48eea03386 | ||
| 
						 | 
					566317dc83 | ||
| 
						 | 
					d4334645c2 | ||
| 
						 | 
					d60c3c4ee3 | ||
| 
						 | 
					452514f7fe | ||
| 
						 | 
					58abb0ce8f | ||
| 
						 | 
					000d9cc1ce | ||
| 
						 | 
					8cc017354a | ||
| 
						 | 
					60269d15e8 | ||
| 
						 | 
					7caa083612 | ||
| 
						 | 
					68e1b00eb1 | ||
| 
						 | 
					1d904c756a | ||
| 
						 | 
					0a1db1f595 | ||
| 
						 | 
					e30e8267dd | ||
| 
						 | 
					288a881817 | ||
| 
						 | 
					f593790872 | ||
| 
						 | 
					1044ad8589 | ||
| 
						 | 
					6e24015e68 | ||
| 
						 | 
					b9a2c449ff | ||
| 
						 | 
					7c390cbf7b | ||
| 
						 | 
					a657d1c774 | ||
| 
						 | 
					f3936a79aa | ||
| 
						 | 
					78b560d89a | ||
| 
						 | 
					2fc6313380 | ||
| 
						 | 
					c2b882a5d7 | ||
| 
						 | 
					667b18fe24 | ||
| 
						 | 
					60c0dac5f2 | ||
| 
						 | 
					79f3e60dac | ||
| 
						 | 
					c4e04d6bf2 | ||
| 
						 | 
					49f8219e54 | ||
| 
						 | 
					abd873e0a8 | ||
| 
						 | 
					0e45d0d47f | ||
| 
						 | 
					043b66f5da | ||
| 
						 | 
					5d6e1fc391 | ||
| 
						 | 
					fe292e77de | ||
| 
						 | 
					c996b5d0c8 | ||
| 
						 | 
					7beb592f0c | ||
| 
						 | 
					b3b11acd96 | ||
| 
						 | 
					3bcdfbbd00 | ||
| 
						 | 
					fdad5d149f | ||
| 
						 | 
					2e712a9212 | ||
| 
						 | 
					86c8e634bb | ||
| 
						 | 
					197a9306c4 | ||
| 
						 | 
					2e502a6b61 | ||
| 
						 | 
					aa8a40e950 | ||
| 
						 | 
					2f45ac3712 | ||
| 
						 | 
					8ecf3db608 | ||
| 
						 | 
					f59c68022f | ||
| 
						 | 
					7aac2c4e29 | ||
| 
						 | 
					0481de6629 | ||
| 
						 | 
					f59d0a75e4 | ||
| 
						 | 
					22f4b3cc7b | ||
| 
						 | 
					a4283c415a | ||
| 
						 | 
					c0fbcee38a | ||
| 
						 | 
					335200c31e | ||
| 
						 | 
					df71c90f9f | ||
| 
						 | 
					4220bdc963 | ||
| 
						 | 
					97f3b1e46f | ||
| 
						 | 
					3a9dc358f8 | ||
| 
						 | 
					2a3ab46a3d | ||
| 
						 | 
					200a01f65f | ||
| 
						 | 
					e68936911d | ||
| 
						 | 
					634ffeec54 | ||
| 
						 | 
					8486cb785d | ||
| 
						 | 
					a9eda4e6e2 | ||
| 
						 | 
					f918f9b307 | ||
| 
						 | 
					d404d02d2d | ||
| 
						 | 
					61f7a3974f | ||
| 
						 | 
					cad8e4dea2 | ||
| 
						 | 
					ef79903811 | ||
| 
						 | 
					c3cd0451ad | ||
| 
						 | 
					773fe28fcb | ||
| 
						 | 
					69e2576387 | ||
| 
						 | 
					908a5a1bb4 | ||
| 
						 | 
					ffbd9ffc75 | ||
| 
						 | 
					96223dd5e3 | ||
| 
						 | 
					3231f12b93 | ||
| 
						 | 
					1408f39d9a | ||
| 
						 | 
					4ba06541aa | ||
| 
						 | 
					5c78ed645a | ||
| 
						 | 
					33e19447aa | ||
| 
						 | 
					b52d995719 | ||
| 
						 | 
					db5b90c093 | ||
| 
						 | 
					39bc75a7f9 | ||
| 
						 | 
					3492067ecf | ||
| 
						 | 
					e342a8da05 | ||
| 
						 | 
					671d71dd47 | ||
| 
						 | 
					2f18d2ed8f | ||
| 
						 | 
					f6e8165db0 | ||
| 
						 | 
					eab3b22772 | ||
| 
						 | 
					7664aa5a8c | ||
| 
						 | 
					a366392cbe | ||
| 
						 | 
					c8c1bc09f9 | ||
| 
						 | 
					11bb1608cf | ||
| 
						 | 
					b1d77775aa | ||
| 
						 | 
					bc3f5e0d78 | ||
| 
						 | 
					53ea709697 | ||
| 
						 | 
					b7adbbb9bf | ||
| 
						 | 
					31aaf559ac | ||
| 
						 | 
					160185b108 | ||
| 
						 | 
					848ff4440b | ||
| 
						 | 
					74291b2cae | ||
| 
						 | 
					ae6c4e0c5f | ||
| 
						 | 
					ecb1840e27 | ||
| 
						 | 
					42eb82a859 | ||
| 
						 | 
					89a22908ce | ||
| 
						 | 
					bc3a94aa57 | ||
| 
						 | 
					77fe579d9b | ||
| 
						 | 
					e8c7803a2f | ||
| 
						 | 
					1abaef624c | ||
| 
						 | 
					72cf2344a9 | ||
| 
						 | 
					0462512e62 | ||
| 
						 | 
					1d6b2bd969 | ||
| 
						 | 
					5df90fdc4a | ||
| 
						 | 
					607a5326d9 | ||
| 
						 | 
					2cbd35acc4 | ||
| 
						 | 
					9a0224ee21 | ||
| 
						 | 
					2beedc5978 | ||
| 
						 | 
					6d53e64798 | ||
| 
						 | 
					3478cdea08 | ||
| 
						 | 
					b360f2ed45 | ||
| 
						 | 
					7b0c4c29b4 | ||
| 
						 | 
					03f5d7575c | ||
| 
						 | 
					e922d8904c | ||
| 
						 | 
					45b55a8c98 | ||
| 
						 | 
					8973b76bda | ||
| 
						 | 
					41cf856e26 | ||
| 
						 | 
					b7aeb10304 | ||
| 
						 | 
					b8d9c1aa45 | ||
| 
						 | 
					d7dbe503b6 | ||
| 
						 | 
					c625dd074a | ||
| 
						 | 
					f8a977f1c0 | ||
| 
						 | 
					c35e760fd3 | ||
| 
						 | 
					bc34ac82cf | ||
| 
						 | 
					98f25c9159 | ||
| 
						 | 
					ae9c13df66 | ||
| 
						 | 
					9f8d21b2bc | ||
| 
						 | 
					e05e97561a | ||
| 
						 | 
					f9d21fd34a | ||
| 
						 | 
					86aef5f3e0 | ||
| 
						 | 
					e6bc7922ac | ||
| 
						 | 
					b2f40b7d3e | ||
| 
						 | 
					3878793405 | ||
| 
						 | 
					33c7aef220 | ||
| 
						 | 
					e927f7a4ec | ||
| 
						 | 
					cd09fa5a28 | ||
| 
						 | 
					9ca9757418 | ||
| 
						 | 
					1fae2ffc37 | ||
| 
						 | 
					71657ddb98 | ||
| 
						 | 
					63845e0ba7 | ||
| 
						 | 
					6781b68d33 | ||
| 
						 | 
					d058eff59a | ||
| 
						 | 
					f409faea2c | ||
| 
						 | 
					77da98cd39 | ||
| 
						 | 
					471afcbd57 | ||
| 
						 | 
					72809f9d78 | ||
| 
						 | 
					743fb45c3c | ||
| 
						 | 
					93d6b71a31 | ||
| 
						 | 
					9b10e93fba | ||
| 
						 | 
					0740837b6a | ||
| 
						 | 
					ff49eacee4 | ||
| 
						 | 
					fbc6b267ff | ||
| 
						 | 
					10cae8894e | ||
| 
						 | 
					42addfed85 | ||
| 
						 | 
					0dd6494ab9 | ||
| 
						 | 
					9f4c6a3aef | ||
| 
						 | 
					9438dc560d | ||
| 
						 | 
					003ef65b59 | ||
| 
						 | 
					978fb7e63a | ||
| 
						 | 
					6203577696 | ||
| 
						 | 
					f2b61f6a7e | ||
| 
						 | 
					6f4aa69723 | ||
| 
						 | 
					b308e1bb2b | ||
| 
						 | 
					ab3dad2d84 | ||
| 
						 | 
					0af103f399 | ||
| 
						 | 
					873608a7de | ||
| 
						 | 
					b04ad167da | ||
| 
						 | 
					ad0d06c0d8 | ||
| 
						 | 
					151476ae8a | ||
| 
						 | 
					fbf43c1450 | ||
| 
						 | 
					35a1fa5bf0 | ||
| 
						 | 
					8d3f71d490 | ||
| 
						 | 
					2239eddf88 | ||
| 
						 | 
					94ea21d482 | ||
| 
						 | 
					6a39f92431 | ||
| 
						 | 
					7b2efa35c7 | ||
| 
						 | 
					c41ea84568 | ||
| 
						 | 
					0e8262e623 | ||
| 
						 | 
					4d97946943 | ||
| 
						 | 
					96d48b5519 | ||
| 
						 | 
					4cc54d081e | ||
| 
						 | 
					aab5a2ffbd | ||
| 
						 | 
					c8f165b4ad | ||
| 
						 | 
					9776d8e06b | ||
| 
						 | 
					10f845ae76 | ||
| 
						 | 
					2c8f962889 | ||
| 
						 | 
					1721a82352 | ||
| 
						 | 
					59bec546e4 | ||
| 
						 | 
					86503f2d69 | ||
| 
						 | 
					e4b8c688bb | ||
| 
						 | 
					4535ab4c43 | ||
| 
						 | 
					dcdb57df9d | ||
| 
						 | 
					cfc2808c56 | ||
| 
						 | 
					4a3d74c608 | ||
| 
						 | 
					e18655d18f | ||
| 
						 | 
					12b4b78763 | ||
| 
						 | 
					550a528fc1 | ||
| 
						 | 
					4e3429a5c7 | ||
| 
						 | 
					ef98383075 | ||
| 
						 | 
					d66d1f142f | ||
| 
						 | 
					c896055cb1 | ||
| 
						 | 
					2e8b2e0cf9 | ||
| 
						 | 
					59012b5693 | ||
| 
						 | 
					dfb51e8d26 | ||
| 
						 | 
					5107824352 | ||
| 
						 | 
					bf7ec18316 | ||
| 
						 | 
					77d82d2d17 | ||
| 
						 | 
					2777460150 | ||
| 
						 | 
					9476a240d9 | ||
| 
						 | 
					bddb878931 | ||
| 
						 | 
					b0768d8a4a | ||
| 
						 | 
					46bb7f9efb | ||
| 
						 | 
					a507b7c0b0 | ||
| 
						 | 
					939c0dc5f9 | ||
| 
						 | 
					a89c206572 | ||
| 
						 | 
					8b55263e72 | ||
| 
						 | 
					f2ad1e4639 | ||
| 
						 | 
					0fbcec1c16 | ||
| 
						 | 
					ec2b73d076 | ||
| 
						 | 
					6630bb0b39 | ||
| 
						 | 
					bef0d4c8bd | ||
| 
						 | 
					a57cb3bd31 | ||
| 
						 | 
					1e4577a988 | ||
| 
						 | 
					fe792b5bbb | ||
| 
						 | 
					d4005133d0 | ||
| 
						 | 
					abe8e80268 | ||
| 
						 | 
					e38e4940b4 | ||
| 
						 | 
					48dc1678c3 | ||
| 
						 | 
					431383ab54 | ||
| 
						 | 
					7a8d252f63 | ||
| 
						 | 
					04525e2997 | ||
| 
						 | 
					a2f96f3f20 | ||
| 
						 | 
					a81ecb0b28 | ||
| 
						 | 
					1122368ee0 | ||
| 
						 | 
					6c54328391 | ||
| 
						 | 
					1a26816f7a | ||
| 
						 | 
					8538334d08 | ||
| 
						 | 
					9387ebc569 | ||
| 
						 | 
					c99dce68ed | ||
| 
						 | 
					6dea84c6d2 | ||
| 
						 | 
					39060374c2 | ||
| 
						 | 
					d3ebb5d13f | ||
| 
						 | 
					4e7c10d3d9 | ||
| 
						 | 
					e93ea66d2d | ||
| 
						 | 
					152dd70ea5 | ||
| 
						 | 
					7b94cf9f84 | ||
| 
						 | 
					d70e27a865 | ||
| 
						 | 
					b780ea336c | ||
| 
						 | 
					bd9f589d32 | ||
| 
						 | 
					d9d18bd8f9 | ||
| 
						 | 
					ffdaa6bc56 | ||
| 
						 | 
					c7f60e337e | ||
| 
						 | 
					7f265dbd52 | ||
| 
						 | 
					8929c5cabc | ||
| 
						 | 
					4a610f3b0a | ||
| 
						 | 
					55ec19edb5 | ||
| 
						 | 
					c319c61832 | ||
| 
						 | 
					66db99b8cd | ||
| 
						 | 
					ff2162974d | ||
| 
						 | 
					78e86af086 | ||
| 
						 | 
					2dcf89eecf | ||
| 
						 | 
					fdf94be998 | ||
| 
						 | 
					0e913a5727 | ||
| 
						 | 
					f3be077adc | ||
| 
						 | 
					a6e0471f8c | ||
| 
						 | 
					c5d734f9ad | ||
| 
						 | 
					ee12d887ae | ||
| 
						 | 
					b78d24be1e | ||
| 
						 | 
					d5379e2b36 | ||
| 
						 | 
					cf36557084 | ||
| 
						 | 
					fd1ee129dc | ||
| 
						 | 
					1471b7a6b5 | ||
| 
						 | 
					1d39d7efcb | ||
| 
						 | 
					69ee97f6e2 | ||
| 
						 | 
					12092e6083 | ||
| 
						 | 
					6e29e40b8b | ||
| 
						 | 
					842c9e735b | ||
| 
						 | 
					2f63a25058 | ||
| 
						 | 
					d3b084003c | ||
| 
						 | 
					0da9d3d8b0 | ||
| 
						 | 
					58f3c6aab7 | ||
| 
						 | 
					22e79675ad | ||
| 
						 | 
					e5c350d740 | ||
| 
						 | 
					210124ac34 | ||
| 
						 | 
					7f9a35d7ac | ||
| 
						 | 
					71a30f9001 | ||
| 
						 | 
					95a34d55fb | ||
| 
						 | 
					34f052b672 | ||
| 
						 | 
					0178c2e696 | ||
| 
						 | 
					5cb0c07627 | ||
| 
						 | 
					d8fdbfe164 | ||
| 
						 | 
					74e0b2734d | ||
| 
						 | 
					3f5785bd03 | ||
| 
						 | 
					15e5c69c15 | ||
| 
						 | 
					57019c0b40 | ||
| 
						 | 
					9d6641be3a | ||
| 
						 | 
					ac15c2e71f | ||
| 
						 | 
					1fc9206c6d | ||
| 
						 | 
					a8fb0d477f | ||
| 
						 | 
					0c372b68d4 | ||
| 
						 | 
					e7d9018944 | ||
| 
						 | 
					ce16884587 | ||
| 
						 | 
					3345733d00 | ||
| 
						 | 
					f91cccb6b1 | ||
| 
						 | 
					6183262037 | ||
| 
						 | 
					1c7a194950 | ||
| 
						 | 
					286e15b967 | ||
| 
						 | 
					744d366874 | ||
| 
						 | 
					afa62d3d44 | ||
| 
						 | 
					270c7997c6 | ||
| 
						 | 
					fa95641f88 | ||
| 
						 | 
					aa9fe38c25 | ||
| 
						 | 
					0d33cbbbbb | ||
| 
						 | 
					bf077da72f | ||
| 
						 | 
					d8f8e19d06 | ||
| 
						 | 
					3c3d3e4c0c | ||
| 
						 | 
					0efbeb36df | ||
| 
						 | 
					73c396cb39 | ||
| 
						 | 
					8e75f8a125 | ||
| 
						 | 
					e8a7e95c65 | ||
| 
						 | 
					70a6889fe5 | ||
| 
						 | 
					6aff7375f6 | ||
| 
						 | 
					d2ef95a8c3 | ||
| 
						 | 
					1ae51df74a | ||
| 
						 | 
					3098c6a915 | ||
| 
						 | 
					ab3f8fd10c | ||
| 
						 | 
					4bdef3720c | ||
| 
						 | 
					c02cecc9e5 | ||
| 
						 | 
					08b431723a | ||
| 
						 | 
					83dcfec053 | ||
| 
						 | 
					69ac7b739f | ||
| 
						 | 
					9ccf9a2496 | ||
| 
						 | 
					78563ef9a0 | ||
| 
						 | 
					019d157b92 | ||
| 
						 | 
					14de35e3f5 | ||
| 
						 | 
					a860479e88 | ||
| 
						 | 
					b351b3fae5 | ||
| 
						 | 
					89918a9f79 | ||
| 
						 | 
					cadd020915 | ||
| 
						 | 
					e80933b8ae | ||
| 
						 | 
					4c0832884f | ||
| 
						 | 
					e4ca940979 | ||
| 
						 | 
					3fd9be3967 | ||
| 
						 | 
					79ec7aba1d | ||
| 
						 | 
					42b1f7eddd | ||
| 
						 | 
					889a73caa4 | ||
| 
						 | 
					c34a89e962 | ||
| 
						 | 
					2b4bf681e5 | ||
| 
						 | 
					d1d59e3557 | ||
| 
						 | 
					668c21830c | ||
| 
						 | 
					7c37ed07f8 | ||
| 
						 | 
					a135d8fd59 | ||
| 
						 | 
					0db9aae162 | ||
| 
						 | 
					1875c362af | ||
| 
						 | 
					9b36dd9565 | ||
| 
						 | 
					69452a27de | ||
| 
						 | 
					6aa5c5895f | ||
| 
						 | 
					12f20c67b1 | ||
| 
						 | 
					66b8e5647d | ||
| 
						 | 
					188a23fec7 | ||
| 
						 | 
					b408b45000 | ||
| 
						 | 
					c53cb94250 | ||
| 
						 | 
					ba2eeabe38 | ||
| 
						 | 
					259fac224e | ||
| 
						 | 
					aad5440c9e | ||
| 
						 | 
					5c40f0010f | ||
| 
						 | 
					fb1d181424 | ||
| 
						 | 
					12cbd8ef5b | ||
| 
						 | 
					cfc4385d1f | ||
| 
						 | 
					880ef024d0 | ||
| 
						 | 
					c6c6edbc0a | ||
| 
						 | 
					83ba951bf9 | ||
| 
						 | 
					9c22b1a68a | ||
| 
						 | 
					cd6a1d3446 | ||
| 
						 | 
					4a9fc0c8ed | ||
| 
						 | 
					fada899b30 | ||
| 
						 | 
					22b099fa8a | ||
| 
						 | 
					e0bc0d2830 | ||
| 
						 | 
					90768d30aa | ||
| 
						 | 
					177c549493 | ||
| 
						 | 
					5e1ee68189 | ||
| 
						 | 
					175f6303bc | ||
| 
						 | 
					cf9f2a5562 | ||
| 
						 | 
					f04526baca | ||
| 
						 | 
					f085ecedb3 | ||
| 
						 | 
					0986301788 | ||
| 
						 | 
					fe418d8d9a | ||
| 
						 | 
					6009be34dc | ||
| 
						 | 
					01a0a54a2c | ||
| 
						 | 
					cfcaf77e21 | ||
| 
						 | 
					3b37bdc0b9 | ||
| 
						 | 
					ec07112f94 | ||
| 
						 | 
					464faf2673 | ||
| 
						 | 
					bde20a1a65 | ||
| 
						 | 
					86c7276da9 | ||
| 
						 | 
					fec988bb79 | ||
| 
						 | 
					0702d0974b | ||
| 
						 | 
					f443d36dbb | ||
| 
						 | 
					5477f0a865 | ||
| 
						 | 
					dc02168f33 | ||
| 
						 | 
					cc5c32b4d2 | ||
| 
						 | 
					a35680a838 | ||
| 
						 | 
					770cba73a6 | ||
| 
						 | 
					401fc758fd | ||
| 
						 | 
					e8503e6351 | ||
| 
						 | 
					de23753409 | ||
| 
						 | 
					4857d86cdd | ||
| 
						 | 
					dc4a072678 | ||
| 
						 | 
					c6ee5ccd88 | ||
| 
						 | 
					68b630cb37 | ||
| 
						 | 
					94c0238d3a | ||
| 
						 | 
					dbea387433 | ||
| 
						 | 
					d35f62d0e4 | ||
| 
						 | 
					09b8e81a77 | ||
| 
						 | 
					3b38979a34 | ||
| 
						 | 
					0fd8c86c24 | ||
| 
						 | 
					58d0ed1a2e | ||
| 
						 | 
					8939452036 | ||
| 
						 | 
					a2931d6f7e | ||
| 
						 | 
					38b75ad977 | ||
| 
						 | 
					dc4f585954 | ||
| 
						 | 
					1fbe5365f7 | ||
| 
						 | 
					04257db938 | ||
| 
						 | 
					ba08d1aa53 | ||
| 
						 | 
					c29cb5bfb9 | ||
| 
						 | 
					fb1e2efbdd | ||
| 
						 | 
					131a454e7c | ||
| 
						 | 
					92e5cff285 | ||
| 
						 | 
					b24e32e14e | ||
| 
						 | 
					943805bdcd | ||
| 
						 | 
					ba9340a26b | ||
| 
						 | 
					00119328f2 | ||
| 
						 | 
					a73c65da07 | ||
| 
						 | 
					9021bb5694 | ||
| 
						 | 
					a3cf63823f | ||
| 
						 | 
					f15878cc6f | ||
| 
						 | 
					33469ff87a | ||
| 
						 | 
					23b0723168 | ||
| 
						 | 
					fda1ab3e05 | ||
| 
						 | 
					490c05a869 | ||
| 
						 | 
					f0137daebe | ||
| 
						 | 
					b9fc0e6d71 | ||
| 
						 | 
					979efee412 | ||
| 
						 | 
					f079041827 | ||
| 
						 | 
					4edd9efc0b | ||
| 
						 | 
					2913c7ccfb | ||
| 
						 | 
					e1f460f90f | ||
| 
						 | 
					70f927ea43 | ||
| 
						 | 
					80d343bb0b | ||
| 
						 | 
					9e41fddea3 | ||
| 
						 | 
					8384efc8c7 | ||
| 
						 | 
					7797c86581 | ||
| 
						 | 
					4da8cc478f | ||
| 
						 | 
					285deeec52 | ||
| 
						 | 
					2916e49422 | ||
| 
						 | 
					41e5b9134b | ||
| 
						 | 
					d0d853dcb2 | ||
| 
						 | 
					be46c7e4c5 | ||
| 
						 | 
					8e0f41d608 | ||
| 
						 | 
					a7b438072c | ||
| 
						 | 
					99958e2fce | ||
| 
						 | 
					b82843d359 | ||
| 
						 | 
					4dfc2dfa89 | ||
| 
						 | 
					50c945607f | ||
| 
						 | 
					01f28b21dd | ||
| 
						 | 
					2cb39a8882 | ||
| 
						 | 
					6ddb6bc160 | ||
| 
						 | 
					92befbb4cc | ||
| 
						 | 
					ab701bb93e | ||
| 
						 | 
					7f9a88fd1c | ||
| 
						 | 
					c5073b33ef | ||
| 
						 | 
					765b922a8b | ||
| 
						 | 
					9b7d6274fa | ||
| 
						 | 
					26b384aef1 | ||
| 
						 | 
					0b1e5e3e08 | ||
| 
						 | 
					5b7506756e | ||
| 
						 | 
					1f28a0dfeb | ||
| 
						 | 
					f56ec82f6b | ||
| 
						 | 
					8ccbabf5ca | ||
| 
						 | 
					7c763600b7 | ||
| 
						 | 
					499491003b | ||
| 
						 | 
					3a77d871d5 | ||
| 
						 | 
					4ee6d0b549 | ||
| 
						 | 
					64aa733b16 | ||
| 
						 | 
					c8c4ec6ad4 | ||
| 
						 | 
					c9ee737078 | ||
| 
						 | 
					ebc2cca0b4 | ||
| 
						 | 
					fc94df06eb | ||
| 
						 | 
					190a03103e | ||
| 
						 | 
					0d75ae9d9a | ||
| 
						 | 
					3129f8f073 | ||
| 
						 | 
					7f751d3f20 | ||
| 
						 | 
					0b5b834f8b | ||
| 
						 | 
					0f649f7d37 | ||
| 
						 | 
					a1b100d412 | ||
| 
						 | 
					dd4ee1627e | ||
| 
						 | 
					1da0fdcf78 | ||
| 
						 | 
					800eec73b8 | ||
| 
						 | 
					166cb5e179 | ||
| 
						 | 
					4a5e145048 | ||
| 
						 | 
					be68f42220 | ||
| 
						 | 
					7942aa677f | ||
| 
						 | 
					2fcf9288a5 | ||
| 
						 | 
					9bc17974f2 | ||
| 
						 | 
					19c872a1f3 | ||
| 
						 | 
					9252c59d90 | ||
| 
						 | 
					a8f142096c | ||
| 
						 | 
					3c90abfb96 | ||
| 
						 | 
					12037fab9b | ||
| 
						 | 
					73cc425093 | ||
| 
						 | 
					5c97da935d | ||
| 
						 | 
					0b154ac7ba | ||
| 
						 | 
					d4eb0c8df9 | ||
| 
						 | 
					5ba6f20701 | ||
| 
						 | 
					695a082582 | ||
| 
						 | 
					a52c588f49 | ||
| 
						 | 
					fa469725c7 | ||
| 
						 | 
					a1f0cb1bc7 | ||
| 
						 | 
					fbbd33ded2 | ||
| 
						 | 
					9658e2b3fb | ||
| 
						 | 
					3d10b19727 | ||
| 
						 | 
					ab7725ff69 | ||
| 
						 | 
					6372451d17 | ||
| 
						 | 
					2c11cc3f0a | ||
| 
						 | 
					7f65f896f9 | ||
| 
						 | 
					def823ceea | ||
| 
						 | 
					454d294cf3 | ||
| 
						 | 
					1affdbdbab | ||
| 
						 | 
					52286f4be8 | ||
| 
						 | 
					1b9f293959 | ||
| 
						 | 
					7289d5b401 | ||
| 
						 | 
					01d3f5f09d | ||
| 
						 | 
					4333ff00a0 | ||
| 
						 | 
					25b88afbb7 | ||
| 
						 | 
					6a92c19227 | ||
| 
						 | 
					5bdbf98f8c | ||
| 
						 | 
					56b69b5fb7 | ||
| 
						 | 
					ebf0479ecc | ||
| 
						 | 
					196c55edbc | ||
| 
						 | 
					e724c1e7e8 | ||
| 
						 | 
					4e915e96a5 | ||
| 
						 | 
					e148f6ce5e | ||
| 
						 | 
					652d7d2c05 | ||
| 
						 | 
					0b0111fe23 | ||
| 
						 | 
					869c19c666 | ||
| 
						 | 
					86a5f715d3 | ||
| 
						 | 
					514aeac2d8 | ||
| 
						 | 
					8980a26713 | ||
| 
						 | 
					a39e2b28d1 | ||
| 
						 | 
					bef617cb7c | ||
| 
						 | 
					1dc1feca0f | ||
| 
						 | 
					5d097fb29d | ||
| 
						 | 
					f29fe986af | ||
| 
						 | 
					0c774979c0 | ||
| 
						 | 
					f0bc2ed1d7 | ||
| 
						 | 
					b174e5e57a | ||
| 
						 | 
					90eed0ea0d | ||
| 
						 | 
					ae50b71c07 | ||
| 
						 | 
					c730e5edfa | ||
| 
						 | 
					b2eb50f260 | ||
| 
						 | 
					790c7f2249 | ||
| 
						 | 
					6a0f34c283 | ||
| 
						 | 
					d151445db7 | ||
| 
						 | 
					18a3007273 | ||
| 
						 | 
					bea8c3c65c | ||
| 
						 | 
					391ee01fe3 | ||
| 
						 | 
					be7cf9f731 | ||
| 
						 | 
					b92c2aa40e | ||
| 
						 | 
					45ebcbf785 | ||
| 
						 | 
					5f32484be0 | ||
| 
						 | 
					7bd33ecc72 | ||
| 
						 | 
					e245122f12 | ||
| 
						 | 
					d4f7058574 | ||
| 
						 | 
					21570e2111 | ||
| 
						 | 
					63e1165a01 | ||
| 
						 | 
					89b5a69127 | ||
| 
						 | 
					1152a9d03a | ||
| 
						 | 
					10092d4570 | ||
| 
						 | 
					429b4bec64 | ||
| 
						 | 
					99f96583b6 | ||
| 
						 | 
					5adb765f85 | ||
| 
						 | 
					0eb787e0d0 | ||
| 
						 | 
					4493c856a9 | ||
| 
						 | 
					59d3d4a749 | ||
| 
						 | 
					980ae3dcb3 | ||
| 
						 | 
					3a76113b78 | ||
| 
						 | 
					ec8105b2ae | ||
| 
						 | 
					bf05785345 | ||
| 
						 | 
					82346d788b | ||
| 
						 | 
					d86cfa86e4 | ||
| 
						 | 
					b85f13dad3 | ||
| 
						 | 
					eb8c3fe884 | ||
| 
						 | 
					ff325d9588 | ||
| 
						 | 
					a98392ff27 | ||
| 
						 | 
					22b8aab7a0 | ||
| 
						 | 
					24de518922 | ||
| 
						 | 
					a169c7756f | ||
| 
						 | 
					249a7f4f68 | ||
| 
						 | 
					4f590e0a96 | ||
| 
						 | 
					f5b5b290e4 | ||
| 
						 | 
					1f75cf4ace | ||
| 
						 | 
					1e4f11a979 | ||
| 
						 | 
					be12e23aa1 | ||
| 
						 | 
					790e6ceca4 | ||
| 
						 | 
					a303d52990 | ||
| 
						 | 
					096fab575c | ||
| 
						 | 
					a256393b81 | ||
| 
						 | 
					e8eee9057a | ||
| 
						 | 
					d81acae17e | ||
| 
						 | 
					313715bc75 | ||
| 
						 | 
					94dabd2038 | ||
| 
						 | 
					a3d58e5bc7 | ||
| 
						 | 
					bfdfd026a2 | ||
| 
						 | 
					b713f06599 | ||
| 
						 | 
					2172c5edca | ||
| 
						 | 
					9bc0cfacfa | ||
| 
						 | 
					546cfeadbe | ||
| 
						 | 
					2413583ce9 | ||
| 
						 | 
					d7510491a5 | ||
| 
						 | 
					61db07edf4 | ||
| 
						 | 
					5c3ac8f952 | ||
| 
						 | 
					5bfcb75ec3 | ||
| 
						 | 
					d733a1b445 | ||
| 
						 | 
					75c44cd349 | ||
| 
						 | 
					f4d247cfae | ||
| 
						 | 
					4260ec713f | ||
| 
						 | 
					99f4ab7000 | ||
| 
						 | 
					b6157e0012 | ||
| 
						 | 
					4405c19852 | ||
| 
						 | 
					5f208a7d99 | ||
| 
						 | 
					2ec4cc9a07 | ||
| 
						 | 
					06390380f8 | ||
| 
						 | 
					752186066b | ||
| 
						 | 
					10f9549a04 | ||
| 
						 | 
					84a4174883 | ||
| 
						 | 
					ee765d0812 | ||
| 
						 | 
					1ccd2def50 | ||
| 
						 | 
					0d9782571f | ||
| 
						 | 
					973018fc98 | ||
| 
						 | 
					d0926a3ba1 | ||
| 
						 | 
					be67f5f422 | ||
| 
						 | 
					b70b607c4f | ||
| 
						 | 
					2bd38fa052 | ||
| 
						 | 
					43b6140dbe | ||
| 
						 | 
					813804a43e | ||
| 
						 | 
					bec9604445 | ||
| 
						 | 
					2e454dad2d | ||
| 
						 | 
					7d64435e56 | ||
| 
						 | 
					6ef28214df | ||
| 
						 | 
					5bbc95d659 | ||
| 
						 | 
					83794f254c | ||
| 
						 | 
					005d25a07b | ||
| 
						 | 
					255222bfb4 | ||
| 
						 | 
					9e5e3c2f2e | ||
| 
						 | 
					5bd80f115f | ||
| 
						 | 
					c86e1a3e9b | ||
| 
						 | 
					128a201b9d | ||
| 
						 | 
					b68f74f39c | ||
| 
						 | 
					cd28504dd8 | ||
| 
						 | 
					911762fedf | ||
| 
						 | 
					de448fc99f | ||
| 
						 | 
					a3531981ee | ||
| 
						 | 
					fc8d06a9ab | ||
| 
						 | 
					5de8edf15f | ||
| 
						 | 
					f762cf2770 | ||
| 
						 | 
					d84cae9358 | ||
| 
						 | 
					9c54721010 | ||
| 
						 | 
					16f35c81a1 | ||
| 
						 | 
					d0dbb62a54 | ||
| 
						 | 
					9fa68f4478 | ||
| 
						 | 
					0d76625868 | ||
| 
						 | 
					5a8a701188 | ||
| 
						 | 
					121344afbb | ||
| 
						 | 
					d647cf3446 | ||
| 
						 | 
					04a23b3f2f | ||
| 
						 | 
					08826e1c41 | ||
| 
						 | 
					2e31e3c7cb | ||
| 
						 | 
					7aed50f9fa | ||
| 
						 | 
					2de782dbe4 | ||
| 
						 | 
					50693fbe25 | ||
| 
						 | 
					9a2ff56a79 | ||
| 
						 | 
					daed63d66c | ||
| 
						 | 
					f2241a47b7 | ||
| 
						 | 
					de95aac59b | ||
| 
						 | 
					8612ac0c6a | ||
| 
						 | 
					2118e500a8 | ||
| 
						 | 
					a7063eab85 | ||
| 
						 | 
					5b5ae0e47f | ||
| 
						 | 
					b19ecc1a0d | ||
| 
						 | 
					ac9223957f | ||
| 
						 | 
					e580adc41e | ||
| 
						 | 
					607a105b78 | ||
| 
						 | 
					cc601cf600 | ||
| 
						 | 
					be9f6ad294 | ||
| 
						 | 
					a2952c02cf | ||
| 
						 | 
					244d567b3a | ||
| 
						 | 
					61a9ad23f1 | ||
| 
						 | 
					4f7c19461e | ||
| 
						 | 
					4ba6e1c2b2 | ||
| 
						 | 
					b60af54db1 | ||
| 
						 | 
					047320e50a | ||
| 
						 | 
					29418ecbb4 | ||
| 
						 | 
					67e97310cf | ||
| 
						 | 
					33d3d5c570 | ||
| 
						 | 
					864d1a39cd | ||
| 
						 | 
					ee050cc37e | ||
| 
						 | 
					e14f244e83 | ||
| 
						 | 
					1ba43d83b0 | ||
| 
						 | 
					72fc6d387f | ||
| 
						 | 
					4a935e0659 | ||
| 
						 | 
					8a0dab49e0 | ||
| 
						 | 
					65574abab7 | ||
| 
						 | 
					37d21462b8 | ||
| 
						 | 
					1acd25810c | ||
| 
						 | 
					a81b771f15 | ||
| 
						 | 
					d30b2e7270 | ||
| 
						 | 
					69f82508cb | ||
| 
						 | 
					fddaa11645 | ||
| 
						 | 
					bbe740785d | ||
| 
						 | 
					0389afa0fe | ||
| 
						 | 
					caec6933d1 | ||
| 
						 | 
					420164c59a | ||
| 
						 | 
					b13f42645b | ||
| 
						 | 
					22c945d21b | ||
| 
						 | 
					12fab6fa53 | ||
| 
						 | 
					51651e0c87 | ||
| 
						 | 
					ce395e626f | ||
| 
						 | 
					b0f93588bb | ||
| 
						 | 
					d456e5e45c | ||
| 
						 | 
					84e47bad7e | ||
| 
						 | 
					deee2391ba | ||
| 
						 | 
					5cdd06ca2f | ||
| 
						 | 
					6245a86a6f | ||
| 
						 | 
					c72e8bd88d | ||
| 
						 | 
					c58719348f | ||
| 
						 | 
					40525a9d6d | ||
| 
						 | 
					eac5d6d127 | ||
| 
						 | 
					9cd7af6b99 | ||
| 
						 | 
					5cd441c0cb | ||
| 
						 | 
					32cc778ed3 | ||
| 
						 | 
					c966b3f371 | ||
| 
						 | 
					9baa0128df | ||
| 
						 | 
					42fbc7ab66 | ||
| 
						 | 
					8272118e29 | ||
| 
						 | 
					1dc8d4f926 | ||
| 
						 | 
					4beb93055b | ||
| 
						 | 
					e66ec6823d | ||
| 
						 | 
					1d2b01df5c | ||
| 
						 | 
					5defcd6592 | ||
| 
						 | 
					13451f6843 | ||
| 
						 | 
					6d1d6f1e6e | ||
| 
						 | 
					bb064e47f7 | ||
| 
						 | 
					4e239f6089 | ||
| 
						 | 
					b35b458001 | ||
| 
						 | 
					315c28234e | ||
| 
						 | 
					d996cd6dda | ||
| 
						 | 
					8a61e12cc8 | ||
| 
						 | 
					99f4cbab4b | ||
| 
						 | 
					1b4da6f26d | ||
| 
						 | 
					14ebc8f2b6 | ||
| 
						 | 
					f97c1a0895 | ||
| 
						 | 
					533448d835 | ||
| 
						 | 
					cbcf3fd7f1 | ||
| 
						 | 
					4f4fd65a56 | ||
| 
						 | 
					d2a7b471f6 | ||
| 
						 | 
					df05071636 | ||
| 
						 | 
					bd8aee7b2c | ||
| 
						 | 
					3459112732 | ||
| 
						 | 
					8e8c02840d | ||
| 
						 | 
					f376f0e03a | ||
| 
						 | 
					59f6d767b3 | ||
| 
						 | 
					e46857af00 | ||
| 
						 | 
					e987e47d18 | ||
| 
						 | 
					588cd27d5b | ||
| 
						 | 
					d9efc4793a | ||
| 
						 | 
					9d5983938b | ||
| 
						 | 
					9686f45d24 | ||
| 
						 | 
					cb0a0a7aa4 | ||
| 
						 | 
					254495cd3d | ||
| 
						 | 
					6da9da0e8f | ||
| 
						 | 
					d8260a4aaa | ||
| 
						 | 
					000635252c | ||
| 
						 | 
					faac4dbe22 | ||
| 
						 | 
					a3007a266d | ||
| 
						 | 
					3f0f1048fe | ||
| 
						 | 
					c016d212ed | ||
| 
						 | 
					8f228b20de | ||
| 
						 | 
					a64945a8dd | ||
| 
						 | 
					2986876810 | ||
| 
						 | 
					166ef3ba52 | ||
| 
						 | 
					8bbd36a7dd | ||
| 
						 | 
					55c2254c3f | ||
| 
						 | 
					f7e72829ad | ||
| 
						 | 
					cd6829ca64 | ||
| 
						 | 
					a88942f58a | ||
| 
						 | 
					b4d79ce4a4 | ||
| 
						 | 
					51b4f95f79 | ||
| 
						 | 
					125da8d843 | ||
| 
						 | 
					8385cb436e | ||
| 
						 | 
					95ffeceb7f | ||
| 
						 | 
					1e3cff6174 | ||
| 
						 | 
					3f29a0382b | ||
| 
						 | 
					e42d26f965 | ||
| 
						 | 
					8f91a98b65 | ||
| 
						 | 
					58f62e21ff | ||
| 
						 | 
					fc45d47e15 | ||
| 
						 | 
					5409bc6392 | ||
| 
						 | 
					dcad453069 | ||
| 
						 | 
					5ef1678a8c | ||
| 
						 | 
					a682dff069 | ||
| 
						 | 
					8afa11913c | ||
| 
						 | 
					2cf139145e | ||
| 
						 | 
					a219bee4f0 | ||
| 
						 | 
					2efb0972f6 | ||
| 
						 | 
					7b33c63f78 | ||
| 
						 | 
					0df093383d | ||
| 
						 | 
					cdf65aedcb | ||
| 
						 | 
					b9dfb937f1 | ||
| 
						 | 
					2ea3b57499 | ||
| 
						 | 
					fd9200cbb0 | ||
| 
						 | 
					40d422c6f3 | ||
| 
						 | 
					9d6bbbc4e3 | ||
| 
						 | 
					3fa8433a0e | ||
| 
						 | 
					82af341261 | ||
| 
						 | 
					436519f4f4 | ||
| 
						 | 
					6be5984868 | ||
| 
						 | 
					503d10145a | ||
| 
						 | 
					97ed8d1728 | ||
| 
						 | 
					8c16ed243a | ||
| 
						 | 
					0c482175a2 | ||
| 
						 | 
					acfd7896ea | ||
| 
						 | 
					8d6e0bd43d | ||
| 
						 | 
					b35ef61515 | ||
| 
						 | 
					ec18dac5e5 | ||
| 
						 | 
					ccdc33e476 | ||
| 
						 | 
					3f5972be7b | ||
| 
						 | 
					5fbf3c3f72 | ||
| 
						 | 
					5c497d7563 | ||
| 
						 | 
					7ee3f63eff | ||
| 
						 | 
					ee85a76678 | ||
| 
						 | 
					e691524416 | ||
| 
						 | 
					ce0f6f7ebe | ||
| 
						 | 
					dfa5cb567f | ||
| 
						 | 
					bcf854b7bb | ||
| 
						 | 
					be0e811e45 | ||
| 
						 | 
					ab009cfbd7 | ||
| 
						 | 
					3fc7ebf80b | ||
| 
						 | 
					8c02c0cb30 | ||
| 
						 | 
					11c015c24e | ||
| 
						 | 
					d937730ab7 | ||
| 
						 | 
					b2b5b1e4c9 | ||
| 
						 | 
					d84b3088ec | ||
| 
						 | 
					24f2a4731e | ||
| 
						 | 
					152fba9ba7 | ||
| 
						 | 
					3e2edcb815 | ||
| 
						 | 
					9c8e92b2bc | ||
| 
						 | 
					24c9e1b8d9 | ||
| 
						 | 
					127cad8bc1 | ||
| 
						 | 
					1d4f4b829f | ||
| 
						 | 
					66d7135a5c | ||
| 
						 | 
					635eee980d | ||
| 
						 | 
					23f2370c4b | ||
| 
						 | 
					f2b88002a3 | ||
| 
						 | 
					6c41265625 | ||
| 
						 | 
					b939cb8b4c | ||
| 
						 | 
					d74710260a | ||
| 
						 | 
					609a15cfb1 | ||
| 
						 | 
					644532d4db | ||
| 
						 | 
					e9b0ffef0f | ||
| 
						 | 
					31a133e7f0 | ||
| 
						 | 
					277a24f8e0 | ||
| 
						 | 
					6c07411755 | ||
| 
						 | 
					6894eee6d4 | ||
| 
						 | 
					babdeb5d6e | ||
| 
						 | 
					7f08d84989 | ||
| 
						 | 
					32053d963f | ||
| 
						 | 
					5994ea9465 | ||
| 
						 | 
					7384a3825a | ||
| 
						 | 
					e31bf214a7 | ||
| 
						 | 
					48c143d47c | ||
| 
						 | 
					35d17d4274 | ||
| 
						 | 
					1e2b8cab02 | ||
| 
						 | 
					0a9a45b33b | ||
| 
						 | 
					63a512306d | ||
| 
						 | 
					190c0c687c | ||
| 
						 | 
					c7094986c9 | ||
| 
						 | 
					c201a65f82 | ||
| 
						 | 
					dd167a476f | ||
| 
						 | 
					b255bbf62a | ||
| 
						 | 
					e19300f424 | ||
| 
						 | 
					aeb0512eaf | ||
| 
						 | 
					192abef237 | ||
| 
						 | 
					2d278c563e | ||
| 
						 | 
					7de9066dda | ||
| 
						 | 
					5a2a2371fb | ||
| 
						 | 
					a433a25b16 | ||
| 
						 | 
					9098aaee3e | ||
| 
						 | 
					ea28b788bc | ||
| 
						 | 
					bd9981b998 | ||
| 
						 | 
					b7f1b087e8 | ||
| 
						 | 
					b0fdf25b24 | ||
| 
						 | 
					58f6e4cf00 | ||
| 
						 | 
					d6fe396c76 | ||
| 
						 | 
					5a01c6c9a5 | ||
| 
						 | 
					dc98b2b5c2 | ||
| 
						 | 
					60626c2a07 | ||
| 
						 | 
					0459ce07fa | ||
| 
						 | 
					b480865031 | ||
| 
						 | 
					c928d38ec0 | ||
| 
						 | 
					1f44602f38 | ||
| 
						 | 
					932d007745 | ||
| 
						 | 
					a1dd839909 | ||
| 
						 | 
					12b1c6c886 | ||
| 
						 | 
					e4a4a4a469 | ||
| 
						 | 
					2ffb8f7cf8 | ||
| 
						 | 
					25dec8b977 | ||
| 
						 | 
					8b4ee292b1 | ||
| 
						 | 
					2f8b64d6fb | ||
| 
						 | 
					b608e594af | ||
| 
						 | 
					9652440579 | ||
| 
						 | 
					55d2ae2050 | ||
| 
						 | 
					bdde0c3c63 | ||
| 
						 | 
					08afa44e09 | ||
| 
						 | 
					3ec3fa2d1e | ||
| 
						 | 
					df74a4eb20 | ||
| 
						 | 
					fdaf483293 | ||
| 
						 | 
					5ab4d0c29b | ||
| 
						 | 
					d6fab5fd6c | ||
| 
						 | 
					8df35650e5 | ||
| 
						 | 
					c5b682dc89 | ||
| 
						 | 
					86d49c6704 | ||
| 
						 | 
					9e251b3ea0 | ||
| 
						 | 
					8630cd8df6 | ||
| 
						 | 
					e42c8859b4 | ||
| 
						 | 
					3636db3f85 | ||
| 
						 | 
					fd4d03db58 | ||
| 
						 | 
					2c3ea0cfef | ||
| 
						 | 
					bc34b4f198 | ||
| 
						 | 
					e93503066c | ||
| 
						 | 
					c4351acf7c | ||
| 
						 | 
					bffd7bbb3b | ||
| 
						 | 
					aad131c913 | ||
| 
						 | 
					77faf7a84c | ||
| 
						 | 
					86a7c4772e | ||
| 
						 | 
					7430e258b1 | ||
| 
						 | 
					4efdd90066 | ||
| 
						 | 
					4c0da272ce | ||
| 
						 | 
					cf48b5348f | ||
| 
						 | 
					aa74262564 | ||
| 
						 | 
					209383274e | ||
| 
						 | 
					c6b1f206a6 | ||
| 
						 | 
					be504fc1fc | ||
| 
						 | 
					7118f7fec1 | ||
| 
						 | 
					7451a735e6 | ||
| 
						 | 
					604a900664 | ||
| 
						 | 
					d7066de378 | ||
| 
						 | 
					f0bfb051c3 | ||
| 
						 | 
					54c4eb512f | ||
| 
						 | 
					3750b4d7d0 | ||
| 
						 | 
					29c5f8c8e7 | ||
| 
						 | 
					6b87edf63b | ||
| 
						 | 
					9b3180d74f | ||
| 
						 | 
					70331a0383 | ||
| 
						 | 
					2220b852c0 | ||
| 
						 | 
					e5fa171df5 | ||
| 
						 | 
					d083c10ae3 | ||
| 
						 | 
					7a37b1c641 | ||
| 
						 | 
					e54449fbdb | ||
| 
						 | 
					b5b384772a | ||
| 
						 | 
					733755bb5a | ||
| 
						 | 
					d6341d8ab6 | ||
| 
						 | 
					b39384258c | ||
| 
						 | 
					dfa032d3f2 | ||
| 
						 | 
					f28fc08a57 | ||
| 
						 | 
					e20e35c48d | ||
| 
						 | 
					bddb47b0bd | ||
| 
						 | 
					469b21bb29 | ||
| 
						 | 
					0a8213b851 | ||
| 
						 | 
					460a4edb13 | ||
| 
						 | 
					2855ec0372 | ||
| 
						 | 
					0f34ed3ccd | ||
| 
						 | 
					cbb73e4e15 | ||
| 
						 | 
					99de2cd0ae | ||
| 
						 | 
					aed7d06af5 | ||
| 
						 | 
					2c348b51f1 | ||
| 
						 | 
					14ac8327cf | ||
| 
						 | 
					c520f17f3b | ||
| 
						 | 
					6c3d3ed322 | ||
| 
						 | 
					f4cf3840e4 | ||
| 
						 | 
					3b2f116af0 | ||
| 
						 | 
					bba8f87687 | ||
| 
						 | 
					41b799b369 | ||
| 
						 | 
					d59c6af32c | ||
| 
						 | 
					1b5023793a | ||
| 
						 | 
					f01a62c83b | ||
| 
						 | 
					ca84202f4c | ||
| 
						 | 
					9d7ffd1ae1 | ||
| 
						 | 
					8f6886db82 | ||
| 
						 | 
					da5e708e0f | ||
| 
						 | 
					ff6993478f | ||
| 
						 | 
					a54950f101 | ||
| 
						 | 
					6b567fdc05 | ||
| 
						 | 
					a4788fae45 | ||
| 
						 | 
					1ba1a7aa40 | ||
| 
						 | 
					835057d970 | ||
| 
						 | 
					48f39e70c3 | ||
| 
						 | 
					3314640b01 | ||
| 
						 | 
					83d9730d93 | ||
| 
						 | 
					4e6dcd16ac | ||
| 
						 | 
					6debf45004 | ||
| 
						 | 
					66b57e11db | ||
| 
						 | 
					1fc1c8a025 | ||
| 
						 | 
					6076f52390 | ||
| 
						 | 
					3f33dbf6e8 | ||
| 
						 | 
					33f0dd8d43 | ||
| 
						 | 
					921fb0012b | ||
| 
						 | 
					2bdad9c411 | ||
| 
						 | 
					01f60c829d | ||
| 
						 | 
					1d6c0e1c6f | ||
| 
						 | 
					fb74f1d72b | ||
| 
						 | 
					33e1c08273 | ||
| 
						 | 
					23c32f1211 | ||
| 
						 | 
					c8a5d693ed | ||
| 
						 | 
					4a54d01ca8 | ||
| 
						 | 
					359a7a7b98 | ||
| 
						 | 
					aaa25deaa9 | ||
| 
						 | 
					cd07ae4d2e | ||
| 
						 | 
					1e8c1efe2f | ||
| 
						 | 
					ce405fc4f6 | ||
| 
						 | 
					50a6efd568 | ||
| 
						 | 
					2c6f881093 | ||
| 
						 | 
					e4bf0392af | ||
| 
						 | 
					fcb9133f27 | ||
| 
						 | 
					5c6f24dc39 | ||
| 
						 | 
					ce562f3bca | ||
| 
						 | 
					9ef477f04b | ||
| 
						 | 
					5268fee5b5 | ||
| 
						 | 
					68e28faedc | ||
| 
						 | 
					12f63db62e | ||
| 
						 | 
					08e1c87fa6 | ||
| 
						 | 
					8ee962b729 | ||
| 
						 | 
					3d8b45ecdd | ||
| 
						 | 
					2347d9cea2 | ||
| 
						 | 
					8a57f490ce | ||
| 
						 | 
					a880f5cbb8 | ||
| 
						 | 
					df5a7c7e0c | ||
| 
						 | 
					b7b82456d8 | ||
| 
						 | 
					6b19e54c23 | ||
| 
						 | 
					75d04858e6 | ||
| 
						 | 
					9332551791 | ||
| 
						 | 
					32117a573b | ||
| 
						 | 
					d4d3316d18 | ||
| 
						 | 
					43a7eb233c | ||
| 
						 | 
					178093861b | ||
| 
						 | 
					3fb26534b7 | ||
| 
						 | 
					19a9fdfd38 | ||
| 
						 | 
					6438e97324 | ||
| 
						 | 
					b29492e8eb | ||
| 
						 | 
					5ab4f10230 | ||
| 
						 | 
					80b251e12c | ||
| 
						 | 
					bfd8b12a4f | ||
| 
						 | 
					1c2e94658b | ||
| 
						 | 
					286da28cd6 | ||
| 
						 | 
					a4ee93a355 | ||
| 
						 | 
					ab56cb1788 | ||
| 
						 | 
					32435e4d8e | ||
| 
						 | 
					900cdf9d9a | ||
| 
						 | 
					e79019266f | ||
| 
						 | 
					deee7361f0 | ||
| 
						 | 
					bdcf09c618 | ||
| 
						 | 
					7b5d6dcd9b | ||
| 
						 | 
					0595d87759 | ||
| 
						 | 
					fab0a0d6e2 | ||
| 
						 | 
					3eb6b36866 | ||
| 
						 | 
					50327158e2 | ||
| 
						 | 
					a99756ef85 | ||
| 
						 | 
					1c25dbed66 | ||
| 
						 | 
					7e8c5c0c3c | ||
| 
						 | 
					0b747b901c | ||
| 
						 | 
					8dd5051201 | ||
| 
						 | 
					f7b0fedc9d | ||
| 
						 | 
					0411d0b242 | ||
| 
						 | 
					3fcc793269 | ||
| 
						 | 
					fd27a0efef | ||
| 
						 | 
					4474a2568e | ||
| 
						 | 
					9d944243a3 | ||
| 
						 | 
					8ef38ebab1 | ||
| 
						 | 
					f457a23eab | ||
| 
						 | 
					5d1eeaf1d8 | ||
| 
						 | 
					77f732c6a4 | ||
| 
						 | 
					ac07f04ad8 | ||
| 
						 | 
					dddd760efd | ||
| 
						 | 
					0f7fbacb17 | ||
| 
						 | 
					2697107770 | ||
| 
						 | 
					e1e1cd0574 | ||
| 
						 | 
					93786aa510 | ||
| 
						 | 
					d8b9a8715b | ||
| 
						 | 
					e8783b15b1 | ||
| 
						 | 
					0995d5c5a2 | ||
| 
						 | 
					0852045928 | ||
| 
						 | 
					04de0e9a50 | ||
| 
						 | 
					951b693d17 | ||
| 
						 | 
					308f357c4f | ||
| 
						 | 
					206ddd6d36 | ||
| 
						 | 
					b4cf963bd6 | ||
| 
						 | 
					77b493c9b0 | ||
| 
						 | 
					95a5ff5625 | ||
| 
						 | 
					190753aa99 | ||
| 
						 | 
					f778696a76 | ||
| 
						 | 
					ce4fb49d4c | ||
| 
						 | 
					91b89b79d2 | ||
| 
						 | 
					3cd3e19199 | ||
| 
						 | 
					ed36ceadbc | ||
| 
						 | 
					8736c9dfe6 | ||
| 
						 | 
					e44f33bf14 | ||
| 
						 | 
					6e39b73f07 | ||
| 
						 | 
					01703e5584 | ||
| 
						 | 
					fee7cb41cb | ||
| 
						 | 
					bb14af8b40 | ||
| 
						 | 
					54b849e548 | ||
| 
						 | 
					8f50482896 | ||
| 
						 | 
					b3b82e7595 | ||
| 
						 | 
					9c4e0a4ae6 | ||
| 
						 | 
					0b656999d8 | ||
| 
						 | 
					7605a512ba | ||
| 
						 | 
					2018a29968 | ||
| 
						 | 
					dbf335a05d | ||
| 
						 | 
					ad5a7e9d70 | ||
| 
						 | 
					f8477fa88d | ||
| 
						 | 
					a22ddb05ba | ||
| 
						 | 
					9455edf2da | ||
| 
						 | 
					4a2244327f | ||
| 
						 | 
					708a800a25 | ||
| 
						 | 
					a34193ca16 | ||
| 
						 | 
					a4886975e4 | ||
| 
						 | 
					8b6a015602 | ||
| 
						 | 
					f915560752 | ||
| 
						 | 
					f2f0910771 | ||
| 
						 | 
					9316e2ce15 | ||
| 
						 | 
					128573e73e | ||
| 
						 | 
					3d132ad803 | ||
| 
						 | 
					6f671325fa | ||
| 
						 | 
					7e6ac77341 | ||
| 
						 | 
					51bafe8259 | ||
| 
						 | 
					f1bbbcfedf | ||
| 
						 | 
					7d99b154c0 | ||
| 
						 | 
					575da76235 | ||
| 
						 | 
					c3b3b9b9a6 | ||
| 
						 | 
					7432de3d33 | ||
| 
						 | 
					03ce87d710 | ||
| 
						 | 
					5e9fb8bd84 | ||
| 
						 | 
					68a205486e | ||
| 
						 | 
					94c106a87a | ||
| 
						 | 
					1b2a04bd2a | ||
| 
						 | 
					a048939cf1 | ||
| 
						 | 
					6296846078 | ||
| 
						 | 
					e530d12f7f | ||
| 
						 | 
					adc3c16ef3 | ||
| 
						 | 
					5458b10774 | ||
| 
						 | 
					9ad403af00 | ||
| 
						 | 
					8d7f16caed | ||
| 
						 | 
					e5c20ca9a7 | ||
| 
						 | 
					bd4a7d8cbb | ||
| 
						 | 
					5b116737b6 | ||
| 
						 | 
					8adc799041 | ||
| 
						 | 
					41e657b64e | ||
| 
						 | 
					f16cda51fb | ||
| 
						 | 
					886510d721 | ||
| 
						 | 
					427b3dcd73 | ||
| 
						 | 
					138fa1454f | ||
| 
						 | 
					7ec9b03990 | ||
| 
						 | 
					65a91c5709 | ||
| 
						 | 
					e679f47c1a | ||
| 
						 | 
					337ecafa56 | ||
| 
						 | 
					2c46098fb5 | ||
| 
						 | 
					35247af220 | ||
| 
						 | 
					e71da1f659 | ||
| 
						 | 
					91daa1958b | ||
| 
						 | 
					900a9cb34f | ||
| 
						 | 
					297a7f541e | ||
| 
						 | 
					049085fb7a | ||
| 
						 | 
					f594a2d0f4 | ||
| 
						 | 
					ffd13accca | ||
| 
						 | 
					edf2503ee5 | ||
| 
						 | 
					4d0c303660 | ||
| 
						 | 
					49bc00102b | ||
| 
						 | 
					29f074267c | ||
| 
						 | 
					7671c37f2a | ||
| 
						 | 
					91ad9e4c41 | ||
| 
						 | 
					ed48349e39 | ||
| 
						 | 
					2df02a9d70 | ||
| 
						 | 
					1d027613e4 | ||
| 
						 | 
					e9de73d2f6 | ||
| 
						 | 
					7b9b01688c | ||
| 
						 | 
					afcf2fddb1 | ||
| 
						 | 
					78de3ba691 | ||
| 
						 | 
					2cfefee94d | ||
| 
						 | 
					d50940cdf8 | ||
| 
						 | 
					e38ee663dc | ||
| 
						 | 
					5a160a76f7 | ||
| 
						 | 
					c504f27a51 | ||
| 
						 | 
					3f5155e9b5 | ||
| 
						 | 
					dcb85073da | ||
| 
						 | 
					2a5f3491a6 | ||
| 
						 | 
					6f6b01344d | ||
| 
						 | 
					73810758d9 | ||
| 
						 | 
					6cb527fd58 | ||
| 
						 | 
					7316352ff5 | ||
| 
						 | 
					ad76d5d8e2 | ||
| 
						 | 
					539f307500 | ||
| 
						 | 
					5f68d08cbc | ||
| 
						 | 
					bc8bea11c0 | ||
| 
						 | 
					9bb02e5bf6 | ||
| 
						 | 
					ae68e6372c | ||
| 
						 | 
					69593994ef | ||
| 
						 | 
					cb52ebe65b | ||
| 
						 | 
					9b989ebac6 | ||
| 
						 | 
					f13bef4ac8 | ||
| 
						 | 
					29b1aa0d9b | ||
| 
						 | 
					5aa2e47c49 | ||
| 
						 | 
					773d104306 | ||
| 
						 | 
					b8e948b009 | ||
| 
						 | 
					49298d2f3f | ||
| 
						 | 
					ac19567f2b | ||
| 
						 | 
					bc627fc55c | ||
| 
						 | 
					eb6c2d0f73 | ||
| 
						 | 
					436757c71d | ||
| 
						 | 
					5d09b7e38b | ||
| 
						 | 
					a8cf67198f | 
							
								
								
									
										87
									
								
								.autogen/autogen.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										87
									
								
								.autogen/autogen.sh
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
#!/usr/bin/env bash
 | 
			
		||||
# __MISSKEY_BEARER_TOKEN=
 | 
			
		||||
# __MISSKEY_CAMPAIGN_ID=
 | 
			
		||||
# __MISSKEY_GITHUB_TOKEN=
 | 
			
		||||
# __MISSKEY_HEAD=acid-chicken:patch-autogen
 | 
			
		||||
# __MISSKEY_REPO=syuilo/misskey
 | 
			
		||||
# __MISSKEY_BRANCH=develop
 | 
			
		||||
test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r '.[].head.label' | grep $__MISSKEY_HEAD)" && exit 1
 | 
			
		||||
cd "$(dirname $0)/.." && \
 | 
			
		||||
touch null.cache && \
 | 
			
		||||
rm *.cache && \
 | 
			
		||||
git checkout $__MISSKEY_BRANCH && \
 | 
			
		||||
git pull origin $__MISSKEY_BRANCH && \
 | 
			
		||||
git pull upstream $__MISSKEY_BRANCH && \
 | 
			
		||||
git stash && \
 | 
			
		||||
git rebase -f upstream/$__MISSKEY_BRANCH && \
 | 
			
		||||
git branch patch-autogen && \
 | 
			
		||||
git checkout patch-autogen && \
 | 
			
		||||
git reset --hard HEAD || \
 | 
			
		||||
exit 1
 | 
			
		||||
touch patreon.md.cache && \
 | 
			
		||||
rm patreon.md.cache && \
 | 
			
		||||
echo '<!-- PATREON_START -->' > patreon.md.cache && \
 | 
			
		||||
url="https://www.patreon.com/api/oauth2/v2/campaigns/$__MISSKEY_CAMPAIGN_ID/members?include=currently_entitled_tiers,user&fields%5Btier%5D=title&fields%5Buser%5D=full_name,thumb_url,url,hide_pledges"
 | 
			
		||||
while :
 | 
			
		||||
 do
 | 
			
		||||
  touch patreon.raw.cache && \
 | 
			
		||||
  rm patreon.raw.cache && \
 | 
			
		||||
  curl -LSs -w '\n' -H "Authorization: Bearer $__MISSKEY_BEARER_TOKEN" -- $url > patreon.raw.cache && \
 | 
			
		||||
  touch patreon.cache && \
 | 
			
		||||
  rm patreon.cache && \
 | 
			
		||||
  cat patreon.raw.cache | \
 | 
			
		||||
  jq -r '(.data|map(select(.relationships.currently_entitled_tiers.data[]))|map(.relationships.user.data.id))as$data|.included|map(select(.attributes.hide_pledges==false))|map(select(.id as$id|$data|contains([$id])))|map(.attributes|[.full_name,.thumb_url,.url]|@tsv)|.[]|@text' >> patreon.cache && \
 | 
			
		||||
  echo '<table><tr>' >> patreon.md.cache && \
 | 
			
		||||
  cat patreon.cache | \
 | 
			
		||||
  awk -F'\t' '{print $2,$1}' | \
 | 
			
		||||
  sed -e 's/ /\\" alt=\\"/' | \
 | 
			
		||||
  xargs -I% echo '<td><img src="%"></td>' >> patreon.md.cache && \
 | 
			
		||||
  echo '</tr><tr>' >> patreon.md.cache && \
 | 
			
		||||
  cat patreon.cache | \
 | 
			
		||||
  awk -F'\t' '{print $3,$1}' | \
 | 
			
		||||
  sed -e 's/ /\\">/' | \
 | 
			
		||||
  xargs -I% echo '<td><a href="%</a></td>' >> patreon.md.cache && \
 | 
			
		||||
  echo '</tr></table>' >> patreon.md.cache || \
 | 
			
		||||
  exit 1
 | 
			
		||||
  new_url="$(cat patreon.raw.cache | jq -r '.links.next')"
 | 
			
		||||
  test "$new_url" = 'null' && \
 | 
			
		||||
  break || \
 | 
			
		||||
  URL="$url"
 | 
			
		||||
done
 | 
			
		||||
ignore= && \
 | 
			
		||||
echo -e "\n**Last updated:** $(date -uR | sed 's/\+0000/UTC/')\n<!-- PATREON_END -->" >> patreon.md.cache && \
 | 
			
		||||
touch README.md && \
 | 
			
		||||
touch .autogen/README.md && \
 | 
			
		||||
rm .autogen/README.md && \
 | 
			
		||||
mv README.md .autogen/README.md && \
 | 
			
		||||
cat .autogen/README.md | while IFS= read line;
 | 
			
		||||
 do
 | 
			
		||||
  if [[ -z "$ignore" ]]
 | 
			
		||||
   then
 | 
			
		||||
    if [[ "$line" = '<!-- PATREON_START -->' ]]
 | 
			
		||||
     then
 | 
			
		||||
      ignore='PATREON_INSIDE'
 | 
			
		||||
     else
 | 
			
		||||
      echo "$line" >> README.md
 | 
			
		||||
    fi
 | 
			
		||||
   else
 | 
			
		||||
    if [[ "$LINE" = '<!-- PATREON_END -->' ]]
 | 
			
		||||
     then
 | 
			
		||||
      ignore=
 | 
			
		||||
      cat patreon.md.cache >> README.md
 | 
			
		||||
    fi
 | 
			
		||||
  fi
 | 
			
		||||
done
 | 
			
		||||
cat patreon.md.cache
 | 
			
		||||
touch null.cache && \
 | 
			
		||||
rm *.cache && \
 | 
			
		||||
diff .autogen/README.md README.md > diff.cache
 | 
			
		||||
cat diff.cache && \
 | 
			
		||||
test 4 -lt $(cat diff.cache | wc -l) && \
 | 
			
		||||
git add README.md && \
 | 
			
		||||
git commit -m 'Update README.md [AUTOGEN]' && \
 | 
			
		||||
git push -f origin patch-autogen && \
 | 
			
		||||
curl -LSs -w '\n' -X POST -d '{"title":"[AUTOMATED] Update README.md","body":"*This pull request was created by a tool.*","head":"'$__MISSKEY_HEAD'","base":"'$__MISSKEY_BRANCH'"}' -- "https://api.github.com/repos/$__MISSKEY_REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN"
 | 
			
		||||
git stash
 | 
			
		||||
git checkout $__MISSKEY_BRANCH
 | 
			
		||||
git branch -D patch-autogen
 | 
			
		||||
@@ -7,27 +7,51 @@ maintainer:
 | 
			
		||||
  repository_url: https://github.com/syuilo/misskey # Repository URL
 | 
			
		||||
  feedback_url: https://github.com/syuilo/misskey/issues # Feedback URL (e.g. github issue)
 | 
			
		||||
 | 
			
		||||
# URL and Port settings overview
 | 
			
		||||
# e.g., If you want to realize following structure:
 | 
			
		||||
#
 | 
			
		||||
#               +--- https://example.com:123 ----------+
 | 
			
		||||
# +------+      |+-------------+      +---------------+|
 | 
			
		||||
# | User | ---> || Proxy (123) | ---> | Misskey (456) ||
 | 
			
		||||
# +------+      |+-------------+      +---------------+|
 | 
			
		||||
#               +--------------------------------------+
 | 
			
		||||
#
 | 
			
		||||
# You need to set 'https://example.com:123' to 'url' prop and
 | 
			
		||||
# You need to set 456 to 'port' prop.
 | 
			
		||||
#
 | 
			
		||||
# In other words, the 'url' prop should be the final accessible URL seen by a user.
 | 
			
		||||
# 'port' prop is a port that the Misskey server should actually listen
 | 
			
		||||
# on and it is not necessarily the port that a user accesses.
 | 
			
		||||
 | 
			
		||||
url: http://localhost/
 | 
			
		||||
# Final accessible URL seen by a user.
 | 
			
		||||
url: https://example.tld/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
### Port and TLS settings ######################################
 | 
			
		||||
#
 | 
			
		||||
# Misskey supports two deployment options for public.
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# Option 1: With Reverse Proxy
 | 
			
		||||
#
 | 
			
		||||
#                 +----- https://example.tld/ ------------+
 | 
			
		||||
#   +------+      |+-------------+      +----------------+|
 | 
			
		||||
#   | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
 | 
			
		||||
#   +------+      |+-------------+      +----------------+|
 | 
			
		||||
#                 +---------------------------------------+
 | 
			
		||||
#
 | 
			
		||||
#   You need to setup reverse proxy. (eg. Nginx)
 | 
			
		||||
#   You do not define 'https' section.
 | 
			
		||||
 | 
			
		||||
# Option 2: Standalone
 | 
			
		||||
#
 | 
			
		||||
#                 +- https://example.tld/ -+
 | 
			
		||||
#   +------+      |   +---------------+    |
 | 
			
		||||
#   | User | ---> |   | Misskey (443) |    |
 | 
			
		||||
#   +------+      |   +---------------+    |
 | 
			
		||||
#                 +------------------------+
 | 
			
		||||
#
 | 
			
		||||
#   You need to run Misskey as root.
 | 
			
		||||
#   You need to set Certificate in 'https' section.
 | 
			
		||||
 | 
			
		||||
# To use option 1, uncomment below line.
 | 
			
		||||
# port: 3000    # A port that your Misskey server should listen.
 | 
			
		||||
 | 
			
		||||
# To use option 2, uncomment below lines.
 | 
			
		||||
# port: 443
 | 
			
		||||
#
 | 
			
		||||
# https:
 | 
			
		||||
#   # path for certification
 | 
			
		||||
#   key: /etc/letsencrypt/live/example.tld/privkey.pem
 | 
			
		||||
#   cert: /etc/letsencrypt/live/example.tld/fullchain.pem
 | 
			
		||||
 | 
			
		||||
################################################################
 | 
			
		||||
 | 
			
		||||
# A port that your Misskey server should listen.
 | 
			
		||||
# This value is not a port to use when accessing with a browser.
 | 
			
		||||
port: 80
 | 
			
		||||
 | 
			
		||||
mongodb:
 | 
			
		||||
  host: localhost
 | 
			
		||||
@@ -36,49 +60,107 @@ mongodb:
 | 
			
		||||
  user: example-misskey-user
 | 
			
		||||
  pass: example-misskey-pass
 | 
			
		||||
 | 
			
		||||
redis:
 | 
			
		||||
  host: localhost
 | 
			
		||||
  port: 6379
 | 
			
		||||
  pass: example-pass
 | 
			
		||||
# Drive capacity of a local user (MB)
 | 
			
		||||
localDriveCapacityMb: 256
 | 
			
		||||
 | 
			
		||||
# Drive capacity of a remote user (MB)
 | 
			
		||||
remoteDriveCapacityMb: 8
 | 
			
		||||
 | 
			
		||||
# If enabled:
 | 
			
		||||
#  Server will not cache remote files (Using direct link instead).
 | 
			
		||||
#  You can save your storage.
 | 
			
		||||
#  Users cannot see remote images when they turn off "Show media from a remote server" setting.
 | 
			
		||||
preventCache: false
 | 
			
		||||
#
 | 
			
		||||
#  NOTE:
 | 
			
		||||
#  * Users cannot see remote images when they turn off "Show media from a remote server" setting.
 | 
			
		||||
#  * Since thumbnails are not provided, traffic increases.
 | 
			
		||||
preventCacheRemoteFiles: false
 | 
			
		||||
 | 
			
		||||
drive:
 | 
			
		||||
  storage: 'db'
 | 
			
		||||
 | 
			
		||||
  # OR
 | 
			
		||||
 | 
			
		||||
  # storage: 'minio'
 | 
			
		||||
  # bucket:
 | 
			
		||||
  # prefix:
 | 
			
		||||
  # config:
 | 
			
		||||
  #   endPoint:
 | 
			
		||||
  #   port:
 | 
			
		||||
  #   useSSL:
 | 
			
		||||
  #   accessKey:
 | 
			
		||||
  #   secretKey:
 | 
			
		||||
 | 
			
		||||
  # S3 example
 | 
			
		||||
  # storage: 'minio'
 | 
			
		||||
  # bucket: bucket-name
 | 
			
		||||
  # prefix: files
 | 
			
		||||
  # config:
 | 
			
		||||
  #   endPoint: s3-us-west-2.amazonaws.com
 | 
			
		||||
  #   region: us-west-2
 | 
			
		||||
  #   useSSL: true
 | 
			
		||||
  #   accessKey: XXX
 | 
			
		||||
  #   secretKey: YYY
 | 
			
		||||
 | 
			
		||||
  # S3 example (with CDN, custom domain)
 | 
			
		||||
  # storage: 'minio'
 | 
			
		||||
  # bucket: drive.example.com
 | 
			
		||||
  # prefix: files
 | 
			
		||||
  # baseUrl: https://drive.example.com
 | 
			
		||||
  # config:
 | 
			
		||||
  #   endPoint: s3-us-west-2.amazonaws.com
 | 
			
		||||
  #   region: us-west-2
 | 
			
		||||
  #   useSSL: true
 | 
			
		||||
  #   accessKey: XXX
 | 
			
		||||
  #   secretKey: YYY
 | 
			
		||||
 | 
			
		||||
#
 | 
			
		||||
# Below settings are optional
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
# TLS
 | 
			
		||||
# https:
 | 
			
		||||
#   # path for certification
 | 
			
		||||
#   key: example-tls-key
 | 
			
		||||
#   cert: example-tls-cert
 | 
			
		||||
# Redis
 | 
			
		||||
#redis:
 | 
			
		||||
#  host: localhost
 | 
			
		||||
#  port: 6379
 | 
			
		||||
#  pass: example-pass
 | 
			
		||||
 | 
			
		||||
# Elasticsearch
 | 
			
		||||
# elasticsearch:
 | 
			
		||||
#   host: localhost
 | 
			
		||||
#   port: 9200
 | 
			
		||||
#   pass: null
 | 
			
		||||
#elasticsearch:
 | 
			
		||||
#  host: localhost
 | 
			
		||||
#  port: 9200
 | 
			
		||||
#  pass: null
 | 
			
		||||
 | 
			
		||||
# reCAPTCHA
 | 
			
		||||
# recaptcha:
 | 
			
		||||
#   site_key: example-site-key
 | 
			
		||||
#recaptcha:
 | 
			
		||||
#  site_key: example-site-key
 | 
			
		||||
#  secret_key: example-secret-key
 | 
			
		||||
 | 
			
		||||
# ServiceWorker
 | 
			
		||||
# sw:
 | 
			
		||||
#   # Public key of VAPID
 | 
			
		||||
#   public_key: example-sw-public-key
 | 
			
		||||
 | 
			
		||||
#   # Private key of VAPID
 | 
			
		||||
#   private_key: example-sw-private-key
 | 
			
		||||
 | 
			
		||||
# google_maps_api_key: example-google-maps-api-key
 | 
			
		||||
#sw:
 | 
			
		||||
#  # Public key of VAPID
 | 
			
		||||
#  public_key: example-sw-public-key
 | 
			
		||||
#
 | 
			
		||||
#  # Private key of VAPID
 | 
			
		||||
#  private_key: example-sw-private-key
 | 
			
		||||
 | 
			
		||||
# Twitter integration
 | 
			
		||||
# twitter:
 | 
			
		||||
#   consumer_key: example-twitter-consumer-key
 | 
			
		||||
#   consumer_secret: example-twitter-consumer-secret-key
 | 
			
		||||
# You need to set the oauth callback url as : https://<your-misskey-instance>/api/tw/cb
 | 
			
		||||
#twitter:
 | 
			
		||||
#  consumer_key: example-twitter-consumer-key
 | 
			
		||||
#  consumer_secret: example-twitter-consumer-secret-key
 | 
			
		||||
 | 
			
		||||
# Ghost
 | 
			
		||||
# Ghost account is an account used for the purpose of delegating
 | 
			
		||||
# followers when putting users in the list.
 | 
			
		||||
#ghost: user-id-of-your-ghost-account
 | 
			
		||||
 | 
			
		||||
# Clustering
 | 
			
		||||
#clusterLimit: 1
 | 
			
		||||
 | 
			
		||||
# Summaly proxy
 | 
			
		||||
#summalyProxy: "http://example.com"
 | 
			
		||||
 | 
			
		||||
# User recommendation
 | 
			
		||||
#user_recommendation:
 | 
			
		||||
#  external: true
 | 
			
		||||
#  engine: http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}
 | 
			
		||||
#  timeout: 300000
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										13
									
								
								.config/mongo_initdb_example.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.config/mongo_initdb_example.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
var user = {
 | 
			
		||||
	user: 'example-misskey-user',
 | 
			
		||||
	pwd: 'example-misskey-pass',
 | 
			
		||||
	roles: [
 | 
			
		||||
	    {
 | 
			
		||||
		    role: 'readWrite',
 | 
			
		||||
		    db: 'misskey'
 | 
			
		||||
	    }
 | 
			
		||||
	]
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
db.createUser(user);
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										12
									
								
								.dockerignore
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										12
									
								
								.dockerignore
									
									
									
									
									
										Executable file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
.autogen
 | 
			
		||||
.git
 | 
			
		||||
.github
 | 
			
		||||
.travis
 | 
			
		||||
.vscode
 | 
			
		||||
Dockerfile
 | 
			
		||||
build/
 | 
			
		||||
docker-compose.yml
 | 
			
		||||
node_modules/
 | 
			
		||||
mongo/
 | 
			
		||||
redis/
 | 
			
		||||
elasticsearch/
 | 
			
		||||
							
								
								
									
										16
									
								
								.github/ISSUE_TEMPLATE
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/ISSUE_TEMPLATE
									
									
									
									
										vendored
									
									
								
							@@ -1,16 +0,0 @@
 | 
			
		||||
<!--
 | 
			
		||||
Thanks for your contribution.
 | 
			
		||||
 | 
			
		||||
When you report a bug or suggest a new feature, please include these information.
 | 
			
		||||
* Your browser
 | 
			
		||||
* Desktop version or mobile version
 | 
			
		||||
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
Misskeyへの貢献ありがとうございます。
 | 
			
		||||
 | 
			
		||||
バグの報告や提案などで、可能であれば以下の情報を含めてください。
 | 
			
		||||
* お使いのブラウザ
 | 
			
		||||
* デスクトップ版Misskeyかモバイル版Misskeyか
 | 
			
		||||
 | 
			
		||||
-->
 | 
			
		||||
							
								
								
									
										22
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								.github/ISSUE_TEMPLATE/bug_report.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
---
 | 
			
		||||
name: Bug Report
 | 
			
		||||
about: Create a report to help us improve
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Summary
 | 
			
		||||
<!-- Tell us what the bug is -->
 | 
			
		||||
 | 
			
		||||
# Expected Behavior
 | 
			
		||||
<!--- Tell us what should happen -->
 | 
			
		||||
 | 
			
		||||
# Actual Behavior
 | 
			
		||||
<!--- Tell us what happens instead of the expected behavior -->
 | 
			
		||||
 | 
			
		||||
# Steps to Reproduce
 | 
			
		||||
1.
 | 
			
		||||
2.
 | 
			
		||||
3.
 | 
			
		||||
 | 
			
		||||
# Environment
 | 
			
		||||
<!-- Tell us where on the platform it happens -->
 | 
			
		||||
<!-- e.g. desktop or mobile version, your browser, your OS -->
 | 
			
		||||
							
								
								
									
										11
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.github/ISSUE_TEMPLATE/feature_request.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
---
 | 
			
		||||
name: Feature Request
 | 
			
		||||
about: Suggest an idea for this project
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
# Summary
 | 
			
		||||
<!-- Tell us what the suggestion is -->
 | 
			
		||||
 | 
			
		||||
# Environment
 | 
			
		||||
<!-- Tell us where on the platform it related -->
 | 
			
		||||
<!-- e.g. desktop or mobile version, your browser, your OS -->
 | 
			
		||||
							
								
								
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,9 +1,11 @@
 | 
			
		||||
/.config/*
 | 
			
		||||
!/.config/example.yml
 | 
			
		||||
!/.config/mongo_initdb_example.js
 | 
			
		||||
/.vscode
 | 
			
		||||
/node_modules
 | 
			
		||||
/build
 | 
			
		||||
/built
 | 
			
		||||
built
 | 
			
		||||
/data
 | 
			
		||||
/.cache-loader
 | 
			
		||||
npm-debug.log
 | 
			
		||||
@@ -11,3 +13,6 @@ npm-debug.log
 | 
			
		||||
run.bat
 | 
			
		||||
api-docs.json
 | 
			
		||||
*.log
 | 
			
		||||
/redis
 | 
			
		||||
/mongo
 | 
			
		||||
/elasticsearch
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,6 @@ addons:
 | 
			
		||||
      - ubuntu-toolchain-r-test
 | 
			
		||||
    packages:
 | 
			
		||||
      - g++-4.8
 | 
			
		||||
      - graphicsmagick
 | 
			
		||||
 | 
			
		||||
cache:
 | 
			
		||||
  directories:
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										12
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								.vscode/extensions.json
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
{
 | 
			
		||||
	"recommendations": [
 | 
			
		||||
		"ducksoupdev.vue2",
 | 
			
		||||
		"editorconfig.editorconfig",
 | 
			
		||||
		"eg2.tslint",
 | 
			
		||||
		"eg2.vscode-npm-script",
 | 
			
		||||
		"hollowtree.vue-snippets",
 | 
			
		||||
		"ms-vscode.typescript-javascript-grammar",
 | 
			
		||||
		"octref.vetur",
 | 
			
		||||
		"sysoev.language-stylus"
 | 
			
		||||
	]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										4
									
								
								.vsls.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								.vsls.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
			
		||||
{
 | 
			
		||||
	"$schema": "http://json.schemastore.org/vsls",
 | 
			
		||||
	"gitignore": "exclude"
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										129
									
								
								CHANGELOG.md
									
									
									
									
									
								
							
							
						
						
									
										129
									
								
								CHANGELOG.md
									
									
									
									
									
								
							@@ -5,18 +5,143 @@ ChangeLog
 | 
			
		||||
 | 
			
		||||
This document describes breaking changes only.
 | 
			
		||||
 | 
			
		||||
10.0.0
 | 
			
		||||
------
 | 
			
		||||
 | 
			
		||||
ストリーミングAPIに破壊的変更があります。運営者がすべきことはありません。
 | 
			
		||||
 | 
			
		||||
変更は以下の通りです
 | 
			
		||||
 | 
			
		||||
* ストリーミングでやり取りする際の snake_case が全て camelCase に
 | 
			
		||||
* リバーシのストリームエンドポイント名が reversi → gamesReversi、reversiGame → gamesReversiGame に
 | 
			
		||||
* ストリーミングの個々のエンドポイントが廃止され、一旦元となるストリームに接続してから、個々のチャンネル(今までのエンドポイント)に接続します。詳細は後述します。
 | 
			
		||||
* ストリームから流れてくる、キャプチャした投稿の更新イベントに投稿自体のデータは含まれず、代わりにアクションが設定されるようになります。詳細は後述します。
 | 
			
		||||
* ストリームに接続する際に追加で指定していたパラメータ(トークン除く)が、URLにクエリとして含むのではなくチャンネル接続時にパラメータ指定するように
 | 
			
		||||
 | 
			
		||||
### 個々のエンドポイントが廃止されることによる新しいストリーミングAPIの利用方法
 | 
			
		||||
具体的には、まず https://example.misskey/streaming にwebsocket接続します。
 | 
			
		||||
次に、例えば「messaging」ストリーム(チャンネルと呼びます)に接続したいときは、ストリームに次のようなデータを送信します:
 | 
			
		||||
``` javascript
 | 
			
		||||
{
 | 
			
		||||
  type: 'connect',
 | 
			
		||||
  body: {
 | 
			
		||||
    channel: 'messaging',
 | 
			
		||||
    id: 'foobar',
 | 
			
		||||
    params: {
 | 
			
		||||
      otherparty: 'xxxxxxxxxxxx'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
ここで、`id`にはそのチャンネルとやり取りするための任意のIDを設定します。
 | 
			
		||||
IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。
 | 
			
		||||
`params`はチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。
 | 
			
		||||
 | 
			
		||||
チャンネルにメッセージを送信するには、次のようなデータを送信します:
 | 
			
		||||
``` javascript
 | 
			
		||||
{
 | 
			
		||||
  type: 'channel',
 | 
			
		||||
  body: {
 | 
			
		||||
    id: 'foobar',
 | 
			
		||||
    type: 'something',
 | 
			
		||||
    body: {
 | 
			
		||||
      some: 'thing'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
ここで、`id`にはチャンネルに接続するときに指定したIDを設定します。
 | 
			
		||||
 | 
			
		||||
逆に、チャンネルからメッセージが流れてくると、次のようなデータが受信されます:
 | 
			
		||||
``` javascript
 | 
			
		||||
{
 | 
			
		||||
  type: 'channel',
 | 
			
		||||
  body: {
 | 
			
		||||
    id: 'foobar',
 | 
			
		||||
    type: 'something',
 | 
			
		||||
    body: {
 | 
			
		||||
      some: 'thing'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
ここで、`id`にはチャンネルに接続するときに指定したIDが設定されています。
 | 
			
		||||
 | 
			
		||||
### 投稿のキャプチャに関する変更
 | 
			
		||||
投稿の更新イベントに投稿情報は含まれなくなりました。代わりに、その投稿が「リアクションされた」「アンケートに投票された」「削除された」といったアクション情報が設定されます。
 | 
			
		||||
 | 
			
		||||
具体的には次のようなデータが受信されます:
 | 
			
		||||
``` javascript
 | 
			
		||||
{
 | 
			
		||||
  type: 'noteUpdated',
 | 
			
		||||
  body: {
 | 
			
		||||
    id: 'xxxxxxxxxxx',
 | 
			
		||||
    type: 'reacted',
 | 
			
		||||
    body: {
 | 
			
		||||
      reaction: 'hmm'
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* reacted ... 投稿にリアクションされた。`reaction`プロパティにリアクションコードが含まれます。
 | 
			
		||||
* pollVoted ... アンケートに投票された。`choice`プロパティに選択肢ID、`userId`に投票者IDが含まれます。
 | 
			
		||||
 | 
			
		||||
9.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
Misskey v8.64.0 を使っている方は、9.0.0に際しては特にすべきことはありません。
 | 
			
		||||
Misskey v8.64.0 に満たないバージョンをお使いの方は、一旦8.64.0にアップデートして(そして起動して)から9.0.0に再度アップデートしてください。
 | 
			
		||||
 | 
			
		||||
8.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
### Migration
 | 
			
		||||
 | 
			
		||||
起動する前に、`node cli/migration/8.0.0`してください。
 | 
			
		||||
 | 
			
		||||
Please run `node cli/migration/8.0.0` before launch.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
7.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
### Migration
 | 
			
		||||
 | 
			
		||||
起動する前に、`node cli/migration/7.0.0`してください。
 | 
			
		||||
 | 
			
		||||
Please run `node cli/migration/7.0.0` before launch.
 | 
			
		||||
 | 
			
		||||
6.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
### Migration
 | 
			
		||||
 | 
			
		||||
オブジェクトストレージを使用している場合、設定ファイルの`drive.config.secure`を`drive.config.useSSL`にリネームしてください。
 | 
			
		||||
 | 
			
		||||
If you use object storage, please rename `drive.config.secure` to `drive.config.useSSL` in config.
 | 
			
		||||
 | 
			
		||||
5.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
### Migration
 | 
			
		||||
 | 
			
		||||
起動する前に、`node cli/migration/5.0.0`してください。
 | 
			
		||||
 | 
			
		||||
Please run `node cli/migration/5.0.0` before launch.
 | 
			
		||||
 | 
			
		||||
4.0.0
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
オセロがリバーシに変更されました。
 | 
			
		||||
 | 
			
		||||
Othello is now Reversi.
 | 
			
		||||
Othello is rename to Reversi.
 | 
			
		||||
 | 
			
		||||
### Migration
 | 
			
		||||
 | 
			
		||||
MongoDBの、`othelloGames`と`othelloMatchings`コレクションをそれぞれ`reversiGames`と`reversiMatchings`にリネームしてください。
 | 
			
		||||
 | 
			
		||||
You need to rename `othelloGames` and `othelloMatchings` MongoDB collections to `reversiGames` and `reversiMatchings`.
 | 
			
		||||
Please rename `othelloGames` and `othelloMatchings` MongoDB collections to `reversiGames` and `reversiMatchings` respectively.
 | 
			
		||||
 | 
			
		||||
3.0.0
 | 
			
		||||
-----
 | 
			
		||||
 
 | 
			
		||||
@@ -1,27 +1,27 @@
 | 
			
		||||
# Contribution guide
 | 
			
		||||
:v: Misskeyへの貢献ありがとうございます。 :v:
 | 
			
		||||
:v: Thanks for your contributions :v:
 | 
			
		||||
 | 
			
		||||
## Issueの報告
 | 
			
		||||
新機能の提案や不具合の報告は https://github.com/syuilo/misskey/issues で管理しています。
 | 
			
		||||
Issueを作成する前に、既に同じIssueが作成されていないかご確認ください。
 | 
			
		||||
もし既にIssueが作成されている場合は、既存のIssueにコメントをしたりリアクションをするようお願いします。
 | 
			
		||||
## Issues
 | 
			
		||||
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
 | 
			
		||||
Before creating a new issue, please search existing issues to avoid duplication.
 | 
			
		||||
If you find the existing issue, please add your reaction or comment to the issue.
 | 
			
		||||
 | 
			
		||||
## Issueの解決
 | 
			
		||||
[pr-welcomeのラベルがついているIssue](https://github.com/syuilo/misskey/labels/pr-welcome)
 | 
			
		||||
の解決を目的としたPull Requestを作成してくださると非常にありがたいです。
 | 
			
		||||
## Internationalization (i18n)
 | 
			
		||||
Please see [Translation guide](./docs/translate.en.md).
 | 
			
		||||
 | 
			
		||||
## 翻訳の改善
 | 
			
		||||
ソースコード中の `%i18n:id%` という形の文字列は、言語ファイルの対応するテキストに置換されます。
 | 
			
		||||
言語ファイルは /locales ディレクトリに存在します。
 | 
			
		||||
## Localization (l10n)
 | 
			
		||||
Please use [Crowdin](https://crowdin.com/project/misskey) for localization.
 | 
			
		||||
 | 
			
		||||
## ドキュメントの編集
 | 
			
		||||
現在Misskeyはドキュメントが大きく不足しています。
 | 
			
		||||
ドキュメントは /docs ディレクトリに存在します。
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
## テストの追加
 | 
			
		||||
現在Misskeyはテストが大きく不足しています。
 | 
			
		||||
テストコードは /test ディレクトリに存在します。
 | 
			
		||||
## Documentation
 | 
			
		||||
* Documents for contributors are located in `/docs`.
 | 
			
		||||
* Documents for instance admins are located in `/docs`.
 | 
			
		||||
* Documents for end users are located in `src/docs`.
 | 
			
		||||
 | 
			
		||||
## 自動テスト及び自動リリース
 | 
			
		||||
Travis CIで行っています。
 | 
			
		||||
設定ファイルは /.travis に存在します。
 | 
			
		||||
## Test
 | 
			
		||||
* Test codes are located in `/test`.
 | 
			
		||||
 | 
			
		||||
## Continuous integration
 | 
			
		||||
Misskey uses Travis for automated test.
 | 
			
		||||
Configuration files are located in `/.travis`.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
FROM alpine:latest AS base
 | 
			
		||||
 | 
			
		||||
ENV NODE_ENV=production
 | 
			
		||||
 | 
			
		||||
RUN apk add --no-cache nodejs nodejs-npm
 | 
			
		||||
RUN apk add vips fftw --update-cache --repository https://dl-3.alpinelinux.org/alpine/edge/testing/
 | 
			
		||||
WORKDIR /misskey
 | 
			
		||||
COPY . ./
 | 
			
		||||
 | 
			
		||||
FROM base AS builder
 | 
			
		||||
 | 
			
		||||
RUN apk add --no-cache	gcc g++ python autoconf automake file make nasm
 | 
			
		||||
RUN apk add vips-dev fftw-dev --update-cache --repository https://dl-3.alpinelinux.org/alpine/edge/testing/
 | 
			
		||||
RUN npm install \
 | 
			
		||||
    && npm install -g node-gyp \
 | 
			
		||||
    && node-gyp configure \
 | 
			
		||||
    && node-gyp build \
 | 
			
		||||
    && npm run build
 | 
			
		||||
 | 
			
		||||
FROM base AS runner
 | 
			
		||||
 | 
			
		||||
COPY --from=builder /misskey/built ./built
 | 
			
		||||
COPY --from=builder /misskey/node_modules ./node_modules
 | 
			
		||||
 | 
			
		||||
RUN apk add --no-cache tini
 | 
			
		||||
ENTRYPOINT ["/sbin/tini", "--"]
 | 
			
		||||
 | 
			
		||||
CMD ["npm", "start"]
 | 
			
		||||
							
								
								
									
										108
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										108
									
								
								README.md
									
									
									
									
									
								
							@@ -1,4 +1,4 @@
 | 
			
		||||
<img src="https://github.com/syuilo/misskey/blob/b3f42e62af698a67c2250533c437569559f1fdf9/src/himasaku/resources/himasaku.png?raw=true" align="right" width="320px"/>
 | 
			
		||||
<img src="https://github.com/syuilo/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/>
 | 
			
		||||
 | 
			
		||||
[](https://misskey.xyz/)
 | 
			
		||||
================================================================
 | 
			
		||||
@@ -7,10 +7,12 @@
 | 
			
		||||
[![][dependencies-badge]][dependencies-link]
 | 
			
		||||
[](http://makeapullrequest.com) [](https://greenkeeper.io/)
 | 
			
		||||
 | 
			
		||||
**Microblogging. Redefined.**
 | 
			
		||||
**Sophisticated microblogging platform, evolving forever.**
 | 
			
		||||
 | 
			
		||||
**[Misskey](https://misskey.xyz)** is a completely open source,
 | 
			
		||||
ultimately sophisticated professional microblogging software.
 | 
			
		||||
[Misskey](https://misskey.xyz) is a decentralized microblogging platform born on Earth.
 | 
			
		||||
Since it exists within the Fediverse (a universe where various social media platforms are organized),
 | 
			
		||||
it is mutually linked with other social media platforms.
 | 
			
		||||
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? [Find instance!](https://joinmisskey.github.io/)
 | 
			
		||||
 | 
			
		||||
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
 | 
			
		||||
 | 
			
		||||
@@ -18,35 +20,91 @@ ultimately sophisticated professional microblogging software.
 | 
			
		||||
 | 
			
		||||
:sparkles: Features
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
* Reactions
 | 
			
		||||
* User lists
 | 
			
		||||
* Customizable column view (called MisskeyDeck)
 | 
			
		||||
  * and widgets!
 | 
			
		||||
* Private messages
 | 
			
		||||
* Mute
 | 
			
		||||
* Real-time timelines
 | 
			
		||||
* ActivityPub compatible
 | 
			
		||||
 | 
			
		||||
and more! You can see it with your own eyes at [misskey.xyz](https://misskey.xyz).
 | 
			
		||||
<img src="/assets/about/post.png" align="left" height="200px"/>
 | 
			
		||||
 | 
			
		||||
:package: Create your instance
 | 
			
		||||
<h3 align="left">Posting</h3>
 | 
			
		||||
<p align="left">
 | 
			
		||||
Just post your idea, hot topics and anything you want to share. You may want to decorate your words, attach your favorite pictures, send files including movies and create a poll - those are the things you can do on Misskey!
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
<img src="/assets/about/reaction.png" align="right" height="200px"/>
 | 
			
		||||
 | 
			
		||||
<h3 align="right">Reactions</h3>
 | 
			
		||||
<p align="right">
 | 
			
		||||
Easiest way to tell your emotions. Misskey allows you to add various type of reactions to other’s post. The emotional experience on Misskey will never be on other SNSs which only able to push “likes”.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
<img src="/assets/about/ui.png" align="left" height="200px"/>
 | 
			
		||||
 | 
			
		||||
<h3 align="left">Interface</h3>
 | 
			
		||||
<p align="left">
 | 
			
		||||
No UI fits for everyone. Therefore, Misskey has a highly customizable UI for your taste. You can edit layouts of your timeline, place selectable widgets you can easily move and create your unique home as this place will be your home.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
<img src="/assets/about/drive.png" align="right" width="300px"/>
 | 
			
		||||
 | 
			
		||||
<h3 align="right">Misskey Drive</h3>
 | 
			
		||||
<p align="right">
 | 
			
		||||
Wanna post a picture you have already uploaded? Wish to organize, name and create a folder for your uploaded files? Misskey Drive is the best solution for you. Very easy to share your files online.
 | 
			
		||||
</p>
 | 
			
		||||
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
and more! You can see it with your own eyes at [misskey.xyz](https://misskey.xyz) or [other instances](https://joinmisskey.github.io/).
 | 
			
		||||
 | 
			
		||||
:package: Create your own instance
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
If you want to run your own instance of Misskey,
 | 
			
		||||
please see [Setup and installation guide](./docs/setup.en.md).
 | 
			
		||||
Please see [Setup and installation guide](./docs/setup.en.md).
 | 
			
		||||
 | 
			
		||||
:wrench: Contribute
 | 
			
		||||
:wrench: Contribution
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
**[PR](https://github.com/syuilo/misskey/pulls)s welcome!**
 | 
			
		||||
 | 
			
		||||
If you want to...
 | 
			
		||||
* i18n ... please see [Translation guide](./docs/translate.en.md).
 | 
			
		||||
* l10n ... please visit https://crowdin.com/project/misskey
 | 
			
		||||
Please see [Contribution guide](./CONTRIBUTING.md).
 | 
			
		||||
 | 
			
		||||
:heart: Backers & Sponsors
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
| <img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1?token-time=2145916800&token-hash=tB1e_r8RlZ5sFL0KV_e8dugapxatNBRK1Z3h67TO1g8%3D"> | <img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12378075/0156f769e20f412594fa6b87d85fe228/1?token-time=2145916800&token-hash=IsIJRUXszzoD6-7pDnRY8I05T9nSznc4GTaxj7C9SwU%3D"> | <img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=S1zP0QyLU52Dqq6dtc9qNYyWfW86XrYHiR4NMbeOrnA%3D"> |
 | 
			
		||||
|:-:|:-:|:-:|
 | 
			
		||||
| [Gargron](https://www.patreon.com/mastodon) | [39ff](https://www.patreon.com/user/creators?u=12378075) | [dansup](https://www.patreon.com/dansup) |
 | 
			
		||||
<!-- PATREON_START -->
 | 
			
		||||
<table><tr>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1?token-time=2145916800&token-hash=CXe9AqlZy9AsYfiWd3OBYVOzvODoN47Litz0Tu4BFpU%3D" alt="Gargron"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=Yd60FK_SWfQO56SeiJpy1tDHOnCV4xdEywQe8gn5_Wo%3D" alt="negao"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13099460/43cecdbaa63a40d79bf50a96b9910b9d/1?token-time=2145916800&token-hash=d6P5MWHHsCMxUuBAEPAoVc5wLUR19mIhqAq7Ma9h9rI%3D" alt="ne_moni"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/2?token-time=2145916800&token-hash=mgPdX9TqZxEg4TTPuc477dxhIgYk9246qafjWZEqZ7g%3D" alt="Melilot"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/2?token-time=2145916800&token-hash=rwZ8qvbm_kpA4ib3kc07tVKupXeySpY5ATQFGxfL9v0%3D" alt="Xeltica"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=0eu4-m1gTWA9PhptVZt6rdKcusqcD7RB87rJT23VVFI%3D" alt="べすれい"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=GgJ_NmUB6_nnRNLVGUWjV-WX91On7BOu59LKncYV9fE%3D" alt="gutfuckllc"></td>
 | 
			
		||||
<td><img src="https://c8.patreon.com/2/100/12718187" alt="Peter G."></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=zwSu01tOtn5xTUucDZHuPsCxF2HBEMVs9ROJKTlEV_o%3D" alt="nemu"></td>
 | 
			
		||||
</tr><tr>
 | 
			
		||||
<td><a href="https://www.patreon.com/mastodon">Gargron</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/negao">negao</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=13099460">ne_moni</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/AxellaMC">Xeltica</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=3384329">べすれい</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
 | 
			
		||||
</tr></table>
 | 
			
		||||
<table><tr>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/2?token-time=2145916800&token-hash=zElv7ZcPL3viGsXbNG_KWiKrbV0vvw1gk0panx8DJoo%3D" alt="Naoki Kosaka"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=UERBN4OyP7Nh5XwwdDg0N0IE5cD6_qUQMO81Z5Wizso%3D" alt="Hiratake"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=S1zP0QyLU52Dqq6dtc9qNYyWfW86XrYHiR4NMbeOrnA%3D" alt="dansup"></td>
 | 
			
		||||
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1?token-time=2145916800&token-hash=tMosUojzUYJCH_3t--tvYA-SMCyrS__hzSndyaRSnbo%3D" alt="Takashi Shibuya"></td>
 | 
			
		||||
</tr><tr>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=5881381">Naoki Kosaka</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
 | 
			
		||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
 | 
			
		||||
</tr></table>
 | 
			
		||||
 | 
			
		||||
**Last updated:** Tue, 02 Oct 2018 09:25:07 UTC
 | 
			
		||||
<!-- PATREON_END -->
 | 
			
		||||
 | 
			
		||||
:four_leaf_clover: Copyright
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										41
									
								
								appveyor.yml
									
									
									
									
									
								
							
							
						
						
									
										41
									
								
								appveyor.yml
									
									
									
									
									
								
							@@ -1,41 +0,0 @@
 | 
			
		||||
# appveyor file
 | 
			
		||||
# http://www.appveyor.com/docs/appveyor-yml
 | 
			
		||||
 | 
			
		||||
environment:
 | 
			
		||||
  matrix:
 | 
			
		||||
    - nodejs_version: 10.1.0
 | 
			
		||||
 | 
			
		||||
cache:
 | 
			
		||||
  - node_modules
 | 
			
		||||
 | 
			
		||||
build: off
 | 
			
		||||
 | 
			
		||||
install:
 | 
			
		||||
  # Update Node.js
 | 
			
		||||
  # 標準で入っている Node.js を更新します (2014/11/13 時点では、v0.10.32 が標準)
 | 
			
		||||
  - ps: Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version)
 | 
			
		||||
  - node --version
 | 
			
		||||
 | 
			
		||||
  # Update NPM
 | 
			
		||||
  - npm install -g npm
 | 
			
		||||
  - npm --version
 | 
			
		||||
 | 
			
		||||
  # Update node-gyp
 | 
			
		||||
  # 必須! node-gyp のバージョンを上げないと、ネイティブモジュールのコンパイルに失敗します
 | 
			
		||||
  - npm install -g node-gyp
 | 
			
		||||
 | 
			
		||||
  - npm install
 | 
			
		||||
 | 
			
		||||
init:
 | 
			
		||||
  # git clone の際の改行を変換しないようにします
 | 
			
		||||
  - git config --global core.autocrlf false
 | 
			
		||||
 | 
			
		||||
before_test:
 | 
			
		||||
  # 設定ファイルを配置
 | 
			
		||||
  - cp ./.travis/default.yml ./.config
 | 
			
		||||
  - cp ./.travis/test.yml ./.config
 | 
			
		||||
 | 
			
		||||
  - npm run build
 | 
			
		||||
 | 
			
		||||
test_script:
 | 
			
		||||
  - npm test
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								assets/about/drive.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/about/drive.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 110 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/about/post.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/about/post.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 344 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/about/reaction.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/about/reaction.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/about/ui.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/about/ui.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 125 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/ai-orig.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/ai-orig.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 256 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/ai.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/ai.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 243 KiB  | 
@@ -1,101 +0,0 @@
 | 
			
		||||
const chalk = require('chalk');
 | 
			
		||||
const log = require('single-line-log').stdout;
 | 
			
		||||
const sequential = require('promise-sequential');
 | 
			
		||||
const { default: DriveFile, DriveFileChunk } = require('../built/models/drive-file');
 | 
			
		||||
const { default: DriveFileThumbnail, DriveFileThumbnailChunk } = require('../built/models/drive-file-thumbnail');
 | 
			
		||||
const { default: User } = require('../built/models/user');
 | 
			
		||||
 | 
			
		||||
const q = {
 | 
			
		||||
	'metadata._user.host': {
 | 
			
		||||
		$ne: null
 | 
			
		||||
	},
 | 
			
		||||
	'metadata.isMetaOnly': false
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const promiseGens = [];
 | 
			
		||||
 | 
			
		||||
	const count = await DriveFile.count(q);
 | 
			
		||||
 | 
			
		||||
	let prev;
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < count; i++) {
 | 
			
		||||
		promiseGens.push(() => {
 | 
			
		||||
			const promise = new Promise(async (res, rej) => {
 | 
			
		||||
				const file = await DriveFile.findOne(prev ? Object.assign({
 | 
			
		||||
					_id: { $lt: prev._id }
 | 
			
		||||
				}, q) : q, {
 | 
			
		||||
					sort: {
 | 
			
		||||
						_id: -1
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				prev = file;
 | 
			
		||||
 | 
			
		||||
				function skip() {
 | 
			
		||||
					res([i, file, false]);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if (file == null) return skip();
 | 
			
		||||
 | 
			
		||||
				log(chalk`{gray ${i}} scanning {bold ${file._id}} ${file.filename} ...`);
 | 
			
		||||
 | 
			
		||||
				const attachingUsersCount = await User.count({
 | 
			
		||||
					$or: [{
 | 
			
		||||
						avatarId: file._id
 | 
			
		||||
					}, {
 | 
			
		||||
						bannerId: file._id
 | 
			
		||||
					}]
 | 
			
		||||
				}, { limit: 1 });
 | 
			
		||||
				if (attachingUsersCount !== 0) return skip();
 | 
			
		||||
 | 
			
		||||
				Promise.all([
 | 
			
		||||
					// チャンクをすべて削除
 | 
			
		||||
					DriveFileChunk.remove({
 | 
			
		||||
						files_id: file._id
 | 
			
		||||
					}),
 | 
			
		||||
 | 
			
		||||
					DriveFile.update({ _id: file._id }, {
 | 
			
		||||
						$set: {
 | 
			
		||||
							'metadata.isMetaOnly': true
 | 
			
		||||
						}
 | 
			
		||||
					})
 | 
			
		||||
				]).then(async () => {
 | 
			
		||||
					res([i, file, true]);
 | 
			
		||||
 | 
			
		||||
					//#region サムネイルもあれば削除
 | 
			
		||||
					const thumbnail = await DriveFileThumbnail.findOne({
 | 
			
		||||
						'metadata.originalId': file._id
 | 
			
		||||
					});
 | 
			
		||||
 | 
			
		||||
					if (thumbnail) {
 | 
			
		||||
						DriveFileThumbnailChunk.remove({
 | 
			
		||||
							files_id: thumbnail._id
 | 
			
		||||
						});
 | 
			
		||||
 | 
			
		||||
						DriveFileThumbnail.remove({ _id: thumbnail._id });
 | 
			
		||||
					}
 | 
			
		||||
					//#endregion
 | 
			
		||||
				});
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			promise.then(([i, file, deleted]) => {
 | 
			
		||||
				if (deleted) {
 | 
			
		||||
					log(chalk`{gray ${i}} {red deleted: {bold ${file._id}} ${file.filename}}`);
 | 
			
		||||
				} else {
 | 
			
		||||
					log(chalk`{gray ${i}} {green skipped: {bold ${file._id}} ${file.filename}}`);
 | 
			
		||||
				}
 | 
			
		||||
				log.clear();
 | 
			
		||||
				console.log();
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			return promise;
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return await sequential(promiseGens);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main().then(() => {
 | 
			
		||||
	console.log('ALL DONE');
 | 
			
		||||
}).catch(console.error);
 | 
			
		||||
@@ -1,80 +0,0 @@
 | 
			
		||||
const chalk = require('chalk');
 | 
			
		||||
const log = require('single-line-log').stdout;
 | 
			
		||||
const sequential = require('promise-sequential');
 | 
			
		||||
const { default: DriveFile, deleteDriveFile } = require('../built/models/drive-file');
 | 
			
		||||
const { default: Note } = require('../built/models/note');
 | 
			
		||||
const { default: MessagingMessage } = require('../built/models/messaging-message');
 | 
			
		||||
const { default: User } = require('../built/models/user');
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const promiseGens = [];
 | 
			
		||||
 | 
			
		||||
	const count = await DriveFile.count({});
 | 
			
		||||
 | 
			
		||||
	let prev;
 | 
			
		||||
 | 
			
		||||
	for (let i = 0; i < count; i++) {
 | 
			
		||||
		promiseGens.push(() => {
 | 
			
		||||
			const promise = new Promise(async (res, rej) => {
 | 
			
		||||
				const file = await DriveFile.findOne(prev ? {
 | 
			
		||||
					_id: { $lt: prev._id }
 | 
			
		||||
				} : {}, {
 | 
			
		||||
					sort: {
 | 
			
		||||
						_id: -1
 | 
			
		||||
					}
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
				prev = file;
 | 
			
		||||
 | 
			
		||||
				function skip() {
 | 
			
		||||
					res([i, file, false]);
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				if (file == null) return skip();
 | 
			
		||||
 | 
			
		||||
				log(chalk`{gray ${i}} scanning {bold ${file._id}} ${file.filename} ...`);
 | 
			
		||||
 | 
			
		||||
				const attachingUsersCount = await User.count({
 | 
			
		||||
					$or: [{
 | 
			
		||||
						avatarId: file._id
 | 
			
		||||
					}, {
 | 
			
		||||
						bannerId: file._id
 | 
			
		||||
					}]
 | 
			
		||||
				}, { limit: 1 });
 | 
			
		||||
				if (attachingUsersCount !== 0) return skip();
 | 
			
		||||
 | 
			
		||||
				const attachingNotesCount = await Note.count({
 | 
			
		||||
					mediaIds: file._id
 | 
			
		||||
				}, { limit: 1 });
 | 
			
		||||
				if (attachingNotesCount !== 0) return skip();
 | 
			
		||||
 | 
			
		||||
				const attachingMessagesCount = await MessagingMessage.count({
 | 
			
		||||
					fileId: file._id
 | 
			
		||||
				}, { limit: 1 });
 | 
			
		||||
				if (attachingMessagesCount !== 0) return skip();
 | 
			
		||||
 | 
			
		||||
				deleteDriveFile(file).then(() => {
 | 
			
		||||
					res([i, file, true]);
 | 
			
		||||
				}).catch(rej);
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			promise.then(([i, file, deleted]) => {
 | 
			
		||||
				if (deleted) {
 | 
			
		||||
					log(chalk`{gray ${i}} {red deleted: {bold ${file._id}} ${file.filename}}`);
 | 
			
		||||
				} else {
 | 
			
		||||
					log(chalk`{gray ${i}} {green skipped: {bold ${file._id}} ${file.filename}}`);
 | 
			
		||||
				}
 | 
			
		||||
				log.clear();
 | 
			
		||||
				console.log();
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			return promise;
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return await sequential(promiseGens);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main().then(() => {
 | 
			
		||||
	console.log('done');
 | 
			
		||||
}).catch(console.error);
 | 
			
		||||
@@ -1,40 +0,0 @@
 | 
			
		||||
const { default: User, deleteUser } = require('../built/models/user');
 | 
			
		||||
const { default: zip } = require('@prezzemolo/zip')
 | 
			
		||||
 | 
			
		||||
const migrate = async (user) => {
 | 
			
		||||
	try {
 | 
			
		||||
		await deleteUser(user._id);
 | 
			
		||||
		return true;
 | 
			
		||||
	} catch (e) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const count = await User.count({
 | 
			
		||||
		uri: /#/
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const dop = 1
 | 
			
		||||
	const idop = ((count - (count % dop)) / dop) + 1
 | 
			
		||||
 | 
			
		||||
	return zip(
 | 
			
		||||
		1,
 | 
			
		||||
		async (time) => {
 | 
			
		||||
			console.log(`${time} / ${idop}`)
 | 
			
		||||
			const doc = await User.find({
 | 
			
		||||
				uri: /#/
 | 
			
		||||
			}, {
 | 
			
		||||
				limit: dop, skip: time * dop
 | 
			
		||||
			})
 | 
			
		||||
			return Promise.all(doc.map(migrate))
 | 
			
		||||
		},
 | 
			
		||||
		idop
 | 
			
		||||
	).then(a => {
 | 
			
		||||
		const rv = []
 | 
			
		||||
		a.forEach(e => rv.push(...e))
 | 
			
		||||
		return rv
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main().then(console.dir).catch(console.error)
 | 
			
		||||
							
								
								
									
										23
									
								
								cli/mark-admin.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cli/mark-admin.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
const mongo = require('mongodb');
 | 
			
		||||
const User = require('../built/models/user').default;
 | 
			
		||||
 | 
			
		||||
const args = process.argv.slice(2);
 | 
			
		||||
 | 
			
		||||
const user = args[0];
 | 
			
		||||
 | 
			
		||||
const q = user.startsWith('@') ? {
 | 
			
		||||
	username: user.split('@')[1],
 | 
			
		||||
	host: user.split('@')[2] || null
 | 
			
		||||
} : { _id: new mongo.ObjectID(user) };
 | 
			
		||||
 | 
			
		||||
console.log(`Mark as admin ${user}...`);
 | 
			
		||||
 | 
			
		||||
User.update(q, {
 | 
			
		||||
	$set: {
 | 
			
		||||
		isAdmin: true
 | 
			
		||||
	}
 | 
			
		||||
}).then(() => {
 | 
			
		||||
	console.log(`Done ${user}`);
 | 
			
		||||
}, e => {
 | 
			
		||||
	console.error(e);
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										23
									
								
								cli/mark-verified.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								cli/mark-verified.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
const mongo = require('mongodb');
 | 
			
		||||
const User = require('../built/models/user').default;
 | 
			
		||||
 | 
			
		||||
const args = process.argv.slice(2);
 | 
			
		||||
 | 
			
		||||
const user = args[0];
 | 
			
		||||
 | 
			
		||||
const q = user.startsWith('@') ? {
 | 
			
		||||
	username: user.split('@')[1],
 | 
			
		||||
	host: user.split('@')[2] || null
 | 
			
		||||
} : { _id: new mongo.ObjectID(user) };
 | 
			
		||||
 | 
			
		||||
console.log(`Mark as verfied ${user}...`);
 | 
			
		||||
 | 
			
		||||
User.update(q, {
 | 
			
		||||
	$set: {
 | 
			
		||||
		isVerified: true
 | 
			
		||||
	}
 | 
			
		||||
}).then(() => {
 | 
			
		||||
	console.log(`Done ${user}`);
 | 
			
		||||
}, e => {
 | 
			
		||||
	console.error(e);
 | 
			
		||||
});
 | 
			
		||||
@@ -3,8 +3,8 @@
 | 
			
		||||
const chalk = require('chalk');
 | 
			
		||||
const sequential = require('promise-sequential');
 | 
			
		||||
 | 
			
		||||
const { default: User } = require('../built/models/user');
 | 
			
		||||
const { default: DriveFile } = require('../built/models/drive-file');
 | 
			
		||||
const { default: User } = require('../../built/models/user');
 | 
			
		||||
const { default: DriveFile } = require('../../built/models/drive-file');
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const promiseGens = [];
 | 
			
		||||
@@ -3,8 +3,8 @@
 | 
			
		||||
const chalk = require('chalk');
 | 
			
		||||
const sequential = require('promise-sequential');
 | 
			
		||||
 | 
			
		||||
const { default: User } = require('../built/models/user');
 | 
			
		||||
const { default: DriveFile } = require('../built/models/drive-file');
 | 
			
		||||
const { default: User } = require('../../built/models/user');
 | 
			
		||||
const { default: DriveFile } = require('../../built/models/drive-file');
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const promiseGens = [];
 | 
			
		||||
							
								
								
									
										9
									
								
								cli/migration/5.0.0.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								cli/migration/5.0.0.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
const { default: DriveFile } = require('../../built/models/drive-file');
 | 
			
		||||
 | 
			
		||||
DriveFile.update({}, {
 | 
			
		||||
	$rename: {
 | 
			
		||||
		'metadata.isMetaOnly': 'metadata.withoutChunks'
 | 
			
		||||
	}
 | 
			
		||||
}, {
 | 
			
		||||
	multi: true
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										134
									
								
								cli/migration/7.0.0.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										134
									
								
								cli/migration/7.0.0.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,134 @@
 | 
			
		||||
const { default: Stats } = require('../../built/models/stats');
 | 
			
		||||
const { default: User } = require('../../built/models/user');
 | 
			
		||||
const { default: Note } = require('../../built/models/note');
 | 
			
		||||
const { default: DriveFile } = require('../../built/models/drive-file');
 | 
			
		||||
 | 
			
		||||
const now = new Date();
 | 
			
		||||
const y = now.getFullYear();
 | 
			
		||||
const m = now.getMonth();
 | 
			
		||||
const d = now.getDate();
 | 
			
		||||
const today = new Date(y, m, d);
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	const localUsersCount = await User.count({
 | 
			
		||||
		host: null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteUsersCount = await User.count({
 | 
			
		||||
		host: { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localNotesCount = await Note.count({
 | 
			
		||||
		'_user.host': null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteNotesCount = await Note.count({
 | 
			
		||||
		'_user.host': { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localDriveFilesCount = await DriveFile.count({
 | 
			
		||||
		'metadata._user.host': null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteDriveFilesCount = await DriveFile.count({
 | 
			
		||||
		'metadata._user.host': { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localDriveFilesSize = await DriveFile
 | 
			
		||||
		.aggregate([{
 | 
			
		||||
			$match: {
 | 
			
		||||
				'metadata._user.host': null,
 | 
			
		||||
				'metadata.deletedAt': { $exists: false }
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$project: {
 | 
			
		||||
				length: true
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$group: {
 | 
			
		||||
				_id: null,
 | 
			
		||||
				usage: { $sum: '$length' }
 | 
			
		||||
			}
 | 
			
		||||
		}])
 | 
			
		||||
		.then(aggregates => {
 | 
			
		||||
			if (aggregates.length > 0) {
 | 
			
		||||
				return aggregates[0].usage;
 | 
			
		||||
			}
 | 
			
		||||
			return 0;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	const remoteDriveFilesSize = await DriveFile
 | 
			
		||||
		.aggregate([{
 | 
			
		||||
			$match: {
 | 
			
		||||
				'metadata._user.host': { $ne: null },
 | 
			
		||||
				'metadata.deletedAt': { $exists: false }
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$project: {
 | 
			
		||||
				length: true
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$group: {
 | 
			
		||||
				_id: null,
 | 
			
		||||
				usage: { $sum: '$length' }
 | 
			
		||||
			}
 | 
			
		||||
		}])
 | 
			
		||||
		.then(aggregates => {
 | 
			
		||||
			if (aggregates.length > 0) {
 | 
			
		||||
				return aggregates[0].usage;
 | 
			
		||||
			}
 | 
			
		||||
			return 0;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	await Stats.insert({
 | 
			
		||||
		date: today,
 | 
			
		||||
		users: {
 | 
			
		||||
			local: {
 | 
			
		||||
				total: localUsersCount,
 | 
			
		||||
				diff: 0
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				total: remoteUsersCount,
 | 
			
		||||
				diff: 0
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		notes: {
 | 
			
		||||
			local: {
 | 
			
		||||
				total: localNotesCount,
 | 
			
		||||
				diff: 0,
 | 
			
		||||
				diffs: {
 | 
			
		||||
					normal: 0,
 | 
			
		||||
					reply: 0,
 | 
			
		||||
					renote: 0
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				total: remoteNotesCount,
 | 
			
		||||
				diff: 0,
 | 
			
		||||
				diffs: {
 | 
			
		||||
					normal: 0,
 | 
			
		||||
					reply: 0,
 | 
			
		||||
					renote: 0
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		drive: {
 | 
			
		||||
			local: {
 | 
			
		||||
				totalCount: localDriveFilesCount,
 | 
			
		||||
				totalSize: localDriveFilesSize,
 | 
			
		||||
				diffCount: 0,
 | 
			
		||||
				diffSize: 0
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				totalCount: remoteDriveFilesCount,
 | 
			
		||||
				totalSize: remoteDriveFilesSize,
 | 
			
		||||
				diffCount: 0,
 | 
			
		||||
				diffSize: 0
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	console.log('done');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main();
 | 
			
		||||
							
								
								
									
										144
									
								
								cli/migration/8.0.0.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										144
									
								
								cli/migration/8.0.0.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,144 @@
 | 
			
		||||
const { default: Stats } = require('../../built/models/stats');
 | 
			
		||||
const { default: User } = require('../../built/models/user');
 | 
			
		||||
const { default: Note } = require('../../built/models/note');
 | 
			
		||||
const { default: DriveFile } = require('../../built/models/drive-file');
 | 
			
		||||
 | 
			
		||||
const now = new Date();
 | 
			
		||||
const y = now.getFullYear();
 | 
			
		||||
const m = now.getMonth();
 | 
			
		||||
const d = now.getDate();
 | 
			
		||||
const h = now.getHours();
 | 
			
		||||
const date = new Date(y, m, d, h);
 | 
			
		||||
 | 
			
		||||
async function main() {
 | 
			
		||||
	await Stats.update({}, {
 | 
			
		||||
		$set: {
 | 
			
		||||
			span: 'day'
 | 
			
		||||
		}
 | 
			
		||||
	}, {
 | 
			
		||||
		multi: true
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localUsersCount = await User.count({
 | 
			
		||||
		host: null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteUsersCount = await User.count({
 | 
			
		||||
		host: { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localNotesCount = await Note.count({
 | 
			
		||||
		'_user.host': null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteNotesCount = await Note.count({
 | 
			
		||||
		'_user.host': { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localDriveFilesCount = await DriveFile.count({
 | 
			
		||||
		'metadata._user.host': null
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const remoteDriveFilesCount = await DriveFile.count({
 | 
			
		||||
		'metadata._user.host': { $ne: null }
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	const localDriveFilesSize = await DriveFile
 | 
			
		||||
		.aggregate([{
 | 
			
		||||
			$match: {
 | 
			
		||||
				'metadata._user.host': null,
 | 
			
		||||
				'metadata.deletedAt': { $exists: false }
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$project: {
 | 
			
		||||
				length: true
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$group: {
 | 
			
		||||
				_id: null,
 | 
			
		||||
				usage: { $sum: '$length' }
 | 
			
		||||
			}
 | 
			
		||||
		}])
 | 
			
		||||
		.then(aggregates => {
 | 
			
		||||
			if (aggregates.length > 0) {
 | 
			
		||||
				return aggregates[0].usage;
 | 
			
		||||
			}
 | 
			
		||||
			return 0;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	const remoteDriveFilesSize = await DriveFile
 | 
			
		||||
		.aggregate([{
 | 
			
		||||
			$match: {
 | 
			
		||||
				'metadata._user.host': { $ne: null },
 | 
			
		||||
				'metadata.deletedAt': { $exists: false }
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$project: {
 | 
			
		||||
				length: true
 | 
			
		||||
			}
 | 
			
		||||
		}, {
 | 
			
		||||
			$group: {
 | 
			
		||||
				_id: null,
 | 
			
		||||
				usage: { $sum: '$length' }
 | 
			
		||||
			}
 | 
			
		||||
		}])
 | 
			
		||||
		.then(aggregates => {
 | 
			
		||||
			if (aggregates.length > 0) {
 | 
			
		||||
				return aggregates[0].usage;
 | 
			
		||||
			}
 | 
			
		||||
			return 0;
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
	await Stats.insert({
 | 
			
		||||
		date: date,
 | 
			
		||||
		span: 'hour',
 | 
			
		||||
		users: {
 | 
			
		||||
			local: {
 | 
			
		||||
				total: localUsersCount,
 | 
			
		||||
				diff: 0
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				total: remoteUsersCount,
 | 
			
		||||
				diff: 0
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		notes: {
 | 
			
		||||
			local: {
 | 
			
		||||
				total: localNotesCount,
 | 
			
		||||
				diff: 0,
 | 
			
		||||
				diffs: {
 | 
			
		||||
					normal: 0,
 | 
			
		||||
					reply: 0,
 | 
			
		||||
					renote: 0
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				total: remoteNotesCount,
 | 
			
		||||
				diff: 0,
 | 
			
		||||
				diffs: {
 | 
			
		||||
					normal: 0,
 | 
			
		||||
					reply: 0,
 | 
			
		||||
					renote: 0
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
		drive: {
 | 
			
		||||
			local: {
 | 
			
		||||
				totalCount: localDriveFilesCount,
 | 
			
		||||
				totalSize: localDriveFilesSize,
 | 
			
		||||
				diffCount: 0,
 | 
			
		||||
				diffSize: 0
 | 
			
		||||
			},
 | 
			
		||||
			remote: {
 | 
			
		||||
				totalCount: remoteDriveFilesCount,
 | 
			
		||||
				totalSize: remoteDriveFilesSize,
 | 
			
		||||
				diffCount: 0,
 | 
			
		||||
				diffSize: 0
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	console.log('done');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
main();
 | 
			
		||||
							
								
								
									
										29
									
								
								cli/reset-password.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								cli/reset-password.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
const mongo = require('mongodb');
 | 
			
		||||
const bcrypt = require('bcryptjs');
 | 
			
		||||
const User = require('../built/models/user').default;
 | 
			
		||||
 | 
			
		||||
const args = process.argv.slice(2);
 | 
			
		||||
 | 
			
		||||
const user = args[0];
 | 
			
		||||
 | 
			
		||||
const q = user.startsWith('@') ? {
 | 
			
		||||
	username: user.split('@')[1],
 | 
			
		||||
	host: user.split('@')[2] || null
 | 
			
		||||
} : { _id: new mongo.ObjectID(user) };
 | 
			
		||||
 | 
			
		||||
console.log(`Resetting password for ${user}...`);
 | 
			
		||||
 | 
			
		||||
const passwd = 'yo';
 | 
			
		||||
 | 
			
		||||
// Generate hash of password
 | 
			
		||||
const hash = bcrypt.hashSync(passwd);
 | 
			
		||||
 | 
			
		||||
User.update(q, {
 | 
			
		||||
	$set: {
 | 
			
		||||
		password: hash
 | 
			
		||||
	}
 | 
			
		||||
}).then(() => {
 | 
			
		||||
	console.log(`Password of ${user} is now '${passwd}'`);
 | 
			
		||||
}, e => {
 | 
			
		||||
	console.error(e);
 | 
			
		||||
});
 | 
			
		||||
@@ -1,3 +1,3 @@
 | 
			
		||||
files:
 | 
			
		||||
  - source: /locales/ja.yml
 | 
			
		||||
    translation: /locales/%two_letters_code%.yml
 | 
			
		||||
  - source: /locales/ja-JP.yml
 | 
			
		||||
    translation: /locales/%locale%.yml
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										52
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								docker-compose.yml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
			
		||||
version: "3"
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  web:
 | 
			
		||||
    build: .
 | 
			
		||||
    restart: always
 | 
			
		||||
    links:
 | 
			
		||||
      - mongo
 | 
			
		||||
      - redis
 | 
			
		||||
#      - es
 | 
			
		||||
    ports:
 | 
			
		||||
      - "127.0.0.1:3000:3000"
 | 
			
		||||
    networks:
 | 
			
		||||
      - internal_network
 | 
			
		||||
      - external_network
 | 
			
		||||
 | 
			
		||||
  redis:
 | 
			
		||||
    restart: always
 | 
			
		||||
    image: redis:4.0-alpine
 | 
			
		||||
    networks:
 | 
			
		||||
      - internal_network
 | 
			
		||||
### Uncomment to enable Redis persistance
 | 
			
		||||
#    volumes:
 | 
			
		||||
#      - ./redis:/data
 | 
			
		||||
 | 
			
		||||
  mongo:
 | 
			
		||||
    restart: always
 | 
			
		||||
    image: mongo:4.1-bionic
 | 
			
		||||
    networks:
 | 
			
		||||
      - internal_network
 | 
			
		||||
    environment:
 | 
			
		||||
      MONGO_INITDB_DATABASE: "misskey"
 | 
			
		||||
    volumes:
 | 
			
		||||
      - ./.config/mongo_initdb.js:/docker-entrypoint-initdb.d/mongo_initdb.js:ro
 | 
			
		||||
### Uncomment to enable MongoDB persistance
 | 
			
		||||
#      - ./mongo:/data
 | 
			
		||||
 | 
			
		||||
#  es:
 | 
			
		||||
#    restart: always
 | 
			
		||||
#    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
 | 
			
		||||
#    environment:
 | 
			
		||||
#      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
 | 
			
		||||
#    networks:
 | 
			
		||||
#      - internal_network
 | 
			
		||||
#### Uncomment to enable ES persistence
 | 
			
		||||
##    volumes:
 | 
			
		||||
##      - ./elasticsearch:/usr/share/elasticsearch/data
 | 
			
		||||
 | 
			
		||||
networks:
 | 
			
		||||
  internal_network:
 | 
			
		||||
    internal: true
 | 
			
		||||
  external_network:
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
FROM base/archlinux
 | 
			
		||||
 | 
			
		||||
MAINTAINER Aya Morisawa
 | 
			
		||||
 | 
			
		||||
RUN rm /etc/pacman.d/mirrorlist
 | 
			
		||||
RUN echo 'Server = http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/$repo/os/$arch'    >> /etc/pacman.d/mirrorlist
 | 
			
		||||
RUN echo 'Server = http://ftp.tsukuba.wide.ad.jp/Linux/archlinux/$repo/os/$arch' >> /etc/pacman.d/mirrorlist
 | 
			
		||||
 | 
			
		||||
RUN rm /etc/localtime
 | 
			
		||||
RUN ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
 | 
			
		||||
 | 
			
		||||
RUN pacman -Sy --noconfirm
 | 
			
		||||
RUN pacman -S --noconfirm pacman
 | 
			
		||||
RUN pacman-db-upgrade
 | 
			
		||||
RUN pacman -S --noconfirm archlinux-keyring
 | 
			
		||||
RUN pacman -Syyu --noconfirm
 | 
			
		||||
RUN pacman -S --noconfirm git nodejs npm mongodb redis imagemagick
 | 
			
		||||
 | 
			
		||||
COPY misskey.sh /root/misskey.sh
 | 
			
		||||
RUN chmod u+x /root/misskey.sh
 | 
			
		||||
 | 
			
		||||
EXPOSE 80
 | 
			
		||||
EXPOSE 443
 | 
			
		||||
EXPOSE 27017
 | 
			
		||||
 | 
			
		||||
CMD ["/root/misskey.sh"]
 | 
			
		||||
@@ -1,6 +0,0 @@
 | 
			
		||||
#!/bin/sh
 | 
			
		||||
redis-server --daemonize yes
 | 
			
		||||
mongod > /dev/null &
 | 
			
		||||
cd /root/misskey
 | 
			
		||||
npm start
 | 
			
		||||
tail -f /dev/null
 | 
			
		||||
@@ -1,29 +1,47 @@
 | 
			
		||||
Setup with Docker :whale:
 | 
			
		||||
Docker Guide
 | 
			
		||||
================================================================
 | 
			
		||||
 | 
			
		||||
Ensure that the working directory is the repository root directory.
 | 
			
		||||
This guide describes how to install and setup Misskey with Docker.
 | 
			
		||||
 | 
			
		||||
To create misskey image:
 | 
			
		||||
``` console
 | 
			
		||||
$ sudo docker build -t misskey ./docker
 | 
			
		||||
```
 | 
			
		||||
[Japanese version also available - 日本語版もあります](./docker.ja.md)
 | 
			
		||||
 | 
			
		||||
To run misskey:
 | 
			
		||||
``` console
 | 
			
		||||
$ sudo docker run --rm -i -t -p $PORT:80 -v $(pwd):/root/misskey -v $DBPATH:/data/db misskey
 | 
			
		||||
```
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
where `$PORT` is the port used to access Misskey Web from host browser
 | 
			
		||||
and `$DBPATH` is the path of MongoDB database on the host for data persistence.
 | 
			
		||||
*1.* Make configuration files
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
 | 
			
		||||
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copy the `.config/mongo_initdb_example.js` and rename it to `mongo_initdb.js`.
 | 
			
		||||
2. Edit `default.yml` and `mongo_initdb.js`.
 | 
			
		||||
 | 
			
		||||
ex:
 | 
			
		||||
``` console
 | 
			
		||||
$ sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db misskey
 | 
			
		||||
```
 | 
			
		||||
*2.* Configure Docker
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
Edit `docker-compose.yml`.
 | 
			
		||||
 | 
			
		||||
If you want to run misskey in production mode, add `--env NODE_ENV=production` like this:
 | 
			
		||||
``` console
 | 
			
		||||
$ sudo docker run --rm -i -t -p 80:80 -v $(pwd):/root/misskey -v /data/db:/data/db --env NODE_ENV=production misskey
 | 
			
		||||
```
 | 
			
		||||
*3.* Build Misskey
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
Build misskey with the following:
 | 
			
		||||
 | 
			
		||||
Note that `$(pwd)` is the working directory.
 | 
			
		||||
`docker-compose build`
 | 
			
		||||
 | 
			
		||||
*4.* That is it.
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
Well done! Now, you have an environment that run to Misskey.
 | 
			
		||||
 | 
			
		||||
### Launch normally
 | 
			
		||||
Just `docker-compose up -d`. GLHF!
 | 
			
		||||
 | 
			
		||||
### Way to Update to latest version of your Misskey
 | 
			
		||||
1. `git fetch`
 | 
			
		||||
2. `git stash`
 | 
			
		||||
3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
 | 
			
		||||
4. `git stash pop`
 | 
			
		||||
5. `docker-compose build`
 | 
			
		||||
6. Check [ChangeLog](../CHANGELOG.md) for migration information
 | 
			
		||||
7. `docker-compose stop && docker-compose up -d`
 | 
			
		||||
 | 
			
		||||
### Way to execute cli command:
 | 
			
		||||
`docker-compose run --rm web node cli/mark-admin @example`
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
If you have any questions or troubles, feel free to contact us!
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										48
									
								
								docs/docker.ja.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								docs/docker.ja.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
Dockerを使ったMisskey構築方法
 | 
			
		||||
================================================================
 | 
			
		||||
 | 
			
		||||
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
 | 
			
		||||
 | 
			
		||||
[英語版もあります - English version also available](./docker.en.md)
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
*1.* 設定ファイルを作成する
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
1. `cp .config/example.yml .config/default.yml` `.config/example.yml`をコピーし名前を`default.yml`にする
 | 
			
		||||
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` `.config/mongo_initdb_example.js`をコピーし名前を`mongo_initdb.js`にする
 | 
			
		||||
3. `default.yml`と`mongo_initdb.js`を編集する
 | 
			
		||||
 | 
			
		||||
*2.* Dockerの設定
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
`docker-compose.yml`を編集してください。
 | 
			
		||||
 | 
			
		||||
*3.* Misskeyのビルド
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
次のコマンドでMisskeyをビルドしてください:
 | 
			
		||||
 | 
			
		||||
`docker-compose build`
 | 
			
		||||
 | 
			
		||||
*4.* 以上です!
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
お疲れ様でした。これでMisskeyを動かす準備は整いました。
 | 
			
		||||
 | 
			
		||||
### 通常起動
 | 
			
		||||
`docker-compose up -d`するだけです。GLHF!
 | 
			
		||||
 | 
			
		||||
### Misskeyを最新バージョンにアップデートする方法:
 | 
			
		||||
1. `git fetch`
 | 
			
		||||
2. `git stash`
 | 
			
		||||
3. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
 | 
			
		||||
4. `git stash pop`
 | 
			
		||||
5. `docker-compose build`
 | 
			
		||||
6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
 | 
			
		||||
7. `docker-compose stop && docker-compose up -d`
 | 
			
		||||
 | 
			
		||||
### cliコマンドを実行する方法:
 | 
			
		||||
 | 
			
		||||
`docker-compose run --rm web node cli/mark-admin @example`
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
なにかお困りのことがありましたらお気軽にご連絡ください。
 | 
			
		||||
@@ -1,11 +1,17 @@
 | 
			
		||||
# Management guide
 | 
			
		||||
 | 
			
		||||
## Check the status of the job queue
 | 
			
		||||
In the directory of Misskey:
 | 
			
		||||
coming soon
 | 
			
		||||
 | 
			
		||||
## Mark as 'admin' user
 | 
			
		||||
``` shell
 | 
			
		||||
node_modules/kue/bin/kue-dashboard -p 3050
 | 
			
		||||
node cli/mark-admin (User-ID or Username)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Mark as 'verified' user
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/mark-verified (User-ID or Username)
 | 
			
		||||
```
 | 
			
		||||
When you access port 3050, you will see the UI.
 | 
			
		||||
 | 
			
		||||
## Suspend users
 | 
			
		||||
``` shell
 | 
			
		||||
@@ -23,13 +29,7 @@ node cli/suspend @syuilo
 | 
			
		||||
node cli/suspend @syuilo@misskey.xyz
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Clean up cached remote files
 | 
			
		||||
## Reset password
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/clean-cached-remote-files
 | 
			
		||||
node cli/reset-password (User-ID or Username)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Clean up unused drive files
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/clean-unused-drive-files
 | 
			
		||||
```
 | 
			
		||||
> We recommend that you announce a user that unused drive files will be deleted before performing this operation, as it may delete the user's important files.
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,17 @@
 | 
			
		||||
# 運営ガイド
 | 
			
		||||
 | 
			
		||||
## ジョブキューの状態を調べる
 | 
			
		||||
Misskeyのディレクトリで:
 | 
			
		||||
coming soon
 | 
			
		||||
 | 
			
		||||
## 管理者ユーザーを設定する
 | 
			
		||||
``` shell
 | 
			
		||||
node_modules/kue/bin/kue-dashboard -p 3050
 | 
			
		||||
node cli/mark-admin (ユーザーID または ユーザー名)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 'verified'ユーザーを設定する
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/mark-verified (ユーザーID または ユーザー名)
 | 
			
		||||
```
 | 
			
		||||
ポート3050にアクセスするとUIが表示されます
 | 
			
		||||
 | 
			
		||||
## ユーザーを凍結する
 | 
			
		||||
``` shell
 | 
			
		||||
@@ -23,13 +29,7 @@ node cli/suspend @syuilo
 | 
			
		||||
node cli/suspend @syuilo@misskey.xyz
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## キャッシュされたリモートファイルをクリーンアップする
 | 
			
		||||
## ユーザーのパスワードをリセットする
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/clean-cached-remote-files
 | 
			
		||||
node cli/reset-password (ユーザーID または ユーザー名)
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 使われていないドライブのファイルをクリーンアップする
 | 
			
		||||
``` shell
 | 
			
		||||
node cli/clean-unused-drive-files
 | 
			
		||||
```
 | 
			
		||||
> ユーザーの大事なファイルを削除する可能性があるので、この操作を実行する前にユーザーに告知することをお勧めします。
 | 
			
		||||
 
 | 
			
		||||
@@ -22,16 +22,15 @@ adduser --disabled-password --disabled-login misskey
 | 
			
		||||
Please install and setup these softwares:
 | 
			
		||||
 | 
			
		||||
#### Dependencies :package:
 | 
			
		||||
* *Node.js* and *npm*
 | 
			
		||||
* **[Node.js](https://nodejs.org/en/)**
 | 
			
		||||
* **[MongoDB](https://www.mongodb.com/)** >= 3.6
 | 
			
		||||
* **[Redis](https://redis.io/)**
 | 
			
		||||
* **[ImageMagick](http://www.imagemagick.org/script/index.php)** >= 7.0
 | 
			
		||||
 | 
			
		||||
##### Optional
 | 
			
		||||
* [Redis](https://redis.io/)
 | 
			
		||||
  * Redis is optional, but we strongly recommended to install it
 | 
			
		||||
* [Elasticsearch](https://www.elastic.co/) - used to provide searching feature instead of MongoDB
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*3.* Setup Mongodb Database
 | 
			
		||||
*3.* Setup MongoDB
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
In root :
 | 
			
		||||
1. `mongo` Go to the mongo shell
 | 
			
		||||
@@ -55,7 +54,7 @@ Please visit https://www.google.com/recaptcha/intro/ and generate keys.
 | 
			
		||||
 | 
			
		||||
*(optional)* Generating VAPID keys
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
If you want to enable ServiceWroker, you need to generate VAPID keys:
 | 
			
		||||
If you want to enable ServiceWorker, you need to generate VAPID keys:
 | 
			
		||||
Unless you have set your global node_modules location elsewhere, you need to run this in root.
 | 
			
		||||
 | 
			
		||||
``` shell
 | 
			
		||||
@@ -63,6 +62,13 @@ npm install web-push -g
 | 
			
		||||
web-push generate-vapid-keys
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
*(optional)* Create a twitter application
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
If you want to enable the twitter integration, you need to create a twitter app at [https://developer.twitter.com/en/apply/user](https://developer.twitter.com/en/apply/user).
 | 
			
		||||
 | 
			
		||||
In the app you need to set the oauth callback url as : https://misskey-instance/api/tw/cb
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*5.* Make configuration file
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
1. `cp .config/example.yml .config/default.yml` Copy the `.config/example.yml` and rename it to `default.yml`.
 | 
			
		||||
@@ -125,3 +131,8 @@ You can check if the service is running with `systemctl status misskey`.
 | 
			
		||||
2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
 | 
			
		||||
3. `npm install`
 | 
			
		||||
4. `npm run build`
 | 
			
		||||
5. Check [ChangeLog](../CHANGELOG.md) for migration information
 | 
			
		||||
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
If you have any questions or troubles, feel free to contact us!
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ Misskeyサーバーの構築にご関心をお寄せいただきありがとう
 | 
			
		||||
 | 
			
		||||
*1.* Misskeyユーザーの作成
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
Misskeyのrootで実行しない方がよいため、代わりにユーザーを作成します。
 | 
			
		||||
Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。
 | 
			
		||||
Debianの例:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
@@ -22,15 +22,21 @@ adduser --disabled-password --disabled-login misskey
 | 
			
		||||
これらのソフトウェアをインストール・設定してください:
 | 
			
		||||
 | 
			
		||||
#### 依存関係 :package:
 | 
			
		||||
* *Node.js* と *npm*
 | 
			
		||||
* **[Node.js](https://nodejs.org/en/)**
 | 
			
		||||
* **[MongoDB](https://www.mongodb.com/)** (3.6以上)
 | 
			
		||||
* **[Redis](https://redis.io/)**
 | 
			
		||||
* **[ImageMagick](http://www.imagemagick.org/script/index.php)**
 | 
			
		||||
 | 
			
		||||
##### オプション
 | 
			
		||||
* [Elasticsearch](https://www.elastic.co/) - 検索機能を向上させるために用います。
 | 
			
		||||
* [Redis](https://redis.io/)
 | 
			
		||||
	* Redisはオプションですが、インストールすることを強く推奨します。
 | 
			
		||||
	* インストールしなくていいのは、あなたのインスタンスが自分専用のときだけとお考えください。
 | 
			
		||||
	* 具体的には、Redisをインストールしないと、次の事が出来なくなります:
 | 
			
		||||
		* Misskeyプロセスを複数起動しての負荷分散
 | 
			
		||||
		* レートリミット
 | 
			
		||||
		* Twitter連携
 | 
			
		||||
* [Elasticsearch](https://www.elastic.co/)
 | 
			
		||||
	* 検索機能を有効にするためにはインストールが必要です。
 | 
			
		||||
 | 
			
		||||
*3.* Mongodbの設定
 | 
			
		||||
*3.* MongoDBの設定
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
ルートで:
 | 
			
		||||
1. `mongo` mongoシェルを起動
 | 
			
		||||
@@ -110,6 +116,7 @@ Restart=always
 | 
			
		||||
[Install]
 | 
			
		||||
WantedBy=multi-user.target
 | 
			
		||||
```
 | 
			
		||||
CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。
 | 
			
		||||
 | 
			
		||||
3. `systemctl daemon-reload ; systemctl enable misskey` systemdを再読み込みしmisskeyサービスを有効化
 | 
			
		||||
4. `systemctl start misskey` misskeyサービスの起動
 | 
			
		||||
@@ -121,14 +128,8 @@ WantedBy=multi-user.target
 | 
			
		||||
2. `git checkout $(git tag -l | grep -v 'rc[0-9]*$' | sort -V | tail -n 1)`
 | 
			
		||||
3. `npm install`
 | 
			
		||||
4. `npm run build`
 | 
			
		||||
5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
 | 
			
		||||
 | 
			
		||||
## メモリが足りなくてビルドできない場合
 | 
			
		||||
Misskeyの(クライアントの)ビルドには、目安として8GBくらいのメモリを必要とします。
 | 
			
		||||
VPSなどでビルドする時は、もしかしたらメモリが足りなくなる可能性があります。
 | 
			
		||||
そうなった場合、もしVPSではなくあなたのPCが十分なメモリを搭載しているなら、あなたのPC上でビルドし、生成されたファイルをVPSにFTPでアップロードする方法を採ることができます。
 | 
			
		||||
----------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
1. あなたのPC上にMisskeyをインストールする
 | 
			
		||||
2. 設定ファイルを用意する。設定ファイルは、サーバーに合わせた設定にします。
 | 
			
		||||
3. npm run webpack
 | 
			
		||||
4. built/client をサーバーにアップロードする
 | 
			
		||||
5. サーバー上で、npm run gulp
 | 
			
		||||
なにかお困りのことがありましたらお気軽にご連絡ください。
 | 
			
		||||
 
 | 
			
		||||
@@ -11,12 +11,12 @@ If you find an untranslated part on Misskey:
 | 
			
		||||
	- In fact, `foo` should be a word that is appropriate for the situation and is easy to understand in English.
 | 
			
		||||
	- For example, if the untranslated portion is the following "タイムライン" you must write: `%i18n:@timeline%`.
 | 
			
		||||
 | 
			
		||||
3. Open the `locales/ja.yml`, check whether the <strong>file name (path)</strong> found in step 1 exists, if not, create it.
 | 
			
		||||
3. Open the `locales/ja-JP.yml`, check whether the <strong>file name (path)</strong> found in step 1 exists, if not, create it.
 | 
			
		||||
	- Do not put the beginning of the path `src/client/app/` in the locale file.
 | 
			
		||||
	- For example, in this case we want to modify untranslated parts of `src/client/app/mobile/views/pages/home.vue`, so the key is `mobile/views/pages/home.vue`.
 | 
			
		||||
 | 
			
		||||
4. Add the text property using the `foo` keyword below the path that you found or created in step 2. Make sure to type your text in quotation marks. Text should always be inside of quotes.
 | 
			
		||||
	-   For example, in this case we add timeline: `timeline: "タイムライン"` to `locales/ja.yml`.
 | 
			
		||||
	-   For example, in this case we add timeline: `timeline: "タイムライン"` to `locales/ja-JP.yml`.
 | 
			
		||||
 | 
			
		||||
5. And done!
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -16,7 +16,7 @@ Si vous trouvez un segment non-traduit sur Misskey :
 | 
			
		||||
	- Par exemple, dans ce cas de figure, nous voulons modifier le segment non-traduit de : `src/client/app/mobile/views/pages/home.vue`donc il faut juste écrire : `mobile/views/pages/home.vue` dans les fichiers linguistiques.
 | 
			
		||||
 | 
			
		||||
4. Ajoutez la propriété du texte traduit grâce à la clef `foo`, en-dessous du chemin correspondant à votre modification que vous avez trouvé ou créé dans l'étape 2. À côté, veuillez indiquer entre "guillemets" la valeur de votre traduction.
 | 
			
		||||
	- Par exemple, dans ce cas de figure, nous ajoutons la propriété et la traduction `timeline: "Timeline"` à `locales/fr.yml`, mais aussi la propriété et la version originale `timeline: "タイムライン"` à `locales/ja.yml`.
 | 
			
		||||
	- Par exemple, dans ce cas de figure, nous ajoutons la propriété et la traduction `timeline: "Timeline"` à `locales/fr.yml`, mais aussi la propriété et la version originale `timeline: "タイムライン"` à `locales/ja-JP.yml`.
 | 
			
		||||
 | 
			
		||||
5. Vous avez réussi à traduire une portion de misskey !
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,12 +11,12 @@ Misskey内の未翻訳箇所を見つけたら
 | 
			
		||||
	- `foo`は実際にはその場に適したわかりやすい(英語の)名前にしてください。
 | 
			
		||||
	- 例えば未翻訳箇所が「タイムライン」というテキストだった場合、`%i18n:@timeline%`のようにします。
 | 
			
		||||
 | 
			
		||||
3. `locales/ja.yml`を開き、1.で見つけた<strong>ファイル名(パス)</strong>のキーが存在するか確認し、無ければ作成してください。
 | 
			
		||||
3. `locales/ja-JP.yml`を開き、1.で見つけた<strong>ファイル名(パス)</strong>のキーが存在するか確認し、無ければ作成してください。
 | 
			
		||||
	- パスの`src/client/app/`は省略してください。
 | 
			
		||||
	- 例えば、今回の例では`src/client/app/mobile/views/pages/home.vue`の未翻訳箇所を修正したいので、キーは`mobile/views/pages/home.vue`になります。
 | 
			
		||||
 | 
			
		||||
4. そのキーの直下に2.で置換した`foo`の部分をキーとし、テキストを値とするプロパティを追加します。
 | 
			
		||||
	- 例えば、今回の例で言うと`locales/ja.yml`に`timeline: "タイムライン"`を追加します。
 | 
			
		||||
	- 例えば、今回の例で言うと`locales/ja-JP.yml`に`timeline: "タイムライン"`を追加します。
 | 
			
		||||
 | 
			
		||||
5. 完了です!
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										24
									
								
								gulpfile.ts
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								gulpfile.ts
									
									
									
									
									
								
							@@ -2,7 +2,6 @@
 | 
			
		||||
 * Gulp tasks
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
import * as fs from 'fs';
 | 
			
		||||
import * as gulp from 'gulp';
 | 
			
		||||
import * as gutil from 'gulp-util';
 | 
			
		||||
import * as ts from 'gulp-typescript';
 | 
			
		||||
@@ -23,7 +22,6 @@ const uglifyes = require('uglify-es');
 | 
			
		||||
 | 
			
		||||
const locales = require('./locales');
 | 
			
		||||
import { fa } from './src/misc/fa';
 | 
			
		||||
import config from './src/config';
 | 
			
		||||
 | 
			
		||||
const uglify = uglifyComposer(uglifyes, console);
 | 
			
		||||
 | 
			
		||||
@@ -60,7 +58,16 @@ gulp.task('build:copy:views', () =>
 | 
			
		||||
	gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
gulp.task('build:copy', ['build:copy:views'], () =>
 | 
			
		||||
// 互換性のため
 | 
			
		||||
gulp.task('build:copy:lang', () =>
 | 
			
		||||
	gulp.src(['./built/client/assets/*.*-*.js'])
 | 
			
		||||
		.pipe(rename(path => {
 | 
			
		||||
			path.basename = path.basename.replace(/\-(.*)$/, '');
 | 
			
		||||
		}))
 | 
			
		||||
		.pipe(gulp.dest('./built/client/assets/'))
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
gulp.task('build:copy', ['build:copy:views', 'build:copy:lang'], () =>
 | 
			
		||||
	gulp.src([
 | 
			
		||||
		'./build/Release/crypto_key.node',
 | 
			
		||||
		'./src/const.json',
 | 
			
		||||
@@ -70,7 +77,7 @@ gulp.task('build:copy', ['build:copy:views'], () =>
 | 
			
		||||
	]).pipe(gulp.dest('./built/'))
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
gulp.task('test', ['lint', 'mocha']);
 | 
			
		||||
gulp.task('test', ['mocha']);
 | 
			
		||||
 | 
			
		||||
gulp.task('lint', () =>
 | 
			
		||||
	gulp.src('./src/**/*.ts')
 | 
			
		||||
@@ -90,10 +97,10 @@ gulp.task('format', () =>
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
gulp.task('mocha', () =>
 | 
			
		||||
	gulp.src([])
 | 
			
		||||
	gulp.src('./test/**/*.ts')
 | 
			
		||||
		.pipe(mocha({
 | 
			
		||||
			exit: true,
 | 
			
		||||
			compilers: 'ts:ts-node/register'
 | 
			
		||||
			require: 'ts-node/register'
 | 
			
		||||
		} as any))
 | 
			
		||||
);
 | 
			
		||||
 | 
			
		||||
@@ -118,7 +125,6 @@ gulp.task('build:client:script', () => {
 | 
			
		||||
	const client = require('./built/client/meta.json');
 | 
			
		||||
	return gulp.src(['./src/client/app/boot.js', './src/client/app/safe.js'])
 | 
			
		||||
		.pipe(replace('VERSION', JSON.stringify(client.version)))
 | 
			
		||||
		.pipe(replace('API', JSON.stringify(config.api_url)))
 | 
			
		||||
		.pipe(replace('ENV', JSON.stringify(env)))
 | 
			
		||||
		.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
 | 
			
		||||
		.pipe(isProduction ? uglify({
 | 
			
		||||
@@ -159,9 +165,7 @@ gulp.task('build:client:pug', [
 | 
			
		||||
			.pipe(pug({
 | 
			
		||||
				locals: {
 | 
			
		||||
					themeColor: constants.themeColor,
 | 
			
		||||
					facss: fa.dom.css(),
 | 
			
		||||
					//hljscss: fs.readFileSync('./node_modules/highlight.js/styles/default.css', 'utf8')
 | 
			
		||||
					hljscss: fs.readFileSync('./src/client/assets/code-highlight.css', 'utf8')
 | 
			
		||||
					facss: fa.dom.css()
 | 
			
		||||
				}
 | 
			
		||||
			}))
 | 
			
		||||
			.pipe(htmlmin({
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										3
									
								
								locales/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								locales/README.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
# **DO NOT edit locale files** except `ja-JP.yml`.
 | 
			
		||||
 | 
			
		||||
Please see [Contribution guide](../CONTRIBUTING.md) for more information.
 | 
			
		||||
@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
@@ -25,6 +62,14 @@ common:
 | 
			
		||||
    thursday: "木"
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
    profile: "プロフィール"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
  deleted: "このメッセージは削除されました"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "開発者"
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "ダイレクト"
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "前の月"
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
  enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "パスワードを入力してください"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "決定"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "Unbekannt"
 | 
			
		||||
    future: "Zukunft"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "vor {0} Woche{0:n}"
 | 
			
		||||
    months_ago: "vor {0} Monat{0:en}"
 | 
			
		||||
    years_ago: "vor {} Jahr{0:en}"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "So"
 | 
			
		||||
    monday: "Mo"
 | 
			
		||||
@@ -25,8 +62,16 @@ common:
 | 
			
		||||
    thursday: "Do"
 | 
			
		||||
    friday: "Fr"
 | 
			
		||||
    saturday: "Sa"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "Gefällt mir"
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "Lieben"
 | 
			
		||||
    laugh: "Lachen"
 | 
			
		||||
    hmm: "Hmm...?"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "Glückwunsch!"
 | 
			
		||||
    angry: "Wütend"
 | 
			
		||||
    confused: "Verwirrt"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "Was machst du gerade?"
 | 
			
		||||
    b: "Was ist so passiert?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "Dein Token wurde generiert. Du wirst jetzt abgemeldet."
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "Analoge Uhr"
 | 
			
		||||
    profile: "Profil"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "Startseite"
 | 
			
		||||
    local: "Lokal"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "Global"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "Mitteilungen"
 | 
			
		||||
    list: "Listen"
 | 
			
		||||
    swap-left: "Nach links"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "Umbenennen"
 | 
			
		||||
    stack-left: "Nach links schichten"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "Verbindung zum Server ist fehlgeschlagen"
 | 
			
		||||
  description: "Es gibt entweder ein Problem mit deiner Internetverbindung, der Server ist nicht erreichbar oder wird gerade gewartet. Bitte versuche es später noch einmal."
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "Die Verbindung scheint zu funktionieren. Bitte lade die Seite neu."
 | 
			
		||||
  flush: "Cache leeren"
 | 
			
		||||
  set-version: "Version angeben"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "Einen Nutzer suchen"
 | 
			
		||||
  you: "Du"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "Keine weitere Chronik vorhanden"
 | 
			
		||||
  resize-form: "Ziehen um die Größe zu verändern"
 | 
			
		||||
  new-message: "Neue Nachricht"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "Nachricht hier eingeben"
 | 
			
		||||
  send: "Senden"
 | 
			
		||||
  attach-from-local: "Wähle Dateien von deinem PC aus"
 | 
			
		||||
  attach-from-drive: "Wähle Dateien von deinem Speicher aus"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "Gelesen"
 | 
			
		||||
  deleted: "Diese Nachricht wurde gelöscht"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "Entwickler"
 | 
			
		||||
  feedback: "Feedback"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "Diese Anmerkung favorisieren"
 | 
			
		||||
  pin: "An die Profilseite pinnen"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "Löschen"
 | 
			
		||||
  delete-confirm: "Diesen Post löschen?"
 | 
			
		||||
  remote: "Auf Quelle anzeigen"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "Token"
 | 
			
		||||
  signing-in: "Melde an..."
 | 
			
		||||
  signin: "Anmelden"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "Benutzername"
 | 
			
		||||
  checking: "Überprüfung..."
 | 
			
		||||
  available: "Verfügbar"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "Direkt"
 | 
			
		||||
  specified-desc: "Poste nur für bestimmte Benutzer"
 | 
			
		||||
  private: "Privat"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "Laden"
 | 
			
		||||
  no-broadcasts: "Keine Broadcasts"
 | 
			
		||||
  have-a-nice-day: "Schönen Tag!"
 | 
			
		||||
  next: "Nächster"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "Spende"
 | 
			
		||||
  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!"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "Serverinformationen"
 | 
			
		||||
  toggle: "Sicht umschalten"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "Notizen"
 | 
			
		||||
  memo: "Schreib hier!"
 | 
			
		||||
  save: "Speichern"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Schwarz ... komplett"
 | 
			
		||||
  notes: "Blau ... Hinweise"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "Vorheriger Monat"
 | 
			
		||||
  next: "Nächster Monat"
 | 
			
		||||
  go: "Klicke zur Navigation"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "Datei auswählen"
 | 
			
		||||
  upload: "Dateien von deinem PC hochladen"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "Avatar"
 | 
			
		||||
  banner: "Banner"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "Umbenennen"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "Folge ich"
 | 
			
		||||
  follow: "Folgen"
 | 
			
		||||
  request-pending: "Ausstehend"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "Follower-Anfragen"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "Mehr"
 | 
			
		||||
  empty: "Keine Benachrichtigungen"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "Antworte auf diese Anmerkung..."
 | 
			
		||||
  quote-placeholder: "Zitiere diese Anmerkung..."
 | 
			
		||||
  submit: "Beitragsform"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "Eine Abstimmung erstellen"
 | 
			
		||||
  text-remain: "{} Zeichen verbleibend"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "Neue Notiz"
 | 
			
		||||
  reply: "Antworten"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "Zwei-Faktor-Authentifizierung"
 | 
			
		||||
  other: "Anderes"
 | 
			
		||||
  license: "Lizenz"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "Verhalten"
 | 
			
		||||
  fetch-on-scroll: "Aktualisieren beim scrollen"
 | 
			
		||||
  fetch-on-scroll-desc: "Wenn du runterscrollst empfängt die Seite automatisch zusätzliche Inhalte."
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "Automatische Pop-out Fenster"
 | 
			
		||||
  auto-popout-desc: "Pop-out ein offenes Fenster wenn möglich. Diese Einstellung wird im Browser gespeichert."
 | 
			
		||||
  advanced: "Erweiterte Einstellungen"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "Nacht Modus"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "Kreisförmige Icons"
 | 
			
		||||
  gradient-window-header: "Übergang in Fensterköpfen"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "Zeige Antworten"
 | 
			
		||||
  show-my-renotes: "Zeige meine Reposts auf der Zeitleiste"
 | 
			
		||||
  show-renoted-my-notes: "Zeige meine Reposts, die geteilt wurden, auf der Zeitleiste"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "Karte anzeigen"
 | 
			
		||||
  show-maps-desc: "Zeige den Standort zu diesem Beitrag automatisch an."
 | 
			
		||||
  sound: "Ton"
 | 
			
		||||
  enable-sounds: "Ton aktivieren"
 | 
			
		||||
  enable-sounds-desc: "Spiel einen Ton ab beim Erhalten eines Beitrags bzw. einer Nachricht. Diese Einstellung wird im Browser gespeichert."
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "Bitte Passwort eingeben"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "Profil aktualisieren"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "Lokal"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "Global"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "Listen"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "Dein Profil"
 | 
			
		||||
  drive: "Speicher"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "Listen"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "Einstellungen"
 | 
			
		||||
  signout: "Ausloggen"
 | 
			
		||||
  dark: "Verdunkeln"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "OK"
 | 
			
		||||
  cancel: "Abbrechen"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "Profil"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "Profil wurde aktualisiert"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -5,23 +5,9 @@
 | 
			
		||||
const fs = require('fs');
 | 
			
		||||
const yaml = require('js-yaml');
 | 
			
		||||
 | 
			
		||||
const loadLang = lang => yaml.safeLoad(
 | 
			
		||||
	fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8'));
 | 
			
		||||
const langs = ['de-DE', 'en-US', 'fr-FR', 'ja-JP', 'ja-KS', 'pl-PL', 'es-ES', 'nl-NL'];
 | 
			
		||||
 | 
			
		||||
const native = loadLang('ja');
 | 
			
		||||
const loadLocale = lang => yaml.safeLoad(fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8'));
 | 
			
		||||
const locales = langs.map(lang => ({ [lang]: loadLocale(lang) }));
 | 
			
		||||
 | 
			
		||||
const langs = {
 | 
			
		||||
	'de': loadLang('de'),
 | 
			
		||||
	'en': loadLang('en'),
 | 
			
		||||
	'fr': loadLang('fr'),
 | 
			
		||||
	'ja': native,
 | 
			
		||||
	'pl': loadLang('pl'),
 | 
			
		||||
	'es': loadLang('es')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
Object.entries(langs).map(([, locale]) => {
 | 
			
		||||
	// Extend native language (Japanese)
 | 
			
		||||
	locale = Object.assign({}, native, locale);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
module.exports = langs;
 | 
			
		||||
module.exports = locales.reduce((a, b) => ({ ...a, ...b }));
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
@@ -25,6 +62,14 @@ common:
 | 
			
		||||
    thursday: "木"
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
    profile: "プロフィール"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
  deleted: "このメッセージは削除されました"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "開発者"
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "ダイレクト"
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "前の月"
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
  enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "パスワードを入力してください"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "決定"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
@@ -6,7 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
@@ -18,6 +52,9 @@ common:
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
@@ -28,6 +65,15 @@ common:
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
@@ -37,8 +83,19 @@ common:
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
@@ -56,6 +113,16 @@ common:
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
@@ -63,6 +130,11 @@ common:
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
@@ -94,7 +166,10 @@ common:
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
@@ -107,6 +182,79 @@ common:
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -133,6 +281,50 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
@@ -144,12 +336,14 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
@@ -166,8 +360,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -196,8 +393,13 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -249,12 +451,24 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -269,8 +483,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
@@ -281,13 +493,54 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -304,6 +557,29 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -328,6 +604,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -391,6 +668,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
@@ -458,6 +736,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -476,6 +757,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
@@ -512,10 +800,14 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -527,14 +819,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
@@ -616,6 +912,10 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
 | 
			
		||||
@@ -636,10 +936,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
@@ -655,10 +956,17 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
@@ -667,6 +975,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -694,6 +1003,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
@@ -713,6 +1023,40 @@ desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -723,6 +1067,12 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -731,6 +1081,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
@@ -751,6 +1105,16 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -787,6 +1151,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
@@ -856,12 +1222,16 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
@@ -875,6 +1245,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
@@ -886,8 +1257,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -940,6 +1309,10 @@ mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -953,6 +1326,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
@@ -976,6 +1350,9 @@ mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
 | 
			
		||||
@@ -987,6 +1364,26 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
@@ -1008,6 +1405,9 @@ mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -1018,6 +1418,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -1026,6 +1429,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
@@ -1041,15 +1445,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -1068,6 +1481,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
@@ -1130,3 +1545,6 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
							
								
								
									
										1343
									
								
								locales/ja-KS.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1343
									
								
								locales/ja-KS.yml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,103 +1,242 @@
 | 
			
		||||
---
 | 
			
		||||
meta:
 | 
			
		||||
  lang: "日本語"
 | 
			
		||||
  lang: "한국어"
 | 
			
		||||
  divider: ""
 | 
			
		||||
common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  misskey: "연합우주의 ⭐"
 | 
			
		||||
  about-title: "연합우주의 ⭐."
 | 
			
		||||
  about: "Misskey를 찾아 주셔서 감사합니다. Misskey은 지구에서 태어난 <b>분산 마이크로 블로그 SNS </b> 입니다. Fediverse (다양한 SNS로 구성되는 우주)에 존재하는 다른 SNS와 상호 연결되어 있습니다. 잠시 도시의 번잡함에서 벗어나 새로운 인터넷에 다이브 해 보지 않겠습니까."
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskey란?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "특징"
 | 
			
		||||
    rich-contents: "게시"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "반응"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "인터페이스"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "드라이브"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "광고 차단기를 해제하십시오"
 | 
			
		||||
    warning: "<strong>Misskey는 광고를 게재하지 않습니다</strong> 그러나 광고를 차단하는 기능 기능을 사용할 경우 일부 기능을 사용할 수 없게 될 가능성이나 결함이 발생하는 경우가 있습니다."
 | 
			
		||||
  application-authorization: "앱의 연계"
 | 
			
		||||
  close: "닫기"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "알았습니다"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "사용자 정의 팁"
 | 
			
		||||
    paragraph1: "홈 정의는 위젯을 추가 / 삭제하거나 드래그 앤 드롭하여 정렬 할 수 있습니다."
 | 
			
		||||
    paragraph2: "일부 위젯은 <strong>오른쪽 클릭</strong> 하여 모양을 변경할 수 있습니다."
 | 
			
		||||
    paragraph3: "위젯을 삭제하려면 헤더 <strong>\"휴지통\"</strong> 라고 쓰여진 영역으로 끌어다 놓습니다."
 | 
			
		||||
    paragraph4: "사용자 정의를 종료하려면 오른쪽 상단의 '완료' 를 클릭합니다."
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "파일이 업로드되었습니다"
 | 
			
		||||
    message-from: "{}씨로부터 메시지:"
 | 
			
		||||
    reversi-invited: "대결에 초대되어 있습니다"
 | 
			
		||||
    reversi-invited-by: "{}님"
 | 
			
		||||
    notified-by: "{}님"
 | 
			
		||||
    reply-from: "{}님으로부터 답글:"
 | 
			
		||||
    quoted-by: "{}씨가 인용:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
    just_now: "たった今"
 | 
			
		||||
    seconds_ago: "{}秒前"
 | 
			
		||||
    minutes_ago: "{}分前"
 | 
			
		||||
    hours_ago: "{}時間前"
 | 
			
		||||
    days_ago: "{}日前"
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
    unknown: "수수께끼의 시간"
 | 
			
		||||
    future: "미래"
 | 
			
		||||
    just_now: "방금"
 | 
			
		||||
    seconds_ago: "{}초전"
 | 
			
		||||
    minutes_ago: "{}분전"
 | 
			
		||||
    hours_ago: "{}시간전"
 | 
			
		||||
    days_ago: "{}일전"
 | 
			
		||||
    weeks_ago: "{}주전"
 | 
			
		||||
    months_ago: "{}개월전"
 | 
			
		||||
    years_ago: "{}년전"
 | 
			
		||||
  month-and-day: "{month}월 {day}일"
 | 
			
		||||
  trash: "휴지통"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
    tuesday: "火"
 | 
			
		||||
    wednesday: "水"
 | 
			
		||||
    thursday: "木"
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
    sunday: "일"
 | 
			
		||||
    monday: "월"
 | 
			
		||||
    tuesday: "화"
 | 
			
		||||
    wednesday: "수"
 | 
			
		||||
    thursday: "목"
 | 
			
		||||
    friday: "금"
 | 
			
		||||
    saturday: "토"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "일요일"
 | 
			
		||||
    monday: "월요일"
 | 
			
		||||
    tuesday: "화요일"
 | 
			
		||||
    wednesday: "수요일"
 | 
			
		||||
    thursday: "목요일"
 | 
			
		||||
    friday: "금요일"
 | 
			
		||||
    saturday: "토요일"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
    laugh: "笑"
 | 
			
		||||
    hmm: "ふぅ~む"
 | 
			
		||||
    surprise: "わお"
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    like: "좋아요"
 | 
			
		||||
    love: "좋아"
 | 
			
		||||
    laugh: "크크"
 | 
			
		||||
    hmm: "음..."
 | 
			
		||||
    surprise: "와우"
 | 
			
		||||
    congrats: "받으세요"
 | 
			
		||||
    angry: "화냈어"
 | 
			
		||||
    confused: "곤란하고 있어"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "공개"
 | 
			
		||||
    home: "홈"
 | 
			
		||||
    home-desc: "홈 타임라인에만 공개"
 | 
			
		||||
    followers: "팔로워"
 | 
			
		||||
    followers-desc: "자신의 팔로워에게만 공개"
 | 
			
		||||
    specified: "다이렉트"
 | 
			
		||||
    specified-desc: "지정한 사용자에게만 공개"
 | 
			
		||||
    private: "비공개"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
    c: "何をお考えですか?"
 | 
			
		||||
    d: "言いたいことは?"
 | 
			
		||||
    e: "ここに書いてください"
 | 
			
		||||
    f: "あなたが書くのを待っています..."
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  ok: "わかった"
 | 
			
		||||
  update-available-title: "更新があります"
 | 
			
		||||
  update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
    a: "지금 어떻게하고있어?"
 | 
			
		||||
    b: "뭔가 있었습니까?"
 | 
			
		||||
    c: "무엇을 생각하십니까?"
 | 
			
		||||
    d: "말하고 싶은 것은?"
 | 
			
		||||
    e: "여기에 써주십시오"
 | 
			
		||||
    f: "당신이 쓸 것을 당신 기다리고 있습니다..."
 | 
			
		||||
  search: "검색"
 | 
			
		||||
  delete: "삭제"
 | 
			
		||||
  loading: "로드 중"
 | 
			
		||||
  ok: "확인"
 | 
			
		||||
  update-available-title: "갱신이 있습니다"
 | 
			
		||||
  update-available: "Misskey의 새로운 버전이 있습니다 ({newer} 현재 {current}을 사용 중). 페이지를 다시로드하면 업데이트가 적용됩니다."
 | 
			
		||||
  my-token-regenerated: "당신의 토큰이 업데이트되어 있기 때문에 로그 아웃합니다."
 | 
			
		||||
  i-like-sushi: "나는(푸딩보다 오히려)스시가 좋아"
 | 
			
		||||
  show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "공식 계정"
 | 
			
		||||
  disable-animated-mfm: "게시물의 문자 애니메이션을 비활성화 할"
 | 
			
		||||
  always-show-nsfw: "항상 열람주의 미디어를 표시"
 | 
			
		||||
  always-mark-nsfw: "항상 미디어를 열람주의로 설정하여 게시"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "이 장치만"
 | 
			
		||||
  do-not-use-in-production: '이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오.'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    drawn: "무승부"
 | 
			
		||||
    my-turn: "당신의 차례입니다"
 | 
			
		||||
    opponent-turn: "상대의 차례입니다"
 | 
			
		||||
    turn-of: "{}의 차례입니다"
 | 
			
		||||
    past-turn-of: "{} 턴"
 | 
			
		||||
    won: "{} 승리"
 | 
			
		||||
    black: "검정"
 | 
			
		||||
    white: "흰색"
 | 
			
		||||
    total: "합계"
 | 
			
		||||
    this-turn: "{}턴눈"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
    profile: "プロフィール"
 | 
			
		||||
    calendar: "カレンダー"
 | 
			
		||||
    timemachine: "カレンダー(タイムマシン)"
 | 
			
		||||
    activity: "アクティビティ"
 | 
			
		||||
    rss: "RSSリーダー"
 | 
			
		||||
    memo: "付箋"
 | 
			
		||||
    trends: "トレンド"
 | 
			
		||||
    photo-stream: "フォトストリーム"
 | 
			
		||||
    posts-monitor: "投稿チャート"
 | 
			
		||||
    slideshow: "スライドショー"
 | 
			
		||||
    version: "バージョン"
 | 
			
		||||
    broadcast: "ブロードキャスト"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    users: "おすすめユーザー"
 | 
			
		||||
    polls: "アンケート"
 | 
			
		||||
    post-form: "投稿フォーム"
 | 
			
		||||
    messaging: "メッセージ"
 | 
			
		||||
    server: "サーバー情報"
 | 
			
		||||
    donation: "寄付のお願い"
 | 
			
		||||
    nav: "ナビゲーション"
 | 
			
		||||
    tips: "ヒント"
 | 
			
		||||
    hashtags: "ハッシュタグ"
 | 
			
		||||
    analog-clock: "아날로그 시계"
 | 
			
		||||
    profile: "프로필"
 | 
			
		||||
    calendar: "달력"
 | 
			
		||||
    timemachine: "달력(타임머신)"
 | 
			
		||||
    activity: "활동"
 | 
			
		||||
    rss: "RSS 리더"
 | 
			
		||||
    memo: "끈끈이"
 | 
			
		||||
    trends: "트렌드"
 | 
			
		||||
    photo-stream: "포토 스트림"
 | 
			
		||||
    posts-monitor: "게시물 차트"
 | 
			
		||||
    slideshow: "슬라이드 쇼"
 | 
			
		||||
    version: "버전"
 | 
			
		||||
    broadcast: "브로드 캐스트"
 | 
			
		||||
    notifications: "통지"
 | 
			
		||||
    users: "추천 사용자"
 | 
			
		||||
    polls: "설문"
 | 
			
		||||
    post-form: "게시 양식"
 | 
			
		||||
    messaging: "메시지"
 | 
			
		||||
    server: "서버 정보"
 | 
			
		||||
    donation: "기부 요청"
 | 
			
		||||
    nav: "네비게이션"
 | 
			
		||||
    tips: "팁"
 | 
			
		||||
    hashtags: "해시 태그"
 | 
			
		||||
  deck:
 | 
			
		||||
    widgets: "ウィジェット"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
    swap-right: "右に移動"
 | 
			
		||||
    swap-up: "上に移動"
 | 
			
		||||
    swap-down: "下に移動"
 | 
			
		||||
    remove: "カラムを削除"
 | 
			
		||||
    add-column: "カラムを追加"
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    widgets: "위젯"
 | 
			
		||||
    home: "홈"
 | 
			
		||||
    local: "로컬"
 | 
			
		||||
    hybrid: "소셜"
 | 
			
		||||
    hashtag: "해시태그"
 | 
			
		||||
    global: "글로벌"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "통지"
 | 
			
		||||
    list: "목록"
 | 
			
		||||
    swap-left: "왼쪽으로 이동"
 | 
			
		||||
    swap-right: "오른쪽으로 이동"
 | 
			
		||||
    swap-up: "위로 이동"
 | 
			
		||||
    swap-down: "아래로 이동"
 | 
			
		||||
    remove: "칼럼 제거"
 | 
			
		||||
    add-column: "칼럼 추가"
 | 
			
		||||
    rename: "이름 변경"
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "취소"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "로드 중"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "취소"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "기권"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "루프 지도"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "초대"
 | 
			
		||||
  rule: "게임 방법"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "종료"
 | 
			
		||||
    playing: "진행중"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "규칙"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "루프 지도"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "준비중"
 | 
			
		||||
  cancel: "취소"
 | 
			
		||||
  ready: "준비 완료"
 | 
			
		||||
  cancel-ready: "준비 계속"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -109,49 +248,95 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  checking-network: "ネットワーク接続を確認中"
 | 
			
		||||
  internet: "インターネット接続"
 | 
			
		||||
  checking-internet: "インターネット接続を確認中"
 | 
			
		||||
  server: "サーバー接続"
 | 
			
		||||
  server: "서버 연결"
 | 
			
		||||
  checking-server: "サーバー接続を確認中"
 | 
			
		||||
  finding: "問題を調べています"
 | 
			
		||||
  no-network: "ネットワークに接続されていません"
 | 
			
		||||
  no-network-desc: "お使いのPCのネットワーク接続が正常か確認してください。"
 | 
			
		||||
  no-internet: "インターネットに接続されていません"
 | 
			
		||||
  no-internet-desc: "ネットワークには接続されていますが、インターネットには接続されていないようです。お使いのPCのインターネット接続が正常か確認してください。"
 | 
			
		||||
  no-server: "Misskeyのサーバーに接続できません"
 | 
			
		||||
  no-server: "Misskey 서버에 연결할 수 없습니다."
 | 
			
		||||
  no-server-desc: "お使いのPCのインターネット接続は正常ですが、Misskeyのサーバーには接続できませんでした。サーバーがダウンまたはメンテナンスしている可能性があるので、しばらくしてから再度御アクセスください。"
 | 
			
		||||
  success: "Misskeyのサーバーに接続できました"
 | 
			
		||||
  success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
  flush: "캐시 삭제"
 | 
			
		||||
  set-version: "버전 지정"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "열람주의"
 | 
			
		||||
  click-to-show: "클릭하여 표시"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "밝은 테마"
 | 
			
		||||
  dark-themes: "어두운 테마"
 | 
			
		||||
  install-a-theme: "테마 설치"
 | 
			
		||||
  theme-code: "테마 코드"
 | 
			
		||||
  install: "설치"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "테마 만들기"
 | 
			
		||||
  save-created-theme: "테마 저장"
 | 
			
		||||
  primary-color: "기본 색"
 | 
			
		||||
  secondary-color: "보조 색"
 | 
			
		||||
  text-color: "글자 색상"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "테마명"
 | 
			
		||||
  preview-created-theme: "미리보기"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
  you: "당신"
 | 
			
		||||
  no-history: "履歴はありません"
 | 
			
		||||
common/views/components/messaging-room.vue:
 | 
			
		||||
  empty: "このユーザーと話したことはありません"
 | 
			
		||||
  more: "もっと読む"
 | 
			
		||||
  more: "더 보기"
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  send: "전송"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
  is-read: "읽음"
 | 
			
		||||
  deleted: "このメッセージは削除されました"
 | 
			
		||||
common/views/components/nav.vue:
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
  stats: "統計"
 | 
			
		||||
  about: "Misskey에 대하여"
 | 
			
		||||
  stats: "통계"
 | 
			
		||||
  status: "ステータス"
 | 
			
		||||
  wiki: "Wiki"
 | 
			
		||||
  donors: "ドナー"
 | 
			
		||||
  repository: "リポジトリ"
 | 
			
		||||
  develop: "開発者"
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
  donors: "기증자"
 | 
			
		||||
  repository: "저장소"
 | 
			
		||||
  develop: "개발자"
 | 
			
		||||
  feedback: "피드백"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "링크 복사"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "ダイレクト"
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "前の月"
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
  enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "パスワードを入力してください"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "決定"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
							
								
								
									
										1343
									
								
								locales/nl-NL.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1343
									
								
								locales/nl-NL.yml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1343
									
								
								locales/no-NO.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1343
									
								
								locales/no-NO.yml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "⭐ Fediwersum"
 | 
			
		||||
  about-title: "⭐ Fediwersum"
 | 
			
		||||
  about: "Dziękujemy za znalezienie Misskey. Misskey jest <b>zdecentralizowaną platformą mikroblogową</b> powstałą na Ziemi. Ponieważ działa ona w Fediwersum (uniwersum, w którego skład wchodzi wiele sieci społecznościowych), jest ona połączona z innymi platformami społecznościowymi. Spróbujesz odpocząć od zatłoczoneo miasta i zanurzyć się w nowym Internecie?"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "Spróbuj wyłączyć blokadę reklam."
 | 
			
		||||
    warning: "<strong>Misskey nie zawiera reklam</strong>, ale część funkcji może nie działać prawidłowo z włączonym blokowaniem reklam."
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "Zamknij"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "Rozumiem!"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "Wskazówki o dostosowywaniu"
 | 
			
		||||
    paragraph1: "Dostosowywanie strony głównej pozwala na dodawanie, usuwanie, przeciąganie i zmienianie kolejności widżetów."
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "Aby usunąć widżet, <strong>przeciągnij i upuść widżet do części nazwanej „Kosz”</strong> w nagłówku."
 | 
			
		||||
    paragraph4: "Aby zakończyć dostosowywanie, naciśnij „Zakończ” w w prawym górnym rogu."
 | 
			
		||||
    gotit: "Rozumiem!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "Wysłano plik!"
 | 
			
		||||
    message-from: "Wiadomość od {}:"
 | 
			
		||||
    reversi-invited: "Zaproszono do gry"
 | 
			
		||||
    reversi-invited-by: "Zaproszono przez {}:"
 | 
			
		||||
    notified-by: "Powiadomiono przez {}:"
 | 
			
		||||
    reply-from: "Odpowiedź od {}:"
 | 
			
		||||
    quoted-by: "Zacytowano przez {}:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "nieznany"
 | 
			
		||||
    future: "w przyszłości"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "{} tyg. temu"
 | 
			
		||||
    months_ago: "{} mies. temu"
 | 
			
		||||
    years_ago: "{} lat temu"
 | 
			
		||||
  month-and-day: "{month}-{day}"
 | 
			
		||||
  trash: "Kosz"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "N"
 | 
			
		||||
    monday: "Pn"
 | 
			
		||||
@@ -25,8 +62,16 @@ common:
 | 
			
		||||
    thursday: "C"
 | 
			
		||||
    friday: "P"
 | 
			
		||||
    saturday: "S"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "Niedziela"
 | 
			
		||||
    monday: "Poniedziałek"
 | 
			
		||||
    tuesday: "Wtorek"
 | 
			
		||||
    wednesday: "Środa"
 | 
			
		||||
    thursday: "Czwartek"
 | 
			
		||||
    friday: "Piątek"
 | 
			
		||||
    saturday: "Sobota"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "Lubię"
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "Kocham"
 | 
			
		||||
    laugh: "Śmieszne"
 | 
			
		||||
    hmm: "Hmm…?"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "Gratuluję!"
 | 
			
		||||
    angry: "Wściekły"
 | 
			
		||||
    confused: "Zmieszany"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "Co robisz?"
 | 
			
		||||
    b: "Co się wydarzyło?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "Twój token został wygenerowany. Zostaniesz wylogowany."
 | 
			
		||||
  i-like-sushi: "Wolę sushi od puddingu"
 | 
			
		||||
  show-reversi-board-labels: "Pokazuj podpisy wierszy i kolumn w Reversi"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "Wyłącz animowany tekst we wpisach"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "Remis"
 | 
			
		||||
    my-turn: "Twoja kolej"
 | 
			
		||||
    opponent-turn: "Kolej na przeciwnika"
 | 
			
		||||
    turn-of: "Kolej na {}"
 | 
			
		||||
    past-turn-of: "Kolej {}"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "Czarny"
 | 
			
		||||
    white: "Biały"
 | 
			
		||||
    total: "Łącznie"
 | 
			
		||||
    this-turn: "Ruch {}"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "Zegar analogowy"
 | 
			
		||||
    profile: "Profil"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "Strona główna"
 | 
			
		||||
    local: "Lokalne"
 | 
			
		||||
    hybrid: "Społeczność"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "Globalne"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "Powiadomienia"
 | 
			
		||||
    list: "Listy"
 | 
			
		||||
    swap-left: "Przesuń w lewo"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "Zmień nazwę"
 | 
			
		||||
    stack-left: "Przypnij do lewej"
 | 
			
		||||
    pop-right: "Odepnij w prawo"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "Czy chcesz <b>zezwolić</b> <i>{{ app.name }}</i> na dostęp do Twojego konta?"
 | 
			
		||||
  permission-ask: "Ta aplikacja wymaga następujących uprawnień:"
 | 
			
		||||
  account-read: "Wyświetlanie informacji o koncie:"
 | 
			
		||||
  account-write: "Modyfikowanie informacji o koncie:"
 | 
			
		||||
  note-write: "Publikacja."
 | 
			
		||||
  like-write: "Reagowanie na wpisy."
 | 
			
		||||
  following-write: "Śledzenie i cofanie śledzenia."
 | 
			
		||||
  drive-read: "Odczytywanie Twojego dysku."
 | 
			
		||||
  drive-write: "Wysyłanie i usuwanie plików na Twoim dysku."
 | 
			
		||||
  notification-read: "Odczytywanie Twoich powiadomień."
 | 
			
		||||
  notification-write: "Zarządzanie Twoimi powiadomieniami."
 | 
			
		||||
  cancel: "Anuluj"
 | 
			
		||||
  accept: "Przyznaj dostęp."
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "Ładowanie"
 | 
			
		||||
  denied: "Odrzucono uwierzytelnianie aplikacji."
 | 
			
		||||
  denied-paragraph: "Ta aplikacja nie uzyska dostępu do Twojego konta."
 | 
			
		||||
  already-authorized: "Ta aplikacja została już uwierzytelniona."
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "Powracam do aplikacji."
 | 
			
		||||
  please-go-back: "Wróć do aplikacji."
 | 
			
		||||
  error: "Sesja nie istnieje."
 | 
			
		||||
  sign-in: "Proszę zalogować się."
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "Oczekiwanie na {}"
 | 
			
		||||
    cancel: "Anuluj"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "Zagraj w Reversi ze znajomymi!"
 | 
			
		||||
  invite: "Zaproś"
 | 
			
		||||
  rule: "Jak grać"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "Zaproś"
 | 
			
		||||
  mode-invite-desc: "Zaproś użytkownika do gry."
 | 
			
		||||
  invitations: "Otrzymałeś(-aś) zaproszenie!"
 | 
			
		||||
  my-games: "Moje gry"
 | 
			
		||||
  all-games: "Wszystkie gry"
 | 
			
		||||
  enter-username: "Wprowadź nazwę użytkownika"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "Zakończono"
 | 
			
		||||
    playing: "W trakcie"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "Ustawienia gry"
 | 
			
		||||
  choose-map: "Wybierz mapę"
 | 
			
		||||
  random: "Losowy"
 | 
			
		||||
  black-or-white: "Czarny/biały"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "Zasady"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Ustawienia bota"
 | 
			
		||||
  this-game-is-started-soon: "Gra rozpocznie się wkrótce"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "Oczekiwanie na Ciebie"
 | 
			
		||||
  cancel: "Anuluj"
 | 
			
		||||
  ready: "Gotowy"
 | 
			
		||||
  cancel-ready: "Cofnij „gotowy”"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "Nie udało się połączyć z serwerem"
 | 
			
		||||
  description: "Wystąpił problem z Twoim połączeniem z Internetem, lub z serwerem. {Spróbuj ponownie} wkrótce."
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "Wygląda na to, że udało się połączyć. Odśwież stronę."
 | 
			
		||||
  flush: "Wyczyść pamięć podręczną"
 | 
			
		||||
  set-version: "Określ wersję"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "Znajdź użytkownika"
 | 
			
		||||
  you: "Ty"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "Brak dalszej historii"
 | 
			
		||||
  resize-form: "Przeciągnij aby zmienić rozmiar"
 | 
			
		||||
  new-message: "Nowa wiadomość"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "Wprowadź wiadomość tutaj"
 | 
			
		||||
  send: "Wyślij"
 | 
			
		||||
  attach-from-local: "Załącz pliki z komputera"
 | 
			
		||||
  attach-from-drive: "Załącz pliki z dysku"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "Przeczytano"
 | 
			
		||||
  deleted: "Wiadomość została usunięta"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "Autorzy"
 | 
			
		||||
  feedback: "Podziel się opinią"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "Dodaj do ulubionych"
 | 
			
		||||
  pin: "Przypnij do profilu"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "Usuń"
 | 
			
		||||
  delete-confirm: "Czy na pewno chcesz usunąć ten wpis?"
 | 
			
		||||
  remote: "Pokaż oryginał"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "Token"
 | 
			
		||||
  signing-in: "Logowanie…"
 | 
			
		||||
  signin: "Zaloguj"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Zaloguj się za pomocą Twittera"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "Nazwa użytkownika"
 | 
			
		||||
  checking: "Sprawdzanie…"
 | 
			
		||||
  available: "Dostępna"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "Bezpośredni"
 | 
			
		||||
  specified-desc: "Tylko dla określonych użytkowników"
 | 
			
		||||
  private: "Prywatny"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "Sprawdzanie"
 | 
			
		||||
  no-broadcasts: "Brak transmisji"
 | 
			
		||||
  have-a-nice-day: "Miłego dnia!"
 | 
			
		||||
  next: "Dalej"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "Rok {}"
 | 
			
		||||
  month: "Miesiąc {}"
 | 
			
		||||
  day: "Dzień {}"
 | 
			
		||||
  today: "Dzisiaj:"
 | 
			
		||||
  this-month: "Ten miesiąc:"
 | 
			
		||||
  this-year: "Ten rok:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "Dotacje"
 | 
			
		||||
  text: "Aby utrzymywać Misskey, płacimy za domenę, serwery i nie tylko… Nie zarabiamy na tym, więc byłoby nam miło, gdybyśmy uzyskali od Ciebie dotację. Jeżeli jesteś zainteresowany, skontaktuj się z {}. Dziękujemy za wsparcie!"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "Przełącz widok"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "Hashtagi"
 | 
			
		||||
  count: "Wspomniany przez {} użytkowników"
 | 
			
		||||
  empty: "Brak popularnych hashtagów"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "Informacje o serwerze"
 | 
			
		||||
  toggle: "Przełącz widok"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "Notatka"
 | 
			
		||||
  memo: "Napisz tutaj!"
 | 
			
		||||
  save: "Zapisz"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "Aby określić katalog, opuść tryb dostosowywania"
 | 
			
		||||
  folder: "Naciśnij i wybierz folder"
 | 
			
		||||
  no-image: "Brak obrazu w tym folderze"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "Możesz przejść do osi czasu używając <kbd>t</kbd>."
 | 
			
		||||
  tips-line2: "Otwórz formularz nowego wpisu używając <kbd>p</kbd> lub <kbd>n</kbd>."
 | 
			
		||||
  tips-line3: "Możesz przeciągnąć i upuścić pliki w formularzu wpisu."
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "Możesz wysłać pliki przeciągając i upuszczając je w Dysku."
 | 
			
		||||
  tips-line6: "Możesz przenieść katalog przeciągając go w Dysku."
 | 
			
		||||
  tips-line7: "Możesz przenieść katalog przeciągając go w Dysku."
 | 
			
		||||
  tips-line8: "Strona główna może zostać dostosowana w ustawieniach."
 | 
			
		||||
  tips-line9: "Misskey jest dostępny na licencji AGPLv3."
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "Możesz przypiąć wpis na stronie użytkownika klikając na „…”"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "Oznaczenie tekstu **w ten sposób** wyróżni go."
 | 
			
		||||
  tips-line19: "Część okien może zostać odłączona z przeglądarki."
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "Możesz też używać API, aby tworzyć boty."
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskey zaczął działać w 2014."
 | 
			
		||||
  tips-line25: "Możesz otrzymywać powiadomienia nawet jeżeli Misskey nie jest otwarty w obsługiwanej przeglądarce."
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "Zalogowany jako {}"
 | 
			
		||||
  following: "Śledzisz"
 | 
			
		||||
  follow: "Śledź"
 | 
			
		||||
  request-pending: "Oczekiwanie na pozwolenie"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "Poproś o śledzenie"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "Baner"
 | 
			
		||||
  uploading-banner: "Wysyłanie baneru"
 | 
			
		||||
  banner-updated: "Zmieniono baner"
 | 
			
		||||
  choose-banner: "Wybierz baner"
 | 
			
		||||
  avatar-crop-title: "Wybierz część obrazu, która zostanie użyta jako awatar"
 | 
			
		||||
  avatar: "Awatar"
 | 
			
		||||
  uploading-avatar: "Wysyłanie awatara"
 | 
			
		||||
  avatar-updated: "Wysłano awatar"
 | 
			
		||||
  choose-avatar: "Wybierz awatar"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Czarny … Łącznie"
 | 
			
		||||
  notes: "Niebieski … Wpisy"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "Poprzedni miesiąc"
 | 
			
		||||
  next: "Następny miesiąc"
 | 
			
		||||
  go: "Naciśnij, aby przejść"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "Wybierz plik"
 | 
			
		||||
  upload: "Wyślij pliki z Twojego komputera"
 | 
			
		||||
@@ -286,10 +544,11 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "Awatar"
 | 
			
		||||
  banner: "Baner"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "Zmień nazwę"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
    unmark-as-sensitive: "閲覧注意を解除"
 | 
			
		||||
    mark-as-sensitive: "Oznacz jako zawartość wrażliwą"
 | 
			
		||||
    unmark-as-sensitive: "Cofnij oznaczenie jako zawartość wrażliwą"
 | 
			
		||||
    copy-url: "Skopiuj adres"
 | 
			
		||||
    download: "Pobierz"
 | 
			
		||||
    else-files: "Inne"
 | 
			
		||||
@@ -334,15 +593,16 @@ desktop/views/components/drive.vue:
 | 
			
		||||
    upload: "Wyślij plik"
 | 
			
		||||
    url-upload: "Wyślij z adresu URL"
 | 
			
		||||
desktop/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
  sensitive: "To jest zawartość NSFW"
 | 
			
		||||
  click-to-show: "Naciśnij aby wyświetlić"
 | 
			
		||||
desktop/views/components/media-video.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
  sensitive: "To jest zawartość NSFW"
 | 
			
		||||
  click-to-show: "Naciśnij aby wyświetlić"
 | 
			
		||||
desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "Śledzisz"
 | 
			
		||||
  follow: "Śledź"
 | 
			
		||||
  request-pending: "Oczekiwanie na pozwolenie"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "Poproś o śledzenie"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "Śledzący"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "Więcej"
 | 
			
		||||
  empty: "Brak powiadomień"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+Dodaj użytkownika"
 | 
			
		||||
  attach-location-information: "Załącz informacje o lokalizacji"
 | 
			
		||||
  hide-contents: "Ukryj zawartość"
 | 
			
		||||
  reply-placeholder: "Odpowiedz na ten wpis…"
 | 
			
		||||
  quote-placeholder: "Zacytuj ten wpis…"
 | 
			
		||||
  submit: "Wyślij"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "Utwórz ankietę"
 | 
			
		||||
  text-remain: "pozostałe znaki: {}"
 | 
			
		||||
  recent-tags: "Ostatnie"
 | 
			
		||||
  click-to-tagging: "Naciśnij aby oznaczyć"
 | 
			
		||||
  visibility: "Widoczność"
 | 
			
		||||
  geolocation-alert: "Twoje urządzenie nie obsługuje geolokalizacji."
 | 
			
		||||
  error: "Bład"
 | 
			
		||||
  enter-username: "Wprowadź nazwę użytkownika…"
 | 
			
		||||
  annotations: "Treść ostrzeżenia (opcjonalnie)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "Nowy wpis"
 | 
			
		||||
  reply: "Odpowiedz"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "Uwierzytelnianie dwuetapowe"
 | 
			
		||||
  other: "Inne"
 | 
			
		||||
  license: "Licencja"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  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."
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "Automatycznie pojawiające się okna"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "Ustawienia zaawansowane"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "Wybierz tło"
 | 
			
		||||
  delete-wallpaper: "Usuń tło"
 | 
			
		||||
  dark-mode: "Tryb ciemny"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "Używaj okrągłych ikon"
 | 
			
		||||
  gradient-window-header: "Używaj gradientów na pasku tytułu okna"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "Pokazuj cel odpowiedzi"
 | 
			
		||||
  show-my-renotes: "Pokazuj moje udostępnienia na osi czasu"
 | 
			
		||||
  show-renoted-my-notes: "Pokazuj udostępnienia moich wpisów na osi czasu"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿の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ę."
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "Wprowadź hasło"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "Brak zautoryzowanych aplikacji"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "Maksymalnie"
 | 
			
		||||
  in-use: " w użyciu."
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "Brak wyciszonych użytkowników"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "Data urodzenia"
 | 
			
		||||
  save: "Aktualizuj profil"
 | 
			
		||||
  locked-account: "Zabezpiecz swoje konto"
 | 
			
		||||
  is-locked: "Uczyń wpis prywatnym"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "Inne"
 | 
			
		||||
  is-bot: "To konto jest prowadzone przez bota"
 | 
			
		||||
  is-cat: "To konto jest prowadzone przez kota"
 | 
			
		||||
  profile-updated: "Zaktualizowano profil"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "ten wpis jest prywatny"
 | 
			
		||||
  deleted: "ten wpis został usunięty"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "Lokalne"
 | 
			
		||||
  hybrid: "Społeczność"
 | 
			
		||||
  global: "Globalne"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "Listy"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "Witaj ponownie,"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "Twój profil"
 | 
			
		||||
  drive: "Dysk"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "Listy"
 | 
			
		||||
  follow-requests: "Prośby o śledzenie"
 | 
			
		||||
  customize: "Dostosuj stronę główną"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "Ustawienia"
 | 
			
		||||
  signout: "Wyloguj się"
 | 
			
		||||
  dark: "Sprowadź ciemność"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "Listy"
 | 
			
		||||
  create-list: "Utwórz listę"
 | 
			
		||||
  list-name: "Nazwa listy"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "Wpisy"
 | 
			
		||||
  following: "Śledzeni"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "Pop-out"
 | 
			
		||||
  close: "Zamknij"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "Tylko wpisy z zawartością multimedialną"
 | 
			
		||||
  is-media-view: "Widok multimediów"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "Udostępniono przez {}"
 | 
			
		||||
  private: "ten wpis jest prywatny"
 | 
			
		||||
  deleted: "ten wpis został usunięty"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "O Misskey"
 | 
			
		||||
  gotit: "Rozumiem!"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "Zaloguj się"
 | 
			
		||||
  signup-button: "Zarejestruj się"
 | 
			
		||||
  timeline: "Oś czasu"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Oparto o <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Dysk Misskey"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "OK"
 | 
			
		||||
  cancel: "Anuluj"
 | 
			
		||||
  upload: "Wyślij pliki z Twojego komputera"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "Nie znaleziono wpisów zawierających „{}”"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "Udostępnij z {}."
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "Nie znaleziono wpisów zawierających „{}”."
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "Użytkownicy"
 | 
			
		||||
  add-user: "Dodaj użytkownika"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "Wycisz"
 | 
			
		||||
  muted: "Wyciszyłeś"
 | 
			
		||||
  unmute: "Cofnij wyciszenie"
 | 
			
		||||
  push-to-a-list: "Dodaj do listy"
 | 
			
		||||
  list-pushed: "Dodałeś(-aś) {user} do {list}."
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "Wpisy"
 | 
			
		||||
  following: "Śledzeni"
 | 
			
		||||
@@ -727,22 +1064,26 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "Wybierz plik"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "Wybierz katalog"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "Pobierz"
 | 
			
		||||
  rename: "Zmień nazwę"
 | 
			
		||||
  move: "Przenieś"
 | 
			
		||||
  hash: "Hash (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
  sensitive: "To jest zawartość NSFW"
 | 
			
		||||
  click-to-show: "Naciśnij aby wyświetlić"
 | 
			
		||||
mobile/views/components/media-video.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
  sensitive: "To jest zawartość NSFW"
 | 
			
		||||
  click-to-show: "Naciśnij aby wyświetlić"
 | 
			
		||||
mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "Śledzisz"
 | 
			
		||||
  follow: "Śledź"
 | 
			
		||||
  request-pending: "Oczekiwanie na pozwolenie"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "Poproś o śledzenie"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "Zacznij śledzić ludzi takich jak Ty"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "Zamknij"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "Udostępniono przez {}"
 | 
			
		||||
  more: "Rozwiń"
 | 
			
		||||
  less: "Zwiń"
 | 
			
		||||
  private: "ten wpis jest prywatny"
 | 
			
		||||
  deleted: "ten wpis został usunięty"
 | 
			
		||||
  location: "Informacje o lokalizacji"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "Brak wpisów"
 | 
			
		||||
  load-more: "Więcej"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "Witaj ponownie, "
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "Oś czasu"
 | 
			
		||||
  notifications: "Powiadomienia"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "Gry"
 | 
			
		||||
  darkmode: "Tryb ciemny"
 | 
			
		||||
  settings: "Ustawienia"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "O Misskey"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "Wygląda na to, że ten użytkownik nie opublikował jeszcze niczego"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "Dysk"
 | 
			
		||||
  more: "Załaduj więcej"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "Rozpocznijmy! 📦"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "Śledzący {}"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "Lokalne"
 | 
			
		||||
  hybrid: "Społeczność"
 | 
			
		||||
  global: "Globalne"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "Nie znaleziono wpisów zawierających „{}”."
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "Zarejestruj się"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "Kokpit"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "Dodaj"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "Aktywność"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "Udostępnij z {}."
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "Wiadomości"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "Powiadomienia"
 | 
			
		||||
  read-all: "Czy na pewno chcesz oznaczyć wszystkie powiadomienia jako przeczytane?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "Reversi"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "Profil"
 | 
			
		||||
  name: "Nazwa"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "Awatar"
 | 
			
		||||
  banner: "Baner"
 | 
			
		||||
  is-cat: "To konto jest prowadzone przez kota"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "Aktualizuj profil"
 | 
			
		||||
  saved: "Pomyślnie zaktualizowano profil"
 | 
			
		||||
  uploading: "Wysyłanie"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "Szukaj"
 | 
			
		||||
  empty: "Nie znaleziono wpisów zawierających '{}'"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "Wybierz plik"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "Tryb ciemny"
 | 
			
		||||
  i-am-under-limited-internet: "Ograniczaj zużycie transferu"
 | 
			
		||||
  circle-icons: "Używaj okrągłych ikon"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "Oś czasu"
 | 
			
		||||
  show-reply-target: "Pokazuj cel odpowiedzi"
 | 
			
		||||
  show-my-renotes: "Pokazuj moje udostępnienia"
 | 
			
		||||
  show-renoted-my-notes: "Pokazuj udostępnienia moich wpisów"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "Styl wpisów"
 | 
			
		||||
  post-style-standard: "Standardowy"
 | 
			
		||||
  post-style-smart: "Inteligentny"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "Zachowanie"
 | 
			
		||||
  fetch-on-scroll: "Automatycznie ładuj po przeciągnięciu w dół"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "Nie oznaczaj wpisów jako „wysłane z telefonu”"
 | 
			
		||||
  load-raw-images: "Wyświetlaj załączone zdjęcia w wysokiej jakości"
 | 
			
		||||
  load-remote-media: "Wyświetlaj zawartość multimedialną ze zdalnych serwerów"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "Odśwież stronę, aby zastosować aktualizację."
 | 
			
		||||
  settings: "Ustawienia"
 | 
			
		||||
  signout: "Wyloguj"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "Śledzi Cię"
 | 
			
		||||
  following: "Śledzeni"
 | 
			
		||||
@@ -948,17 +1325,19 @@ docs:
 | 
			
		||||
      properties: "Właściwości"
 | 
			
		||||
    endpoints:
 | 
			
		||||
      params: "Parametry"
 | 
			
		||||
      no-params: "パラメータはありません"
 | 
			
		||||
      no-params: "Brak parametrów."
 | 
			
		||||
      res: "Odpowiedź"
 | 
			
		||||
      require-credential: "このエンドポイントは認証情報が必須です。"
 | 
			
		||||
      require-permission: "このエンドポイントは{permission}の権限を必要とします。"
 | 
			
		||||
      has-limit: "レートリミットがあります。"
 | 
			
		||||
      require-credential: "Punkt końcowy wymaga informacji o uwierzytelnieniu."
 | 
			
		||||
      require-permission: "Ten punkt końcowy wymaga uprawnienia {permission}."
 | 
			
		||||
      has-limit: "Istnieje limit częstotliwości."
 | 
			
		||||
      duration-limit: "直近{duration}ミリ秒の間のこのエンドポイントへのリクエスト数の合計が{max}を超える場合はリクエストできません。"
 | 
			
		||||
      min-interval-limit: "前回のリクエストから{interval}ミリ秒経っていない場合はリクエストできません。"
 | 
			
		||||
      show-src: "このエンドポイントのソースコードも閲覧できます。"
 | 
			
		||||
      min-interval-limit: "Nie możesz wykonać żądania przed upłynięciem {interval} od ostatniego żądania."
 | 
			
		||||
      show-src: "Możesz zobaczyć kod źródłowy tego punktu końcowego."
 | 
			
		||||
      show-src-link: "Zobacz kod na GitHubie"
 | 
			
		||||
      generated: "このドキュメントはAPI定義に基づき自動生成されています。"
 | 
			
		||||
    props:
 | 
			
		||||
      name: "Nazwa"
 | 
			
		||||
      type: "Rodzaj"
 | 
			
		||||
      description: "Opis"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "Zarządzaj aplikacjami"
 | 
			
		||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
@@ -25,6 +62,14 @@ common:
 | 
			
		||||
    thursday: "木"
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
    profile: "プロフィール"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
  deleted: "このメッセージは削除されました"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "開発者"
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "ダイレクト"
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "前の月"
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
  enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "パスワードを入力してください"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "決定"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
@@ -6,6 +6,41 @@ common:
 | 
			
		||||
  misskey: "A ⭐ of fediverse"
 | 
			
		||||
  about-title: "A ⭐ of fediverse."
 | 
			
		||||
  about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
 | 
			
		||||
  intro:
 | 
			
		||||
    title: "Misskeyって?"
 | 
			
		||||
    about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
 | 
			
		||||
    features: "特徴"
 | 
			
		||||
    rich-contents: "投稿"
 | 
			
		||||
    rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
 | 
			
		||||
    reaction: "リアクション"
 | 
			
		||||
    reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
 | 
			
		||||
    ui: "インターフェース"
 | 
			
		||||
    ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
 | 
			
		||||
    drive: "ドライブ"
 | 
			
		||||
    drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんか?もしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんか?Misskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
 | 
			
		||||
    outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
 | 
			
		||||
  adblock:
 | 
			
		||||
    detected: "広告ブロッカーを無効にしてください"
 | 
			
		||||
    warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
 | 
			
		||||
  application-authorization: "アプリの連携"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
  do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
 | 
			
		||||
  got-it: "わかった"
 | 
			
		||||
  customization-tips:
 | 
			
		||||
    title: "カスタマイズのヒント"
 | 
			
		||||
    paragraph1: "ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。"
 | 
			
		||||
    paragraph2: "一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。"
 | 
			
		||||
    paragraph3: "ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。"
 | 
			
		||||
    paragraph4: "カスタマイズを終了するには、右上の「完了」をクリックします。"
 | 
			
		||||
    gotit: "Got it!"
 | 
			
		||||
  notification:
 | 
			
		||||
    file-uploaded: "ファイルがアップロードされました"
 | 
			
		||||
    message-from: "{}さんからメッセージ:"
 | 
			
		||||
    reversi-invited: "対局への招待があります"
 | 
			
		||||
    reversi-invited-by: "{}さんから"
 | 
			
		||||
    notified-by: "{}さんから"
 | 
			
		||||
    reply-from: "{}さんから返信:"
 | 
			
		||||
    quoted-by: "{}さんが引用:"
 | 
			
		||||
  time:
 | 
			
		||||
    unknown: "なぞのじかん"
 | 
			
		||||
    future: "未来"
 | 
			
		||||
@@ -17,6 +52,8 @@ common:
 | 
			
		||||
    weeks_ago: "{}週間前"
 | 
			
		||||
    months_ago: "{}ヶ月前"
 | 
			
		||||
    years_ago: "{}年前"
 | 
			
		||||
  month-and-day: "{month}月 {day}日"
 | 
			
		||||
  trash: "ゴミ箱"
 | 
			
		||||
  weekday-short:
 | 
			
		||||
    sunday: "日"
 | 
			
		||||
    monday: "月"
 | 
			
		||||
@@ -25,6 +62,14 @@ common:
 | 
			
		||||
    thursday: "木"
 | 
			
		||||
    friday: "金"
 | 
			
		||||
    saturday: "土"
 | 
			
		||||
  weekday:
 | 
			
		||||
    sunday: "日曜日"
 | 
			
		||||
    monday: "月曜日"
 | 
			
		||||
    tuesday: "火曜日"
 | 
			
		||||
    wednesday: "水曜日"
 | 
			
		||||
    thursday: "木曜日"
 | 
			
		||||
    friday: "金曜日"
 | 
			
		||||
    saturday: "土曜日"
 | 
			
		||||
  reactions:
 | 
			
		||||
    like: "いいね"
 | 
			
		||||
    love: "しゅき"
 | 
			
		||||
@@ -34,7 +79,17 @@ common:
 | 
			
		||||
    congrats: "おめでとう"
 | 
			
		||||
    angry: "おこ"
 | 
			
		||||
    confused: "こまこまのこまり"
 | 
			
		||||
    rip: "RIP"
 | 
			
		||||
    pudding: "Pudding"
 | 
			
		||||
  note-visibility:
 | 
			
		||||
    public: "公開"
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    home-desc: "ホームタイムラインにのみ公開"
 | 
			
		||||
    followers: "フォロワー"
 | 
			
		||||
    followers-desc: "自分のフォロワーにのみ公開"
 | 
			
		||||
    specified: "ダイレクト"
 | 
			
		||||
    specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
    private: "非公開"
 | 
			
		||||
  note-placeholders:
 | 
			
		||||
    a: "今どうしてる?"
 | 
			
		||||
    b: "何かありましたか?"
 | 
			
		||||
@@ -51,12 +106,26 @@ common:
 | 
			
		||||
  my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
 | 
			
		||||
  i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
 | 
			
		||||
  show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
 | 
			
		||||
  use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
 | 
			
		||||
  verified-user: "公式アカウント"
 | 
			
		||||
  disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
 | 
			
		||||
  always-show-nsfw: "常に閲覧注意のメディアを表示する"
 | 
			
		||||
  always-mark-nsfw: "常にメディアを閲覧注意として投稿"
 | 
			
		||||
  show-full-acct: "ユーザー名のホストを省略しない"
 | 
			
		||||
  reduce-motion: "UIの動きを減らす"
 | 
			
		||||
  this-setting-is-this-device-only: "このデバイスのみ"
 | 
			
		||||
  do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
 | 
			
		||||
  reversi:
 | 
			
		||||
    drawn: "引き分け"
 | 
			
		||||
    my-turn: "あなたのターンです"
 | 
			
		||||
    opponent-turn: "相手のターンです"
 | 
			
		||||
    turn-of: "{}のターンです"
 | 
			
		||||
    past-turn-of: "{}のターン"
 | 
			
		||||
    won: "{}の勝ち"
 | 
			
		||||
    black: "黒"
 | 
			
		||||
    white: "白"
 | 
			
		||||
    total: "合計"
 | 
			
		||||
    this-turn: "{}ターン目"
 | 
			
		||||
  widgets:
 | 
			
		||||
    analog-clock: "アナログ時計"
 | 
			
		||||
    profile: "プロフィール"
 | 
			
		||||
@@ -86,7 +155,10 @@ common:
 | 
			
		||||
    home: "ホーム"
 | 
			
		||||
    local: "ローカル"
 | 
			
		||||
    hybrid: "ソーシャル"
 | 
			
		||||
    hashtag: "ハッシュタグ"
 | 
			
		||||
    global: "グローバル"
 | 
			
		||||
    mentions: "あなた宛て"
 | 
			
		||||
    direct: "ダイレクト投稿"
 | 
			
		||||
    notifications: "通知"
 | 
			
		||||
    list: "リスト"
 | 
			
		||||
    swap-left: "左に移動"
 | 
			
		||||
@@ -98,6 +170,73 @@ common:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    stack-left: "左に重ねる"
 | 
			
		||||
    pop-right: "右に出す"
 | 
			
		||||
auth/views/form.vue:
 | 
			
		||||
  share-access: "<i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?"
 | 
			
		||||
  permission-ask: "このアプリは次の権限を要求しています:"
 | 
			
		||||
  account-read: "アカウントの情報を見る。"
 | 
			
		||||
  account-write: "アカウントの情報を操作する。"
 | 
			
		||||
  note-write: "投稿する。"
 | 
			
		||||
  like-write: "いいねしたりいいね解除する。"
 | 
			
		||||
  following-write: "フォローしたりフォロー解除する。"
 | 
			
		||||
  drive-read: "ドライブを見る。"
 | 
			
		||||
  drive-write: "ドライブを操作する。"
 | 
			
		||||
  notification-read: "通知を見る。"
 | 
			
		||||
  notification-write: "通知を操作する。"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  accept: "アクセスを許可"
 | 
			
		||||
auth/views/index.vue:
 | 
			
		||||
  loading: "読み込み中"
 | 
			
		||||
  denied: "アプリケーションの連携をキャンセルしました。"
 | 
			
		||||
  denied-paragraph: "このアプリがあなたのアカウントにアクセスすることはありません。"
 | 
			
		||||
  already-authorized: "このアプリは既に連携済みです"
 | 
			
		||||
  allowed: "アプリケーションの連携を許可しました"
 | 
			
		||||
  callback-url: "アプリケーションに戻っています"
 | 
			
		||||
  please-go-back: "アプリケーションに戻って、やっていってください。"
 | 
			
		||||
  error: "セッションが存在しません。"
 | 
			
		||||
  sign-in: "サインインしてください"
 | 
			
		||||
common/views/components/games/reversi/reversi.vue:
 | 
			
		||||
  matching:
 | 
			
		||||
    waiting-for: "{}を待っています"
 | 
			
		||||
    cancel: "キャンセル"
 | 
			
		||||
common/views/components/games/reversi/reversi.game.vue:
 | 
			
		||||
  surrender: "投了"
 | 
			
		||||
  surrendered: "投了により"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
common/views/components/games/reversi/reversi.index.vue:
 | 
			
		||||
  title: "Misskey Reversi"
 | 
			
		||||
  sub-title: "他のMisskeyユーザーとリバーシで対戦しよう"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
  rule: "遊び方"
 | 
			
		||||
  rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
 | 
			
		||||
  mode-invite: "招待"
 | 
			
		||||
  mode-invite-desc: "指定したユーザーと対戦するモードです。"
 | 
			
		||||
  invitations: "対局の招待があります!"
 | 
			
		||||
  my-games: "自分の対局"
 | 
			
		||||
  all-games: "みんなの対局"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  game-state:
 | 
			
		||||
    ended: "終了"
 | 
			
		||||
    playing: "進行中"
 | 
			
		||||
common/views/components/games/reversi/reversi.room.vue:
 | 
			
		||||
  settings-of-the-game: "ゲームの設定"
 | 
			
		||||
  choose-map: "マップを選択"
 | 
			
		||||
  random: "ランダム"
 | 
			
		||||
  black-or-white: "先手/後手"
 | 
			
		||||
  black-is: "{}が黒"
 | 
			
		||||
  rules: "ルール"
 | 
			
		||||
  is-llotheo: "石の少ない方が勝ち(ロセオ)"
 | 
			
		||||
  looped-map: "ループマップ"
 | 
			
		||||
  can-put-everywhere: "どこでも置けるモード"
 | 
			
		||||
  settings-of-the-bot: "Botの設定"
 | 
			
		||||
  this-game-is-started-soon: "ゲームは数秒後に開始されます"
 | 
			
		||||
  waiting-for-other: "相手の準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-me: "あなたの準備が完了するのを待っています"
 | 
			
		||||
  waiting-for-both: "準備中"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  ready: "準備完了"
 | 
			
		||||
  cancel-ready: "準備続行"
 | 
			
		||||
common/views/components/connect-failed.vue:
 | 
			
		||||
  title: "サーバーに接続できません"
 | 
			
		||||
  description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
 | 
			
		||||
@@ -122,6 +261,47 @@ common/views/components/connect-failed.troubleshooter.vue:
 | 
			
		||||
  success-desc: "正常に接続できるようです。ページを再度読み込みしてください。"
 | 
			
		||||
  flush: "キャッシュの削除"
 | 
			
		||||
  set-version: "バージョン指定"
 | 
			
		||||
common/views/components/media-banner.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
common/views/components/theme.vue:
 | 
			
		||||
  light-theme: "非ダークモード時に使用するテーマ"
 | 
			
		||||
  dark-theme: "ダークモード時に使用するテーマ"
 | 
			
		||||
  light-themes: "明るいテーマ"
 | 
			
		||||
  dark-themes: "暗いテーマ"
 | 
			
		||||
  install-a-theme: "テーマのインストール"
 | 
			
		||||
  theme-code: "テーマコード"
 | 
			
		||||
  install: "インストール"
 | 
			
		||||
  installed: "「{}」をインストールしました"
 | 
			
		||||
  create-a-theme: "テーマの作成"
 | 
			
		||||
  save-created-theme: "テーマを保存"
 | 
			
		||||
  primary-color: "プライマリ カラー"
 | 
			
		||||
  secondary-color: "セカンダリ カラー"
 | 
			
		||||
  text-color: "文字色"
 | 
			
		||||
  base-theme: "ベーステーマ"
 | 
			
		||||
  base-theme-light: "Light"
 | 
			
		||||
  base-theme-dark: "Dark"
 | 
			
		||||
  theme-name: "テーマ名"
 | 
			
		||||
  preview-created-theme: "プレビュー"
 | 
			
		||||
  invalid-theme: "テーマが正しくありません。"
 | 
			
		||||
  already-installed: "既にそのテーマはインストールされています。"
 | 
			
		||||
  saved: "保存しました"
 | 
			
		||||
  manage-themes: "テーマの管理"
 | 
			
		||||
  builtin-themes: "標準テーマ"
 | 
			
		||||
  my-themes: "マイテーマ"
 | 
			
		||||
  installed-themes: "インストールされたテーマ"
 | 
			
		||||
  select-theme: "テーマを選択してください"
 | 
			
		||||
  uninstall: "アンインストール"
 | 
			
		||||
  uninstalled: "「{}」をアンインストールしました"
 | 
			
		||||
  author: "作者"
 | 
			
		||||
  desc: "説明"
 | 
			
		||||
  export: "エクスポート"
 | 
			
		||||
  import: "インポート"
 | 
			
		||||
  import-by-code: "またはコードをペースト"
 | 
			
		||||
  theme-name-required: "テーマ名は必須です。"
 | 
			
		||||
common/views/components/cw-button.vue:
 | 
			
		||||
  hide: "隠す"
 | 
			
		||||
  show: "もっと見る"
 | 
			
		||||
common/views/components/messaging.vue:
 | 
			
		||||
  search-user: "ユーザーを探す"
 | 
			
		||||
  you: "あなた"
 | 
			
		||||
@@ -132,11 +312,13 @@ common/views/components/messaging-room.vue:
 | 
			
		||||
  no-history: "これより過去の履歴はありません"
 | 
			
		||||
  resize-form: "ドラッグしてフォームの広さを調整"
 | 
			
		||||
  new-message: "新しいメッセージがあります"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.form.vue:
 | 
			
		||||
  input-message-here: "ここにメッセージを入力"
 | 
			
		||||
  send: "送信"
 | 
			
		||||
  attach-from-local: "PCからファイルを添付する"
 | 
			
		||||
  attach-from-drive: "ドライブからファイルを添付する"
 | 
			
		||||
  only-one-file-attached: "メッセージに添付できるのはひとつのファイルのみです"
 | 
			
		||||
common/views/components/messaging-room.message.vue:
 | 
			
		||||
  is-read: "既読"
 | 
			
		||||
  deleted: "このメッセージは削除されました"
 | 
			
		||||
@@ -150,8 +332,11 @@ common/views/components/nav.vue:
 | 
			
		||||
  develop: "開発者"
 | 
			
		||||
  feedback: "フィードバック"
 | 
			
		||||
common/views/components/note-menu.vue:
 | 
			
		||||
  detail: "詳細"
 | 
			
		||||
  copy-link: "リンクをコピー"
 | 
			
		||||
  favorite: "お気に入り"
 | 
			
		||||
  pin: "ピン留め"
 | 
			
		||||
  unpin: "ピン留め解除"
 | 
			
		||||
  delete: "削除"
 | 
			
		||||
  delete-confirm: "この投稿を削除しますか?"
 | 
			
		||||
  remote: "投稿元で見る"
 | 
			
		||||
@@ -176,7 +361,12 @@ common/views/components/signin.vue:
 | 
			
		||||
  token: "トークン"
 | 
			
		||||
  signing-in: "やってます..."
 | 
			
		||||
  signin: "サインイン"
 | 
			
		||||
  or: "または"
 | 
			
		||||
  signin-with-twitter: "Twitterでログイン"
 | 
			
		||||
  login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
 | 
			
		||||
common/views/components/signup.vue:
 | 
			
		||||
  invitation-code: "招待コード"
 | 
			
		||||
  invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
 | 
			
		||||
  username: "ユーザー名"
 | 
			
		||||
  checking: "確認しています..."
 | 
			
		||||
  available: "利用できます"
 | 
			
		||||
@@ -222,11 +412,21 @@ common/views/components/visibility-chooser.vue:
 | 
			
		||||
  specified: "ダイレクト"
 | 
			
		||||
  specified-desc: "指定したユーザーにのみ公開"
 | 
			
		||||
  private: "非公開"
 | 
			
		||||
common/views/components/trends.vue:
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/broadcast.vue:
 | 
			
		||||
  fetching: "確認中"
 | 
			
		||||
  no-broadcasts: "お知らせはありません"
 | 
			
		||||
  have-a-nice-day: "良い一日を!"
 | 
			
		||||
  next: "次"
 | 
			
		||||
common/views/widgets/calendar.vue:
 | 
			
		||||
  year: "{}年"
 | 
			
		||||
  month: "{}月"
 | 
			
		||||
  day: "{}日"
 | 
			
		||||
  today: "今日:"
 | 
			
		||||
  this-month: "今月:"
 | 
			
		||||
  this-year: "今年:"
 | 
			
		||||
common/views/widgets/donation.vue:
 | 
			
		||||
  title: "寄付のお願い"
 | 
			
		||||
  text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
 | 
			
		||||
@@ -238,8 +438,6 @@ common/views/widgets/posts-monitor.vue:
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
common/views/widgets/hashtags.vue:
 | 
			
		||||
  title: "ハッシュタグ"
 | 
			
		||||
  count: "{}人が投稿"
 | 
			
		||||
  empty: "トレンドなし"
 | 
			
		||||
common/views/widgets/server.vue:
 | 
			
		||||
  title: "サーバー情報"
 | 
			
		||||
  toggle: "表示を切り替え"
 | 
			
		||||
@@ -247,12 +445,50 @@ common/views/widgets/memo.vue:
 | 
			
		||||
  title: "付箋"
 | 
			
		||||
  memo: "ここに書いて!"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
common/views/widgets/slideshow.vue:
 | 
			
		||||
  folder-customize-mode: "フォルダを指定するには、カスタマイズモードを終了してください"
 | 
			
		||||
  folder: "クリックしてフォルダを指定してください"
 | 
			
		||||
  no-image: "このフォルダには画像がありません"
 | 
			
		||||
common/views/widgets/tips.vue:
 | 
			
		||||
  tips-line1: "<kbd>t</kbd>でタイムラインにフォーカスできます"
 | 
			
		||||
  tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
 | 
			
		||||
  tips-line3: "投稿フォームにはファイルをドラッグ&ドロップできます"
 | 
			
		||||
  tips-line4: "投稿フォームにクリップボードにある画像データをペーストできます"
 | 
			
		||||
  tips-line5: "ドライブにファイルをドラッグ&ドロップしてアップロードできます"
 | 
			
		||||
  tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
 | 
			
		||||
  tips-line8: "ホームは設定からカスタマイズできます"
 | 
			
		||||
  tips-line9: "MisskeyはAGPLv3です"
 | 
			
		||||
  tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
 | 
			
		||||
  tips-line11: "投稿の ... をクリックして、投稿をユーザーページにピン留めできます"
 | 
			
		||||
  tips-line13: "投稿に添付したファイルは全てドライブに保存されます"
 | 
			
		||||
  tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
 | 
			
		||||
  tips-line17: "「**」でテキストを囲むと**強調表示**されます"
 | 
			
		||||
  tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
 | 
			
		||||
  tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
 | 
			
		||||
  tips-line21: "APIを利用してbotの開発なども行えます"
 | 
			
		||||
  tips-line23: "まゆかわいいよまゆ"
 | 
			
		||||
  tips-line24: "Misskeyは2014年にサービスを開始しました"
 | 
			
		||||
  tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
 | 
			
		||||
common/views/pages/follow.vue:
 | 
			
		||||
  signed-in-as: "{}としてサインイン中"
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop:
 | 
			
		||||
  banner-crop-title: "バナーとして表示する部分を選択"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  uploading-banner: "新しいバナーをアップロードしています"
 | 
			
		||||
  banner-updated: "バナーを更新しました"
 | 
			
		||||
  choose-banner: "バナーにする画像を選択"
 | 
			
		||||
  avatar-crop-title: "アバターとして表示する部分を選択"
 | 
			
		||||
  avatar: "アバター"
 | 
			
		||||
  uploading-avatar: "新しいアバターをアップロードしています"
 | 
			
		||||
  avatar-updated: "アバターを更新しました"
 | 
			
		||||
  choose-avatar: "アバターにする画像を選択"
 | 
			
		||||
  invalid-filetype: "この形式のファイルはサポートされていません"
 | 
			
		||||
desktop/views/components/activity.chart.vue:
 | 
			
		||||
  total: "Black ... Total"
 | 
			
		||||
  notes: "Blue ... Notes"
 | 
			
		||||
@@ -266,6 +502,28 @@ desktop/views/components/calendar.vue:
 | 
			
		||||
  prev: "前の月"
 | 
			
		||||
  next: "次の月"
 | 
			
		||||
  go: "クリックして時間遡行"
 | 
			
		||||
desktop/views/components/charts.vue:
 | 
			
		||||
  title: "チャート"
 | 
			
		||||
  per-day: "1日ごと"
 | 
			
		||||
  per-hour: "1時間ごと"
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  network: "ネットワーク"
 | 
			
		||||
  charts:
 | 
			
		||||
    notes: "投稿の増減 (統合)"
 | 
			
		||||
    local-notes: "投稿の増減 (ローカル)"
 | 
			
		||||
    remote-notes: "投稿の増減 (リモート)"
 | 
			
		||||
    notes-total: "投稿の積算"
 | 
			
		||||
    users: "ユーザーの増減"
 | 
			
		||||
    users-total: "ユーザーの積算"
 | 
			
		||||
    drive: "ドライブ使用量の増減"
 | 
			
		||||
    drive-total: "ドライブ使用量の積算"
 | 
			
		||||
    drive-files: "ドライブのファイル数の増減"
 | 
			
		||||
    drive-files-total: "ドライブのファイル数の積算"
 | 
			
		||||
    network-requests: "リクエスト"
 | 
			
		||||
    network-time: "応答時間"
 | 
			
		||||
    network-usage: "通信量"
 | 
			
		||||
desktop/views/components/choose-file-from-drive-window.vue:
 | 
			
		||||
  choose-file: "ファイル選択中"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
@@ -286,6 +544,7 @@ desktop/views/components/drive-window.vue:
 | 
			
		||||
desktop/views/components/drive.file.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
  contextmenu:
 | 
			
		||||
    rename: "名前を変更"
 | 
			
		||||
    mark-as-sensitive: "閲覧注意に設定"
 | 
			
		||||
@@ -343,6 +602,7 @@ desktop/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
desktop/views/components/followers-window.vue:
 | 
			
		||||
  followers: "{} のフォロワー"
 | 
			
		||||
@@ -395,6 +655,9 @@ desktop/views/components/notifications.vue:
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  empty: "ありません!"
 | 
			
		||||
desktop/views/components/post-form.vue:
 | 
			
		||||
  add-visible-user: "+ユーザーを追加"
 | 
			
		||||
  attach-location-information: "位置情報を添付する"
 | 
			
		||||
  hide-contents: "内容を隠す"
 | 
			
		||||
  reply-placeholder: "この投稿への返信..."
 | 
			
		||||
  quote-placeholder: "この投稿を引用..."
 | 
			
		||||
  submit: "投稿"
 | 
			
		||||
@@ -413,6 +676,13 @@ desktop/views/components/post-form.vue:
 | 
			
		||||
  insert-a-kao: "v('ω')v"
 | 
			
		||||
  create-poll: "アンケートを作成"
 | 
			
		||||
  text-remain: "残り{}文字"
 | 
			
		||||
  recent-tags: "最近"
 | 
			
		||||
  click-to-tagging: "クリックでタグ付け"
 | 
			
		||||
  visibility: "公開範囲"
 | 
			
		||||
  geolocation-alert: "お使いの端末は位置情報に対応していません"
 | 
			
		||||
  error: "エラー"
 | 
			
		||||
  enter-username: "ユーザー名を入力してください"
 | 
			
		||||
  annotations: "内容への注釈 (オプション)"
 | 
			
		||||
desktop/views/components/post-form-window.vue:
 | 
			
		||||
  note: "新規投稿"
 | 
			
		||||
  reply: "返信"
 | 
			
		||||
@@ -443,9 +713,13 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  2fa: "二段階認証"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  license: "ライセンス"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behaviour: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  auto-popout: "ウィンドウの自動ポップアウト"
 | 
			
		||||
  auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
 | 
			
		||||
  advanced: "詳細設定"
 | 
			
		||||
@@ -456,14 +730,18 @@ desktop/views/components/settings.vue:
 | 
			
		||||
  choose-wallpaper: "壁紙を選択"
 | 
			
		||||
  delete-wallpaper: "壁紙を削除"
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  use-shadow: "UIに影を使用"
 | 
			
		||||
  rounded-corners: "UIの角を丸める"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
 | 
			
		||||
  suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
 | 
			
		||||
  show-clock-on-header: "右上に時計を表示する"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿をタイムラインに表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
 | 
			
		||||
  show-maps: "マップの自動展開"
 | 
			
		||||
  show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
  enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
 | 
			
		||||
@@ -533,6 +811,9 @@ desktop/views/components/settings.api.vue:
 | 
			
		||||
  enter-password: "パスワードを入力してください"
 | 
			
		||||
desktop/views/components/settings.apps.vue:
 | 
			
		||||
  no-apps: "連携しているアプリケーションはありません"
 | 
			
		||||
desktop/views/components/settings.drive.vue:
 | 
			
		||||
  max: "中"
 | 
			
		||||
  in-use: "使用中"
 | 
			
		||||
desktop/views/components/settings.mute.vue:
 | 
			
		||||
  no-users: "ミュートしているユーザーはいません"
 | 
			
		||||
desktop/views/components/settings.password.vue:
 | 
			
		||||
@@ -551,10 +832,11 @@ desktop/views/components/settings.profile.vue:
 | 
			
		||||
  birthday: "誕生日"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  locked-account: "アカウントの保護"
 | 
			
		||||
  is-locked: "投稿を非公開にする"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  other: "その他"
 | 
			
		||||
  is-bot: "このアカウントはBotです"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  profile-updated: "プロフィールを更新しました"
 | 
			
		||||
desktop/views/components/sub-note-content.vue:
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
@@ -567,9 +849,16 @@ desktop/views/components/timeline.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
  list: "リスト"
 | 
			
		||||
  hashtag: "ハッシュタグ"
 | 
			
		||||
  add-tag-timeline: "ハッシュタグを追加"
 | 
			
		||||
  add-list: "リストを追加"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  profile: "プロフィール"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
@@ -577,6 +866,7 @@ desktop/views/components/ui.header.account.vue:
 | 
			
		||||
  lists: "リスト"
 | 
			
		||||
  follow-requests: "フォロー申請"
 | 
			
		||||
  customize: "ホームのカスタマイズ"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  dark: "闇に飲まれる"
 | 
			
		||||
@@ -598,6 +888,7 @@ desktop/views/components/received-follow-requests-window.vue:
 | 
			
		||||
desktop/views/components/user-lists-window.vue:
 | 
			
		||||
  title: "リスト"
 | 
			
		||||
  create-list: "リストを作成"
 | 
			
		||||
  list-name: "リスト名"
 | 
			
		||||
desktop/views/components/user-preview.vue:
 | 
			
		||||
  notes: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -612,6 +903,34 @@ desktop/views/components/users-list-item.vue:
 | 
			
		||||
desktop/views/components/window.vue:
 | 
			
		||||
  popout: "ポップアウト"
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
desktop/views/pages/admin/admin.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  update: "更新"
 | 
			
		||||
desktop/views/pages/admin/admin.dashboard.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
  invite: "招待"
 | 
			
		||||
desktop/views/pages/admin/admin.suspend-user.vue:
 | 
			
		||||
  suspend-user: "ユーザーの凍結"
 | 
			
		||||
  suspend: "凍結"
 | 
			
		||||
  suspended: "凍結しました"
 | 
			
		||||
desktop/views/pages/admin/admin.unsuspend-user.vue:
 | 
			
		||||
  unsuspend-user: "ユーザーの凍結の解除"
 | 
			
		||||
  unsuspend: "凍結の解除"
 | 
			
		||||
  unsuspended: "凍結を解除しました"
 | 
			
		||||
desktop/views/pages/admin/admin.verify-user.vue:
 | 
			
		||||
  verify-user: "ユーザーの公式アカウント設定"
 | 
			
		||||
  verify: "公式アカウントにする"
 | 
			
		||||
  verified: "公式アカウントにしました"
 | 
			
		||||
desktop/views/pages/admin/admin.unverify-user.vue:
 | 
			
		||||
  unverify-user: "ユーザーの公式アカウント解除"
 | 
			
		||||
  unverify: "公式アカウントを解除する"
 | 
			
		||||
  unverified: "公式アカウントを解除しました"
 | 
			
		||||
desktop/views/pages/deck/deck.tl-column.vue:
 | 
			
		||||
  is-media-only: "メディア投稿のみ"
 | 
			
		||||
  is-media-view: "メディアビュー"
 | 
			
		||||
@@ -620,6 +939,11 @@ desktop/views/pages/deck/deck.note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
desktop/views/pages/stats/stats.vue:
 | 
			
		||||
  all-users: "全てのユーザー"
 | 
			
		||||
  original-users: "このインスタンスのユーザー"
 | 
			
		||||
  all-notes: "全ての投稿"
 | 
			
		||||
  original-notes: "このインスタンスの投稿"
 | 
			
		||||
desktop/views/pages/welcome.vue:
 | 
			
		||||
  about: "詳しく..."
 | 
			
		||||
  gotit: "わかった"
 | 
			
		||||
@@ -628,6 +952,10 @@ desktop/views/pages/welcome.vue:
 | 
			
		||||
  signin-button: "やってる"
 | 
			
		||||
  signup-button: "やる"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  announcements: "お知らせ"
 | 
			
		||||
  photos: "最近の画像"
 | 
			
		||||
  powered-by-misskey: "Powered by <b>Misskey</b>."
 | 
			
		||||
  info: "情報"
 | 
			
		||||
desktop/views/pages/drive.vue:
 | 
			
		||||
  title: "Misskey Drive"
 | 
			
		||||
desktop/views/pages/favorites.vue:
 | 
			
		||||
@@ -642,6 +970,13 @@ desktop/views/pages/selectdrive.vue:
 | 
			
		||||
  ok: "決定"
 | 
			
		||||
  cancel: "キャンセル"
 | 
			
		||||
  upload: "PCからドライブにファイルをアップロード"
 | 
			
		||||
desktop/views/pages/search.vue:
 | 
			
		||||
  not-available: "検索機能はインスタンスの設定で無効になっています。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
desktop/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
desktop/views/pages/user-list.users.vue:
 | 
			
		||||
  users: "ユーザー"
 | 
			
		||||
  add-user: "ユーザーを追加"
 | 
			
		||||
@@ -672,6 +1007,8 @@ desktop/views/pages/user/user.profile.vue:
 | 
			
		||||
  mute: "ミュートする"
 | 
			
		||||
  muted: "ミュートしています"
 | 
			
		||||
  unmute: "ミュート解除"
 | 
			
		||||
  push-to-a-list: "リストに追加"
 | 
			
		||||
  list-pushed: "{user}を{list}に追加しました。"
 | 
			
		||||
desktop/views/pages/user/user.header.vue:
 | 
			
		||||
  posts: "投稿"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -727,12 +1064,15 @@ mobile/views/components/drive-file-chooser.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/components/drive-folder-chooser.vue:
 | 
			
		||||
  select-folder: "フォルダーを選択"
 | 
			
		||||
mobile/views/components/drive.file.vue:
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/drive.file-detail.vue:
 | 
			
		||||
  download: "ダウンロード"
 | 
			
		||||
  rename: "名前を変更"
 | 
			
		||||
  move: "移動"
 | 
			
		||||
  hash: "ハッシュ (md5)"
 | 
			
		||||
  exif: "EXIF"
 | 
			
		||||
  nsfw: "閲覧注意"
 | 
			
		||||
mobile/views/components/media-image.vue:
 | 
			
		||||
  sensitive: "閲覧注意"
 | 
			
		||||
  click-to-show: "クリックして表示"
 | 
			
		||||
@@ -743,6 +1083,7 @@ mobile/views/components/follow-button.vue:
 | 
			
		||||
  following: "フォロー中"
 | 
			
		||||
  follow: "フォロー"
 | 
			
		||||
  request-pending: "フォロー許可待ち"
 | 
			
		||||
  follow-processing: "フォロー処理中"
 | 
			
		||||
  follow-request: "フォロー申請"
 | 
			
		||||
mobile/views/components/friends-maker.vue:
 | 
			
		||||
  title: "気になるユーザーをフォロー"
 | 
			
		||||
@@ -752,8 +1093,6 @@ mobile/views/components/friends-maker.vue:
 | 
			
		||||
  close: "閉じる"
 | 
			
		||||
mobile/views/components/note.vue:
 | 
			
		||||
  reposted-by: "{}がRenote"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
  less: "隠す"
 | 
			
		||||
  private: "この投稿は非公開です"
 | 
			
		||||
  deleted: "この投稿は削除されました"
 | 
			
		||||
  location: "位置情報"
 | 
			
		||||
@@ -797,6 +1136,9 @@ mobile/views/components/sub-note-content.vue:
 | 
			
		||||
mobile/views/components/timeline.vue:
 | 
			
		||||
  empty: "投稿がありません"
 | 
			
		||||
  load-more: "もっと"
 | 
			
		||||
mobile/views/components/ui.header.vue:
 | 
			
		||||
  welcome-back: "おかえりなさい、"
 | 
			
		||||
  adjective: "さん"
 | 
			
		||||
mobile/views/components/ui.nav.vue:
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
@@ -810,6 +1152,7 @@ mobile/views/components/ui.nav.vue:
 | 
			
		||||
  game: "ゲーム"
 | 
			
		||||
  darkmode: "ダークモード"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  admin: "管理"
 | 
			
		||||
  about: "Misskeyについて"
 | 
			
		||||
mobile/views/components/user-timeline.vue:
 | 
			
		||||
  no-notes: "このユーザーは投稿していないようです。"
 | 
			
		||||
@@ -827,6 +1170,8 @@ mobile/views/pages/user-lists.vue:
 | 
			
		||||
mobile/views/pages/drive.vue:
 | 
			
		||||
  drive: "ドライブ"
 | 
			
		||||
  more: "もっと見る"
 | 
			
		||||
mobile/views/pages/signup.vue:
 | 
			
		||||
  lets-start: "📦 始めましょう"
 | 
			
		||||
mobile/views/pages/followers.vue:
 | 
			
		||||
  followers-of: "{}のフォロワー"
 | 
			
		||||
mobile/views/pages/following.vue:
 | 
			
		||||
@@ -836,6 +1181,21 @@ mobile/views/pages/home.vue:
 | 
			
		||||
  local: "ローカル"
 | 
			
		||||
  hybrid: "ソーシャル"
 | 
			
		||||
  global: "グローバル"
 | 
			
		||||
  mentions: "あなた宛て"
 | 
			
		||||
  messages: "メッセージ"
 | 
			
		||||
mobile/views/pages/tag.vue:
 | 
			
		||||
  no-posts-found: "ハッシュタグ「{}」が付けられた投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/welcome.vue:
 | 
			
		||||
  signup: "新規登録"
 | 
			
		||||
mobile/views/pages/widgets.vue:
 | 
			
		||||
  dashboard: "ダッシュボード"
 | 
			
		||||
  widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
 | 
			
		||||
  add-widget: "追加"
 | 
			
		||||
  customization-tips: "カスタマイズのヒント"
 | 
			
		||||
mobile/views/pages/widgets/activity.vue:
 | 
			
		||||
  activity: "アクティビティ"
 | 
			
		||||
mobile/views/pages/share.vue:
 | 
			
		||||
  share-with: "{}で共有"
 | 
			
		||||
mobile/views/pages/messaging.vue:
 | 
			
		||||
  messaging: "メッセージ"
 | 
			
		||||
mobile/views/pages/messaging-room.vue:
 | 
			
		||||
@@ -851,6 +1211,8 @@ mobile/views/pages/note.vue:
 | 
			
		||||
mobile/views/pages/notifications.vue:
 | 
			
		||||
  notifications: "通知"
 | 
			
		||||
  read-all: "すべての通知を既読にしますか?"
 | 
			
		||||
mobile/views/pages/games/reversi.vue:
 | 
			
		||||
  reversi: "リバーシ"
 | 
			
		||||
mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  title: "プロフィール"
 | 
			
		||||
  name: "名前"
 | 
			
		||||
@@ -861,6 +1223,9 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
  avatar: "アイコン"
 | 
			
		||||
  banner: "バナー"
 | 
			
		||||
  is-cat: "このアカウントはCatです"
 | 
			
		||||
  is-locked: "フォローを承認制にする"
 | 
			
		||||
  advanced: "その他"
 | 
			
		||||
  privacy: "プライバシー"
 | 
			
		||||
  save: "保存"
 | 
			
		||||
  saved: "プロフィールを保存しました"
 | 
			
		||||
  uploading: "アップロード中"
 | 
			
		||||
@@ -868,6 +1233,7 @@ mobile/views/pages/settings/settings.profile.vue:
 | 
			
		||||
mobile/views/pages/search.vue:
 | 
			
		||||
  search: "検索"
 | 
			
		||||
  empty: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
  not-found: "「{}」に関する投稿は見つかりませんでした。"
 | 
			
		||||
mobile/views/pages/selectdrive.vue:
 | 
			
		||||
  select-file: "ファイルを選択"
 | 
			
		||||
mobile/views/pages/settings.vue:
 | 
			
		||||
@@ -881,15 +1247,24 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  dark-mode: "ダークモード"
 | 
			
		||||
  i-am-under-limited-internet: "私は通信を制限されている"
 | 
			
		||||
  circle-icons: "円形のアイコンを使用"
 | 
			
		||||
  contrasted-acct: "ユーザー名にコントラストを付ける"
 | 
			
		||||
  timeline: "タイムライン"
 | 
			
		||||
  show-reply-target: "リプライ先を表示する"
 | 
			
		||||
  show-my-renotes: "自分の行ったRenoteを表示する"
 | 
			
		||||
  show-renoted-my-notes: "Renoteされた自分の投稿を表示する"
 | 
			
		||||
  show-renoted-my-notes: "自分の投稿のRenoteを表示する"
 | 
			
		||||
  show-local-renotes: "ローカルの投稿のRenoteを表示する"
 | 
			
		||||
  post-style: "投稿の表示スタイル"
 | 
			
		||||
  post-style-standard: "標準"
 | 
			
		||||
  post-style-smart: "スマート"
 | 
			
		||||
  notification-position: "通知の表示"
 | 
			
		||||
  notification-position-bottom: "下"
 | 
			
		||||
  notification-position-top: "上"
 | 
			
		||||
  theme: "テーマ"
 | 
			
		||||
  behavior: "動作"
 | 
			
		||||
  fetch-on-scroll: "スクロールで自動読み込み"
 | 
			
		||||
  note-visibility: "投稿の公開範囲"
 | 
			
		||||
  default-note-visibility: "デフォルトの公開範囲"
 | 
			
		||||
  remember-note-visibility: "投稿の公開範囲を記憶する"
 | 
			
		||||
  disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
 | 
			
		||||
  load-raw-images: "添付された画像を高画質で表示する"
 | 
			
		||||
  load-remote-media: "リモートサーバーのメディアを表示する"
 | 
			
		||||
@@ -908,6 +1283,8 @@ mobile/views/pages/settings.vue:
 | 
			
		||||
  update-available-desc: "ページを再度読み込みすると更新が適用されます。"
 | 
			
		||||
  settings: "設定"
 | 
			
		||||
  signout: "サインアウト"
 | 
			
		||||
  sound: "サウンド"
 | 
			
		||||
  enable-sounds: "サウンドを有効にする"
 | 
			
		||||
mobile/views/pages/user.vue:
 | 
			
		||||
  follows-you: "フォローされています"
 | 
			
		||||
  following: "フォロー"
 | 
			
		||||
@@ -962,3 +1339,5 @@ docs:
 | 
			
		||||
      name: "名前"
 | 
			
		||||
      type: "型"
 | 
			
		||||
      description: "説明"
 | 
			
		||||
dev/views/index.vue:
 | 
			
		||||
  manage-apps: "アプリの管理"
 | 
			
		||||
@@ -1,11 +0,0 @@
 | 
			
		||||
Misskeyの破壊的変更に対応するいくつかのスニペットがあります。
 | 
			
		||||
MongoDBシェルで実行する必要のあるものとnodeで直接実行する必要のあるものがあります。
 | 
			
		||||
ファイル名が `shell.` から始まるものは前者、 `node.` から始まるものは後者です。
 | 
			
		||||
 | 
			
		||||
MongoDBシェルで実行する場合、`use`でデータベースを選択しておく必要があります。
 | 
			
		||||
 | 
			
		||||
nodeで実行するいくつかのスニペットは、並列処理させる数を引数で設定できるものがあります。
 | 
			
		||||
処理中にエラーで落ちる場合は、メモリが足りていない可能性があるので、少ない数に設定してみてください。
 | 
			
		||||
※デフォルトは`5`です。
 | 
			
		||||
 | 
			
		||||
ファイルを作成する際は `../init-migration-file.sh -t _type_ -n _name_` を実行すると _type_._unixtime_._name_.js が生成されます
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
usage() {
 | 
			
		||||
		echo "$0 [-t type] [-n name]"
 | 
			
		||||
		echo "  type: [node | shell]"
 | 
			
		||||
		echo "  name: if no present, set untitled"
 | 
			
		||||
		exit 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
while getopts :t:n:h OPT
 | 
			
		||||
do
 | 
			
		||||
	case $OPT in
 | 
			
		||||
		t)	type=$OPTARG
 | 
			
		||||
				;;
 | 
			
		||||
		n)	name=$OPTARG
 | 
			
		||||
				;;
 | 
			
		||||
		h)	usage
 | 
			
		||||
				;;
 | 
			
		||||
		\?) usage
 | 
			
		||||
				;;
 | 
			
		||||
		:)	usage
 | 
			
		||||
				;;
 | 
			
		||||
	esac
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
if [ "$type" = "" ]
 | 
			
		||||
then
 | 
			
		||||
	echo "no type present!!!"
 | 
			
		||||
	usage
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
if [ "$name" = "" ]
 | 
			
		||||
then
 | 
			
		||||
	name="untitled"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
touch "$(realpath $(dirname $BASH_SOURCE))/migration/$type.$(date +%s).$name.js"
 | 
			
		||||
							
								
								
									
										151
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										151
									
								
								package.json
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
{
 | 
			
		||||
	"name": "misskey",
 | 
			
		||||
	"author": "syuilo <i@syuilo.com>",
 | 
			
		||||
	"version": "4.26.0",
 | 
			
		||||
	"clientVersion": "1.0.7435",
 | 
			
		||||
	"version": "10.10.1",
 | 
			
		||||
	"clientVersion": "1.0.10469",
 | 
			
		||||
	"codename": "nighthike",
 | 
			
		||||
	"main": "./built/index.js",
 | 
			
		||||
	"private": true,
 | 
			
		||||
@@ -20,20 +20,20 @@
 | 
			
		||||
		"format": "gulp format"
 | 
			
		||||
	},
 | 
			
		||||
	"dependencies": {
 | 
			
		||||
		"@fortawesome/fontawesome": "1.1.8",
 | 
			
		||||
		"@fortawesome/fontawesome-free-brands": "5.0.13",
 | 
			
		||||
		"@fortawesome/fontawesome-free-regular": "5.0.13",
 | 
			
		||||
		"@fortawesome/fontawesome-free-solid": "5.0.13",
 | 
			
		||||
		"@fortawesome/fontawesome-svg-core": "1.2.4",
 | 
			
		||||
		"@fortawesome/free-brands-svg-icons": "5.3.1",
 | 
			
		||||
		"@fortawesome/free-regular-svg-icons": "5.3.1",
 | 
			
		||||
		"@fortawesome/free-solid-svg-icons": "5.3.1",
 | 
			
		||||
		"@koa/cors": "2.2.2",
 | 
			
		||||
		"@prezzemolo/rap": "0.1.2",
 | 
			
		||||
		"@prezzemolo/zip": "0.0.3",
 | 
			
		||||
		"@types/bcryptjs": "2.4.1",
 | 
			
		||||
		"@types/bcryptjs": "2.4.2",
 | 
			
		||||
		"@types/dateformat": "1.0.1",
 | 
			
		||||
		"@types/debug": "0.0.30",
 | 
			
		||||
		"@types/debug": "0.0.31",
 | 
			
		||||
		"@types/deep-equal": "1.0.1",
 | 
			
		||||
		"@types/elasticsearch": "5.0.25",
 | 
			
		||||
		"@types/double-ended-queue": "2.1.0",
 | 
			
		||||
		"@types/elasticsearch": "5.0.27",
 | 
			
		||||
		"@types/file-type": "5.2.1",
 | 
			
		||||
		"@types/gm": "1.18.0",
 | 
			
		||||
		"@types/gulp": "3.8.36",
 | 
			
		||||
		"@types/gulp-htmlmin": "1.3.32",
 | 
			
		||||
		"@types/gulp-mocha": "0.0.32",
 | 
			
		||||
@@ -44,179 +44,194 @@
 | 
			
		||||
		"@types/is-root": "1.0.0",
 | 
			
		||||
		"@types/is-url": "1.2.28",
 | 
			
		||||
		"@types/js-yaml": "3.11.2",
 | 
			
		||||
		"@types/jsdom": "11.0.6",
 | 
			
		||||
		"@types/koa": "2.0.46",
 | 
			
		||||
		"@types/koa-bodyparser": "5.0.1",
 | 
			
		||||
		"@types/koa-compress": "2.0.8",
 | 
			
		||||
		"@types/koa-favicon": "2.0.19",
 | 
			
		||||
		"@types/koa-logger": "3.1.0",
 | 
			
		||||
		"@types/koa-logger": "3.1.1",
 | 
			
		||||
		"@types/koa-mount": "3.0.1",
 | 
			
		||||
		"@types/koa-multer": "1.0.0",
 | 
			
		||||
		"@types/koa-router": "7.0.30",
 | 
			
		||||
		"@types/koa-router": "7.0.32",
 | 
			
		||||
		"@types/koa-send": "4.1.1",
 | 
			
		||||
		"@types/koa-views": "2.0.3",
 | 
			
		||||
		"@types/koa__cors": "2.2.2",
 | 
			
		||||
		"@types/kue": "0.11.9",
 | 
			
		||||
		"@types/koa__cors": "2.2.3",
 | 
			
		||||
		"@types/minio": "7.0.0",
 | 
			
		||||
		"@types/mkdirp": "0.5.2",
 | 
			
		||||
		"@types/mocha": "5.2.3",
 | 
			
		||||
		"@types/mongodb": "3.1.1",
 | 
			
		||||
		"@types/mongodb": "3.1.12",
 | 
			
		||||
		"@types/ms": "0.7.30",
 | 
			
		||||
		"@types/node": "10.5.2",
 | 
			
		||||
		"@types/parse5": "5.0.0",
 | 
			
		||||
		"@types/node": "10.11.7",
 | 
			
		||||
		"@types/portscanner": "2.1.0",
 | 
			
		||||
		"@types/pug": "2.0.4",
 | 
			
		||||
		"@types/qrcode": "1.2.0",
 | 
			
		||||
		"@types/qrcode": "1.3.0",
 | 
			
		||||
		"@types/ratelimiter": "2.1.28",
 | 
			
		||||
		"@types/redis": "2.8.6",
 | 
			
		||||
		"@types/redis": "2.8.7",
 | 
			
		||||
		"@types/request": "2.47.1",
 | 
			
		||||
		"@types/request-promise-native": "1.0.15",
 | 
			
		||||
		"@types/rimraf": "2.0.2",
 | 
			
		||||
		"@types/seedrandom": "2.4.27",
 | 
			
		||||
		"@types/sharp": "0.17.10",
 | 
			
		||||
		"@types/showdown": "1.7.5",
 | 
			
		||||
		"@types/single-line-log": "1.1.0",
 | 
			
		||||
		"@types/speakeasy": "2.0.2",
 | 
			
		||||
		"@types/systeminformation": "3.23.0",
 | 
			
		||||
		"@types/tinycolor2": "1.4.1",
 | 
			
		||||
		"@types/tmp": "0.0.33",
 | 
			
		||||
		"@types/uuid": "3.4.3",
 | 
			
		||||
		"@types/webpack": "4.4.7",
 | 
			
		||||
		"@types/uuid": "3.4.4",
 | 
			
		||||
		"@types/webpack": "4.4.16",
 | 
			
		||||
		"@types/webpack-stream": "3.2.10",
 | 
			
		||||
		"@types/websocket": "0.0.39",
 | 
			
		||||
		"@types/ws": "5.1.2",
 | 
			
		||||
		"@types/websocket": "0.0.40",
 | 
			
		||||
		"@types/ws": "6.0.1",
 | 
			
		||||
		"animejs": "2.2.0",
 | 
			
		||||
		"autobind-decorator": "2.1.0",
 | 
			
		||||
		"autosize": "4.0.2",
 | 
			
		||||
		"autwh": "0.1.0",
 | 
			
		||||
		"bcryptjs": "2.4.3",
 | 
			
		||||
		"bee-queue": "1.2.2",
 | 
			
		||||
		"bootstrap-vue": "2.0.0-rc.11",
 | 
			
		||||
		"cafy": "11.3.0",
 | 
			
		||||
		"chalk": "2.4.1",
 | 
			
		||||
		"chart.js": "2.7.2",
 | 
			
		||||
		"commander": "2.19.0",
 | 
			
		||||
		"crc-32": "1.2.0",
 | 
			
		||||
		"css-loader": "1.0.0",
 | 
			
		||||
		"dateformat": "3.0.3",
 | 
			
		||||
		"debug": "3.1.0",
 | 
			
		||||
		"debug": "4.1.0",
 | 
			
		||||
		"deep-equal": "1.0.1",
 | 
			
		||||
		"deepcopy": "0.6.3",
 | 
			
		||||
		"diskusage": "0.2.4",
 | 
			
		||||
		"diskusage": "0.2.5",
 | 
			
		||||
		"dompurify": "1.0.5",
 | 
			
		||||
		"double-ended-queue": "2.1.0-0",
 | 
			
		||||
		"elasticsearch": "15.1.1",
 | 
			
		||||
		"element-ui": "2.4.4",
 | 
			
		||||
		"emojilib": "2.3.0",
 | 
			
		||||
		"escape-regexp": "0.0.1",
 | 
			
		||||
		"eslint": "5.0.1",
 | 
			
		||||
		"eslint-plugin-vue": "4.7.0",
 | 
			
		||||
		"eslint-plugin-vue": "4.7.1",
 | 
			
		||||
		"eventemitter3": "3.1.0",
 | 
			
		||||
		"exif-js": "2.3.0",
 | 
			
		||||
		"file-loader": "1.1.11",
 | 
			
		||||
		"file-type": "8.1.0",
 | 
			
		||||
		"file-loader": "2.0.0",
 | 
			
		||||
		"file-type": "10.0.0",
 | 
			
		||||
		"fuckadblock": "3.2.1",
 | 
			
		||||
		"gm": "1.23.1",
 | 
			
		||||
		"gulp": "3.9.1",
 | 
			
		||||
		"gulp-cssnano": "2.1.3",
 | 
			
		||||
		"gulp-htmlmin": "4.0.0",
 | 
			
		||||
		"gulp-htmlmin": "5.0.1",
 | 
			
		||||
		"gulp-imagemin": "4.1.0",
 | 
			
		||||
		"gulp-mocha": "6.0.0",
 | 
			
		||||
		"gulp-pug": "4.0.1",
 | 
			
		||||
		"gulp-rename": "1.3.0",
 | 
			
		||||
		"gulp-rename": "1.4.0",
 | 
			
		||||
		"gulp-replace": "1.0.0",
 | 
			
		||||
		"gulp-sourcemaps": "2.6.4",
 | 
			
		||||
		"gulp-stylus": "2.7.0",
 | 
			
		||||
		"gulp-tslint": "8.1.3",
 | 
			
		||||
		"gulp-typescript": "4.0.2",
 | 
			
		||||
		"gulp-uglify": "3.0.0",
 | 
			
		||||
		"gulp-uglify": "3.0.1",
 | 
			
		||||
		"gulp-util": "3.0.8",
 | 
			
		||||
		"hard-source-webpack-plugin": "0.11.1",
 | 
			
		||||
		"hard-source-webpack-plugin": "0.12.0",
 | 
			
		||||
		"highlight.js": "9.12.0",
 | 
			
		||||
		"html-minifier": "3.5.19",
 | 
			
		||||
		"html-minifier": "3.5.20",
 | 
			
		||||
		"http-signature": "1.2.0",
 | 
			
		||||
		"insert-text-at-cursor": "0.1.1",
 | 
			
		||||
		"is-root": "2.0.0",
 | 
			
		||||
		"is-url": "1.2.4",
 | 
			
		||||
		"jquery": "3.3.1",
 | 
			
		||||
		"js-yaml": "3.12.0",
 | 
			
		||||
		"jsdom": "11.11.0",
 | 
			
		||||
		"jsdom": "12.2.0",
 | 
			
		||||
		"json5": "2.1.0",
 | 
			
		||||
		"json5-loader": "1.0.1",
 | 
			
		||||
		"koa": "2.5.1",
 | 
			
		||||
		"koa-bodyparser": "4.2.1",
 | 
			
		||||
		"koa-compress": "3.0.0",
 | 
			
		||||
		"koa-favicon": "2.0.1",
 | 
			
		||||
		"koa-json-body": "5.3.0",
 | 
			
		||||
		"koa-logger": "3.2.0",
 | 
			
		||||
		"koa-mount": "3.0.0",
 | 
			
		||||
		"koa-mount": "4.0.0",
 | 
			
		||||
		"koa-multer": "1.0.2",
 | 
			
		||||
		"koa-router": "7.4.0",
 | 
			
		||||
		"koa-send": "5.0.0",
 | 
			
		||||
		"koa-slow": "2.1.0",
 | 
			
		||||
		"koa-views": "6.1.4",
 | 
			
		||||
		"kue": "0.11.6",
 | 
			
		||||
		"loader-utils": "1.1.0",
 | 
			
		||||
		"lodash.assign": "4.2.0",
 | 
			
		||||
		"mecab-async": "0.1.2",
 | 
			
		||||
		"merge-options": "1.0.1",
 | 
			
		||||
		"minio": "7.0.1",
 | 
			
		||||
		"mkdirp": "0.5.1",
 | 
			
		||||
		"mocha": "5.2.0",
 | 
			
		||||
		"moji": "0.5.1",
 | 
			
		||||
		"mongodb": "3.1.1",
 | 
			
		||||
		"monk": "6.0.6",
 | 
			
		||||
		"ms": "2.1.1",
 | 
			
		||||
		"nan": "2.10.0",
 | 
			
		||||
		"node-sass": "4.9.2",
 | 
			
		||||
		"node-sass-json-importer": "3.3.1",
 | 
			
		||||
		"nan": "2.11.1",
 | 
			
		||||
		"nested-property": "0.0.7",
 | 
			
		||||
		"nprogress": "0.2.0",
 | 
			
		||||
		"object-assign-deep": "0.4.0",
 | 
			
		||||
		"on-build-webpack": "0.1.0",
 | 
			
		||||
		"os-utils": "0.0.14",
 | 
			
		||||
		"parse5": "5.0.0",
 | 
			
		||||
		"parse5": "5.1.0",
 | 
			
		||||
		"portscanner": "2.2.0",
 | 
			
		||||
		"progress-bar-webpack-plugin": "1.11.0",
 | 
			
		||||
		"prominence": "0.2.0",
 | 
			
		||||
		"promise-limit": "2.7.0",
 | 
			
		||||
		"promise-sequential": "1.1.1",
 | 
			
		||||
		"pug": "2.0.3",
 | 
			
		||||
		"punycode": "2.1.1",
 | 
			
		||||
		"qrcode": "1.2.0",
 | 
			
		||||
		"ratelimiter": "3.1.0",
 | 
			
		||||
		"qrcode": "1.3.0",
 | 
			
		||||
		"ratelimiter": "3.2.0",
 | 
			
		||||
		"recaptcha-promise": "0.1.3",
 | 
			
		||||
		"reconnecting-websocket": "3.2.2",
 | 
			
		||||
		"reconnecting-websocket": "4.1.5",
 | 
			
		||||
		"redis": "2.8.0",
 | 
			
		||||
		"request": "2.87.0",
 | 
			
		||||
		"request": "2.88.0",
 | 
			
		||||
		"request-promise-native": "1.0.5",
 | 
			
		||||
		"request-stats": "3.0.0",
 | 
			
		||||
		"rimraf": "2.6.2",
 | 
			
		||||
		"rndstr": "1.0.0",
 | 
			
		||||
		"s-age": "1.1.2",
 | 
			
		||||
		"sass-loader": "7.0.3",
 | 
			
		||||
		"seedrandom": "2.4.3",
 | 
			
		||||
		"sass-loader": "7.1.0",
 | 
			
		||||
		"seedrandom": "2.4.4",
 | 
			
		||||
		"sharp": "0.21.0",
 | 
			
		||||
		"showdown": "1.8.6",
 | 
			
		||||
		"showdown-highlightjs-extension": "0.1.2",
 | 
			
		||||
		"single-line-log": "1.1.2",
 | 
			
		||||
		"speakeasy": "2.0.0",
 | 
			
		||||
		"style-loader": "0.21.0",
 | 
			
		||||
		"stringz": "1.0.0",
 | 
			
		||||
		"style-loader": "0.23.1",
 | 
			
		||||
		"stylus": "0.54.5",
 | 
			
		||||
		"stylus-loader": "3.0.2",
 | 
			
		||||
		"summaly": "2.0.6",
 | 
			
		||||
		"swagger-jsdoc": "1.10.2",
 | 
			
		||||
		"summaly": "2.2.0",
 | 
			
		||||
		"systeminformation": "3.45.7",
 | 
			
		||||
		"syuilo-password-strength": "0.0.1",
 | 
			
		||||
		"textarea-caret": "3.1.0",
 | 
			
		||||
		"tinycolor2": "1.4.1",
 | 
			
		||||
		"tmp": "0.0.33",
 | 
			
		||||
		"ts-loader": "4.4.1",
 | 
			
		||||
		"ts-node": "7.0.0",
 | 
			
		||||
		"ts-node": "7.0.1",
 | 
			
		||||
		"tslint": "5.10.0",
 | 
			
		||||
		"typescript": "2.9.2",
 | 
			
		||||
		"typescript-eslint-parser": "16.0.1",
 | 
			
		||||
		"typescript-eslint-parser": "20.0.0",
 | 
			
		||||
		"uglify-es": "3.3.9",
 | 
			
		||||
		"url-loader": "1.0.1",
 | 
			
		||||
		"url-loader": "1.1.2",
 | 
			
		||||
		"uuid": "3.3.2",
 | 
			
		||||
		"v-animate-css": "0.0.2",
 | 
			
		||||
		"vue": "2.5.16",
 | 
			
		||||
		"vue-cropperjs": "2.2.1",
 | 
			
		||||
		"vue-js-modal": "1.3.16",
 | 
			
		||||
		"vue": "2.5.17",
 | 
			
		||||
		"vue-chartjs": "3.4.0",
 | 
			
		||||
		"vue-color": "2.7.0",
 | 
			
		||||
		"vue-cropperjs": "2.2.2",
 | 
			
		||||
		"vue-js-modal": "1.3.26",
 | 
			
		||||
		"vue-json-tree-view": "2.1.4",
 | 
			
		||||
		"vue-loader": "15.2.6",
 | 
			
		||||
		"vue-loader": "15.4.2",
 | 
			
		||||
		"vue-router": "3.0.1",
 | 
			
		||||
		"vue-style-loader": "4.1.1",
 | 
			
		||||
		"vue-template-compiler": "2.5.16",
 | 
			
		||||
		"vue-style-loader": "4.1.2",
 | 
			
		||||
		"vue-svg-inline-loader": "1.2.0",
 | 
			
		||||
		"vue-sweetalert2": "1.5.5",
 | 
			
		||||
		"vue-template-compiler": "2.5.17",
 | 
			
		||||
		"vuedraggable": "2.16.0",
 | 
			
		||||
		"vuewordcloud": "18.7.11",
 | 
			
		||||
		"vuex": "3.0.1",
 | 
			
		||||
		"vuex-persistedstate": "2.5.4",
 | 
			
		||||
		"web-push": "3.3.2",
 | 
			
		||||
		"web-push": "3.3.3",
 | 
			
		||||
		"webfinger.js": "2.6.6",
 | 
			
		||||
		"webpack": "4.16.1",
 | 
			
		||||
		"webpack-cli": "3.1.0",
 | 
			
		||||
		"websocket": "1.0.26",
 | 
			
		||||
		"ws": "5.2.2",
 | 
			
		||||
		"webpack": "4.20.2",
 | 
			
		||||
		"webpack-cli": "3.1.2",
 | 
			
		||||
		"websocket": "1.0.28",
 | 
			
		||||
		"ws": "6.1.0",
 | 
			
		||||
		"xev": "2.0.1"
 | 
			
		||||
	},
 | 
			
		||||
	"greenkeeper": {
 | 
			
		||||
 
 | 
			
		||||
@@ -6,6 +6,10 @@ html
 | 
			
		||||
		&, *
 | 
			
		||||
			cursor progress !important
 | 
			
		||||
 | 
			
		||||
html
 | 
			
		||||
	// iOSのため
 | 
			
		||||
	overflow auto
 | 
			
		||||
 | 
			
		||||
body
 | 
			
		||||
	overflow-wrap break-word
 | 
			
		||||
 | 
			
		||||
@@ -23,7 +27,7 @@ body
 | 
			
		||||
	z-index 65536
 | 
			
		||||
 | 
			
		||||
	.bar
 | 
			
		||||
		background $theme-color
 | 
			
		||||
		background var(--primary)
 | 
			
		||||
 | 
			
		||||
		position fixed
 | 
			
		||||
		z-index 65537
 | 
			
		||||
@@ -40,7 +44,7 @@ body
 | 
			
		||||
		right 0px
 | 
			
		||||
		width 100px
 | 
			
		||||
		height 100%
 | 
			
		||||
		box-shadow 0 0 10px $theme-color, 0 0 5px $theme-color
 | 
			
		||||
		box-shadow 0 0 10px var(--primary), 0 0 5px var(--primary)
 | 
			
		||||
		opacity 1
 | 
			
		||||
 | 
			
		||||
		transform rotate(3deg) translate(0px, -4px)
 | 
			
		||||
@@ -60,8 +64,8 @@ body
 | 
			
		||||
		box-sizing border-box
 | 
			
		||||
 | 
			
		||||
		border solid 2px transparent
 | 
			
		||||
		border-top-color $theme-color
 | 
			
		||||
		border-left-color $theme-color
 | 
			
		||||
		border-top-color var(--primary)
 | 
			
		||||
		border-left-color var(--primary)
 | 
			
		||||
		border-radius 50%
 | 
			
		||||
 | 
			
		||||
		animation progress-spinner 400ms linear infinite
 | 
			
		||||
@@ -126,3 +130,29 @@ pre
 | 
			
		||||
 | 
			
		||||
[data-fa]
 | 
			
		||||
	display inline-block
 | 
			
		||||
 | 
			
		||||
.swal2-container
 | 
			
		||||
	z-index 10000 !important
 | 
			
		||||
 | 
			
		||||
	&.swal2-shown
 | 
			
		||||
		background-color rgba(0, 0, 0, 0.5) !important
 | 
			
		||||
 | 
			
		||||
.swal2-popup
 | 
			
		||||
	background var(--face) !important
 | 
			
		||||
 | 
			
		||||
.swal2-content
 | 
			
		||||
	color var(--text) !important
 | 
			
		||||
 | 
			
		||||
.swal2-confirm
 | 
			
		||||
	background-color var(--primary) !important
 | 
			
		||||
	border-left-color var(--primary) !important
 | 
			
		||||
	border-right-color var(--primary) !important
 | 
			
		||||
	color var(--primaryForeground) !important
 | 
			
		||||
 | 
			
		||||
	&:hover
 | 
			
		||||
		background-image none !important
 | 
			
		||||
		background-color var(--primaryDarken5) !important
 | 
			
		||||
 | 
			
		||||
	&:active
 | 
			
		||||
		background-image none !important
 | 
			
		||||
		background-color var(--primaryDarken5) !important
 | 
			
		||||
 
 | 
			
		||||
@@ -1,3 +1,32 @@
 | 
			
		||||
<template>
 | 
			
		||||
<router-view id="app"></router-view>
 | 
			
		||||
<router-view id="app" v-hotkey.global="keymap"></router-view>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
import { url, lang } from './config';
 | 
			
		||||
 | 
			
		||||
export default Vue.extend({
 | 
			
		||||
	computed: {
 | 
			
		||||
		keymap(): any {
 | 
			
		||||
			return {
 | 
			
		||||
				'h|slash': this.help,
 | 
			
		||||
				'd': this.dark
 | 
			
		||||
			};
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		help() {
 | 
			
		||||
			window.open(`${url}/docs/${lang}/keyboard-shortcut`, '_blank');
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		dark() {
 | 
			
		||||
			this.$store.commit('device/set', {
 | 
			
		||||
				key: 'darkmode',
 | 
			
		||||
				value: !this.$store.state.device.darkmode
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,14 +8,14 @@ import VueRouter from 'vue-router';
 | 
			
		||||
import './style.styl';
 | 
			
		||||
 | 
			
		||||
import init from '../init';
 | 
			
		||||
 | 
			
		||||
import Index from './views/index.vue';
 | 
			
		||||
import * as config from '../config';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * init
 | 
			
		||||
 */
 | 
			
		||||
init(launch => {
 | 
			
		||||
	document.title = 'Misskey | アプリの連携';
 | 
			
		||||
	document.title = `${config.name} | %i18n:common.application-authorization%`;
 | 
			
		||||
 | 
			
		||||
	// Init router
 | 
			
		||||
	const router = new VueRouter({
 | 
			
		||||
 
 | 
			
		||||
@@ -1,35 +1,35 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="form">
 | 
			
		||||
	<header>
 | 
			
		||||
		<h1><i>{{ app.name }}</i>があなたのアカウントにアクセスすることを<b>許可</b>しますか?</h1>
 | 
			
		||||
		<img :src="`${app.iconUrl}?thumbnail&size=64`"/>
 | 
			
		||||
		<h1>%i18n:@share-access%</h1>
 | 
			
		||||
		<img :src="app.iconUrl"/>
 | 
			
		||||
	</header>
 | 
			
		||||
	<div class="app">
 | 
			
		||||
		<section>
 | 
			
		||||
			<h2>{{ app.name }}</h2>
 | 
			
		||||
			<p class="nid">{{ app.nameId }}</p>
 | 
			
		||||
			<p class="id">{{ app.id }}</p>
 | 
			
		||||
			<p class="description">{{ app.description }}</p>
 | 
			
		||||
		</section>
 | 
			
		||||
		<section>
 | 
			
		||||
			<h2>このアプリは次の権限を要求しています:</h2>
 | 
			
		||||
			<h2>%i18n:@permission-ask%</h2>
 | 
			
		||||
			<ul>
 | 
			
		||||
				<template v-for="p in app.permission">
 | 
			
		||||
					<li v-if="p == 'account-read'">アカウントの情報を見る。</li>
 | 
			
		||||
					<li v-if="p == 'account-write'">アカウントの情報を操作する。</li>
 | 
			
		||||
					<li v-if="p == 'note-write'">投稿する。</li>
 | 
			
		||||
					<li v-if="p == 'like-write'">いいねしたりいいね解除する。</li>
 | 
			
		||||
					<li v-if="p == 'following-write'">フォローしたりフォロー解除する。</li>
 | 
			
		||||
					<li v-if="p == 'drive-read'">ドライブを見る。</li>
 | 
			
		||||
					<li v-if="p == 'drive-write'">ドライブを操作する。</li>
 | 
			
		||||
					<li v-if="p == 'notification-read'">通知を見る。</li>
 | 
			
		||||
					<li v-if="p == 'notification-write'">通知を操作する。</li>
 | 
			
		||||
					<li v-if="p == 'account-read'">%i18n:@account-read%</li>
 | 
			
		||||
					<li v-if="p == 'account-write'">%i18n:@account-write%</li>
 | 
			
		||||
					<li v-if="p == 'note-write'">%i18n:@note-write%</li>
 | 
			
		||||
					<li v-if="p == 'like-write'">%i18n:@like-write%</li>
 | 
			
		||||
					<li v-if="p == 'following-write'">%i18n:@following-write%</li>
 | 
			
		||||
					<li v-if="p == 'drive-read'">%i18n:@drive-read%</li>
 | 
			
		||||
					<li v-if="p == 'drive-write'">%i18n:@drive-write%</li>
 | 
			
		||||
					<li v-if="p == 'notification-read'">%i18n:@notification-read%</li>
 | 
			
		||||
					<li v-if="p == 'notification-write'">%i18n:@notification-write%</li>
 | 
			
		||||
				</template>
 | 
			
		||||
			</ul>
 | 
			
		||||
		</section>
 | 
			
		||||
	</div>
 | 
			
		||||
	<div class="action">
 | 
			
		||||
		<button @click="cancel">キャンセル</button>
 | 
			
		||||
		<button @click="accept">アクセスを許可</button>
 | 
			
		||||
		<button @click="cancel">%i18n:@cancel%</button>
 | 
			
		||||
		<button @click="accept">%i18n:@accept%</button>
 | 
			
		||||
	</div>
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="index">
 | 
			
		||||
	<main v-if="$store.getters.isSignedIn">
 | 
			
		||||
		<p class="fetching" v-if="fetching">読み込み中<mk-ellipsis/></p>
 | 
			
		||||
		<p class="fetching" v-if="fetching">%i18n:@loading%<mk-ellipsis/></p>
 | 
			
		||||
		<x-form
 | 
			
		||||
			class="form"
 | 
			
		||||
			ref="form"
 | 
			
		||||
@@ -11,20 +11,20 @@
 | 
			
		||||
			@accepted="accepted"
 | 
			
		||||
		/>
 | 
			
		||||
		<div class="denied" v-if="state == 'denied'">
 | 
			
		||||
			<h1>アプリケーションの連携をキャンセルしました。</h1>
 | 
			
		||||
			<p>このアプリがあなたのアカウントにアクセスすることはありません。</p>
 | 
			
		||||
			<h1>%i18n:@denied%</h1>
 | 
			
		||||
			<p>%i18n:@denied-paragraph%</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="accepted" v-if="state == 'accepted'">
 | 
			
		||||
			<h1>{{ session.app.isAuthorized ? 'このアプリは既に連携済みです' : 'アプリケーションの連携を許可しました' }}</h1>
 | 
			
		||||
			<p v-if="session.app.callbackUrl">アプリケーションに戻っています<mk-ellipsis/></p>
 | 
			
		||||
			<p v-if="!session.app.callbackUrl">アプリケーションに戻って、やっていってください。</p>
 | 
			
		||||
			<h1>{{ session.app.isAuthorized ? '%i18n:@already-authorized%' : '%i18n:@allowed%' }}</h1>
 | 
			
		||||
			<p v-if="session.app.callbackUrl">%i18n:@callback-url%<mk-ellipsis/></p>
 | 
			
		||||
			<p v-if="!session.app.callbackUrl">%i18n:@please-go-back%</p>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="error" v-if="state == 'fetch-session-error'">
 | 
			
		||||
			<p>セッションが存在しません。</p>
 | 
			
		||||
			<p>%i18n:@error%</p>
 | 
			
		||||
		</div>
 | 
			
		||||
	</main>
 | 
			
		||||
	<main class="signin" v-if="!$store.getters.isSignedIn">
 | 
			
		||||
		<h1>サインインしてください</h1>
 | 
			
		||||
		<h1>%i18n:@sign-in%</h1>
 | 
			
		||||
		<mk-signin/>
 | 
			
		||||
	</main>
 | 
			
		||||
	<footer><img src="/assets/auth/icon.svg" alt="Misskey"/></footer>
 | 
			
		||||
@@ -80,7 +80,7 @@ export default Vue.extend({
 | 
			
		||||
		accepted() {
 | 
			
		||||
			this.state = 'accepted';
 | 
			
		||||
			if (this.session.app.callbackUrl) {
 | 
			
		||||
				location.href = this.session.app.callbackUrl + '?token=' + this.session.token;
 | 
			
		||||
				location.href = `${this.session.app.callbackUrl}?token=${this.session.token}`;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
@@ -34,9 +34,6 @@ html
 | 
			
		||||
		//- FontAwesome style
 | 
			
		||||
		style #{facss}
 | 
			
		||||
 | 
			
		||||
		//- highlight.js style
 | 
			
		||||
		style #{hljscss}
 | 
			
		||||
 | 
			
		||||
	body
 | 
			
		||||
		noscript: p
 | 
			
		||||
			| JavaScriptを有効にしてください
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,17 @@
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	const langs = LANGS;
 | 
			
		||||
 | 
			
		||||
	//#region Apply theme
 | 
			
		||||
	const theme = localStorage.getItem('theme');
 | 
			
		||||
	if (theme) {
 | 
			
		||||
		Object.entries(JSON.parse(theme)).forEach(([k, v]) => {
 | 
			
		||||
			document.documentElement.style.setProperty(`--${k}`, v.toString());
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	//#region Load settings
 | 
			
		||||
	let settings = null;
 | 
			
		||||
	const vuex = localStorage.getItem('vuex');
 | 
			
		||||
@@ -32,19 +43,28 @@
 | 
			
		||||
	//#region Detect app name
 | 
			
		||||
	let app = null;
 | 
			
		||||
 | 
			
		||||
	if (url.pathname == '/docs' || url.pathname.startsWith('/docs/')) app = 'docs';
 | 
			
		||||
	if (url.pathname == '/dev' || url.pathname.startsWith('/dev/')) app = 'dev';
 | 
			
		||||
	if (url.pathname == '/auth' || url.pathname.startsWith('/auth/')) app = 'auth';
 | 
			
		||||
	if (`${url.pathname}/`.startsWith('/docs/')) app = 'docs';
 | 
			
		||||
	if (`${url.pathname}/`.startsWith('/dev/')) app = 'dev';
 | 
			
		||||
	if (`${url.pathname}/`.startsWith('/auth/')) app = 'auth';
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
	//#region Detect the user language
 | 
			
		||||
	let lang = navigator.language.split('-')[0];
 | 
			
		||||
	let lang = null;
 | 
			
		||||
 | 
			
		||||
	// The default language is English
 | 
			
		||||
	if (!LANGS.includes(lang)) lang = 'en';
 | 
			
		||||
	if (langs.includes(navigator.language)) {
 | 
			
		||||
		lang = navigator.language;
 | 
			
		||||
	} else {
 | 
			
		||||
		lang = langs.find(x => x.split('-')[0] == navigator.language);
 | 
			
		||||
 | 
			
		||||
	if (settings) {
 | 
			
		||||
		if (settings.device.lang) lang = settings.device.lang;
 | 
			
		||||
		if (lang == null) {
 | 
			
		||||
			// Fallback
 | 
			
		||||
			lang = 'en-US';
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (settings && settings.device.lang &&
 | 
			
		||||
		langs.includes(settings.device.lang)) {
 | 
			
		||||
		lang = settings.device.lang;
 | 
			
		||||
	}
 | 
			
		||||
	//#endregion
 | 
			
		||||
 | 
			
		||||
@@ -73,19 +93,12 @@
 | 
			
		||||
		app = isMobile ? 'mobile' : 'desktop';
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Dark/Light
 | 
			
		||||
	if (settings) {
 | 
			
		||||
		if (settings.device.darkmode) {
 | 
			
		||||
			document.documentElement.setAttribute('data-darkmode', 'true');
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Script version
 | 
			
		||||
	const ver = localStorage.getItem('v') || VERSION;
 | 
			
		||||
 | 
			
		||||
	// Get salt query
 | 
			
		||||
	const salt = localStorage.getItem('salt')
 | 
			
		||||
		? '?salt=' + localStorage.getItem('salt')
 | 
			
		||||
		? `?salt=${localStorage.getItem('salt')}`
 | 
			
		||||
		: '';
 | 
			
		||||
 | 
			
		||||
	// Load an app script
 | 
			
		||||
@@ -104,7 +117,7 @@
 | 
			
		||||
	// グローバルにタイマーIDを代入しておく
 | 
			
		||||
	window.mkBootTimer = window.setTimeout(async () => {
 | 
			
		||||
		// Fetch meta
 | 
			
		||||
		const res = await fetch(API + '/meta', {
 | 
			
		||||
		const res = await fetch('/api/meta', {
 | 
			
		||||
			method: 'POST',
 | 
			
		||||
			cache: 'no-cache'
 | 
			
		||||
		});
 | 
			
		||||
@@ -131,7 +144,7 @@
 | 
			
		||||
		// Random
 | 
			
		||||
		localStorage.setItem('salt', Math.random().toString());
 | 
			
		||||
 | 
			
		||||
		// Clear cache (serive worker)
 | 
			
		||||
		// Clear cache (service worker)
 | 
			
		||||
		try {
 | 
			
		||||
			navigator.serviceWorker.controller.postMessage('clear');
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										110
									
								
								src/client/app/common/hotkey.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								src/client/app/common/hotkey.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
			
		||||
import keyCode from './keycode';
 | 
			
		||||
import { concat } from '../../../prelude/array';
 | 
			
		||||
 | 
			
		||||
type pattern = {
 | 
			
		||||
	which: string[];
 | 
			
		||||
	ctrl?: boolean;
 | 
			
		||||
	shift?: boolean;
 | 
			
		||||
	alt?: boolean;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
type action = {
 | 
			
		||||
	patterns: pattern[];
 | 
			
		||||
 | 
			
		||||
	callback: Function;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => {
 | 
			
		||||
	const result = {
 | 
			
		||||
		patterns: [],
 | 
			
		||||
		callback: callback
 | 
			
		||||
	} as action;
 | 
			
		||||
 | 
			
		||||
	result.patterns = patterns.split('|').map(part => {
 | 
			
		||||
		const pattern = {
 | 
			
		||||
			which: [],
 | 
			
		||||
			ctrl: false,
 | 
			
		||||
			alt: false,
 | 
			
		||||
			shift: false
 | 
			
		||||
		} as pattern;
 | 
			
		||||
 | 
			
		||||
		part.trim().split('+').forEach(key => {
 | 
			
		||||
			key = key.trim().toLowerCase();
 | 
			
		||||
			switch (key) {
 | 
			
		||||
				case 'ctrl': pattern.ctrl = true; break;
 | 
			
		||||
				case 'alt': pattern.alt = true; break;
 | 
			
		||||
				case 'shift': pattern.shift = true; break;
 | 
			
		||||
				default: pattern.which = keyCode(key).map(k => k.toLowerCase());
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		return pattern;
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	return result;
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
const ignoreElemens = ['input', 'textarea'];
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
	install(Vue) {
 | 
			
		||||
		Vue.directive('hotkey', {
 | 
			
		||||
			bind(el, binding) {
 | 
			
		||||
				el._hotkey_global = binding.modifiers.global === true;
 | 
			
		||||
 | 
			
		||||
				const actions = getKeyMap(binding.value);
 | 
			
		||||
 | 
			
		||||
				// flatten
 | 
			
		||||
				const reservedKeys = concat(concat(actions.map(a => a.patterns.map(p => p.which))));
 | 
			
		||||
 | 
			
		||||
				el.dataset.reservedKeys = reservedKeys.map(key => `'${key}'`).join(' ');
 | 
			
		||||
 | 
			
		||||
				el._keyHandler = (e: KeyboardEvent) => {
 | 
			
		||||
					const key = e.code.toLowerCase();
 | 
			
		||||
 | 
			
		||||
					const targetReservedKeys = document.activeElement ? ((document.activeElement as any).dataset || {}).reservedKeys || '' : '';
 | 
			
		||||
					if (document.activeElement && ignoreElemens.some(el => document.activeElement.matches(el))) return;
 | 
			
		||||
 | 
			
		||||
					for (const action of actions) {
 | 
			
		||||
						if (el._hotkey_global && targetReservedKeys.includes(`'${key}'`)) break;
 | 
			
		||||
 | 
			
		||||
						const matched = action.patterns.some(pattern => {
 | 
			
		||||
							const matched = pattern.which.includes(key) &&
 | 
			
		||||
								pattern.ctrl == e.ctrlKey &&
 | 
			
		||||
								pattern.shift == e.shiftKey &&
 | 
			
		||||
								pattern.alt == e.altKey &&
 | 
			
		||||
								e.metaKey == false;
 | 
			
		||||
 | 
			
		||||
							if (matched) {
 | 
			
		||||
								e.preventDefault();
 | 
			
		||||
								e.stopPropagation();
 | 
			
		||||
								action.callback(e);
 | 
			
		||||
								return true;
 | 
			
		||||
							} else {
 | 
			
		||||
								return false;
 | 
			
		||||
							}
 | 
			
		||||
						});
 | 
			
		||||
 | 
			
		||||
						if (matched) {
 | 
			
		||||
							break;
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
				};
 | 
			
		||||
 | 
			
		||||
				if (el._hotkey_global) {
 | 
			
		||||
					document.addEventListener('keydown', el._keyHandler);
 | 
			
		||||
				} else {
 | 
			
		||||
					el.addEventListener('keydown', el._keyHandler);
 | 
			
		||||
				}
 | 
			
		||||
			},
 | 
			
		||||
 | 
			
		||||
			unbind(el) {
 | 
			
		||||
				if (el._hotkey_global) {
 | 
			
		||||
					document.removeEventListener('keydown', el._keyHandler);
 | 
			
		||||
				} else {
 | 
			
		||||
					el.removeEventListener('keydown', el._keyHandler);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										33
									
								
								src/client/app/common/keycode.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								src/client/app/common/keycode.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
			
		||||
export default (input: string): string[] => {
 | 
			
		||||
	if (Object.keys(aliases).some(a => a.toLowerCase() == input.toLowerCase())) {
 | 
			
		||||
		const codes = aliases[input];
 | 
			
		||||
		return Array.isArray(codes) ? codes : [codes];
 | 
			
		||||
	} else {
 | 
			
		||||
		return [input];
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export const aliases = {
 | 
			
		||||
	'esc': 'Escape',
 | 
			
		||||
	'enter': ['Enter', 'NumpadEnter'],
 | 
			
		||||
	'up': 'ArrowUp',
 | 
			
		||||
	'down': 'ArrowDown',
 | 
			
		||||
	'left': 'ArrowLeft',
 | 
			
		||||
	'right': 'ArrowRight',
 | 
			
		||||
	'plus': ['NumpadAdd', 'Semicolon'],
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/*!
 | 
			
		||||
* Programatically add the following
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
// lower case chars
 | 
			
		||||
for (let i = 97; i < 123; i++) {
 | 
			
		||||
	const char = String.fromCharCode(i);
 | 
			
		||||
	aliases[char] = `Key${char.toUpperCase()}`;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// numbers
 | 
			
		||||
for (let i = 0; i < 10; i++) {
 | 
			
		||||
	aliases[i] = [`Numpad${i}`, `Digit${i}`];
 | 
			
		||||
}
 | 
			
		||||
@@ -9,7 +9,7 @@ export default async function(mios: MiOS, force = false, silent = false) {
 | 
			
		||||
		localStorage.setItem('should-refresh', 'true');
 | 
			
		||||
		localStorage.setItem('v', newer);
 | 
			
		||||
 | 
			
		||||
		// Clear cache (serive worker)
 | 
			
		||||
		// Clear cache (service worker)
 | 
			
		||||
		try {
 | 
			
		||||
			if (navigator.serviceWorker.controller) {
 | 
			
		||||
				navigator.serviceWorker.controller.postMessage('clear');
 | 
			
		||||
 
 | 
			
		||||
@@ -13,55 +13,55 @@ type Notification = {
 | 
			
		||||
 | 
			
		||||
export default function(type, data): Notification {
 | 
			
		||||
	switch (type) {
 | 
			
		||||
		case 'drive_file_created':
 | 
			
		||||
		case 'driveFileCreated':
 | 
			
		||||
			return {
 | 
			
		||||
				title: 'ファイルがアップロードされました',
 | 
			
		||||
				title: '%i18n:common.notification.file-uploaded%',
 | 
			
		||||
				body: data.name,
 | 
			
		||||
				icon: data.url + '?thumbnail&size=64'
 | 
			
		||||
				icon: data.url
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		case 'unread_messaging_message':
 | 
			
		||||
		case 'unreadMessagingMessage':
 | 
			
		||||
			return {
 | 
			
		||||
				title: `${getUserName(data.user)}さんからメッセージ:`,
 | 
			
		||||
				title: '%i18n:common.notification.message-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.message-from%'.split("{}")[1] ,
 | 
			
		||||
				body: data.text, // TODO: getMessagingMessageSummary(data),
 | 
			
		||||
				icon: data.user.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
				icon: data.user.avatarUrl
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		case 'reversi_invited':
 | 
			
		||||
		case 'reversiInvited':
 | 
			
		||||
			return {
 | 
			
		||||
				title: '対局への招待があります',
 | 
			
		||||
				body: `${getUserName(data.parent)}さんから`,
 | 
			
		||||
				icon: data.parent.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
				title: '%i18n:common.notification.reversi-invited%',
 | 
			
		||||
				body: '%i18n:common.notification.reversi-invited-by%'.split("{}")[0] + `${getUserName(data.parent)}` + '%i18n:common.notification.reversi-invited-by%'.split("{}")[1],
 | 
			
		||||
				icon: data.parent.avatarUrl
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
		case 'notification':
 | 
			
		||||
			switch (data.type) {
 | 
			
		||||
				case 'mention':
 | 
			
		||||
					return {
 | 
			
		||||
						title: `${getUserName(data.user)}さんから:`,
 | 
			
		||||
						title: '%i18n:common.notification.notified-by%'.split("{}")[0] + `${getUserName(data.user)}:` + '%i18n:common.notification.notified-by%'.split("{}")[1],
 | 
			
		||||
						body: getNoteSummary(data),
 | 
			
		||||
						icon: data.user.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
						icon: data.user.avatarUrl
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
				case 'reply':
 | 
			
		||||
					return {
 | 
			
		||||
						title: `${getUserName(data.user)}さんから返信:`,
 | 
			
		||||
						title: '%i18n:common.notification.reply-from%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.reply-from%'.split("{}")[1],
 | 
			
		||||
						body: getNoteSummary(data),
 | 
			
		||||
						icon: data.user.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
						icon: data.user.avatarUrl
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
				case 'quote':
 | 
			
		||||
					return {
 | 
			
		||||
						title: `${getUserName(data.user)}さんが引用:`,
 | 
			
		||||
						title: '%i18n:common.notification.quoted-by%'.split("{}")[0] + `${getUserName(data.user)}` + '%i18n:common.notification.quoted-by%'.split("{}")[1],
 | 
			
		||||
						body: getNoteSummary(data),
 | 
			
		||||
						icon: data.user.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
						icon: data.user.avatarUrl
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
				case 'reaction':
 | 
			
		||||
					return {
 | 
			
		||||
						title: `${getUserName(data.user)}: ${getReactionEmoji(data.reaction)}:`,
 | 
			
		||||
						body: getNoteSummary(data.note),
 | 
			
		||||
						icon: data.user.avatarUrl + '?thumbnail&size=64'
 | 
			
		||||
						icon: data.user.avatarUrl
 | 
			
		||||
					};
 | 
			
		||||
 | 
			
		||||
				default:
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +0,0 @@
 | 
			
		||||
export default date => {
 | 
			
		||||
	if (typeof date == 'string') date = new Date(date);
 | 
			
		||||
	return (
 | 
			
		||||
		date.getFullYear()    + '年' +
 | 
			
		||||
		(date.getMonth() + 1) + '月' +
 | 
			
		||||
		date.getDate()        + '日' +
 | 
			
		||||
		' ' +
 | 
			
		||||
		date.getHours()       + '時' +
 | 
			
		||||
		date.getMinutes()     + '分' +
 | 
			
		||||
		' ' +
 | 
			
		||||
		`(${['日', '月', '火', '水', '木', '金', '土'][date.getDay()]})`
 | 
			
		||||
	);
 | 
			
		||||
};
 | 
			
		||||
@@ -1,12 +1,12 @@
 | 
			
		||||
require('fuckadblock');
 | 
			
		||||
 | 
			
		||||
declare const fuckAdBlock: any;
 | 
			
		||||
 | 
			
		||||
export default (os) => {
 | 
			
		||||
	require('fuckadblock');
 | 
			
		||||
 | 
			
		||||
	function adBlockDetected() {
 | 
			
		||||
		os.apis.dialog({
 | 
			
		||||
			title: '%fa:exclamation-triangle%広告ブロッカーを無効にしてください',
 | 
			
		||||
			text: '<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。',
 | 
			
		||||
			title: '%fa:exclamation-triangle%%i18n:common.adblock.detected%',
 | 
			
		||||
			text: '%i18n:common.adblock.warning%',
 | 
			
		||||
			actins: [{
 | 
			
		||||
				text: 'OK'
 | 
			
		||||
			}]
 | 
			
		||||
 
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
const gcd = (a, b) => !b ? a : gcd(b, a % b);
 | 
			
		||||
export default gcd;
 | 
			
		||||
							
								
								
									
										10
									
								
								src/client/app/common/scripts/get-face.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								src/client/app/common/scripts/get-face.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
const faces = [
 | 
			
		||||
	'(=^・・^=)',
 | 
			
		||||
	'v(\'ω\')v',
 | 
			
		||||
	'🐡( \'-\' 🐡 )フグパンチ!!!!',
 | 
			
		||||
	'🖕(´・_・`)🖕',
 | 
			
		||||
	'(。>﹏<。)',
 | 
			
		||||
	'(Δ・x・Δ)'
 | 
			
		||||
];
 | 
			
		||||
 | 
			
		||||
export default () => faces[Math.floor(Math.random() * faces.length)];
 | 
			
		||||
@@ -1,5 +0,0 @@
 | 
			
		||||
export default () => [
 | 
			
		||||
	'(=^・・^=)',
 | 
			
		||||
	'v(\'ω\')v',
 | 
			
		||||
	'🐡( \'-\' 🐡 )フグパンチ!!!!'
 | 
			
		||||
][Math.floor(Math.random() * 3)];
 | 
			
		||||
							
								
								
									
										8
									
								
								src/client/app/common/scripts/get-md5.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/client/app/common/scripts/get-md5.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
			
		||||
const crypto = require('crypto');
 | 
			
		||||
 | 
			
		||||
export default (data: ArrayBuffer) => {
 | 
			
		||||
  const buf = new Buffer(data);
 | 
			
		||||
  const hash = crypto.createHash("md5");
 | 
			
		||||
  hash.update(buf);
 | 
			
		||||
  return hash.digest("hex");
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										161
									
								
								src/client/app/common/scripts/note-mixin.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										161
									
								
								src/client/app/common/scripts/note-mixin.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,161 @@
 | 
			
		||||
import parse from '../../../../mfm/parse';
 | 
			
		||||
import { sum } from '../../../../prelude/array';
 | 
			
		||||
import MkNoteMenu from '..//views/components/note-menu.vue';
 | 
			
		||||
import MkReactionPicker from '../views/components/reaction-picker.vue';
 | 
			
		||||
 | 
			
		||||
function focus(el, fn) {
 | 
			
		||||
	const target = fn(el);
 | 
			
		||||
	if (target) {
 | 
			
		||||
		if (target.hasAttribute('tabindex')) {
 | 
			
		||||
			target.focus();
 | 
			
		||||
		} else {
 | 
			
		||||
			focus(target, fn);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type Opts = {
 | 
			
		||||
	mobile?: boolean;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default (opts: Opts = {}) => ({
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			showContent: false
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	computed: {
 | 
			
		||||
		keymap(): any {
 | 
			
		||||
			return {
 | 
			
		||||
				'r|left': () => this.reply(true),
 | 
			
		||||
				'e|a|plus': () => this.react(true),
 | 
			
		||||
				'q|right': () => this.renote(true),
 | 
			
		||||
				'ctrl+q|ctrl+right': this.renoteDirectly,
 | 
			
		||||
				'up|k|shift+tab': this.focusBefore,
 | 
			
		||||
				'down|j|tab': this.focusAfter,
 | 
			
		||||
				'esc': this.blur,
 | 
			
		||||
				'm|o': () => this.menu(true),
 | 
			
		||||
				's': this.toggleShowContent,
 | 
			
		||||
				'1': () => this.reactDirectly('like'),
 | 
			
		||||
				'2': () => this.reactDirectly('love'),
 | 
			
		||||
				'3': () => this.reactDirectly('laugh'),
 | 
			
		||||
				'4': () => this.reactDirectly('hmm'),
 | 
			
		||||
				'5': () => this.reactDirectly('surprise'),
 | 
			
		||||
				'6': () => this.reactDirectly('congrats'),
 | 
			
		||||
				'7': () => this.reactDirectly('angry'),
 | 
			
		||||
				'8': () => this.reactDirectly('confused'),
 | 
			
		||||
				'9': () => this.reactDirectly('rip'),
 | 
			
		||||
				'0': () => this.reactDirectly('pudding'),
 | 
			
		||||
			};
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		isRenote(): boolean {
 | 
			
		||||
			return (this.note.renote &&
 | 
			
		||||
				this.note.text == null &&
 | 
			
		||||
				this.note.fileIds.length == 0 &&
 | 
			
		||||
				this.note.poll == null);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		appearNote(): any {
 | 
			
		||||
			return this.isRenote ? this.note.renote : this.note;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		reactionsCount(): number {
 | 
			
		||||
			return this.appearNote.reactionCounts
 | 
			
		||||
				? sum(Object.values(this.appearNote.reactionCounts))
 | 
			
		||||
				: 0;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		title(): string {
 | 
			
		||||
			return new Date(this.appearNote.createdAt).toLocaleString();
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		urls(): string[] {
 | 
			
		||||
			if (this.appearNote.text) {
 | 
			
		||||
				const ast = parse(this.appearNote.text);
 | 
			
		||||
				return ast
 | 
			
		||||
					.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
 | 
			
		||||
					.map(t => t.url);
 | 
			
		||||
			} else {
 | 
			
		||||
				return null;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		reply(viaKeyboard = false) {
 | 
			
		||||
			(this as any).apis.post({
 | 
			
		||||
				reply: this.appearNote,
 | 
			
		||||
				animation: !viaKeyboard,
 | 
			
		||||
				cb: () => {
 | 
			
		||||
					this.focus();
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		renote(viaKeyboard = false) {
 | 
			
		||||
			(this as any).apis.post({
 | 
			
		||||
				renote: this.appearNote,
 | 
			
		||||
				animation: !viaKeyboard,
 | 
			
		||||
				cb: () => {
 | 
			
		||||
					this.focus();
 | 
			
		||||
				}
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		renoteDirectly() {
 | 
			
		||||
			(this as any).api('notes/create', {
 | 
			
		||||
				renoteId: this.appearNote.id
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		react(viaKeyboard = false) {
 | 
			
		||||
			this.blur();
 | 
			
		||||
			(this as any).os.new(MkReactionPicker, {
 | 
			
		||||
				source: this.$refs.reactButton,
 | 
			
		||||
				note: this.appearNote,
 | 
			
		||||
				showFocus: viaKeyboard,
 | 
			
		||||
				animation: !viaKeyboard,
 | 
			
		||||
				compact: opts.mobile,
 | 
			
		||||
				big: opts.mobile
 | 
			
		||||
			}).$once('closed', this.focus);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		reactDirectly(reaction) {
 | 
			
		||||
			(this as any).api('notes/reactions/create', {
 | 
			
		||||
				noteId: this.appearNote.id,
 | 
			
		||||
				reaction: reaction
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		menu(viaKeyboard = false) {
 | 
			
		||||
			(this as any).os.new(MkNoteMenu, {
 | 
			
		||||
				source: this.$refs.menuButton,
 | 
			
		||||
				note: this.appearNote,
 | 
			
		||||
				animation: !viaKeyboard,
 | 
			
		||||
				compact: opts.mobile,
 | 
			
		||||
			}).$once('closed', this.focus);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		toggleShowContent() {
 | 
			
		||||
			this.showContent = !this.showContent;
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		focus() {
 | 
			
		||||
			this.$el.focus();
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		blur() {
 | 
			
		||||
			this.$el.blur();
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		focusBefore() {
 | 
			
		||||
			focus(this.$el, e => e.previousElementSibling);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		focusAfter() {
 | 
			
		||||
			focus(this.$el, e => e.nextElementSibling);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										128
									
								
								src/client/app/common/scripts/note-subscriber.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								src/client/app/common/scripts/note-subscriber.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
import Vue from 'vue';
 | 
			
		||||
 | 
			
		||||
export default prop => ({
 | 
			
		||||
	data() {
 | 
			
		||||
		return {
 | 
			
		||||
			connection: null
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	computed: {
 | 
			
		||||
		$_ns_note_(): any {
 | 
			
		||||
			return this[prop];
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		$_ns_isRenote(): boolean {
 | 
			
		||||
			return (this.$_ns_note_.renote != null &&
 | 
			
		||||
				this.$_ns_note_.text == null &&
 | 
			
		||||
				this.$_ns_note_.fileIds.length == 0 &&
 | 
			
		||||
				this.$_ns_note_.poll == null);
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		$_ns_target(): any {
 | 
			
		||||
			return this.$_ns_isRenote ? this.$_ns_note_.renote : this.$_ns_note_;
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	created() {
 | 
			
		||||
		if (this.$store.getters.isSignedIn) {
 | 
			
		||||
			this.connection = (this as any).os.stream;
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	mounted() {
 | 
			
		||||
		this.capture(true);
 | 
			
		||||
 | 
			
		||||
		if (this.$store.getters.isSignedIn) {
 | 
			
		||||
			this.connection.on('_connected_', this.onStreamConnected);
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	beforeDestroy() {
 | 
			
		||||
		this.decapture(true);
 | 
			
		||||
 | 
			
		||||
		if (this.$store.getters.isSignedIn) {
 | 
			
		||||
			this.connection.off('_connected_', this.onStreamConnected);
 | 
			
		||||
		}
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	methods: {
 | 
			
		||||
		capture(withHandler = false) {
 | 
			
		||||
			if (this.$store.getters.isSignedIn) {
 | 
			
		||||
				const data = {
 | 
			
		||||
					id: this.$_ns_target.id
 | 
			
		||||
				} as any;
 | 
			
		||||
 | 
			
		||||
				if (
 | 
			
		||||
					(this.$_ns_target.visibleUserIds || []).includes(this.$store.state.i.id) ||
 | 
			
		||||
					(this.$_ns_target.mentions || []).includes(this.$store.state.i.id)
 | 
			
		||||
				) {
 | 
			
		||||
					data.read = true;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				this.connection.send('sn', data);
 | 
			
		||||
				if (withHandler) this.connection.on('noteUpdated', this.onStreamNoteUpdated);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		decapture(withHandler = false) {
 | 
			
		||||
			if (this.$store.getters.isSignedIn) {
 | 
			
		||||
				this.connection.send('un', {
 | 
			
		||||
					id: this.$_ns_target.id
 | 
			
		||||
				});
 | 
			
		||||
				if (withHandler) this.connection.off('noteUpdated', this.onStreamNoteUpdated);
 | 
			
		||||
			}
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		onStreamConnected() {
 | 
			
		||||
			this.capture();
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
		onStreamNoteUpdated(data) {
 | 
			
		||||
			const { type, id, body } = data;
 | 
			
		||||
 | 
			
		||||
			if (id !== this.$_ns_target.id) return;
 | 
			
		||||
 | 
			
		||||
			switch (type) {
 | 
			
		||||
				case 'reacted': {
 | 
			
		||||
					const reaction = body.reaction;
 | 
			
		||||
 | 
			
		||||
					if (this.$_ns_target.reactionCounts == null) {
 | 
			
		||||
						Vue.set(this.$_ns_target, 'reactionCounts', {});
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					if (this.$_ns_target.reactionCounts[reaction] == null) {
 | 
			
		||||
						Vue.set(this.$_ns_target.reactionCounts, reaction, 0);
 | 
			
		||||
					}
 | 
			
		||||
 | 
			
		||||
					this.$_ns_target.reactionCounts[reaction]++;
 | 
			
		||||
 | 
			
		||||
					if (body.userId == this.$store.state.i.id) {
 | 
			
		||||
						Vue.set(this.$_ns_target, 'myReaction', reaction);
 | 
			
		||||
					}
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'pollVoted': {
 | 
			
		||||
					if (body.userId == this.$store.state.i.id) return;
 | 
			
		||||
					const choice = body.choice;
 | 
			
		||||
					this.$_ns_target.poll.choices.find(c => c.id === choice).votes++;
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
				case 'deleted': {
 | 
			
		||||
					Vue.set(this.$_ns_target, 'deletedAt', body.deletedAt);
 | 
			
		||||
					this.$_ns_target.text = null;
 | 
			
		||||
					this.$_ns_target.tags = [];
 | 
			
		||||
					this.$_ns_target.fileIds = [];
 | 
			
		||||
					this.$_ns_target.poll = null;
 | 
			
		||||
					this.$_ns_target.geo = null;
 | 
			
		||||
					this.$_ns_target.cw = null;
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			this.$emit(`update:${prop}`, this.$_ns_note_);
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
@@ -1,53 +0,0 @@
 | 
			
		||||
export default function(qs: string) {
 | 
			
		||||
	const q = {
 | 
			
		||||
		text: ''
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	qs.split(' ').forEach(x => {
 | 
			
		||||
		if (/^([a-z_]+?):(.+?)$/.test(x)) {
 | 
			
		||||
			const [key, value] = x.split(':');
 | 
			
		||||
			switch (key) {
 | 
			
		||||
				case 'user':
 | 
			
		||||
					q['includeUserUsernames'] = value.split(',');
 | 
			
		||||
					break;
 | 
			
		||||
				case 'exclude_user':
 | 
			
		||||
					q['excludeUserUsernames'] = value.split(',');
 | 
			
		||||
					break;
 | 
			
		||||
				case 'follow':
 | 
			
		||||
					q['following'] = value == 'null' ? null : value == 'true';
 | 
			
		||||
					break;
 | 
			
		||||
				case 'reply':
 | 
			
		||||
					q['reply'] = value == 'null' ? null : value == 'true';
 | 
			
		||||
					break;
 | 
			
		||||
				case 'renote':
 | 
			
		||||
					q['renote'] = value == 'null' ? null : value == 'true';
 | 
			
		||||
					break;
 | 
			
		||||
				case 'media':
 | 
			
		||||
					q['media'] = value == 'null' ? null : value == 'true';
 | 
			
		||||
					break;
 | 
			
		||||
				case 'poll':
 | 
			
		||||
					q['poll'] = value == 'null' ? null : value == 'true';
 | 
			
		||||
					break;
 | 
			
		||||
				case 'until':
 | 
			
		||||
				case 'since':
 | 
			
		||||
					// YYYY-MM-DD
 | 
			
		||||
					if (/^[0-9]+\-[0-9]+\-[0-9]+$/) {
 | 
			
		||||
						const [yyyy, mm, dd] = value.split('-');
 | 
			
		||||
						q[`${key}_date`] = (new Date(parseInt(yyyy, 10), parseInt(mm, 10) - 1, parseInt(dd, 10))).getTime();
 | 
			
		||||
					}
 | 
			
		||||
					break;
 | 
			
		||||
				default:
 | 
			
		||||
					q[key] = value;
 | 
			
		||||
					break;
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			q.text += x + ' ';
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	if (q.text) {
 | 
			
		||||
		q.text = q.text.trim();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return q;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										303
									
								
								src/client/app/common/scripts/stream.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										303
									
								
								src/client/app/common/scripts/stream.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,303 @@
 | 
			
		||||
import autobind from 'autobind-decorator';
 | 
			
		||||
import { EventEmitter } from 'eventemitter3';
 | 
			
		||||
import ReconnectingWebsocket from 'reconnecting-websocket';
 | 
			
		||||
import { wsUrl } from '../../config';
 | 
			
		||||
import MiOS from '../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Misskey stream connection
 | 
			
		||||
 */
 | 
			
		||||
export default class Stream extends EventEmitter {
 | 
			
		||||
	private stream: ReconnectingWebsocket;
 | 
			
		||||
	private state: string;
 | 
			
		||||
	private sharedConnectionPools: Pool[] = [];
 | 
			
		||||
	private sharedConnections: SharedConnection[] = [];
 | 
			
		||||
	private nonSharedConnections: NonSharedConnection[] = [];
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.state = 'initializing';
 | 
			
		||||
 | 
			
		||||
		const user = os.store.state.i;
 | 
			
		||||
 | 
			
		||||
		this.stream = new ReconnectingWebsocket(wsUrl + (user ? `?i=${user.token}` : ''));
 | 
			
		||||
		this.stream.addEventListener('open', this.onOpen);
 | 
			
		||||
		this.stream.addEventListener('close', this.onClose);
 | 
			
		||||
		this.stream.addEventListener('message', this.onMessage);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public useSharedConnection(channel: string): SharedConnection {
 | 
			
		||||
		let pool = this.sharedConnectionPools.find(p => p.channel === channel);
 | 
			
		||||
 | 
			
		||||
		if (pool == null) {
 | 
			
		||||
			pool = new Pool(this, channel);
 | 
			
		||||
			this.sharedConnectionPools.push(pool);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		const connection = new SharedConnection(this, channel, pool);
 | 
			
		||||
		this.sharedConnections.push(connection);
 | 
			
		||||
		return connection;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public removeSharedConnection(connection: SharedConnection) {
 | 
			
		||||
		this.sharedConnections = this.sharedConnections.filter(c => c !== connection);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public removeSharedConnectionPool(pool: Pool) {
 | 
			
		||||
		this.sharedConnectionPools = this.sharedConnectionPools.filter(p => p !== pool);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public connectToChannel(channel: string, params?: any): NonSharedConnection {
 | 
			
		||||
		const connection = new NonSharedConnection(this, channel, params);
 | 
			
		||||
		this.nonSharedConnections.push(connection);
 | 
			
		||||
		return connection;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public disconnectToChannel(connection: NonSharedConnection) {
 | 
			
		||||
		this.nonSharedConnections = this.nonSharedConnections.filter(c => c !== connection);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Callback of when open connection
 | 
			
		||||
	 */
 | 
			
		||||
	@autobind
 | 
			
		||||
	private onOpen() {
 | 
			
		||||
		const isReconnect = this.state == 'reconnecting';
 | 
			
		||||
 | 
			
		||||
		this.state = 'connected';
 | 
			
		||||
		this.emit('_connected_');
 | 
			
		||||
 | 
			
		||||
		// チャンネル再接続
 | 
			
		||||
		if (isReconnect) {
 | 
			
		||||
			this.sharedConnectionPools.forEach(p => {
 | 
			
		||||
				p.connect();
 | 
			
		||||
			});
 | 
			
		||||
			this.nonSharedConnections.forEach(c => {
 | 
			
		||||
				c.connect();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Callback of when close connection
 | 
			
		||||
	 */
 | 
			
		||||
	@autobind
 | 
			
		||||
	private onClose() {
 | 
			
		||||
		if (this.state == 'connected') {
 | 
			
		||||
			this.state = 'reconnecting';
 | 
			
		||||
			this.emit('_disconnected_');
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Callback of when received a message from connection
 | 
			
		||||
	 */
 | 
			
		||||
	@autobind
 | 
			
		||||
	private onMessage(message) {
 | 
			
		||||
		const { type, body } = JSON.parse(message.data);
 | 
			
		||||
 | 
			
		||||
		if (type == 'channel') {
 | 
			
		||||
			const id = body.id;
 | 
			
		||||
 | 
			
		||||
			let connections: Connection[];
 | 
			
		||||
 | 
			
		||||
			connections = this.sharedConnections.filter(c => c.id === id);
 | 
			
		||||
 | 
			
		||||
			if (connections.length === 0) {
 | 
			
		||||
				connections = [this.nonSharedConnections.find(c => c.id === id)];
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			connections.filter(c => c != null).forEach(c => {
 | 
			
		||||
				c.emit(body.type, body.body);
 | 
			
		||||
			});
 | 
			
		||||
		} else {
 | 
			
		||||
			this.emit(type, body);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Send a message to connection
 | 
			
		||||
	 */
 | 
			
		||||
	@autobind
 | 
			
		||||
	public send(typeOrPayload, payload?) {
 | 
			
		||||
		const data = payload === undefined ? typeOrPayload : {
 | 
			
		||||
			type: typeOrPayload,
 | 
			
		||||
			body: payload
 | 
			
		||||
		};
 | 
			
		||||
 | 
			
		||||
		this.stream.send(JSON.stringify(data));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Close this connection
 | 
			
		||||
	 */
 | 
			
		||||
	@autobind
 | 
			
		||||
	public close() {
 | 
			
		||||
		this.stream.removeEventListener('open', this.onOpen);
 | 
			
		||||
		this.stream.removeEventListener('message', this.onMessage);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class Pool {
 | 
			
		||||
	public channel: string;
 | 
			
		||||
	public id: string;
 | 
			
		||||
	protected stream: Stream;
 | 
			
		||||
	public users = 0;
 | 
			
		||||
	private disposeTimerId: any;
 | 
			
		||||
	private isConnected = false;
 | 
			
		||||
 | 
			
		||||
	constructor(stream: Stream, channel: string) {
 | 
			
		||||
		this.channel = channel;
 | 
			
		||||
		this.stream = stream;
 | 
			
		||||
 | 
			
		||||
		this.id = Math.random().toString();
 | 
			
		||||
 | 
			
		||||
		this.stream.on('_disconnected_', this.onStreamDisconnected);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	private onStreamDisconnected() {
 | 
			
		||||
		this.isConnected = false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public inc() {
 | 
			
		||||
		if (this.users === 0 && !this.isConnected) {
 | 
			
		||||
			this.connect();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		this.users++;
 | 
			
		||||
 | 
			
		||||
		// タイマー解除
 | 
			
		||||
		if (this.disposeTimerId) {
 | 
			
		||||
			clearTimeout(this.disposeTimerId);
 | 
			
		||||
			this.disposeTimerId = null;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public dec() {
 | 
			
		||||
		this.users--;
 | 
			
		||||
 | 
			
		||||
		// そのコネクションの利用者が誰もいなくなったら
 | 
			
		||||
		if (this.users === 0) {
 | 
			
		||||
			// また直ぐに再利用される可能性があるので、一定時間待ち、
 | 
			
		||||
			// 新たな利用者が現れなければコネクションを切断する
 | 
			
		||||
			this.disposeTimerId = setTimeout(() => {
 | 
			
		||||
				this.disconnect();
 | 
			
		||||
			}, 3000);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public connect() {
 | 
			
		||||
		if (this.isConnected) return;
 | 
			
		||||
		this.isConnected = true;
 | 
			
		||||
		this.stream.send('connect', {
 | 
			
		||||
			channel: this.channel,
 | 
			
		||||
			id: this.id
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	private disconnect() {
 | 
			
		||||
		this.stream.off('_disconnected_', this.onStreamDisconnected);
 | 
			
		||||
		this.stream.send('disconnect', { id: this.id });
 | 
			
		||||
		this.stream.removeSharedConnectionPool(this);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
abstract class Connection extends EventEmitter {
 | 
			
		||||
	public channel: string;
 | 
			
		||||
	protected stream: Stream;
 | 
			
		||||
	public abstract id: string;
 | 
			
		||||
 | 
			
		||||
	constructor(stream: Stream, channel: string) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.stream = stream;
 | 
			
		||||
		this.channel = channel;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public send(id: string, typeOrPayload, payload?) {
 | 
			
		||||
		const type = payload === undefined ? typeOrPayload.type : typeOrPayload;
 | 
			
		||||
		const body = payload === undefined ? typeOrPayload.body : payload;
 | 
			
		||||
 | 
			
		||||
		this.stream.send('ch', {
 | 
			
		||||
			id: id,
 | 
			
		||||
			type: type,
 | 
			
		||||
			body: body
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public abstract dispose(): void;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class SharedConnection extends Connection {
 | 
			
		||||
	private pool: Pool;
 | 
			
		||||
 | 
			
		||||
	public get id(): string {
 | 
			
		||||
		return this.pool.id;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	constructor(stream: Stream, channel: string, pool: Pool) {
 | 
			
		||||
		super(stream, channel);
 | 
			
		||||
 | 
			
		||||
		this.pool = pool;
 | 
			
		||||
		this.pool.inc();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public send(typeOrPayload, payload?) {
 | 
			
		||||
		super.send(this.pool.id, typeOrPayload, payload);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public dispose() {
 | 
			
		||||
		this.pool.dec();
 | 
			
		||||
		this.removeAllListeners();
 | 
			
		||||
		this.stream.removeSharedConnection(this);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class NonSharedConnection extends Connection {
 | 
			
		||||
	public id: string;
 | 
			
		||||
	protected params: any;
 | 
			
		||||
 | 
			
		||||
	constructor(stream: Stream, channel: string, params?: any) {
 | 
			
		||||
		super(stream, channel);
 | 
			
		||||
 | 
			
		||||
		this.params = params;
 | 
			
		||||
		this.id = Math.random().toString();
 | 
			
		||||
 | 
			
		||||
		this.connect();
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public connect() {
 | 
			
		||||
		this.stream.send('connect', {
 | 
			
		||||
			channel: this.channel,
 | 
			
		||||
			id: this.id,
 | 
			
		||||
			params: this.params
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public send(typeOrPayload, payload?) {
 | 
			
		||||
		super.send(this.id, typeOrPayload, payload);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	@autobind
 | 
			
		||||
	public dispose() {
 | 
			
		||||
		this.removeAllListeners();
 | 
			
		||||
		this.stream.send('disconnect', { id: this.id });
 | 
			
		||||
		this.stream.disconnectToChannel(this);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Drive stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class DriveStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'drive', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class DriveStreamManager extends StreamManager<DriveStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new DriveStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,11 +0,0 @@
 | 
			
		||||
import Stream from '../../stream';
 | 
			
		||||
import MiOS from '../../../../../mios';
 | 
			
		||||
 | 
			
		||||
export class ReversiGameStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me, game) {
 | 
			
		||||
		super(os, 'games/reversi-game', {
 | 
			
		||||
			i: me ? me.token : null,
 | 
			
		||||
			game: game.id
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,31 +0,0 @@
 | 
			
		||||
import StreamManager from '../../stream-manager';
 | 
			
		||||
import Stream from '../../stream';
 | 
			
		||||
import MiOS from '../../../../../mios';
 | 
			
		||||
 | 
			
		||||
export class ReversiStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'games/reversi', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class ReversiStreamManager extends StreamManager<ReversiStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new ReversiStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Global timeline stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class GlobalTimelineStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'global-timeline', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class GlobalTimelineStreamManager extends StreamManager<GlobalTimelineStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new GlobalTimelineStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,102 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Home stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class HomeStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, '', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// 最終利用日時を更新するため定期的にaliveメッセージを送信
 | 
			
		||||
		setInterval(() => {
 | 
			
		||||
			this.send({ type: 'alive' });
 | 
			
		||||
			me.lastUsedAt = new Date();
 | 
			
		||||
		}, 1000 * 60);
 | 
			
		||||
 | 
			
		||||
		// 自分の情報が更新されたとき
 | 
			
		||||
		this.on('meUpdated', i => {
 | 
			
		||||
			if (os.debug) {
 | 
			
		||||
				console.log('I updated:', i);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			os.store.dispatch('mergeMe', i);
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('read_all_notifications', () => {
 | 
			
		||||
			os.store.dispatch('mergeMe', {
 | 
			
		||||
				hasUnreadNotification: false
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('unread_notification', () => {
 | 
			
		||||
			os.store.dispatch('mergeMe', {
 | 
			
		||||
				hasUnreadNotification: true
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('read_all_messaging_messages', () => {
 | 
			
		||||
			os.store.dispatch('mergeMe', {
 | 
			
		||||
				hasUnreadMessagingMessage: false
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('unread_messaging_message', () => {
 | 
			
		||||
			os.store.dispatch('mergeMe', {
 | 
			
		||||
				hasUnreadMessagingMessage: true
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('clientSettingUpdated', x => {
 | 
			
		||||
			os.store.commit('settings/set', {
 | 
			
		||||
				key: x.key,
 | 
			
		||||
				value: x.value
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('home_updated', x => {
 | 
			
		||||
			os.store.commit('settings/setHome', x);
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('mobile_home_updated', x => {
 | 
			
		||||
			os.store.commit('settings/setMobileHome', x);
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		this.on('widgetUpdated', x => {
 | 
			
		||||
			os.store.commit('settings/setWidget', {
 | 
			
		||||
				id: x.id,
 | 
			
		||||
				data: x.data
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		// トークンが再生成されたとき
 | 
			
		||||
		// このままではMisskeyが利用できないので強制的にサインアウトさせる
 | 
			
		||||
		this.on('my_token_regenerated', () => {
 | 
			
		||||
			alert('%i18n:common.my-token-regenerated%');
 | 
			
		||||
			os.signout();
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class HomeStreamManager extends StreamManager<HomeStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new HomeStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Hybrid timeline stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class HybridTimelineStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'hybrid-timeline', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class HybridTimelineStreamManager extends StreamManager<HybridTimelineStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new HybridTimelineStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Local timeline stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class LocalTimelineStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'local-timeline', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class LocalTimelineStreamManager extends StreamManager<LocalTimelineStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new LocalTimelineStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,34 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Messaging index stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class MessagingIndexStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super(os, 'messaging-index', {
 | 
			
		||||
			i: me.token
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class MessagingIndexStreamManager extends StreamManager<MessagingIndexStream> {
 | 
			
		||||
	private me;
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS, me) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.me = me;
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new MessagingIndexStream(this.os, this.me);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,20 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Messaging stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class MessagingStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS, me, otherparty) {
 | 
			
		||||
		super(os, 'messaging', {
 | 
			
		||||
			i: me.token,
 | 
			
		||||
			otherparty
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		(this as any).on('_connected_', () => {
 | 
			
		||||
			this.send({
 | 
			
		||||
				i: me.token
 | 
			
		||||
			});
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Notes stats stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class NotesStatsStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS) {
 | 
			
		||||
		super(os, 'notes-stats');
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class NotesStatsStreamManager extends StreamManager<NotesStatsStream> {
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new NotesStatsStream(this.os);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@@ -1,30 +0,0 @@
 | 
			
		||||
import Stream from './stream';
 | 
			
		||||
import StreamManager from './stream-manager';
 | 
			
		||||
import MiOS from '../../../mios';
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Server stats stream connection
 | 
			
		||||
 */
 | 
			
		||||
export class ServerStatsStream extends Stream {
 | 
			
		||||
	constructor(os: MiOS) {
 | 
			
		||||
		super(os, 'server-stats');
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export class ServerStatsStreamManager extends StreamManager<ServerStatsStream> {
 | 
			
		||||
	private os: MiOS;
 | 
			
		||||
 | 
			
		||||
	constructor(os: MiOS) {
 | 
			
		||||
		super();
 | 
			
		||||
 | 
			
		||||
		this.os = os;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public getConnection() {
 | 
			
		||||
		if (this.connection == null) {
 | 
			
		||||
			this.connection = new ServerStatsStream(this.os);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return this.connection;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user