Compare commits

...

1048 Commits

Author SHA1 Message Date
28d953933a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-10 15:07:52 +09:00
77d9ae92f6 8.34.2 2018-09-10 15:07:37 +09:00
7d00754587 Merge pull request #2676 from syuilo/l10n_develop
New Crowdin translations
2018-09-10 14:51:16 +09:00
982b5eb698 New translations ja-JP.yml (English) 2018-09-10 14:50:54 +09:00
20a9c25d70 Fix #2677 2018-09-10 14:48:19 +09:00
eebed9944c 8.34.1 2018-09-10 05:45:59 +09:00
507a192489 Fix bug 2018-09-10 05:45:29 +09:00
689dc3b9d5 New translations ja-JP.yml (French) 2018-09-10 05:20:52 +09:00
d765803b83 New translations ja-JP.yml (French) 2018-09-10 05:11:20 +09:00
0fabb6a057 8.34.0 2018-09-10 03:40:01 +09:00
23efaae85e lint 2018-09-10 03:39:00 +09:00
5b2f15726f Fix #2675 2018-09-10 03:15:46 +09:00
bc3a5f3512 Fix #2596 2018-09-10 03:02:06 +09:00
ba05f236bd Resolve #2101 2018-09-10 02:47:34 +09:00
6ac92ac4b8 Fix #2321 2018-09-10 02:43:16 +09:00
d9a1cd082c #2623 2018-09-10 02:21:16 +09:00
a32071541a Clean up 2018-09-10 02:20:09 +09:00
eb4f625bbd Fix #2096 2018-09-10 02:09:33 +09:00
e36d45507a Fix #2513 2018-09-10 02:07:13 +09:00
e32884f07f Fix #1740 2018-09-10 01:57:19 +09:00
1344ffa67d 削除された投稿にリアクションできないように
Closes #1778
2018-09-10 01:55:14 +09:00
e07210524f Refactor: Add comments 2018-09-10 01:54:08 +09:00
6f3996c061 Update theme color 2018-09-10 01:51:57 +09:00
fd06fd4dc1 Resolve #2560 2018-09-10 01:51:46 +09:00
d86d5feae3 Merge pull request #2660 from syuilo/l10n_develop
New Crowdin translations
2018-09-09 22:01:03 +09:00
0e20a8f07b New translations ja-JP.yml (English) 2018-09-09 17:31:05 +09:00
a40d784e3a New translations ja-JP.yml (English) 2018-09-09 17:10:50 +09:00
e145131b95 New translations ja-JP.yml (English) 2018-09-09 17:00:56 +09:00
92873b8bb5 New translations ja-JP.yml (English) 2018-09-09 03:41:10 +09:00
d359b71c81 New translations ja-JP.yml (English) 2018-09-09 03:30:40 +09:00
f1a0bf4257 New translations ja-JP.yml (English) 2018-09-09 03:01:16 +09:00
ea4e2da58d Fix AP Announce detection (#2672) 2018-09-09 02:59:14 +09:00
1301b3b49e New translations ja-JP.yml (English) 2018-09-09 02:51:10 +09:00
424625846e Merge branch 'master' into develop 2018-09-09 02:46:54 +09:00
0790dd7a2c 8.33.1 2018-09-09 02:45:29 +09:00
b238d7b934 New translations ja-JP.yml (French) 2018-09-09 00:01:22 +09:00
011e4fded2 New translations ja-JP.yml (French) 2018-09-08 23:51:17 +09:00
2fe872a9c9 Update README.md 2018-09-08 23:34:51 +09:00
02c1515a0f Update README.md 2018-09-08 23:30:29 +09:00
408118a1e8 8.33.0 2018-09-08 23:20:15 +09:00
6a45bb21c3 #2668 の一部をRevert 2018-09-08 23:19:11 +09:00
5d4e9aa949 Show ai image in welcome page 2018-09-08 23:16:02 +09:00
c87b98c2af Add ai illust 2018-09-08 23:15:39 +09:00
5a13c38a6d インスタンス名がブラウザタイトルに反映されないのを修正 (#2668)
* titleが反映されないのを修正

* deckでtitleが反映されるように修正
2018-09-08 21:44:28 +09:00
67f60ab307 fix wrong reaction img (#2666)
* use svg and cdn to download reactions

* fix wrong reaction img
2018-09-08 19:25:59 +09:00
08c278578d use svg and cdn to download reactions (#2665) 2018-09-08 19:03:20 +09:00
5e9d2d079d New translations ja-JP.yml (French) 2018-09-08 18:31:00 +09:00
0e01fb5fc3 Update setup.ja.md (#2663)
Sudoに関する記述を追加
2018-09-08 17:10:47 +09:00
d44dc7e00d 8.32.0 2018-09-08 15:30:07 +09:00
82ee3a538b Improve welcome page 2018-09-08 15:28:38 +09:00
fdc16253d1 New translations ja-JP.yml (Norwegian) 2018-09-08 15:21:38 +09:00
7e83cd2d74 New translations ja-JP.yml (Dutch) 2018-09-08 15:21:35 +09:00
083eb75eff New translations ja-JP.yml (Japanese, Kansai) 2018-09-08 15:21:33 +09:00
f50afa768f New translations ja-JP.yml (Spanish) 2018-09-08 15:21:31 +09:00
1a80fe91ce New translations ja-JP.yml (Russian) 2018-09-08 15:21:29 +09:00
4de1a5ef6c New translations ja-JP.yml (Portuguese) 2018-09-08 15:21:26 +09:00
d0d389299b New translations ja-JP.yml (Polish) 2018-09-08 15:21:24 +09:00
dc70804350 New translations ja-JP.yml (Korean) 2018-09-08 15:21:22 +09:00
78d691571b New translations ja-JP.yml (Italian) 2018-09-08 15:21:20 +09:00
b7cbf4a42a New translations ja-JP.yml (German) 2018-09-08 15:21:17 +09:00
87ca7c50b4 New translations ja-JP.yml (French) 2018-09-08 15:21:14 +09:00
6c7550b3f3 New translations ja-JP.yml (English) 2018-09-08 15:21:12 +09:00
4239ffa13f New translations ja-JP.yml (Chinese Simplified) 2018-09-08 15:21:09 +09:00
c6cfb0df76 New translations ja-JP.yml (Catalan) 2018-09-08 15:21:06 +09:00
380cf0de69 Improve welcome page 2018-09-08 15:11:12 +09:00
11f25ea2e7 8.31.0 2018-09-08 06:44:34 +09:00
ef62497777 ActivityPub Outboxの修正とactivity idのURLを実装 (#2662)
* Fix Outbox structure

* Implement activity endpoint

* Use in instead of or

* Use in, addition
2018-09-08 05:24:55 +09:00
2824d8a5b6 Add animation 2018-09-08 04:54:11 +09:00
1c84c0828e 良い感じに 2018-09-08 01:46:01 +09:00
39e4494836 🎨 2018-09-08 01:31:50 +09:00
dc174ca759 New translations ja-JP.yml (French) 2018-09-08 00:52:35 +09:00
b61cfd0407 New translations ja-JP.yml (English) 2018-09-07 23:22:01 +09:00
53405e54a8 New translations ja-JP.yml (English) 2018-09-07 21:33:04 +09:00
c7ef7531a9 New translations ja-JP.yml (Norwegian) 2018-09-07 21:22:27 +09:00
626b4bf314 New translations ja-JP.yml (Dutch) 2018-09-07 21:22:24 +09:00
323d0e0154 New translations ja-JP.yml (Japanese, Kansai) 2018-09-07 21:22:21 +09:00
6d1338317b New translations ja-JP.yml (Spanish) 2018-09-07 21:22:18 +09:00
1ce26d8aec New translations ja-JP.yml (Russian) 2018-09-07 21:22:16 +09:00
7ba3d3ec98 New translations ja-JP.yml (Portuguese) 2018-09-07 21:22:14 +09:00
24f58b3ecb New translations ja-JP.yml (Polish) 2018-09-07 21:22:11 +09:00
d1d8587096 New translations ja-JP.yml (Korean) 2018-09-07 21:22:09 +09:00
96db630f5e New translations ja-JP.yml (Italian) 2018-09-07 21:22:07 +09:00
91fae0ae8b New translations ja-JP.yml (German) 2018-09-07 21:22:05 +09:00
bfa1235b48 New translations ja-JP.yml (French) 2018-09-07 21:22:02 +09:00
95d324a413 New translations ja-JP.yml (English) 2018-09-07 21:22:00 +09:00
ef3535319b New translations ja-JP.yml (Chinese Simplified) 2018-09-07 21:21:57 +09:00
e9c04f4fa0 New translations ja-JP.yml (Catalan) 2018-09-07 21:21:55 +09:00
e7180d529a 8.30.0 2018-09-07 21:14:27 +09:00
b8cd872738 Merge pull request #2659 from syuilo/greenkeeper/commander-2.18.0
Update commander to the latest version 🚀
2018-09-07 21:14:02 +09:00
efaaa76185 Improve note visibility settings
Closes #2312
Closes #2313
2018-09-07 21:13:15 +09:00
19e1f996a6 Fix bug 2018-09-07 21:10:31 +09:00
40a69bf200 Merge pull request #2654 from syuilo/l10n_develop
New Crowdin translations
2018-09-07 20:41:54 +09:00
9e3abb9989 Improve welcome page 2018-09-07 20:41:12 +09:00
5ba48e06f7 New translations ja-JP.yml (English) 2018-09-07 20:31:22 +09:00
8b3a0a524b Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-07 20:24:00 +09:00
d9fe9cc5df 返すタグの数を制限 2018-09-07 20:23:46 +09:00
b202c7906a New translations ja-JP.yml (Norwegian) 2018-09-07 20:23:33 +09:00
b9c868cac6 New translations ja-JP.yml (Dutch) 2018-09-07 20:23:30 +09:00
33adf3c88d New translations ja-JP.yml (Japanese, Kansai) 2018-09-07 20:23:28 +09:00
8b84f40975 New translations ja-JP.yml (Spanish) 2018-09-07 20:23:25 +09:00
fa131d2023 New translations ja-JP.yml (Russian) 2018-09-07 20:23:23 +09:00
a83b38b50a New translations ja-JP.yml (Portuguese) 2018-09-07 20:23:20 +09:00
dcd7b286ef New translations ja-JP.yml (Polish) 2018-09-07 20:23:18 +09:00
b85bf769cd New translations ja-JP.yml (Korean) 2018-09-07 20:23:15 +09:00
630a20d61e New translations ja-JP.yml (Italian) 2018-09-07 20:23:12 +09:00
88c3794cf1 New translations ja-JP.yml (German) 2018-09-07 20:23:10 +09:00
42eb457ad0 New translations ja-JP.yml (French) 2018-09-07 20:23:08 +09:00
d153a8de20 New translations ja-JP.yml (English) 2018-09-07 20:23:06 +09:00
7f7551f44c New translations ja-JP.yml (Chinese Simplified) 2018-09-07 20:23:03 +09:00
23082b55a4 New translations ja-JP.yml (Catalan) 2018-09-07 20:23:00 +09:00
dac7387a7f fix(package): update minio to version 7.0.1 (#2655) 2018-09-07 20:22:04 +09:00
8c6856d894 Improve welcome page 2018-09-07 20:21:25 +09:00
2c0e514fb2 fix(package): update commander to version 2.18.0 2018-09-07 10:32:06 +00:00
1917b0339e #2652 (#2658) 2018-09-07 19:24:18 +09:00
c05419f223 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-07 19:23:51 +09:00
e0deaec695 Implement new endpoint 2018-09-07 19:23:39 +09:00
d70e2a788e Add some meta alternate links (#2657) 2018-09-07 19:22:14 +09:00
7343e6e2e8 統計で無視するハッシュタグを設定できるように 2018-09-07 19:20:50 +09:00
106d4cc0d6 🎨 2018-09-07 06:04:00 +09:00
c98879cb7a New translations ja-JP.yml (Norwegian) 2018-09-07 05:52:06 +09:00
9ca755c313 New translations ja-JP.yml (Dutch) 2018-09-07 05:52:04 +09:00
25e0b98840 New translations ja-JP.yml (Japanese, Kansai) 2018-09-07 05:52:01 +09:00
5599c43c71 New translations ja-JP.yml (Spanish) 2018-09-07 05:51:59 +09:00
eb7597d7e4 New translations ja-JP.yml (Russian) 2018-09-07 05:51:56 +09:00
d5767e92c4 New translations ja-JP.yml (Portuguese) 2018-09-07 05:51:54 +09:00
ba3749d373 New translations ja-JP.yml (Polish) 2018-09-07 05:51:51 +09:00
d8088acdf2 New translations ja-JP.yml (Korean) 2018-09-07 05:51:49 +09:00
ad93e0aa3d New translations ja-JP.yml (Italian) 2018-09-07 05:51:46 +09:00
691e58f03d New translations ja-JP.yml (German) 2018-09-07 05:51:44 +09:00
95d5bccfca New translations ja-JP.yml (French) 2018-09-07 05:51:42 +09:00
2aa8e0a4bf New translations ja-JP.yml (English) 2018-09-07 05:51:39 +09:00
6e96d6677d New translations ja-JP.yml (Chinese Simplified) 2018-09-07 05:51:36 +09:00
8816c20f51 New translations ja-JP.yml (Catalan) 2018-09-07 05:51:34 +09:00
e955fe1ffd 8.29.0 2018-09-07 05:47:47 +09:00
5cbcac713a Fix 2018-09-07 05:47:19 +09:00
2b50364ab4 ユーザー名にコントラストを付けるデザインのオンオフを切り替えられるように 2018-09-07 05:45:13 +09:00
fa04ac789e 🎨 2018-09-07 05:37:15 +09:00
95ce8dce3d 8.28.1 2018-09-07 05:32:18 +09:00
0b5eec4ca8 Fix bug 2018-09-07 05:32:09 +09:00
6d9716f90e 8.28.0 2018-09-07 04:24:08 +09:00
aa31061d90 fix(package): update node-sass-json-importer to version 4.0.1 (#2645) 2018-09-07 04:23:26 +09:00
acc7797dff New Crowdin translations (#2615)
* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Norwegian)

* New translations ja-JP.yml (Catalan)

* New translations ja-JP.yml (Chinese Simplified)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Portuguese)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Japanese, Kansai)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Norwegian)

* New translations ja-JP.yml (English)
2018-09-07 04:22:16 +09:00
7959196dc7 Add sum function (#2653) 2018-09-07 04:21:04 +09:00
c6ff6939a5 Add capitalize function (#2651) 2018-09-07 03:22:55 +09:00
769960f29e Encode fetch URI if needed (#2649) 2018-09-07 02:26:31 +09:00
d92e9759f3 Refactor analog clock widget (#2648) 2018-09-07 01:20:23 +09:00
bf7e19b288 🎨 2018-09-07 01:18:47 +09:00
98954cd6d4 Trim image 2018-09-07 01:02:31 +09:00
538bb978ed Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-07 00:52:21 +09:00
10232c5866 Fix bug & some refactor 2018-09-07 00:52:13 +09:00
5cd6a0db16 Fix typo: serive -> service (#2647) 2018-09-07 00:44:57 +09:00
ff0a05a2d6 Add unique function (#2644) 2018-09-07 00:10:03 +09:00
e34b264af2 Fix bug (#2643) 2018-09-07 00:03:44 +09:00
00d79487cd Add erase function (#2641) 2018-09-07 00:02:55 +09:00
3cace734c7 Add concat function (#2640) 2018-09-06 21:31:15 +09:00
f428372869 Refactor effects function (#2639) 2018-09-06 20:06:16 +09:00
5dd2feba9b fix(package): update @types/minio to version 7.0.0 (#2626) 2018-09-06 19:55:29 +09:00
a1b026239e fix(package): update @types/ws to version 6.0.1 (#2636) 2018-09-06 19:55:20 +09:00
40735ce76b Fix bug (#2638) 2018-09-06 19:28:52 +09:00
4a00c13b33 🎨 2018-09-06 16:03:00 +09:00
8e359d54bd if elimination (#2635) 2018-09-06 06:06:22 +09:00
fb76dff836 New translations ja-JP.yml (English) 2018-09-06 05:01:19 +09:00
2448bf4e4e 8.27.0 2018-09-06 04:57:21 +09:00
91e0fc8c62 Improve welcome page 2018-09-06 04:52:42 +09:00
b4f86feddb 🎨 2018-09-06 04:38:07 +09:00
7167c8c593 New translations ja-JP.yml (Norwegian) 2018-09-06 04:36:02 +09:00
51b79d4250 New translations ja-JP.yml (Dutch) 2018-09-06 04:36:00 +09:00
925fcc1c64 New translations ja-JP.yml (Japanese, Kansai) 2018-09-06 04:35:54 +09:00
fcdc14862c New translations ja-JP.yml (Spanish) 2018-09-06 04:35:50 +09:00
dac2844cae New translations ja-JP.yml (Russian) 2018-09-06 04:35:45 +09:00
706b0cea16 New translations ja-JP.yml (Portuguese) 2018-09-06 04:35:41 +09:00
842e7844c7 New translations ja-JP.yml (Polish) 2018-09-06 04:35:39 +09:00
1dceda50d8 New translations ja-JP.yml (Korean) 2018-09-06 04:35:33 +09:00
af8b9abba4 New translations ja-JP.yml (Italian) 2018-09-06 04:35:28 +09:00
07b07685fa New translations ja-JP.yml (German) 2018-09-06 04:35:26 +09:00
cde43fe3c8 New translations ja-JP.yml (French) 2018-09-06 04:35:24 +09:00
2fe84aa75b New translations ja-JP.yml (English) 2018-09-06 04:35:21 +09:00
7d79a4840d New translations ja-JP.yml (Chinese Simplified) 2018-09-06 04:35:19 +09:00
3ee9479572 New translations ja-JP.yml (Catalan) 2018-09-06 04:35:16 +09:00
ccf8e44acc Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-06 04:28:42 +09:00
451acb77df Improve welcome page 2018-09-06 04:28:39 +09:00
e2c6227f47 Improve local timeline API 2018-09-06 04:28:22 +09:00
ebd1c877ad Show host in local user detail (#2634) 2018-09-06 03:21:11 +09:00
498094b3c7 Refactor reversi engine (#2633)
* Refactor reversi engine

* Add puttablePlaces
2018-09-06 03:02:52 +09:00
1cc183ecdb Resolve #2631 (#2632) 2018-09-06 02:44:01 +09:00
e8948452fd Resolve #2629 (#2630) 2018-09-06 02:28:04 +09:00
ade7e62836 Add README.md for prelude (#2628) 2018-09-06 02:24:39 +09:00
395cfa6108 Resolve #2625 (#2627) 2018-09-06 02:16:08 +09:00
b5ff2abdb9 互換性のためのコードを追加 & #2623 2018-09-05 23:55:51 +09:00
229e85b2c5 [WIP] Update welcome page 2018-09-05 21:51:31 +09:00
37058e3480 Fix parameter name 2018-09-05 19:35:57 +09:00
a1b82e9723 #2620 2018-09-05 19:32:46 +09:00
db943df0c8 🎨 2018-09-05 18:09:31 +09:00
ff8d300ea8 モバイル版のメニューにお知らせを表示するように 2018-09-05 17:43:31 +09:00
8b490b9b94 #2607 2018-09-05 16:48:59 +09:00
f83f8631ac fix(package): update systeminformation to version 3.45.1 (#2616) 2018-09-05 13:56:59 +09:00
16da91d8d1 New translations ja-JP.yml (Norwegian) 2018-09-05 13:51:56 +09:00
8ffd62b462 New translations ja-JP.yml (Dutch) 2018-09-05 13:51:54 +09:00
935367e167 New translations ja-JP.yml (Japanese, Kansai) 2018-09-05 13:51:50 +09:00
00618260f2 New translations ja-JP.yml (Spanish) 2018-09-05 13:51:46 +09:00
77d66fac7b New translations ja-JP.yml (Russian) 2018-09-05 13:51:40 +09:00
17d7f59b06 New translations ja-JP.yml (Portuguese) 2018-09-05 13:51:38 +09:00
2561547db1 New translations ja-JP.yml (Polish) 2018-09-05 13:51:36 +09:00
7738438616 New translations ja-JP.yml (Korean) 2018-09-05 13:51:34 +09:00
3d8fc4a794 New translations ja-JP.yml (Italian) 2018-09-05 13:51:28 +09:00
87b4e7905e New translations ja-JP.yml (German) 2018-09-05 13:51:25 +09:00
13c5d4985a New translations ja-JP.yml (French) 2018-09-05 13:51:23 +09:00
f0df4096fd New translations ja-JP.yml (English) 2018-09-05 13:51:21 +09:00
5044424549 New translations ja-JP.yml (Chinese Simplified) 2018-09-05 13:51:19 +09:00
8ce67cdcd6 New translations ja-JP.yml (Catalan) 2018-09-05 13:51:16 +09:00
1915ccabdd 8.26.0 2018-09-05 13:49:08 +09:00
6fea2f52f1 nanka iroiro 2018-09-05 13:47:26 +09:00
f77eaaa08a Improve usability 2018-09-05 13:06:49 +09:00
7c5bc03492 Update langs 2018-09-05 12:53:08 +09:00
72a1af6cd4 Merge pull request #2548 from syuilo/l10n_develop
New Crowdin translations
2018-09-05 12:50:11 +09:00
4bce6f14f3 fix(package): update node-sass-json-importer to version 4.0.0 (#2614) 2018-09-05 12:48:00 +09:00
a38ce86f87 fix(package): update systeminformation to version 3.45.0 (#2609) 2018-09-05 12:47:30 +09:00
f539491502 fix(package): update vue-js-modal to version 1.3.26 (#2613) 2018-09-05 12:47:13 +09:00
d279f8e9ff 🎨 2018-09-04 19:19:51 +09:00
eaec936fa6 Fix remote follow (#2606) 2018-09-04 18:33:16 +09:00
a0735b0e7a fix(package): update webpack to version 4.17.2 (#2599) 2018-09-04 18:15:58 +09:00
5b039a1bee Add User-Agent header (#2602) 2018-09-04 17:44:21 +09:00
921609cab1 8.25.0 2018-09-04 13:07:09 +09:00
199573ccee #2566 2018-09-04 13:03:16 +09:00
977200b7cd 🎨 2018-09-04 12:59:40 +09:00
6abff253ea トップページのタイムラインをリアルタイム更新するように 2018-09-04 12:59:34 +09:00
ba64de334a Fix bug 2018-09-04 12:58:43 +09:00
dc1d7fa9d7 ローカルタイムラインストリームに認証不要で接続できるように 2018-09-04 12:58:35 +09:00
f42665d4bc 🎨 2018-09-04 11:34:36 +09:00
a5eb19c878 Support darkmode 2018-09-04 11:24:39 +09:00
60fa8e13d6 New translations ja-JP.yml (English) 2018-09-04 02:21:29 +09:00
ecbaea463b New translations ja-JP.yml (Norwegian) 2018-09-04 02:12:04 +09:00
814ddeb436 New translations ja-JP.yml (Dutch) 2018-09-04 02:12:01 +09:00
d6466106e8 New translations ja-JP.yml (Japanese, Kansai) 2018-09-04 02:11:59 +09:00
633f5384f9 New translations ja-JP.yml (Spanish) 2018-09-04 02:11:56 +09:00
fa7989772c New translations ja-JP.yml (Russian) 2018-09-04 02:11:53 +09:00
0e395612a6 New translations ja-JP.yml (Portuguese) 2018-09-04 02:11:50 +09:00
fb3f52f3ad New translations ja-JP.yml (Polish) 2018-09-04 02:11:48 +09:00
ba11c71d65 New translations ja-JP.yml (Korean) 2018-09-04 02:11:46 +09:00
bdc3081167 New translations ja-JP.yml (Italian) 2018-09-04 02:11:43 +09:00
430efcf1b9 New translations ja-JP.yml (German) 2018-09-04 02:11:41 +09:00
996450dd7c New translations ja-JP.yml (French) 2018-09-04 02:11:38 +09:00
fa779f0417 New translations ja-JP.yml (English) 2018-09-04 02:11:35 +09:00
25cec6d28a New translations ja-JP.yml (Chinese Simplified) 2018-09-04 02:11:33 +09:00
c5f8403cea New translations ja-JP.yml (Catalan) 2018-09-04 02:11:30 +09:00
a9ae9a65c8 8.24.0 2018-09-04 02:10:47 +09:00
3698c679e2 🍕 2018-09-04 02:09:56 +09:00
881df20f1b New translations ja-JP.yml (Spanish) 2018-09-03 23:32:05 +09:00
7d269c0441 New translations ja-JP.yml (Spanish) 2018-09-03 23:26:23 +09:00
ba38f64353 8.23.0 2018-09-03 23:25:35 +09:00
db3ae303cb Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-03 23:23:55 +09:00
66f3a155e6 なんかもうめっちゃやった 2018-09-03 23:23:50 +09:00
639b483e6c New translations ja-JP.yml (Spanish) 2018-09-03 23:22:57 +09:00
09843a409b Fix typo: Wroker -> Worker (#2597) 2018-09-03 18:58:26 +09:00
e894ed5a8b New translations ja-JP.yml (Dutch) 2018-09-03 14:30:56 +09:00
d7808299fd New translations ja-JP.yml (Norwegian) 2018-09-03 14:20:56 +09:00
f92e0c16d2 New translations ja-JP.yml (Dutch) 2018-09-03 14:20:53 +09:00
d94b3757be Merge branch 'master' into develop 2018-09-02 22:41:10 +09:00
13e822cba6 Trim text
Closes #2595
2018-09-02 22:40:27 +09:00
c57bf87f52 Make poll button togglable (#2592) 2018-09-02 21:39:47 +09:00
99fbd60265 Improve url visual (#2591)
* Use string interpolation

* improve url visual

* fix lint
2018-09-02 20:19:59 +09:00
ea9b48db3c Merge branch 'develop' 2018-09-02 19:27:33 +09:00
c145c994a9 8.22.0 2018-09-02 19:27:09 +09:00
d033998b56 Update README.md [AUTOGEN] (#2586) 2018-09-02 19:10:12 +09:00
3136c714bf Fix users/list/update API (#2590) 2018-09-02 19:03:00 +09:00
c0ee134f19 Add users/lists/delete API (#2589) 2018-09-02 18:59:42 +09:00
d15ebe5732 Improve usability 2018-09-02 18:27:43 +09:00
ef630195fa モバイルのドライブダイアログがおかしいのを修正 & ダークモード対応 2018-09-02 18:23:47 +09:00
e31921151e Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-02 17:56:39 +09:00
f94992abbe 🎨 2018-09-02 17:56:20 +09:00
b00060c09c Clean up 2018-09-02 17:44:49 +09:00
f6217d96d2 add an endpoint users/lists/update (#2585)
* add an endpoint users/lists/update

* add meta params

* fix packing
2018-09-02 11:25:32 +09:00
3a6947c7ed Update README.md [AUTOGEN] 2018-09-02 09:45:28 +09:00
0fb528ddf8 Merge branch 'develop' 2018-09-02 09:34:26 +09:00
14c03f226d 8.21.1 2018-09-02 09:33:55 +09:00
4f0d844b43 Remove needless properties 2018-09-02 09:31:11 +09:00
b93395fc4c Update README.md [AUTOGEN] 2018-09-02 09:05:34 +09:00
34eacb7e2d Update README.md [AUTOGEN] 2018-09-02 08:03:27 +09:00
0177023ead Use Tombstone for Delete 2018-09-02 08:02:43 +09:00
a4678e45de Not check dependencies 2018-09-02 08:02:10 +09:00
f24869625e fix 2018-09-02 01:10:55 +09:00
01beb705a2 8.21.0 2018-09-02 00:07:23 +09:00
ce28c70c35 Clean up 2018-09-01 23:57:05 +09:00
5e0f5c31e7 Merge branch 'string-interpolation' into develop 2018-09-01 23:30:16 +09:00
b28dd4be52 Use typeof 2018-09-01 23:29:22 +09:00
291beb45fc Use string interpolation 2018-09-01 23:12:51 +09:00
ffb345ccb5 fix #2315 (#2339)
* improve MFM to html

* improve html to MFM

* missing semicolon

* missing semicolon

* fix html to MFM

タグのリンクは解除するように

* fix bug

* misssing semicolon

* Update html-to-mfm.ts

* Update html-to-mfm.ts
2018-09-01 22:45:27 +09:00
d2abe2cd81 Merge pull request #2573 from syuilo/refactor-mfm
Refactor mfm component
2018-09-01 22:39:30 +09:00
acffc3e522 Refactor mfm component 2018-09-01 22:38:50 +09:00
0962e62b8c Merge pull request #2572 from syuilo/refactor-reversi-game
Refactor reversi game
2018-09-01 22:20:32 +09:00
91ebd310b7 Refactor reversi game 2018-09-01 22:18:07 +09:00
2974c74b4e Merge pull request #2571 from syuilo/refactor-reversi-engine
Refactor reversi engine
2018-09-01 22:11:33 +09:00
3d24112d2d Refactor reversi engine 2018-09-01 22:09:54 +09:00
4a977cd523 Update CHANGELOG.md 2018-09-01 21:42:07 +09:00
4b1886990f Merge pull request #2570 from mei23/mei-0901-update2b
Implement ActivityPub Update(Person)
2018-09-01 21:38:49 +09:00
f3499b787c 8.20.0 2018-09-01 20:49:06 +09:00
5209a584a2 Better post form 2018-09-01 20:47:49 +09:00
57a63d38aa Send Update activity 2018-09-01 20:23:01 +09:00
3efffbcf22 Receive Update activity 2018-09-01 20:23:01 +09:00
15eaebe522 updatePersonで再割り当てを考慮する 2018-09-01 20:23:01 +09:00
eee98358ac Add missing updatePerson properties 2018-09-01 20:23:01 +09:00
795fc5e7bc Set Person.updatedAt at first 2018-09-01 20:23:01 +09:00
70ac668474 Merge pull request #2568 from syuilo/fix-drop-index
Fix drop index
2018-09-01 19:13:49 +09:00
1004e0d6e8 Merge pull request #2567 from syuilo/update-setup-docs
Update setup docs
2018-09-01 19:13:22 +09:00
52aa64fcb6 Fix drop index 2018-09-01 19:12:07 +09:00
7860d97a10 Add type annotation 2018-09-01 18:47:02 +09:00
409b37b271 Update setup docs 2018-09-01 18:42:46 +09:00
ad9b9964fa Update contribution guide 2018-09-01 18:15:25 +09:00
d2b5276f43 Merge pull request #2565 from syuilo/contribution-guide
Update contribution guide
2018-09-01 18:06:19 +09:00
7204e2a84c Update contribution guide 2018-09-01 18:05:13 +09:00
1377fa3332 Merge pull request #2564 from syuilo/readme
Update README.md
2018-09-01 17:28:13 +09:00
bf087bfccf Update README.md 2018-09-01 17:27:33 +09:00
e846e3d571 Update .npmrc 2018-09-01 16:48:22 +09:00
d646e62888 Merge pull request #2559 from acid-chicken/patch-4
Update autogen.sh
2018-09-01 16:34:57 +09:00
c008154d18 8.19.1 2018-09-01 16:26:31 +09:00
29bd4de26a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-09-01 16:23:40 +09:00
7559b8da6c ✌️ 2018-09-01 16:23:23 +09:00
35218e84fc Merge pull request #2561 from syuilo/refactor-lang-loader
Refactor languages loader
2018-09-01 16:13:50 +09:00
2c135fa2f6 Not fallback to native locale 2018-09-01 16:12:50 +09:00
21da6bd047 Refactor languages loader 2018-09-01 16:05:10 +09:00
f1d65a66b4 Fix bug 2018-09-01 15:38:03 +09:00
63e2dbbb0d Fix bug 2018-09-01 15:22:28 +09:00
a228c522f1 Update autogen.sh 2018-09-01 14:54:40 +09:00
a951c337b8 New translations ja-JP.yml (English) 2018-09-01 14:30:49 +09:00
db3efb3791 New translations ja-JP.yml (English) 2018-09-01 14:20:51 +09:00
8ee771ca77 8.19.0 2018-09-01 13:12:52 +09:00
488bbc9651 DeckでもURLプレビュー 2018-09-01 13:08:43 +09:00
29b2bdf613 Fix bug 2018-09-01 12:58:04 +09:00
7e35048829 8.18.0 2018-09-01 12:06:15 +09:00
4d6b9f62e5 モバイルのドライブをダークモード対応した 2018-09-01 12:05:25 +09:00
5f9a9867eb New translations ja-JP.yml (Japanese, Kansai) 2018-09-01 09:51:26 +09:00
059a8e07d2 New translations ja-JP.yml (Spanish) 2018-09-01 09:51:24 +09:00
cf82f56e66 New translations ja-JP.yml (Russian) 2018-09-01 09:51:20 +09:00
2778bd14d4 New translations ja-JP.yml (Portuguese) 2018-09-01 09:51:16 +09:00
5b0446739c New translations ja-JP.yml (Polish) 2018-09-01 09:51:14 +09:00
55f235d0ac New translations ja-JP.yml (Korean) 2018-09-01 09:51:11 +09:00
4ec44c68e9 New translations ja-JP.yml (Italian) 2018-09-01 09:51:09 +09:00
e6952d499a New translations ja-JP.yml (German) 2018-09-01 09:51:06 +09:00
e0b82f827b New translations ja-JP.yml (French) 2018-09-01 09:51:03 +09:00
0bccb17e82 New translations ja-JP.yml (English) 2018-09-01 09:51:00 +09:00
b251b8c6a9 New translations ja-JP.yml (Chinese Simplified) 2018-09-01 09:50:58 +09:00
c2a62f632b New translations ja-JP.yml (Catalan) 2018-09-01 09:50:56 +09:00
359da9a5a1 8.17.0 2018-09-01 09:44:15 +09:00
2a235151ed #2236 #2237 2018-09-01 09:42:25 +09:00
9e318d5ebc Fix bug 2018-09-01 09:29:59 +09:00
6819eb3b4d Improve usability 2018-09-01 09:16:25 +09:00
4c6fb60dd2 #2541 2018-09-01 08:13:18 +09:00
bffb9a5c45 #2447 #1958 2018-09-01 08:09:21 +09:00
dca4053a67 Merge branch 'master' into develop 2018-09-01 07:33:34 +09:00
fd07f00d14 #2551 2018-09-01 07:33:04 +09:00
bbeb6d534e Merge pull request #2557 from Hiramiya/darkmode
Fix darkmode on followers-you-may-know
2018-09-01 07:15:22 +09:00
37b5afa1a3 New translations ja-JP.yml (English) 2018-09-01 04:52:25 +09:00
63b8af4531 Fix darkmode on followers-you-may-know 2018-08-31 20:42:20 +01:00
e89e76076a Merge pull request #2555 from mei23/mei-0831-vali3
HTTP Signature ホスト検証エラーメッセージの調整
2018-08-31 18:07:08 +09:00
18b4f74cdb Improve validation error message 2018-08-31 16:46:24 +09:00
b80d0a3b12 New translations ja-JP.yml (English) 2018-08-31 16:11:19 +09:00
e53dde385c Merge pull request #2549 from syuilo/greenkeeper/@types/node-10.9.4
Update @types/node to the latest version 🚀
2018-08-31 07:00:46 +09:00
6a7a4c20e6 Merge pull request #2550 from Hiramiya/fix-invalidfiletype
Fix broken invalid-filetype behaviour
2018-08-31 07:00:31 +09:00
6434dac04d Add return for invalid filetypes, fixes wrong behaviour 2018-08-30 21:04:20 +01:00
5deb1bf40e Merge remote-tracking branch 'upstream/develop' into develop 2018-08-30 21:03:00 +01:00
9cd334576c fix(package): update @types/node to version 10.9.4 2018-08-30 16:41:33 +00:00
ae36bf301a Merge branch 'develop' 2018-08-30 22:16:04 +09:00
9f60688d37 New translations ja-JP.yml (Japanese, Kansai) 2018-08-30 22:15:42 +09:00
6a5a9de795 8.16.0 2018-08-30 22:15:41 +09:00
ca0ea9e57c New translations ja-JP.yml (Spanish) 2018-08-30 22:15:39 +09:00
a77a7e8112 New translations ja-JP.yml (Russian) 2018-08-30 22:15:35 +09:00
b26ea2edc0 New translations ja-JP.yml (Portuguese) 2018-08-30 22:15:31 +09:00
02b99dfd76 New translations ja-JP.yml (Polish) 2018-08-30 22:15:28 +09:00
af02b0f115 New translations ja-JP.yml (Korean) 2018-08-30 22:15:25 +09:00
9b3c379678 New translations ja-JP.yml (Italian) 2018-08-30 22:15:21 +09:00
a423fd7695 New translations ja-JP.yml (German) 2018-08-30 22:15:18 +09:00
de6e1d8c9b New translations ja-JP.yml (French) 2018-08-30 22:15:15 +09:00
d9db3e8629 New translations ja-JP.yml (English) 2018-08-30 22:15:13 +09:00
ac1c81b7d6 New translations ja-JP.yml (Chinese Simplified) 2018-08-30 22:15:10 +09:00
49b2eec534 New translations ja-JP.yml (Catalan) 2018-08-30 22:15:07 +09:00
f0abc46429 開発モードで警告を表示するようにするなど 2018-08-30 22:10:29 +09:00
9fd4f5ee0a Merge pull request #2542 from syuilo/l10n_develop
New Crowdin translations
2018-08-30 21:44:00 +09:00
5e202c3def Merge pull request #2547 from mei23/mei-0830-httpsignature
HTTP Signature 周辺の修正
2018-08-30 21:11:43 +09:00
48223c1c76 Validate host in activity 2018-08-30 20:53:41 +09:00
dddf7834cc Add host/digest to HTTP signature 2018-08-30 20:52:35 +09:00
66ef30b2cc New translations ja-JP.yml (Japanese, Kansai) 2018-08-30 18:38:30 +09:00
f802fe57b9 Merge pull request #2539 from syuilo/greenkeeper/@types/websocket-0.0.40
Update @types/websocket to the latest version 🚀
2018-08-30 09:28:59 +09:00
ead884ce89 Merge pull request #2538 from syuilo/greenkeeper/@types/uuid-3.4.4
Update @types/uuid to the latest version 🚀
2018-08-30 09:28:50 +09:00
6a87e9f690 fix(package): update @types/websocket to version 0.0.40 2018-08-30 00:18:42 +00:00
5b943722fb fix(package): update @types/uuid to version 3.4.4 2018-08-30 00:16:12 +00:00
4d92b14308 Merge pull request #2527 from syuilo/l10n_develop
New Crowdin translations
2018-08-30 08:44:33 +09:00
167c96d14e New translations ja-JP.yml (English) 2018-08-30 04:01:04 +09:00
8a42373753 Merge pull request #2534 from syuilo/greenkeeper/summaly-2.2.0
Update summaly to the latest version 🚀
2018-08-30 03:57:44 +09:00
c1751a9b84 Merge pull request #2535 from syuilo/greenkeeper/vue-js-modal-1.3.24
Update vue-js-modal to the latest version 🚀
2018-08-30 03:57:37 +09:00
4e11da98d9 Merge branch 'develop' into l10n_develop 2018-08-30 03:56:51 +09:00
1b7d98c17e 🎨 2018-08-30 03:56:04 +09:00
3038434712 Fix bug 2018-08-30 03:53:26 +09:00
117ab633a1 Improve API 2018-08-30 03:49:52 +09:00
e50fa4762d Clean up 2018-08-30 03:37:23 +09:00
aed1e839ba Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-30 03:32:45 +09:00
00f2974a2a Refactoring 2018-08-30 03:32:42 +09:00
073c96af47 fix(package): update vue-js-modal to version 1.3.24 2018-08-29 14:02:49 +00:00
71da498364 New translations ja-JP.yml (French) 2018-08-29 22:04:54 +09:00
8e9c11f160 New translations ja-JP.yml (French) 2018-08-29 21:54:19 +09:00
98f6b23249 fix(package): update summaly to version 2.2.0 2018-08-29 12:27:33 +00:00
89288d8e0d Merge pull request #2530 from mei23/mei-0829-apvalidate
ActivityPub Personのホストの検証等の修正
2018-08-29 17:32:33 +09:00
724121eeaa New translations ja-JP.yml (Japanese, Kansai) 2018-08-29 17:32:12 +09:00
edee95a5ca New translations ja-JP.yml (Spanish) 2018-08-29 17:32:08 +09:00
0c2361bf72 New translations ja-JP.yml (Russian) 2018-08-29 17:32:05 +09:00
92f8dc48e3 New translations ja-JP.yml (Portuguese) 2018-08-29 17:32:02 +09:00
06a0fff4b0 New translations ja-JP.yml (Polish) 2018-08-29 17:31:58 +09:00
d55e4621ac New translations ja-JP.yml (Korean) 2018-08-29 17:31:55 +09:00
bc6bda3714 New translations ja-JP.yml (Italian) 2018-08-29 17:31:53 +09:00
d3aafd3f13 New translations ja-JP.yml (German) 2018-08-29 17:31:50 +09:00
1a508de1c4 New translations ja-JP.yml (French) 2018-08-29 17:31:46 +09:00
768cc0aff5 New translations ja-JP.yml (English) 2018-08-29 17:31:42 +09:00
67f4c1f429 New translations ja-JP.yml (Chinese Simplified) 2018-08-29 17:31:39 +09:00
2d4ceec0a5 New translations ja-JP.yml (Catalan) 2018-08-29 17:31:35 +09:00
3e2a0cd89a Add missing l10n 2018-08-29 17:20:51 +09:00
d1f4f2f663 New translations ja-JP.yml (French) 2018-08-29 17:11:12 +09:00
6e3bf26cad Validate host on Person 2018-08-29 16:10:03 +09:00
672377f116 Merge pull request #2524 from l2dy/https-maps
Use https:// for maps.google.com links
2018-08-29 14:46:09 +09:00
80ee5afba7 Merge pull request #2523 from syuilo/l10n_develop
New Crowdin translations
2018-08-29 13:35:37 +09:00
f55fcd3305 Use https:// for maps.google.com links 2018-08-29 04:34:53 +00:00
64fc14ade5 New translations ja-JP.yml (English) 2018-08-29 13:31:12 +09:00
807f245657 Merge pull request #2522 from syuilo/greenkeeper/@types/node-10.9.3
Update @types/node to the latest version 🚀
2018-08-29 12:50:11 +09:00
62f966dc27 fix(package): update @types/node to version 10.9.3 2018-08-29 02:19:40 +00:00
09f97bf7a7 Merge pull request #2521 from syuilo/greenkeeper/systeminformation-3.44.2
fix(package): update systeminformation to version 3.44.2
2018-08-29 10:35:14 +09:00
69460e494c Merge pull request #2520 from syuilo/greenkeeper/vue-js-modal-1.3.23
fix(package): update vue-js-modal to version 1.3.23
2018-08-29 10:34:53 +09:00
9bef723346 fix(package): update systeminformation to version 3.44.2
Closes #2519
2018-08-29 01:08:49 +00:00
b99eabb2cf fix(package): update vue-js-modal to version 1.3.23
Closes #2517
2018-08-29 00:57:08 +00:00
17be3f3d0f Merge pull request #2470 from syuilo/l10n_develop
New Crowdin translations
2018-08-29 08:41:27 +09:00
05fe2cb173 New translations ja-JP.yml (English) 2018-08-29 07:21:30 +09:00
428be14c27 New translations ja-JP.yml (Japanese, Kansai) 2018-08-29 07:11:58 +09:00
a04fa8441e New translations ja-JP.yml (Spanish) 2018-08-29 07:11:55 +09:00
7bcfa84e1a New translations ja-JP.yml (Russian) 2018-08-29 07:11:53 +09:00
1cc5986df3 New translations ja-JP.yml (Portuguese) 2018-08-29 07:11:50 +09:00
7aa5d03875 New translations ja-JP.yml (Polish) 2018-08-29 07:11:48 +09:00
a59fbfac19 New translations ja-JP.yml (Korean) 2018-08-29 07:11:46 +09:00
677f9ee8f6 New translations ja-JP.yml (Italian) 2018-08-29 07:11:43 +09:00
f4a16be2b4 New translations ja-JP.yml (German) 2018-08-29 07:11:41 +09:00
46b967ee4a New translations ja-JP.yml (French) 2018-08-29 07:11:39 +09:00
78568accd1 New translations ja-JP.yml (English) 2018-08-29 07:11:36 +09:00
e9f20a0fad New translations ja-JP.yml (Chinese Simplified) 2018-08-29 07:11:34 +09:00
bbd9894e6b New translations ja-JP.yml (Catalan) 2018-08-29 07:11:31 +09:00
f92745e381 デフォルトで時計を表示するように 2018-08-29 07:10:42 +09:00
2762b78bcc モバイルでもサウンドの設定を行えるように 2018-08-29 07:05:56 +09:00
2d4ed2c8c2 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-29 07:00:02 +09:00
2de8e8c358 Fix bug 2018-08-29 06:59:43 +09:00
eb7b638db3 Merge pull request #2516 from syuilo/greenkeeper/@types/elasticsearch-5.0.26
Update @types/elasticsearch to the latest version 🚀
2018-08-29 06:52:00 +09:00
321e851b26 Fix bug 2018-08-29 06:46:05 +09:00
f8340be3bf fix(package): update @types/elasticsearch to version 5.0.26 2018-08-28 20:36:04 +00:00
02341ceb6e Merge pull request #2512 from Hiramiya/avatarbannerfiletypes
Fix linting errors
2018-08-28 18:08:22 +09:00
3dcdd7a5d7 Fix linting errors 2018-08-28 09:44:49 +01:00
85188b5de2 Merge pull request #3 from syuilo/develop
match main repo
2018-08-28 09:08:15 +01:00
b721d049c6 Merge pull request #2484 from syuilo/greenkeeper/nan-2.11.0
Update nan to the latest version 🚀
2018-08-28 08:09:41 +09:00
e518fff944 Merge pull request #2483 from syuilo/greenkeeper/systeminformation-3.44.0
Update systeminformation to the latest version 🚀
2018-08-28 08:09:22 +09:00
048128c7e1 Merge pull request #2510 from syuilo/greenkeeper/style-loader-0.23.0
Update style-loader to the latest version 🚀
2018-08-28 08:09:09 +09:00
d3717449c2 Merge pull request #2508 from syuilo/greenkeeper/vue-js-modal-1.3.20
Update vue-js-modal to the latest version 🚀
2018-08-28 08:08:54 +09:00
04de6218d3 Merge pull request #2495 from syuilo/greenkeeper/vue-loader-15.4.1
Update vue-loader to the latest version 🚀
2018-08-28 08:08:46 +09:00
0082473d78 Merge pull request #2502 from acid-chicken/patch-autogen
[AUTOMATED] Update README.md
2018-08-28 08:07:54 +09:00
77baca8e6e Merge pull request #2511 from Hiramiya/avatarbannerfiletypes
Prevent setting non-image files as avatar/banner
2018-08-28 07:41:50 +09:00
6a7169630c Merge pull request #2509 from Hiramiya/updateavatarfix
Update update-avatar.ts to match update-banner.ts behaviour
2018-08-28 07:39:35 +09:00
6b2089e043 Merge pull request #2507 from Hiramiya/darkmode
Fix various darkmode elements on user pages
2018-08-28 07:38:49 +09:00
14ad3af30d Add "invalid-filetype" translation 2018-08-27 20:04:39 +01:00
e7e6d833b7 Restrict banner filetypes 2018-08-27 20:03:48 +01:00
d1a9561135 Restrict avatar filetypes 2018-08-27 20:03:28 +01:00
c7bda6f908 fix(package): update style-loader to version 0.23.0 2018-08-27 18:05:30 +00:00
ef43721e32 Update update-avatar.ts 2018-08-27 17:29:21 +01:00
ba6cd874aa fix(package): update vue-js-modal to version 1.3.20 2018-08-27 15:41:07 +00:00
f283d2423f Fix border-radius on friends 2018-08-27 16:06:31 +01:00
c07f668f14 Fix border-radius on photos 2018-08-27 16:06:04 +01:00
596524a63c Merge pull request #1 from Hiramiya/develop
Changes to darkmode on user page
2018-08-27 15:58:22 +01:00
975e4dd285 Remove temp border change 2018-08-27 15:51:31 +01:00
09b05c8552 DarkMode user page bottom nav 2018-08-27 15:46:27 +01:00
530ee6f80e DarkMode User Photos 2018-08-27 15:45:35 +01:00
6ad31dca76 DarkMode user friends 2018-08-27 15:43:19 +01:00
d423f8ae57 Merge branch 'develop' 2018-08-27 04:56:57 +09:00
8e5ce7f8e3 8.15.0 2018-08-27 04:56:38 +09:00
33dfc21e4b Fix bug 2018-08-27 04:50:52 +09:00
3266f3948a Update README.md [AUTOGEN] 2018-08-26 17:55:06 +09:00
7259887124 Merge pull request #2500 from syuilo/delete-script
Remove delete-invalid-users.js
2018-08-26 14:30:24 +09:00
800de03187 Remove delete-invalid-users.js 2018-08-26 14:29:12 +09:00
78ba305e5c Merge pull request #2498 from syuilo/ends-with
Use endsWith for readability
2018-08-26 14:03:06 +09:00
bfed1475bb Use endsWith for readability 2018-08-26 13:55:39 +09:00
3281d263c4 New translations ja-JP.yml (Portuguese) 2018-08-26 13:50:55 +09:00
a9a1798e3a New translations ja-JP.yml (Portuguese) 2018-08-26 13:40:51 +09:00
6806eafaed fix(package): update vue-loader to version 15.4.1 2018-08-26 02:26:22 +00:00
3e20ea5b2e Merge pull request #2494 from xps2/donation-from-config
donation、configのmaintainerを参照するよう変更
2018-08-26 10:32:41 +09:00
3f30a69b8b fix 2018-08-26 10:29:24 +09:00
2d2e16d9f6 donation、configのmaintainerを参照するよう変更 2018-08-26 10:14:43 +09:00
9c32118b77 Merge branch 'develop' 2018-08-26 02:33:29 +09:00
ecf2eb4738 8.14.0 2018-08-26 02:33:04 +09:00
3d754ea7eb New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 02:21:08 +09:00
f755f24560 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 02:11:06 +09:00
699879d95d Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-26 02:05:46 +09:00
6677508ba7 Fix #2428 2018-08-26 02:05:42 +09:00
58da32358b Fix indent 2018-08-26 02:05:13 +09:00
491bc75095 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 02:01:04 +09:00
b9eafeee3f Merge pull request #2486 from syuilo/fix-fa-pen
Use pencil-alt instead of pen
2018-08-26 01:57:39 +09:00
c56ff5d88d Add sunnaly proxy option 2018-08-26 01:56:21 +09:00
f5dd83a44a New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 01:51:08 +09:00
9a295a85b1 Merge pull request #2491 from xps2/fix-repository-feedback-url
リポジトリとフィードバックのURLが設定ファイルから反映されないのを修正
2018-08-26 01:23:41 +09:00
8e06d93c31 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 01:21:31 +09:00
1a42200137 New translations ja-JP.yml (Spanish) 2018-08-26 01:21:29 +09:00
bbf33d2475 New translations ja-JP.yml (Russian) 2018-08-26 01:21:27 +09:00
93203ebfd1 New translations ja-JP.yml (Portuguese) 2018-08-26 01:21:24 +09:00
67053eeaa0 New translations ja-JP.yml (Polish) 2018-08-26 01:21:22 +09:00
43baf4ad6a New translations ja-JP.yml (Korean) 2018-08-26 01:21:20 +09:00
5b2a36e47b New translations ja-JP.yml (Italian) 2018-08-26 01:21:18 +09:00
2a0862a24e New translations ja-JP.yml (German) 2018-08-26 01:21:16 +09:00
ce31027b2e New translations ja-JP.yml (French) 2018-08-26 01:21:13 +09:00
3f66c77821 New translations ja-JP.yml (English) 2018-08-26 01:21:11 +09:00
bc713656ec New translations ja-JP.yml (Chinese Simplified) 2018-08-26 01:21:09 +09:00
46d89faebc New translations ja-JP.yml (Catalan) 2018-08-26 01:21:07 +09:00
7135c0e308 Merge pull request #2487 from syuilo/clock-visibility-option
Make clock on header optional
2018-08-26 01:20:29 +09:00
1962bfb4a5 Merge pull request #2489 from mei23/mei-0825-apresolvekey
リモートユーザー解決時のURIがまちがっているのを修正
2018-08-26 01:19:07 +09:00
a1fca2550e Merge pull request #2488 from syuilo/refactor-string
Use startsWith and endsWith for readability
2018-08-26 01:18:34 +09:00
c17f99b7a5 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 01:11:06 +09:00
7cd76d60c2 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 01:01:41 +09:00
fa7c8cfe5b リポジトリとフィードバックのURLが設定ファイルから反映されないのを修正 2018-08-26 01:00:13 +09:00
05fb8d35af New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:51:24 +09:00
eaa827e2d9 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:41:40 +09:00
f365ea4585 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:34:44 +09:00
5d2e43ffb9 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:21:08 +09:00
e9a97ed99a New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:11:42 +09:00
fe98102600 New translations ja-JP.yml (Japanese, Kansai) 2018-08-26 00:01:48 +09:00
aae8845664 New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 23:53:11 +09:00
81a4388ecc New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 23:41:12 +09:00
be3ab026fd New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 23:31:03 +09:00
f92f9d8cb0 New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 23:11:12 +09:00
08a59591ae Use startsWith and endsWith for readability 2018-08-25 22:42:26 +09:00
a09a244242 Fix resolvePerson key 2018-08-25 22:25:40 +09:00
483a61d90d Make clock on header optional 2018-08-25 22:24:58 +09:00
385fb7586b Use pencil-alt instead of pen 2018-08-25 22:07:10 +09:00
c624da70ef fix(package): update nan to version 2.11.0 2018-08-25 12:45:23 +00:00
675668c395 New translations ja-JP.yml (French) 2018-08-25 20:41:14 +09:00
bc9c7efe85 fix(package): update systeminformation to version 3.44.0 2018-08-25 11:19:17 +00:00
2488d40421 Merge pull request #2482 from syuilo/develop
8.13.0
2018-08-25 19:46:50 +09:00
bf7875bfaa Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-25 19:46:20 +09:00
a84fa30774 8.13.0 2018-08-25 19:46:12 +09:00
c19a763b3d Merge pull request #2481 from syuilo/greenkeeper/systeminformation-3.43.0
fix(package): update systeminformation to version 3.43.0
2018-08-25 19:45:31 +09:00
0875460974 ユーザーのアイコンにサムネイルを使うように
Closes #2365
2018-08-25 19:44:47 +09:00
f0b08d3936 Add brackets 2018-08-25 19:39:06 +09:00
16520c7b4c Merge pull request #2476 from acid-chicken/patch-4
Fix #2392
2018-08-25 19:37:35 +09:00
65549d06d9 ✌️ 2018-08-25 19:34:54 +09:00
52da66d550 New translations ja-JP.yml (English) 2018-08-25 18:12:08 +09:00
251c3c3fe4 New translations ja-JP.yml (English) 2018-08-25 18:01:25 +09:00
ce2d2a10c1 fix(package): update systeminformation to version 3.43.0
Closes #2477
2018-08-25 08:56:01 +00:00
3b6d242ef6 New translations ja-JP.yml (English) 2018-08-25 17:51:28 +09:00
0ebe801af4 Update boot.js 2018-08-25 17:06:40 +09:00
05daa7ac7d Merge pull request #2475 from syuilo/develop
8.12.0
2018-08-25 16:35:29 +09:00
990a583e5e 8.12.0 2018-08-25 16:34:41 +09:00
d9b02a18bf Merge pull request #2474 from mei23/mei-0825-appleroma2
Pleromaとつながらないのを修正
2018-08-25 16:33:02 +09:00
30aae79e5c Merge pull request #2473 from syuilo/develop
8.11.1
2018-08-25 15:41:06 +09:00
a149c121fb 8.11.1 2018-08-25 15:40:47 +09:00
47f4b51207 Fix bug 2018-08-25 15:40:22 +09:00
79f4d886d0 Merge pull request #2472 from syuilo/develop
8.11.0
2018-08-25 15:34:33 +09:00
2b556aba03 8.11.0 2018-08-25 15:34:10 +09:00
4f62043b0c New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 15:31:30 +09:00
b1ae304c51 New translations ja-JP.yml (Spanish) 2018-08-25 15:31:28 +09:00
425bc032d0 New translations ja-JP.yml (Russian) 2018-08-25 15:31:26 +09:00
0156b75bde New translations ja-JP.yml (Portuguese) 2018-08-25 15:31:23 +09:00
8bc8fc58de New translations ja-JP.yml (Polish) 2018-08-25 15:31:21 +09:00
9bf847b1fb New translations ja-JP.yml (Korean) 2018-08-25 15:31:18 +09:00
0b078d203b New translations ja-JP.yml (Italian) 2018-08-25 15:31:16 +09:00
df59018b47 New translations ja-JP.yml (German) 2018-08-25 15:31:14 +09:00
b2681dcb5d New translations ja-JP.yml (French) 2018-08-25 15:31:12 +09:00
46fa471636 New translations ja-JP.yml (English) 2018-08-25 15:31:10 +09:00
5f2c441996 New translations ja-JP.yml (Chinese Simplified) 2018-08-25 15:31:08 +09:00
a79cc42b26 New translations ja-JP.yml (Catalan) 2018-08-25 15:31:05 +09:00
739c993911 Fix #2466 2018-08-25 15:30:48 +09:00
cb180e00de Merge pull request #2471 from syuilo/greenkeeper/@types/node-10.9.2
Update @types/node to the latest version 🚀
2018-08-25 15:26:25 +09:00
4d46a61051 ✌️ 2018-08-25 15:26:13 +09:00
81969ea8b2 🎨 2018-08-25 15:25:16 +09:00
ac474f3884 Send actor in Delete 2018-08-25 14:52:35 +09:00
a39aaf6eb1 Send actor in Undo Follow 2018-08-25 14:46:47 +09:00
68a7661f08 Create Note activity にも toとcc 2018-08-25 14:23:51 +09:00
ffcb2f755c Send actor in CreateNote, Announce 2018-08-25 14:12:44 +09:00
366e0d6bde fix(package): update @types/node to version 10.9.2 2018-08-25 04:40:46 +00:00
b3a3238e43 HTTP Signature検証対象ヘッダにDateが含まれてなくても許容する 2018-08-25 13:40:12 +09:00
92828028db Add Activity id if missing 2018-08-25 13:11:54 +09:00
bd97e315ff New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 12:51:37 +09:00
51083419f5 New translations ja-JP.yml (Spanish) 2018-08-25 12:51:35 +09:00
b23bfd4d86 New translations ja-JP.yml (Russian) 2018-08-25 12:51:32 +09:00
7de3e847bd New translations ja-JP.yml (Portuguese) 2018-08-25 12:51:30 +09:00
0d1a541dba New translations ja-JP.yml (Polish) 2018-08-25 12:51:27 +09:00
2717109fe2 New translations ja-JP.yml (Korean) 2018-08-25 12:51:25 +09:00
60ca0626ce New translations ja-JP.yml (Italian) 2018-08-25 12:51:23 +09:00
15dae0ae65 New translations ja-JP.yml (German) 2018-08-25 12:51:20 +09:00
1c680118a0 New translations ja-JP.yml (French) 2018-08-25 12:51:18 +09:00
ad5efbba59 New translations ja-JP.yml (English) 2018-08-25 12:51:16 +09:00
6dc7baa5e9 New translations ja-JP.yml (Chinese Simplified) 2018-08-25 12:51:14 +09:00
c2b886e750 New translations ja-JP.yml (Catalan) 2018-08-25 12:51:10 +09:00
edb61e52c5 Use resolvable ActivityPub keyId 2018-08-25 12:46:06 +09:00
ded297b04c Merge pull request #2469 from syuilo/develop
8.10.0
2018-08-25 12:44:37 +09:00
65e1d5978a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-25 12:44:15 +09:00
86e76358b1 8.10.0 2018-08-25 12:44:06 +09:00
435e0257a4 Merge pull request #2468 from syuilo/l10n_develop
New Crowdin translations
2018-08-25 12:43:35 +09:00
1c45cc808b Improve stats page 2018-08-25 12:43:18 +09:00
ed27a2f963 New translations ja-JP.yml (English) 2018-08-25 12:41:07 +09:00
1f53d1a149 Send Content-Type in ActivityPub request 2018-08-25 12:32:31 +09:00
8295f6d7a3 New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 12:31:41 +09:00
b02f6341c9 New translations ja-JP.yml (Spanish) 2018-08-25 12:31:39 +09:00
f6d577d411 New translations ja-JP.yml (Russian) 2018-08-25 12:31:37 +09:00
db3e73318e New translations ja-JP.yml (Portuguese) 2018-08-25 12:31:35 +09:00
29c2071711 New translations ja-JP.yml (Polish) 2018-08-25 12:31:33 +09:00
3acd524d09 New translations ja-JP.yml (Korean) 2018-08-25 12:31:30 +09:00
dae65cc123 New translations ja-JP.yml (Italian) 2018-08-25 12:31:28 +09:00
695f154d87 New translations ja-JP.yml (German) 2018-08-25 12:31:26 +09:00
59dca9a812 New translations ja-JP.yml (French) 2018-08-25 12:31:23 +09:00
b9f04f8f53 New translations ja-JP.yml (English) 2018-08-25 12:31:20 +09:00
0985f14f18 New translations ja-JP.yml (Chinese Simplified) 2018-08-25 12:31:18 +09:00
56684dd7c3 New translations ja-JP.yml (Catalan) 2018-08-25 12:31:16 +09:00
47a5f3bc67 チャートコンポーネントを分離するなど 2018-08-25 12:28:05 +09:00
1c1e3009e9 ✌️ 2018-08-25 12:14:36 +09:00
c7c3f6999b Merge pull request #2465 from syuilo/develop
8.9.2
2018-08-25 11:11:00 +09:00
fb4aa9bc1c 8.9.2 2018-08-25 11:10:38 +09:00
ef57f5907b Fix bug 2018-08-25 11:10:27 +09:00
eff44f9cd1 Merge pull request #2464 from syuilo/develop
8.9.1
2018-08-25 10:28:47 +09:00
d7fa92d58f 8.9.1 2018-08-25 10:28:28 +09:00
4e8033d5a4 Fix bug 2018-08-25 10:28:09 +09:00
8a207d8311 Merge pull request #2461 from syuilo/develop
8.9.0
2018-08-25 08:41:16 +09:00
94ba9c8437 8.9.0 2018-08-25 08:40:16 +09:00
88c71c2998 #2451 2018-08-25 08:39:12 +09:00
7b6e55047f #2460 2018-08-25 08:35:41 +09:00
9d85d0bb08 Merge pull request #2411 from syuilo/l10n_develop
New Crowdin translations
2018-08-25 07:22:34 +09:00
27ac0bbc00 Merge pull request #2429 from syuilo/greenkeeper/vue-js-modal-1.3.19
Update vue-js-modal to the latest version 🚀
2018-08-25 07:21:44 +09:00
affde9b4e2 Merge pull request #2459 from syuilo/greenkeeper/@types/node-10.9.1
fix(package): update @types/node to version 10.9.1
2018-08-25 07:21:35 +09:00
88324b6dd9 Merge pull request #2432 from syuilo/greenkeeper/@types/sharp-0.17.10
Update @types/sharp to the latest version 🚀
2018-08-25 07:21:16 +09:00
9b95ffe6c6 Merge pull request #2433 from syuilo/greenkeeper/@types/webpack-4.4.11
Update @types/webpack to the latest version 🚀
2018-08-25 07:21:08 +09:00
6b137f8d69 Merge pull request #2458 from syuilo/master
Master
2018-08-25 07:20:38 +09:00
e78b2b0ab8 Merge pull request #2457 from mei23/mei-0825-apresolveuri3
リモートからのActivityに添付されている投稿は使用しないように変更
2018-08-25 07:07:46 +09:00
8b51428347 ActivityPub resolve で 添付のNoteを使用しないように 2018-08-25 06:50:35 +09:00
b8d53a7b40 Merge pull request #2455 from mei23/mei-0824-apattchobj
ActivityPubで非公開投稿が添付されてしまう件の修正
2018-08-25 05:25:14 +09:00
b0d9e9caa2 New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 01:31:08 +09:00
1fc4ec8dc1 New translations ja-JP.yml (Japanese, Kansai) 2018-08-25 01:21:15 +09:00
a1e1e25800 New translations ja-JP.yml (English) 2018-08-24 23:57:28 +09:00
3b020732ec New translations ja-JP.yml (English) 2018-08-24 23:41:35 +09:00
dcf92945fe New translations ja-JP.yml (English) 2018-08-24 23:31:52 +09:00
f9f33903d4 New translations ja-JP.yml (French) 2018-08-24 21:51:28 +09:00
d8bf06ab0f New translations ja-JP.yml (French) 2018-08-24 21:43:26 +09:00
806dabe58b Merge pull request #2450 from syuilo/develop
8.8.0
2018-08-24 15:02:21 +09:00
a17b8c56d7 New translations ja-JP.yml (Japanese, Kansai) 2018-08-24 15:01:39 +09:00
0eaaaba8f2 New translations ja-JP.yml (Spanish) 2018-08-24 15:01:36 +09:00
f359d79d36 New translations ja-JP.yml (Russian) 2018-08-24 15:01:34 +09:00
1d84000d94 New translations ja-JP.yml (Portuguese) 2018-08-24 15:01:32 +09:00
b70e22c150 8.8.0 2018-08-24 15:01:30 +09:00
0774ffe376 New translations ja-JP.yml (Polish) 2018-08-24 15:01:29 +09:00
0096d7d8ac New translations ja-JP.yml (Korean) 2018-08-24 15:01:27 +09:00
38db966b3d New translations ja-JP.yml (Italian) 2018-08-24 15:01:24 +09:00
cb7d313a66 New translations ja-JP.yml (German) 2018-08-24 15:01:21 +09:00
91b7905f3f New translations ja-JP.yml (French) 2018-08-24 15:01:18 +09:00
9a81fba992 New translations ja-JP.yml (English) 2018-08-24 15:01:16 +09:00
43553d5c09 New translations ja-JP.yml (Chinese Simplified) 2018-08-24 15:01:14 +09:00
e0ca8ce173 New translations ja-JP.yml (Catalan) 2018-08-24 15:01:11 +09:00
13624ea7c2 バグ修正など 2018-08-24 14:55:58 +09:00
9502586c8b ActivityPub Renote/Replyで 対象Noteを添付しないようにする 2018-08-24 14:53:40 +09:00
d6753f2cf2 fix(package): update @types/node to version 10.9.1
Closes #2431
2018-08-24 00:40:11 +00:00
5ba36efcd2 Merge pull request #2446 from syuilo/develop
8.7.0
2018-08-24 09:39:57 +09:00
fd497ef105 8.7.0 2018-08-24 09:39:37 +09:00
9c4a7bf94c Improve chart 2018-08-24 09:39:16 +09:00
91f8adc138 Merge pull request #2445 from syuilo/develop
8.6.0
2018-08-24 08:57:54 +09:00
69fa2373cb 8.6.0 2018-08-24 08:57:31 +09:00
8b37fc4772 Improve chart 2018-08-24 08:56:57 +09:00
81e4ed9591 Merge pull request #2444 from syuilo/develop
8.5.1
2018-08-24 08:36:01 +09:00
9cda89ec04 8.5.1 2018-08-24 08:35:38 +09:00
fc180f030f Fix bug 2018-08-24 08:35:01 +09:00
a827b6028d Merge pull request #2442 from syuilo/develop
8.5.0
2018-08-24 07:24:08 +09:00
4517bf7342 8.5.0 2018-08-24 07:23:42 +09:00
b21287262e チャート取得APIを誰でも利用できるようにするなど 2018-08-24 07:23:04 +09:00
a60ae130c1 New translations ja-JP.yml (Japanese, Kansai) 2018-08-24 07:21:28 +09:00
dd88acd411 New translations ja-JP.yml (Spanish) 2018-08-24 07:21:25 +09:00
b63fc1a9e5 New translations ja-JP.yml (Russian) 2018-08-24 07:21:23 +09:00
17f143cfb2 New translations ja-JP.yml (Portuguese) 2018-08-24 07:21:20 +09:00
cf57d847d1 New translations ja-JP.yml (Polish) 2018-08-24 07:21:18 +09:00
7c4c7bea14 New translations ja-JP.yml (Korean) 2018-08-24 07:21:16 +09:00
e5ec47fc75 New translations ja-JP.yml (Italian) 2018-08-24 07:21:14 +09:00
ad91dc2423 New translations ja-JP.yml (German) 2018-08-24 07:21:11 +09:00
7acbe53948 New translations ja-JP.yml (French) 2018-08-24 07:21:08 +09:00
fe1b8ba0cb New translations ja-JP.yml (English) 2018-08-24 07:21:05 +09:00
b0a8a51b69 New translations ja-JP.yml (Chinese Simplified) 2018-08-24 07:21:03 +09:00
c3ca21e610 New translations ja-JP.yml (Catalan) 2018-08-24 07:21:00 +09:00
c1b47a2119 Add missing changelog 2018-08-24 07:20:26 +09:00
caf625afee Merge pull request #2441 from syuilo/develop
8.4.0
2018-08-24 07:18:00 +09:00
2bad3865a3 8.4.0 2018-08-24 07:17:40 +09:00
3f7d248684 Improve chart 2018-08-24 07:17:17 +09:00
4e7382b793 New translations ja-JP.yml (Japanese, Kansai) 2018-08-24 07:12:36 +09:00
552ff4a044 New translations ja-JP.yml (Spanish) 2018-08-24 07:12:33 +09:00
afb52a0cd5 New translations ja-JP.yml (Russian) 2018-08-24 07:12:31 +09:00
1ac89b0f5b New translations ja-JP.yml (Portuguese) 2018-08-24 07:12:28 +09:00
5039ca7ee1 New translations ja-JP.yml (Polish) 2018-08-24 07:12:26 +09:00
a48fd9ce18 New translations ja-JP.yml (Korean) 2018-08-24 07:12:24 +09:00
58859c4811 New translations ja-JP.yml (Italian) 2018-08-24 07:12:22 +09:00
5988fb3111 New translations ja-JP.yml (German) 2018-08-24 07:12:19 +09:00
8dce821789 New translations ja-JP.yml (French) 2018-08-24 07:12:16 +09:00
16fde0b507 New translations ja-JP.yml (English) 2018-08-24 07:12:13 +09:00
9723662706 New translations ja-JP.yml (Chinese Simplified) 2018-08-24 07:12:11 +09:00
df4415b4fe New translations ja-JP.yml (Catalan) 2018-08-24 07:12:09 +09:00
6e179e7cde Fix 2018-08-24 07:06:25 +09:00
87f248b8ec Merge pull request #2440 from syuilo/develop
8.3.1
2018-08-24 07:03:49 +09:00
027140eccc 8.3.1 2018-08-24 07:03:25 +09:00
92cf205c66 Fix bug 2018-08-24 07:02:52 +09:00
fa3299840f Refactor 2018-08-24 07:02:27 +09:00
f54529d46f New translations ja-JP.yml (Japanese, Kansai) 2018-08-24 06:51:15 +09:00
b772add064 New translations ja-JP.yml (Spanish) 2018-08-24 06:51:13 +09:00
231f2e77a4 New translations ja-JP.yml (Russian) 2018-08-24 06:51:10 +09:00
a000a9e607 New translations ja-JP.yml (Portuguese) 2018-08-24 06:51:08 +09:00
e8da15ab1e New translations ja-JP.yml (Polish) 2018-08-24 06:51:05 +09:00
e070ccb313 New translations ja-JP.yml (Korean) 2018-08-24 06:51:02 +09:00
2b06579228 New translations ja-JP.yml (Italian) 2018-08-24 06:50:59 +09:00
853c847ba1 New translations ja-JP.yml (German) 2018-08-24 06:50:57 +09:00
e852680b0a New translations ja-JP.yml (French) 2018-08-24 06:50:55 +09:00
0b0ee915b3 New translations ja-JP.yml (English) 2018-08-24 06:50:52 +09:00
516d1d093f New translations ja-JP.yml (Chinese Simplified) 2018-08-24 06:50:49 +09:00
aee9c79c0f New translations ja-JP.yml (Catalan) 2018-08-24 06:50:47 +09:00
2d4b183c14 Merge pull request #2439 from syuilo/develop
8.3.0
2018-08-24 06:43:12 +09:00
03b20e11ca 8.3.0 2018-08-24 06:42:40 +09:00
e0e006e284 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-24 06:41:56 +09:00
a294a881ec Improve chart 2018-08-24 06:41:53 +09:00
53926082e7 Merge pull request #2438 from mei23/mei-0824-basehtmlcc
ベースHTMLは immutableキャッシュしないようにする
2018-08-24 05:47:53 +09:00
2d185becc3 New translations ja-JP.yml (Japanese, Kansai) 2018-08-24 05:41:31 +09:00
67fff324b0 New translations ja-JP.yml (Spanish) 2018-08-24 05:41:29 +09:00
f64b7fcabc New translations ja-JP.yml (Russian) 2018-08-24 05:41:27 +09:00
4cefa16db6 New translations ja-JP.yml (Portuguese) 2018-08-24 05:41:25 +09:00
22722379df New translations ja-JP.yml (Polish) 2018-08-24 05:41:22 +09:00
b2b83dc45d New translations ja-JP.yml (Korean) 2018-08-24 05:41:19 +09:00
ebf6f8bbfd New translations ja-JP.yml (Italian) 2018-08-24 05:41:17 +09:00
3e1631d180 New translations ja-JP.yml (German) 2018-08-24 05:41:14 +09:00
97cb3c8613 New translations ja-JP.yml (French) 2018-08-24 05:41:11 +09:00
6dda3a5d8a New translations ja-JP.yml (English) 2018-08-24 05:41:09 +09:00
e50b0540f5 New translations ja-JP.yml (Chinese Simplified) 2018-08-24 05:41:06 +09:00
63b4aee9bd New translations ja-JP.yml (Catalan) 2018-08-24 05:41:04 +09:00
5b5de6a89c ベースHTMLは immutableキャッシュしないようにする 2018-08-24 05:41:03 +09:00
a11c991f83 Merge pull request #2436 from mei23/mei-0824-api404
/api/ 下の存在しないにURL対しては404を返すようにする
2018-08-24 05:40:30 +09:00
a0adcf0d1a Merge pull request #2437 from syuilo/develop
8.2.0
2018-08-24 05:38:18 +09:00
93b2b82993 8.2.0 2018-08-24 05:37:42 +09:00
4dee7d91b1 Better charts 2018-08-24 05:37:19 +09:00
839be6477d Return 404 for unknown API 2018-08-24 05:26:26 +09:00
59e2ed8ab0 Merge pull request #2435 from syuilo/master
Master
2018-08-24 03:48:05 +09:00
83790004dd 8.1.0 (#2426) (#2434)
* Update url-preview.vue

* 一時間ごとのグラフも見れるように

* Merge pull request #2423 from syuilo/develop (#2425)

* 8.1.0
2018-08-24 03:47:36 +09:00
b70e9824ac fix(package): update @types/webpack to version 4.4.11 2018-08-23 18:26:42 +00:00
155d49e8ac fix(package): update @types/sharp to version 0.17.10 2018-08-23 18:16:46 +00:00
4ae10ab33d fix(package): update vue-js-modal to version 1.3.19 2018-08-23 14:46:37 +00:00
7124586eb1 New translations ja-JP.yml (French) 2018-08-23 18:12:02 +09:00
74f6ed1851 New translations ja-JP.yml (French) 2018-08-23 18:03:12 +09:00
efae7a7bce 8.1.0 (#2426)
* Update url-preview.vue

* 一時間ごとのグラフも見れるように

* Merge pull request #2423 from syuilo/develop (#2425)

* 8.1.0
2018-08-23 16:38:12 +09:00
e59f13e8ff Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-23 16:37:40 +09:00
31ed8949b9 8.1.0 2018-08-23 16:37:32 +09:00
f1174a15e0 Merge pull request #2423 from syuilo/develop (#2425) 2018-08-23 16:37:07 +09:00
912ffae600 Merge pull request #2424 from acid-chicken/patch-4
Fix #2421
2018-08-23 16:36:42 +09:00
71a5662195 一時間ごとのグラフも見れるように 2018-08-23 16:36:23 +09:00
774834a31f Update url-preview.vue 2018-08-23 16:25:36 +09:00
91f1c3a10a Merge pull request #2423 from syuilo/develop
8.0.0
2018-08-23 15:42:14 +09:00
8fc1e07136 1時間単位での集計を追加 2018-08-23 15:40:24 +09:00
a62e2b83ff Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-23 14:56:43 +09:00
e31a2f7e55 Fix bug: Check following request existance 2018-08-23 14:56:39 +09:00
1598e996b1 Merge pull request #2419 from rinsuki/patch-1
https://misskey.xyz/notes/5b7e20bd248403003019b860 の修正
2018-08-23 12:00:46 +09:00
4fb7ee760a https://misskey.xyz/notes/5b7e20bd248403003019b860 の修正 2018-08-23 11:58:44 +09:00
37865cb381 Merge pull request #2416 from syuilo/master
Master
2018-08-23 05:46:24 +09:00
ab8b882435 Merge pull request #2372 from syuilo/greenkeeper/vue-js-modal-1.3.18
Update vue-js-modal to the latest version 🚀
2018-08-23 05:46:04 +09:00
1b2996947e Merge pull request #2400 from syuilo/greenkeeper/webpack-4.17.1
Update webpack to the latest version 🚀
2018-08-23 05:45:30 +09:00
1d9c88e9a1 New translations ja-JP.yml (English) 2018-08-23 05:44:01 +09:00
ea56d368e3 Merge pull request #2414 from syuilo/develop
7.4.1
2018-08-23 03:45:25 +09:00
dbd3a750f5 7.4.1 2018-08-23 03:45:04 +09:00
f41818141f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-23 03:44:42 +09:00
d2f576accd 互換性の修正 2018-08-23 03:44:32 +09:00
4e483856d4 Merge pull request #2413 from syuilo/master
Master
2018-08-23 03:24:43 +09:00
2997f26e3c Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-23 03:24:15 +09:00
cdab596240 7.4.0 2018-08-23 03:24:06 +09:00
fca7a9da94 Merge pull request #2412 from syuilo/develop
update
2018-08-23 03:23:31 +09:00
8ba178f795 コントロールパネルから招待制のオンオフを切り替えられるように 2018-08-23 03:19:57 +09:00
8eb8243153 New translations ja-JP.yml (Japanese, Kansai) 2018-08-23 03:01:33 +09:00
b4967b862c New translations ja-JP.yml (Spanish) 2018-08-23 03:01:31 +09:00
aee3517736 New translations ja-JP.yml (Russian) 2018-08-23 03:01:28 +09:00
52ff8e84fa New translations ja-JP.yml (Portuguese) 2018-08-23 03:01:26 +09:00
9bb6db649c New translations ja-JP.yml (Polish) 2018-08-23 03:01:24 +09:00
da99be9897 New translations ja-JP.yml (Korean) 2018-08-23 03:01:21 +09:00
2d7ec8a471 New translations ja-JP.yml (Italian) 2018-08-23 03:01:19 +09:00
4cbbfdad1a New translations ja-JP.yml (German) 2018-08-23 03:01:17 +09:00
2924858311 New translations ja-JP.yml (French) 2018-08-23 03:01:14 +09:00
85916bfea1 New translations ja-JP.yml (English) 2018-08-23 03:01:12 +09:00
38ccd9e794 New translations ja-JP.yml (Chinese Simplified) 2018-08-23 03:01:10 +09:00
c64b6be915 New translations ja-JP.yml (Catalan) 2018-08-23 03:01:07 +09:00
d98c67e13c Add control panel link in nav 2018-08-23 02:47:12 +09:00
d129151fdf Fix #2410
なぜか .ts という拡張子で来るのかは不明
2018-08-23 02:28:58 +09:00
1b9c69f793 Fix bug 2018-08-23 01:55:39 +09:00
42dd092334 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-08-23 01:37:20 +09:00
8dc9ec06f8 良い感じに 2018-08-23 01:37:05 +09:00
ae5da782e5 Merge pull request #2409 from syuilo/l10n_develop
New Crowdin translations
2018-08-23 01:36:40 +09:00
313b0cec65 New translations ja-JP.yml (Japanese, Kansai) 2018-08-23 01:36:10 +09:00
12a51972ed New translations ja-JP.yml (Spanish) 2018-08-23 01:36:07 +09:00
a2f3b2966f New translations ja-JP.yml (Russian) 2018-08-23 01:36:05 +09:00
0c2627f08b New translations ja-JP.yml (Portuguese) 2018-08-23 01:36:03 +09:00
9535df12dd New translations ja-JP.yml (Polish) 2018-08-23 01:36:00 +09:00
2400471a0d New translations ja-JP.yml (Korean) 2018-08-23 01:35:57 +09:00
784da8c37b New translations ja-JP.yml (Italian) 2018-08-23 01:35:55 +09:00
3778f9c521 New translations ja-JP.yml (German) 2018-08-23 01:35:52 +09:00
e1cec85f1e New translations ja-JP.yml (French) 2018-08-23 01:35:49 +09:00
ca9c087060 New translations ja-JP.yml (English) 2018-08-23 01:35:47 +09:00
5b2d91baad New translations ja-JP.yml (Chinese Simplified) 2018-08-23 01:35:44 +09:00
08e099b88d New translations ja-JP.yml (Catalan) 2018-08-23 01:35:41 +09:00
4153b0db38 Merge pull request #2408 from syuilo/l10n_develop
New Crowdin translations
2018-08-23 01:17:48 +09:00
88701a21bb New translations ja-JP.yml (Japanese, Kansai) 2018-08-23 01:16:01 +09:00
3ddc73ca94 New translations ja-JP.yml (Spanish) 2018-08-23 01:15:59 +09:00
693d793265 New translations ja-JP.yml (Russian) 2018-08-23 01:15:57 +09:00
5d685233dd New translations ja-JP.yml (Portuguese) 2018-08-23 01:15:54 +09:00
16575751d9 New translations ja-JP.yml (Polish) 2018-08-23 01:15:52 +09:00
1f6295f437 New translations ja-JP.yml (Korean) 2018-08-23 01:15:49 +09:00
6737fe2ead New translations ja-JP.yml (Italian) 2018-08-23 01:15:47 +09:00
4e77939fca New translations ja-JP.yml (German) 2018-08-23 01:15:44 +09:00
21f528c07d New translations ja-JP.yml (French) 2018-08-23 01:15:41 +09:00
23f835fac0 New translations ja-JP.yml (English) 2018-08-23 01:15:38 +09:00
f21343225c New translations ja-JP.yml (Chinese Simplified) 2018-08-23 01:15:36 +09:00
f13a59f7db New translations ja-JP.yml (Catalan) 2018-08-23 01:15:33 +09:00
0315b9274c Merge pull request #2407 from syuilo/master
Master
2018-08-23 00:49:52 +09:00
da88043962 Merge pull request #2396 from Tosuke/fix-2354
Mute on mobile(#2354)
2018-08-23 00:47:50 +09:00
0352bf0cc2 Merge pull request #2393 from acid-chicken/patch-autogen-shell
Add autogen.sh
2018-08-23 00:47:08 +09:00
baa71070a8 Merge pull request #2403 from syuilo/greenkeeper/summaly-2.1.4
Update summaly to the latest version 🚀
2018-08-23 00:45:44 +09:00
2713064f27 Merge pull request #2405 from acid-chicken/patch-4
Migrate summaly to 2.1.4
2018-08-23 00:45:25 +09:00
f6387ac115 Merge pull request #2406 from syuilo/master
Master
2018-08-23 00:44:13 +09:00
d704aca035 Update url-preview.vue 2018-08-23 00:40:32 +09:00
2b54b4ac06 Update url-preview.vue 2018-08-23 00:34:35 +09:00
7410f2f4c0 fix(package): update summaly to version 2.1.4 2018-08-22 14:55:38 +00:00
99c3c1258a Merge pull request #2402 from acid-chicken/patch-3
Update Crowdin configuration file
2018-08-22 23:54:03 +09:00
e51184931d Update crowdin.yml 2018-08-22 23:53:27 +09:00
3bc9a40b48 fix(package): update webpack to version 4.17.1 2018-08-22 09:56:30 +00:00
9f49ca8fdb feature mute on mobile(#2354) 2018-08-22 15:54:22 +09:00
550d1547b4 Add autogen.sh
refs: https://github.com/syuilo/misskey/pull/2391#issuecomment-414915763
2018-08-22 14:41:41 +09:00
ca0b56ee57 Merge pull request #2391 from acid-chicken/patch-autogen
[AUTOMATED] Update README.md
2018-08-22 14:26:05 +09:00
ef1d854f2c Update README.md [AUTOGEN] 2018-08-22 14:25:06 +09:00
a5023271ef 7.3.0 2018-08-22 09:40:54 +09:00
c3747db670 Fix doc 2018-08-22 09:36:42 +09:00
fe1e60a28c Fix #2334 2018-08-22 09:33:59 +09:00
f91d2e8c8d Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-22 09:31:51 +09:00
dccc2c60e3 Fix bugs
Closes #2367
2018-08-22 09:31:35 +09:00
933e25804c Merge pull request #2389 from Tosuke/fix-2384
Fix login bug(#2384)
2018-08-22 09:27:09 +09:00
0b503661af fix login bug(#2384) 2018-08-22 09:26:06 +09:00
58082431ff Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-22 09:16:55 +09:00
2536bfb5f5 #2378 2018-08-22 09:16:52 +09:00
6428066552 Merge pull request #2388 from mei23/mei-0822-dbcheck
起動時のDB接続チェックでエラーを検出できないのを修正
2018-08-22 09:12:59 +09:00
4bf3827b73 Revert "#2387"
This reverts commit 3cad494404.
2018-08-22 09:12:37 +09:00
3cad494404 #2387 2018-08-22 09:11:59 +09:00
ef0793311f リバーシのアイコンのコントラストのオプションを追加するなど 2018-08-22 09:10:39 +09:00
6f3e341e89 Fix DB connectivity check 2018-08-22 08:46:31 +09:00
2fea3be7c0 Merge pull request #2364 from acid-chicken/patch-2
Resolve #2363
2018-08-22 08:41:47 +09:00
82059d4fd9 7.2.0 2018-08-22 05:24:16 +09:00
07ddeae2f1 Clean up 2018-08-22 04:53:02 +09:00
f2279758b2 Merge pull request #2366 from acid-chicken/patch-autogen
[AUTOMATED] Update README.md
2018-08-22 03:30:12 +09:00
1ed189a518 Merge pull request #2386 from acid-chicken/patch-3
Update boot.js
2018-08-22 02:25:41 +09:00
137741d307 Update index.js 2018-08-22 01:52:13 +09:00
d702f6e090 Rename ja-ks.yml to ja-KS.yml 2018-08-22 01:51:42 +09:00
f33701233c Update boot.js 2018-08-22 01:50:13 +09:00
70003269e5 Update boot.js 2018-08-22 01:48:08 +09:00
61896d2386 Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-22 01:46:13 +09:00
52d640c5a7 Fix 2018-08-22 01:46:10 +09:00
c65f5761e1 Merge pull request #2385 from mei23/mei-0821-aptype
ActivityPub で Content-Type を正しく扱う
2018-08-22 01:23:43 +09:00
3016ac4805 Fix bug 2018-08-22 01:02:56 +09:00
28a47cd331 Fix 2018-08-22 00:59:07 +09:00
6ecb88b0d1 #2338 2018-08-22 00:52:00 +09:00
8df1278c8e Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-22 00:44:26 +09:00
52bec430d4 use ja-JP 2018-08-22 00:44:07 +09:00
da4cec8767 Merge pull request #2362 from syuilo/greenkeeper/vue-loader-15.4.0
Update vue-loader to the latest version 🚀
2018-08-22 00:11:24 +09:00
ad0087d7dd Merge pull request #2382 from syuilo/greenkeeper/webpack-4.17.0
Update webpack to the latest version 🚀
2018-08-22 00:11:12 +09:00
9630860035 Merge pull request #2383 from syuilo/greenkeeper/sharp-0.20.7
fix(package): update sharp to version 0.20.7
2018-08-22 00:11:01 +09:00
75e4c8d74d Better reponse 2018-08-21 23:56:15 +09:00
1a5ee81e7e fix(package): update sharp to version 0.20.7
Closes #2368
2018-08-21 11:18:21 +00:00
3476be16ab Merge pull request #2381 from mei23/mei-0821-apnote
ActivityPub Note/Outbox の公開範囲の修正
2018-08-21 20:07:33 +09:00
c42f61a0f4 fix(package): update webpack to version 4.17.0 2018-08-21 08:48:10 +00:00
b42a9e1c4e Set ActivityPub Content-Type 2018-08-21 13:48:03 +09:00
4495525705 Respect visibility in ActivityPub Note/Outbox 2018-08-21 13:22:30 +09:00
a603602f32 Clean up 2018-08-21 05:42:31 +09:00
67b28f9b6e fix(package): update vue-js-modal to version 1.3.18 2018-08-20 19:58:32 +00:00
fd947407af Revert "Fix bug?"
This reverts commit 2c9bacfcea.
2018-08-21 01:23:39 +09:00
30444e5f1a #2359 など 2018-08-21 01:03:58 +09:00
f0d818de24 Fix bug 2018-08-21 00:12:45 +09:00
3fb98e808f 7.1.2 2018-08-20 23:49:27 +09:00
2c9bacfcea Fix bug? 2018-08-20 23:49:00 +09:00
ae0284b1b1 Update README.md [AUTOGEN] 2018-08-20 19:03:01 +09:00
166c4ebda0 Update reversi.game.vue 2018-08-20 18:12:03 +09:00
319eed029b Update reversi.game.vue 2018-08-20 18:10:51 +09:00
ec5aa10167 fix(package): update vue-loader to version 15.4.0 2018-08-20 00:44:56 +00:00
a542765cf8 Merge pull request #2352 from acid-chicken/patch-2
Update README.md
2018-08-20 07:45:35 +09:00
fd3f8d43db Merge pull request #2356 from acid-chicken/patch-3
Fix z-index
2018-08-20 07:44:57 +09:00
4f4496078a Update user.vue 2018-08-20 02:05:57 +09:00
8f4f5b4ce0 7.1.1 2018-08-20 01:42:56 +09:00
bdc6718ae5 Fix bug 2018-08-20 01:41:53 +09:00
09d1f1c20d Update README.md 2018-08-19 23:14:22 +09:00
0efb7af17b 7.1.0 2018-08-19 23:11:55 +09:00
a45a78b94f Merge pull request #2336 from syuilo/l10n_master
New Crowdin translations
2018-08-19 23:06:47 +09:00
6337c26cf0 Merge pull request #2347 from syuilo/greenkeeper/html-minifier-3.5.20
Update html-minifier to the latest version 🚀
2018-08-19 23:06:34 +09:00
208dec25d9 Merge pull request #2349 from syuilo/configress-build
設定ファイルなしでビルドできるように
2018-08-19 22:32:58 +09:00
7d65a0c3d5 wip 2018-08-19 22:32:25 +09:00
bb925e5de3 wip 2018-08-19 21:07:18 +09:00
c9de5b65d4 wip 2018-08-19 19:15:29 +09:00
9bc3fcf74f Merge pull request #2348 from mei23/mei-0819-nsfw3
リモートにNSFWが効かないのを修正
2018-08-19 18:46:47 +09:00
19d979c330 Merge branch 'master' of https://github.com/syuilo/misskey 2018-08-19 18:38:15 +09:00
bb7b335491 nameId廃止 & アプリ作成時にシークレットを返すように 2018-08-19 18:38:02 +09:00
be5a0b4794 Fix リモートにNSFWが効かない 2018-08-19 18:08:29 +09:00
48eea03386 fix(package): update html-minifier to version 3.5.20 2018-08-19 09:03:23 +00:00
566317dc83 Fix bug 2018-08-19 13:32:02 +09:00
d4334645c2 New translations ja.yml (Japanese (Kansai-ben)) 2018-08-19 12:41:16 +09:00
d60c3c4ee3 7.0.2 2018-08-19 05:26:53 +09:00
452514f7fe Fix bug 2018-08-19 05:26:34 +09:00
58abb0ce8f 7.0.1 2018-08-19 05:15:55 +09:00
000d9cc1ce Fix bug 2018-08-19 05:15:50 +09:00
8cc017354a New translations ja.yml (English) 2018-08-19 04:11:04 +09:00
60269d15e8 Update version 2018-08-19 04:03:55 +09:00
7caa083612 New translations ja.yml (Japanese (Kansai-ben)) 2018-08-19 04:01:58 +09:00
68e1b00eb1 New translations ja.yml (Catalan) 2018-08-19 04:01:55 +09:00
1d904c756a New translations ja.yml (Portuguese) 2018-08-19 04:01:53 +09:00
0a1db1f595 New translations ja.yml (Korean) 2018-08-19 04:01:50 +09:00
e30e8267dd New translations ja.yml (Polish) 2018-08-19 04:01:48 +09:00
288a881817 New translations ja.yml (Chinese Simplified) 2018-08-19 04:01:46 +09:00
f593790872 New translations ja.yml (Italian) 2018-08-19 04:01:43 +09:00
1044ad8589 New translations ja.yml (Russian) 2018-08-19 04:01:41 +09:00
6e24015e68 New translations ja.yml (English) 2018-08-19 04:01:39 +09:00
b9a2c449ff New translations ja.yml (Spanish) 2018-08-19 04:01:37 +09:00
7c390cbf7b New translations ja.yml (German) 2018-08-19 04:01:35 +09:00
a657d1c774 New translations ja.yml (French) 2018-08-19 04:01:33 +09:00
f3936a79aa Fix #2335 2018-08-19 04:01:10 +09:00
78b560d89a #2324 2018-08-19 03:56:44 +09:00
2fc6313380 Fix #2325 2018-08-19 03:36:51 +09:00
c2b882a5d7 Improve cpu and memory chart in control panel 2018-08-19 03:32:01 +09:00
667b18fe24 Refactoring 2018-08-19 03:06:23 +09:00
60c0dac5f2 Merge pull request #2311 from acid-chicken/patch-autogen
[AUTOMATED] Update README.md
2018-08-19 01:14:48 +09:00
79f3e60dac Merge pull request #2331 from syuilo/l10n_master
New Crowdin translations
2018-08-19 01:14:00 +09:00
c4e04d6bf2 New translations ja.yml (English) 2018-08-19 01:01:20 +09:00
49f8219e54 Merge pull request #2286 from syuilo/l10n_master
New Crowdin translations
2018-08-19 00:58:02 +09:00
abd873e0a8 Create README.md 2018-08-19 00:57:40 +09:00
0e45d0d47f Merge branch 'master' into l10n_master 2018-08-19 00:55:07 +09:00
043b66f5da Merge pull request #2330 from syuilo/patch
Clean up
2018-08-19 00:52:10 +09:00
5d6e1fc391 New translations ja.yml (Japanese (Kansai-ben)) 2018-08-19 00:51:23 +09:00
fe292e77de New translations ja.yml (Catalan) 2018-08-19 00:51:20 +09:00
c996b5d0c8 New translations ja.yml (Portuguese) 2018-08-19 00:51:18 +09:00
7beb592f0c New translations ja.yml (Korean) 2018-08-19 00:51:16 +09:00
b3b11acd96 New translations ja.yml (Polish) 2018-08-19 00:51:14 +09:00
3bcdfbbd00 New translations ja.yml (Chinese Simplified) 2018-08-19 00:51:11 +09:00
fdad5d149f New translations ja.yml (Italian) 2018-08-19 00:51:09 +09:00
2e712a9212 New translations ja.yml (Russian) 2018-08-19 00:51:07 +09:00
86c8e634bb New translations ja.yml (English) 2018-08-19 00:51:05 +09:00
197a9306c4 New translations ja.yml (Spanish) 2018-08-19 00:51:03 +09:00
2e502a6b61 New translations ja.yml (German) 2018-08-19 00:51:00 +09:00
aa8a40e950 New translations ja.yml (French) 2018-08-19 00:50:58 +09:00
2f45ac3712 Merge pull request #2329 from syuilo/improve-chart
Improve chart
2018-08-19 00:46:17 +09:00
8ecf3db608 Add drive chart 2018-08-19 00:45:54 +09:00
f59c68022f Fix bug 2018-08-19 00:42:09 +09:00
7aac2c4e29 Clean up 2018-08-19 00:31:25 +09:00
0481de6629 wip 2018-08-19 00:27:23 +09:00
f59d0a75e4 missing semicolon 2018-08-19 00:20:36 +09:00
22f4b3cc7b missing semicolon 2018-08-19 00:20:36 +09:00
a4283c415a improve html to MFM 2018-08-19 00:20:36 +09:00
c0fbcee38a improve MFM to html 2018-08-19 00:20:36 +09:00
335200c31e wip 2018-08-18 23:56:44 +09:00
df71c90f9f wip 2018-08-18 23:48:54 +09:00
4220bdc963 New translations ja.yml (Japanese (Kansai-ben)) 2018-08-18 23:41:44 +09:00
97f3b1e46f New translations ja.yml (Catalan) 2018-08-18 23:41:42 +09:00
3a9dc358f8 New translations ja.yml (Portuguese) 2018-08-18 23:41:40 +09:00
2a3ab46a3d New translations ja.yml (Korean) 2018-08-18 23:41:37 +09:00
200a01f65f New translations ja.yml (Polish) 2018-08-18 23:41:34 +09:00
e68936911d New translations ja.yml (Chinese Simplified) 2018-08-18 23:41:32 +09:00
634ffeec54 New translations ja.yml (Italian) 2018-08-18 23:41:30 +09:00
8486cb785d New translations ja.yml (Russian) 2018-08-18 23:41:28 +09:00
a9eda4e6e2 New translations ja.yml (English) 2018-08-18 23:41:25 +09:00
f918f9b307 New translations ja.yml (Spanish) 2018-08-18 23:41:23 +09:00
d404d02d2d New translations ja.yml (German) 2018-08-18 23:41:21 +09:00
61f7a3974f New translations ja.yml (French) 2018-08-18 23:41:19 +09:00
cad8e4dea2 Update ja.yml 2018-08-18 23:39:25 +09:00
ef79903811 wip 2018-08-18 23:23:55 +09:00
c3cd0451ad wip 2018-08-18 23:15:16 +09:00
773fe28fcb wip 2018-08-18 20:26:01 +09:00
69e2576387 wip 2018-08-18 20:22:56 +09:00
908a5a1bb4 New translations ja.yml (Japanese (Kansai-ben)) 2018-08-18 19:21:12 +09:00
ffbd9ffc75 New translations ja.yml (English) 2018-08-18 18:21:27 +09:00
96223dd5e3 New translations ja.yml (English) 2018-08-18 17:57:09 +09:00
3231f12b93 Merge pull request #2319 from acid-chicken/patch-1
Add 関西弁
2018-08-18 17:13:22 +09:00
1408f39d9a Update ja-ks.yml 2018-08-18 17:07:25 +09:00
4ba06541aa Update ja-ks.yml 2018-08-18 17:07:00 +09:00
5c78ed645a Update index.js 2018-08-18 17:04:00 +09:00
33e19447aa Create ja-ks.yml 2018-08-18 17:02:56 +09:00
b52d995719 Fix typo 2018-08-18 13:12:29 +09:00
db5b90c093 New translations ja.yml (Catalan) 2018-08-18 13:11:48 +09:00
39bc75a7f9 New translations ja.yml (Portuguese) 2018-08-18 13:11:46 +09:00
3492067ecf New translations ja.yml (Korean) 2018-08-18 13:11:43 +09:00
e342a8da05 New translations ja.yml (Polish) 2018-08-18 13:11:40 +09:00
671d71dd47 New translations ja.yml (Chinese Simplified) 2018-08-18 13:11:38 +09:00
2f18d2ed8f New translations ja.yml (Italian) 2018-08-18 13:11:35 +09:00
f6e8165db0 New translations ja.yml (Russian) 2018-08-18 13:11:33 +09:00
eab3b22772 New translations ja.yml (English) 2018-08-18 13:11:31 +09:00
7664aa5a8c New translations ja.yml (Spanish) 2018-08-18 13:11:29 +09:00
a366392cbe New translations ja.yml (German) 2018-08-18 13:11:27 +09:00
c8c1bc09f9 New translations ja.yml (French) 2018-08-18 13:11:24 +09:00
11bb1608cf Resolve #2293 2018-08-18 13:09:15 +09:00
b1d77775aa Update README.md [AUTOGEN] 2018-08-18 11:02:58 +09:00
bc3f5e0d78 Merge pull request #2310 from sei0o/fix-1776
fix #1776
2018-08-18 07:54:49 +09:00
53ea709697 fix #1776 2018-08-18 07:53:06 +09:00
b7adbbb9bf 6.4.1 2018-08-18 06:01:55 +09:00
31aaf559ac Fix bug 2018-08-18 05:46:57 +09:00
160185b108 Fix bug 2018-08-18 05:43:09 +09:00
848ff4440b New translations ja.yml (English) 2018-08-18 05:32:18 +09:00
74291b2cae New translations ja.yml (Catalan) 2018-08-18 05:23:00 +09:00
ae6c4e0c5f New translations ja.yml (Portuguese) 2018-08-18 05:22:57 +09:00
ecb1840e27 New translations ja.yml (Korean) 2018-08-18 05:22:54 +09:00
42eb82a859 New translations ja.yml (Polish) 2018-08-18 05:22:52 +09:00
89a22908ce New translations ja.yml (Chinese Simplified) 2018-08-18 05:22:49 +09:00
bc3a94aa57 New translations ja.yml (Italian) 2018-08-18 05:22:47 +09:00
77fe579d9b New translations ja.yml (Russian) 2018-08-18 05:22:45 +09:00
e8c7803a2f New translations ja.yml (English) 2018-08-18 05:22:43 +09:00
1abaef624c New translations ja.yml (Spanish) 2018-08-18 05:22:40 +09:00
72cf2344a9 New translations ja.yml (German) 2018-08-18 05:22:38 +09:00
0462512e62 New translations ja.yml (French) 2018-08-18 05:22:36 +09:00
e05e97561a New translations ja.yml (French) 2018-08-18 01:42:31 +09:00
f9d21fd34a New translations ja.yml (French) 2018-08-18 01:21:26 +09:00
86aef5f3e0 New translations ja.yml (French) 2018-08-18 01:12:29 +09:00
e6bc7922ac New translations ja.yml (French) 2018-08-18 01:01:48 +09:00
b2f40b7d3e New translations ja.yml (French) 2018-08-18 00:51:35 +09:00
3878793405 New translations ja.yml (English) 2018-08-18 00:42:00 +09:00
33c7aef220 New translations ja.yml (French) 2018-08-18 00:41:58 +09:00
e927f7a4ec New translations ja.yml (English) 2018-08-18 00:32:15 +09:00
f409faea2c New translations ja.yml (Catalan) 2018-08-17 21:52:08 +09:00
77da98cd39 New translations ja.yml (Portuguese) 2018-08-17 21:52:06 +09:00
471afcbd57 New translations ja.yml (Korean) 2018-08-17 21:52:04 +09:00
72809f9d78 New translations ja.yml (Polish) 2018-08-17 21:52:01 +09:00
743fb45c3c New translations ja.yml (Chinese Simplified) 2018-08-17 21:51:59 +09:00
93d6b71a31 New translations ja.yml (Italian) 2018-08-17 21:51:57 +09:00
9b10e93fba New translations ja.yml (Russian) 2018-08-17 21:51:55 +09:00
0740837b6a New translations ja.yml (English) 2018-08-17 21:51:52 +09:00
ff49eacee4 New translations ja.yml (Spanish) 2018-08-17 21:51:50 +09:00
fbc6b267ff New translations ja.yml (German) 2018-08-17 21:51:48 +09:00
10cae8894e New translations ja.yml (French) 2018-08-17 21:51:46 +09:00
9438dc560d New translations ja.yml (Catalan) 2018-08-17 21:32:40 +09:00
003ef65b59 New translations ja.yml (Portuguese) 2018-08-17 21:32:37 +09:00
978fb7e63a New translations ja.yml (Korean) 2018-08-17 21:32:35 +09:00
6203577696 New translations ja.yml (Polish) 2018-08-17 21:32:33 +09:00
f2b61f6a7e New translations ja.yml (Chinese Simplified) 2018-08-17 21:32:29 +09:00
6f4aa69723 New translations ja.yml (Italian) 2018-08-17 21:32:27 +09:00
b308e1bb2b New translations ja.yml (Russian) 2018-08-17 21:32:25 +09:00
ab3dad2d84 New translations ja.yml (English) 2018-08-17 21:32:23 +09:00
0af103f399 New translations ja.yml (Spanish) 2018-08-17 21:32:20 +09:00
873608a7de New translations ja.yml (German) 2018-08-17 21:32:18 +09:00
b04ad167da New translations ja.yml (French) 2018-08-17 21:32:15 +09:00
151476ae8a New translations ja.yml (English) 2018-08-17 19:41:43 +09:00
2239eddf88 New translations ja.yml (Catalan) 2018-08-17 19:32:18 +09:00
94ea21d482 New translations ja.yml (Portuguese) 2018-08-17 19:32:15 +09:00
6a39f92431 New translations ja.yml (Korean) 2018-08-17 19:32:12 +09:00
7b2efa35c7 New translations ja.yml (Polish) 2018-08-17 19:32:09 +09:00
c41ea84568 New translations ja.yml (Chinese Simplified) 2018-08-17 19:32:06 +09:00
0e8262e623 New translations ja.yml (Italian) 2018-08-17 19:32:03 +09:00
4d97946943 New translations ja.yml (Russian) 2018-08-17 19:32:00 +09:00
96d48b5519 New translations ja.yml (English) 2018-08-17 19:31:57 +09:00
4cc54d081e New translations ja.yml (Spanish) 2018-08-17 19:31:55 +09:00
aab5a2ffbd New translations ja.yml (German) 2018-08-17 19:31:52 +09:00
c8f165b4ad New translations ja.yml (French) 2018-08-17 19:31:49 +09:00
387 changed files with 11496 additions and 3909 deletions

87
.autogen/autogen.sh Executable file
View 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

View File

@ -138,3 +138,6 @@ drive:
# Clustering
# clusterLimit: 1
# Summaly proxy
# summalyProxy: "http://example.com"

2
.npmrc
View File

@ -1,2 +1,2 @@
save-exact=true
save-exact = true
package-lock = false

View File

@ -5,6 +5,25 @@ ChangeLog
This document describes breaking changes only.
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
-----
@ -28,13 +47,13 @@ Please run `node cli/migration/5.0.0` before launch.
オセロがリバーシに変更されました。
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
-----

View File

@ -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 ディレクトリに存在します。
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
## テストの追加
現在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`.

View File

@ -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"/>
[![Misskey](/assets/title.png)](https://misskey.xyz/)
================================================================
@ -7,7 +7,7 @@
[![][dependencies-badge]][dependencies-link]
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) [![Greenkeeper badge](https://badges.greenkeeper.io/syuilo/misskey.svg)](https://greenkeeper.io/)
Sophisticated microblogging platform, evolving forever.
**Sophisticated microblogging platform, evolving forever.**
[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),
@ -24,7 +24,7 @@ Why don't you take a short break from the hustle and bustle of the city, and div
* Reactions
* User lists
* Customizable column view (called MisskeyDeck)
* and widgets!
* Customizable widgets
* Private messages
* ActivityPub support
@ -32,48 +32,49 @@ and more! You can see it with your own eyes at [misskey.xyz](https://misskey.xyz
: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
----------------------------------------------------------------
<!-- PATREON_START -->
<table>
<tr>
<td><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"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12378075/0156f769e20f412594fa6b87d85fe228/1?token-time=2145916800&token-hash=IsIJRUXszzoD6-7pDnRY8I05T9nSznc4GTaxj7C9SwU%3D"></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"></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"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12959468/c249e15aebec4424b5c0f427173671b6/1?token-time=2145916800&token-hash=lubpCEdxAkxPlpR2O6bvZ7BIh8Q4nGf-U_mE1qpjVAQ%3D"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/1?token-time=2145916800&token-hash=f03BFb4S2FUx9YEt87TnEmifb4h33OywGBW2akQVtQY%3D"></td>
<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"></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"></td>
<td><img src="https://c8.patreon.com/2/100/12718187"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12931605/ead494101f364dffa90efe49e36fb494/1?token-time=2145916800&token-hash=NzSFPjIlodXyv41rwK61aZWVZWfI4surJaNj8vWKvqM%3D"></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"></td>
</tr>
<tr>
<td><a href="https://www.patreon.com/mastodon">Gargron</a></td>
<td><a href="https://www.patreon.com/user/creators?u=12378075">39ff</a></td>
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
<td><a href="https://www.patreon.com/user/creators?u=12531784">Takashi Shibuya</a></td>
<td><a href="https://www.patreon.com/fujishan">fujishan</a></td>
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
<td><a href="https://www.patreon.com/user?u=5881381">Naoki Kosaka</a></td>
<td><a href="https://www.patreon.com/user?u=12731202">negao</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=12931605">Reiju</a></td>
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
</tr>
</table>
<table><tr>
<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/1?token-time=2145916800&token-hash=f03BFb4S2FUx9YEt87TnEmifb4h33OywGBW2akQVtQY%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="Axella"></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/user?u=12731202">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">Axella</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/12931605/ead494101f364dffa90efe49e36fb494/1?token-time=2145916800&token-hash=NzSFPjIlodXyv41rwK61aZWVZWfI4surJaNj8vWKvqM%3D" alt="Reiju"></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/user?u=12931605">Reiju</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:** Sun, 02 Sep 2018 05:30:06 UTC
<!-- PATREON_END -->
:four_leaf_clover: Copyright

BIN
assets/about/drive.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

BIN
assets/about/post.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 344 KiB

BIN
assets/about/reaction.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

BIN
assets/about/ui.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
assets/ai-orig.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

BIN
assets/ai.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 KiB

View File

@ -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.withoutChunks': 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.withoutChunks': 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);

View File

@ -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);

View File

@ -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)

134
cli/migration/7.0.0.js Normal file
View 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
View 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();

View File

@ -1,3 +1,3 @@
files:
- source: /locales/ja.yml
translation: /locales/%two_letters_code%.yml
- source: /locales/ja-JP.yml
translation: /locales/%locale%.yml

View File

@ -33,14 +33,3 @@ node cli/suspend @syuilo@misskey.xyz
``` shell
node cli/reset-password (User-ID or Username)
```
## Clean up cached remote files
``` shell
node cli/clean-cached-remote-files
```
## 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.

View File

@ -33,14 +33,3 @@ node cli/suspend @syuilo@misskey.xyz
``` shell
node cli/reset-password (ユーザーID または ユーザー名)
```
## キャッシュされたリモートファイルをクリーンアップする
``` shell
node cli/clean-cached-remote-files
```
## 使われていないドライブのファイルをクリーンアップする
``` shell
node cli/clean-unused-drive-files
```
> ユーザーの大事なファイルを削除する可能性があるので、この操作を実行する前にユーザーに告知することをお勧めします。

View File

@ -54,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
@ -131,6 +131,7 @@ 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
----------------------------------------------------------------

View File

@ -109,6 +109,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サービスの起動
@ -120,6 +121,7 @@ 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)でマイグレーション情報を確認する
----------------------------------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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. 完了です!

View File

@ -23,7 +23,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 +59,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',
@ -118,7 +126,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({

3
locales/README.md Normal file
View File

@ -0,0 +1,3 @@
# **DO NOT edit locale files** except `ja-JP.yml`.
Please see [Contribution guide](../CONTRIBUTING.md) for more information.

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -68,6 +81,15 @@ common:
confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -58,7 +71,7 @@ common:
friday: "金曜日"
saturday: "土曜日"
reactions:
like: "Gefällt mir"
like: "いいね"
love: "Lieben"
laugh: "Lachen"
hmm: "Hmm...?"
@ -68,6 +81,15 @@ common:
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?"
@ -84,8 +106,10 @@ 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: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -259,6 +283,8 @@ 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"
delete: "Löschen"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
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"
@ -334,6 +362,9 @@ 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"
@ -357,8 +388,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"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Schwarz ... komplett"
notes: "Blau ... Hinweise"
@ -421,6 +451,24 @@ 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: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Datei auswählen"
upload: "Dateien von deinem PC hochladen"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Avatar"
banner: "Banner"
nsfw: "閲覧注意"
contextmenu:
rename: "Umbenennen"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
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"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "Nacht Modus"
circle-icons: "Kreisförmige Icons"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "Übergang in Fensterköpfen"
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: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "Listen"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "Einstellungen"
signout: "Ausloggen"
dark: "Verdunkeln"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "Abbrechen"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -6,6 +6,19 @@ common:
misskey: "A ⭐ of the fediverse"
about-title: "A ⭐ of the fediverse."
about: "Thank you for finding Misskey. Misskey is a <b>decentralized microblogging platform</b> 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?"
intro:
title: "What is Misskey?"
about: "Misskey is a open-source <b>decentralized microblogging service</b>. Sophisticated fully customizable Ui, varieties of reaction for posts, free file storage providing integrated management system and other advancing functions are available. Also, network system called “Fediverse” enables us to communicate with users on other SNSs. Like, if you post something, then your posts will sent not only to Misskey but also mastodon. Just imagine that the planet is sending a microwave to other planet to communication."
features: "Features"
rich-contents: "Post"
rich-contents-desc: "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!"
reaction: "Reactions"
reaction-desc: "Easiest way to tell your emotions. Misskey allows you to add various type of reactions to others post. The emotional experience on Misskey will never be on other SNSs which only able to push “likes”."
ui: "Interface"
ui-desc: "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."
drive: "Misskey Drive"
drive-desc: "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."
outro: "Check further Misskey-unique features on your eyes! Feeling like this is not for you, try other instances as Misskey is a decentralized SNS so that you can easily find your mates. Then, GLHF!"
adblock:
detected: "Please disable ad blocker."
warning: "Some features may be unavailable or cause malfunctions if ad blocking features are enabled. <strong>Misskey is not running ads</strong>."
@ -68,6 +81,15 @@ common:
confused: "Confused"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "Public"
home: "Home"
home-desc: "Post to the home timeline only"
followers: "Followers"
followers-desc: "Post to followers only"
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
note-placeholders:
a: "What are you doing?"
b: "What's happening?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "Your token has been regenerated, so you will be signed out."
i-like-sushi: "I prefer sushi rather than pudding"
show-reversi-board-labels: "Show row and column labels in Reversi"
use-contrast-reversi-stones: "Make the stone color clear in reversi"
verified-user: "Verified account"
disable-animated-mfm: "Disable animated texts in a post"
do-not-use-in-production: 'As this is for development, do not use this in production.'
reversi:
drawn: "Draw"
my-turn: "Your turn"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "Developers"
feedback: "Feedback"
common/views/components/note-menu.vue:
detail: "Details"
copy-link: "Copy link"
favorite: "Favorite this note"
pin: "Pin to your profile"
delete: "Delete"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Log in with Twitter"
login-failed: "Log in failed. Make sure you have entered your correct username and password."
common/views/components/signup.vue:
invitation-code: "Invitation code"
invitation-info: "If you do not have an invitation code, please contact an <a href=\"{}\">administrator</a>."
username: "Username"
checking: "Confirming..."
available: "Available"
@ -334,6 +362,9 @@ common/views/components/visibility-chooser.vue:
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
common/views/components/trends.vue:
count: "{} users mentioned"
empty: "No popular hashtag trends"
common/views/widgets/broadcast.vue:
fetching: "Fetching"
no-broadcasts: "No announcements"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "Toggle views"
common/views/widgets/hashtags.vue:
title: "Hashtags"
count: "{} users mentioned"
empty: "No popular hashtag trends"
common/views/widgets/server.vue:
title: "Server info"
toggle: "Toggle views"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "Uploading a new avatar"
avatar-updated: "Successfully updated the avatar"
choose-avatar: "Select an image for the avatar"
invalid-filetype: "This filetype is not acceptable here"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "Previous month"
next: "Next month"
go: "Click to navigate"
desktop/views/components/charts.vue:
title: "Charts"
per-day: "per Day"
per-hour: "per Hour"
notes: "Posts"
users: "Users"
drive: "Drive"
charts:
notes: "The number of posts: increase/decrease (Combined)"
local-notes: "The number of posts: increase/decrease (Local)"
remote-notes: "The number of posts: increase/decrease (Remote)"
notes-total: "The number of posts: cumulative total"
users: "The number of users: increase/decrease"
users-total: "The number of users: cumulative total"
drive: "Capacity used as the storage: increase/decrease"
drive-total: "Capacity used as the storage: cumulative total"
drive-files: "The number of files on the storage: increase/decrease"
drive-files-total: "The number of files on the storage: cumulative total"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Choose files"
upload: "Upload files from your device"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Avatar"
banner: "Banner"
nsfw: "NSFW"
contextmenu:
rename: "Rename"
mark-as-sensitive: "Mark as 'sensitive'"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "Behavior"
fetch-on-scroll: "Endless loading on scroll"
fetch-on-scroll-desc: "When you scroll down the page, it automatically fetches additional content."
note-visibility: "Post visibility"
default-note-visibility: "Default visibility"
remember-note-visibility: "Remember post visibility"
auto-popout: "Auto pop-out window"
auto-popout-desc: "If it's possible, pop-out display will be used instead of opening a new window. This setting is stored in your browser."
advanced: "Advanced settings"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "Remove background"
dark-mode: "Dark Mode"
circle-icons: "Use circle icons"
contrasted-acct: "Add contrast to username"
gradient-window-header: "Use gradients on window headers"
post-form-on-timeline: "Display post form at the top of the timeline"
suggest-recent-hashtags: "Show recent popular hashtags on the post form"
show-clock-on-header: "Show clock on upper-right"
show-reply-target: "Display reply target"
show-my-renotes: "Show my renotes in the timeline"
show-renoted-my-notes: "Show renoted my posts in timelines"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "Lists"
follow-requests: "Follow requests"
customize: "Customize home layout"
admin: "Admin"
settings: "Settings"
signout: "Sign out"
dark: "Submerge in dark"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "Dashboard"
all-users: "All Users"
original-users: "Users on this instance"
all-notes: "All Posts"
all-notes: "All the posts"
original-notes: "Posts on this instance"
invite: "Invite"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "Suspend a user"
suspend: "Suspend"
@ -806,6 +862,14 @@ desktop/views/pages/admin/admin.unsuspend-user.vue:
unsuspend-user: "Unsuspend users"
unsuspend: "Unsuspend"
unsuspended: "The user has successfully unsuspended."
desktop/views/pages/admin/admin.verify-user.vue:
verify-user: "User account verification settings"
verify: "Verify account"
verified: "The account is now being verified"
desktop/views/pages/admin/admin.unverify-user.vue:
unverify-user: "User account unverification settings"
unverify: "Unverify account"
unverified: "The account is now being unverified"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "Only media posts"
is-media-view: "Media view"
@ -814,6 +878,11 @@ desktop/views/pages/deck/deck.note.vue:
reposted-by: "Reposted by {}"
private: "This post is private"
deleted: "This post has been deleted"
desktop/views/pages/stats/stats.vue:
all-users: "All Users"
original-users: "Users on this instance"
all-notes: "All the posts"
original-notes: "Posts on this instance"
desktop/views/pages/welcome.vue:
about: "More details..."
gotit: "Got it!"
@ -822,7 +891,10 @@ desktop/views/pages/welcome.vue:
signin-button: "Logging in..."
signup-button: "Sign up"
timeline: "Timeline"
announcements: "Announcements"
photos: "Recent uploaded"
powered-by-misskey: "Powered by <b>Misskey</b>."
info: "Information"
desktop/views/pages/drive.vue:
title: "Misskey storage"
desktop/views/pages/favorites.vue:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "Cancel"
upload: "Upload files from your device"
desktop/views/pages/search.vue:
not-available: "The search feature is not available for now."
not-available: "Search feature is turned off in the settings for this instance."
not-found: "No posts were found for '{}'"
desktop/views/pages/share.vue:
share-with: "Share with {}."
@ -858,7 +930,7 @@ desktop/views/pages/user/user.friends.vue:
no-users: "No frequent mentions"
desktop/views/pages/user/user.vue:
is-suspended: "This account has been suspended."
is-remote: "The user is a remote user. The profile that you see here may not complete."
is-remote: "This profile belongs to a remote user. The profile that you see here may not be complete. "
view-remote: "See their complete profile"
desktop/views/pages/user/user.home.vue:
last-used-at: "Last active:"
@ -931,12 +1003,15 @@ mobile/views/components/drive-file-chooser.vue:
select-file: "Choose files"
mobile/views/components/drive-folder-chooser.vue:
select-folder: "Choose a folder"
mobile/views/components/drive.file.vue:
nsfw: "NSFW"
mobile/views/components/drive.file-detail.vue:
download: "Download"
rename: "Rename"
move: "Move"
hash: "Hash (md5)"
exif: "EXIF"
nsfw: "NSFW"
mobile/views/components/media-image.vue:
sensitive: "NSFW"
click-to-show: "Click to show"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "Games"
darkmode: "Dark theme"
settings: "Settings"
admin: "Admin"
about: "About Misskey"
mobile/views/components/user-timeline.vue:
no-notes: "It seems this user hasn't posted anything yet."
@ -1030,7 +1106,7 @@ mobile/views/pages/favorites.vue:
title: "Favorites"
mobile/views/pages/user-lists.vue:
title: "Lists"
enter-list-name: "Enter list name"
enter-list-name: "Enter a name of the list to make"
mobile/views/pages/drive.vue:
drive: "Drive"
more: "Load more"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "Dark Mode"
i-am-under-limited-internet: "I'm in limited bandwidth"
circle-icons: "Use circle icons"
contrasted-acct: "Add contrast to username"
timeline: "Timeline"
show-reply-target: "Show reply target"
show-my-renotes: "Show my reposts"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "Post design"
post-style-standard: "Standard"
post-style-smart: "Smart"
notification-position: "Notification style"
notification-position-bottom: "Bottom"
notification-position-top: "Top"
behavior: "Behavior"
fetch-on-scroll: "Endless loading on scroll"
note-visibility: "Post visibility"
default-note-visibility: "Default visibility"
remember-note-visibility: "Remember post visibility"
disable-via-mobile: "Don't mark the post as 'from mobile'"
load-raw-images: "Show attached images in original quality"
load-remote-media: "Show media from a remote server"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "Updates will be applied after reloading the page"
settings: "Settings"
signout: "Sign out"
sound: "Sounds"
enable-sounds: "Enable sounds"
mobile/views/pages/user.vue:
follows-you: "Follows you"
following: "Following"

View File

@ -6,12 +6,25 @@ common:
misskey: "Una ⭐️ del fediverso"
about-title: "Una ⭐️ del fediverso"
about: "Gracias por encontrae Misskey. Misskey es una <b>plataforma descentralizada de microblogging</b> nacida en la Tierra. Gracias a existir dentro del Fediverso (un universo donde se organizan varias plataformas sociales) se encuentra enlazada mutuamente con otras plataformas sociales. ¿Por què no te tomas un respiro del caos de la ciudad y te sumerges es una nueva manera de entender Internet?"
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: "Por favor, desactive el bloqueador de publicidad."
warning: "<strong>Misskey no tiene anuncios publicitarios.</strong> Sin embargo, algunas características podrían no estar disponibles si el bloqueador de publicidad está habilitado."
application-authorization: "Autorizaciones de la aplicación."
close: "Cerrar"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
do-not-copy-paste: "Por favor no copies código aquí. Tu cuenta puede resultar comprometida."
got-it: "¡Listo!"
customization-tips:
title: "Consejos de personalización"
@ -58,7 +71,7 @@ common:
friday: "Viernes"
saturday: "Sábado"
reactions:
like: "me gusta"
like: "Me gusta"
love: "amor"
laugh: "risa"
hmm: "hmm"
@ -68,6 +81,15 @@ common:
confused: "confundido"
rip: "RIP"
pudding: "Chafado"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "¿Qué haces?"
b: "¿Qué está pasando?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "Tu token se ha regenerado vas a ser desconectado."
i-like-sushi: "Prefiero sushi a pudín"
show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi"
verified-user: "公式アカウント"
use-contrast-reversi-stones: "Hacer el color de la piedra claro en Reversi"
verified-user: "Cuenta verificada"
disable-animated-mfm: "Desactivar texto animado en una publicación"
do-not-use-in-production: 'Esto está en desarrollo, no usarlo para producción.'
reversi:
drawn: "Empatado"
my-turn: "Mi turno"
@ -169,9 +193,9 @@ common/views/components/games/reversi/reversi.vue:
common/views/components/games/reversi/reversi.game.vue:
surrender: "Rendirse"
surrendered: "Por rendirse"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
is-llotheo: "El último gana (Llotheo)"
looped-map: "Mapa en bucle"
can-put-everywhere: "Puedes colocar donde quieras"
common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi"
sub-title: "¡Juega Reversi con tus amigos!"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "Desarrolladores"
feedback: "Opiniones"
common/views/components/note-menu.vue:
detail: "Detalles"
copy-link: "Copiar enlace"
favorite: "Me gusta esta nota"
pin: "Fijar en el perfil"
delete: "Borrar"
@ -287,8 +313,10 @@ common/views/components/signin.vue:
signin: "Entra"
or: "O"
signin-with-twitter: "Ingresar con Twitter"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
login-failed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
common/views/components/signup.vue:
invitation-code: "Código de invitación"
invitation-info: "Si no tienes un código de invitación, por favor contacta un <a href=\"{}\">administrador</a>."
username: "Usuario"
checking: "Comprobando..."
available: "Disponible"
@ -334,6 +362,9 @@ common/views/components/visibility-chooser.vue:
specified: "Directo"
specified-desc: "Publica solo para los seguidores que quieras"
private: "Privada"
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/broadcast.vue:
fetching: "Recuperando"
no-broadcasts: "Sin emisión"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "Alternar vistas"
common/views/widgets/hashtags.vue:
title: "Etiquetas"
count: "{} usuarios mencionados"
empty: "Ninguna tendencia popular ahora"
common/views/widgets/server.vue:
title: "Información del servidor"
toggle: "Alternar vistas"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "Cargando un nuevo avatar"
avatar-updated: "Avatar actualizado"
choose-avatar: "Escoge una imagen de avatar"
invalid-filetype: "Este tipo de archivo no es compatible aquí"
desktop/views/components/activity.chart.vue:
total: "Negro ... Total"
notes: "Azul ... Notas"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "Mes anterior"
next: "Próximo mes"
go: "Click para navegar"
desktop/views/components/charts.vue:
title: "Gráficos"
per-day: "por día"
per-hour: "por hora"
notes: "Publicaciones"
users: "Usuarios"
drive: "Unidad"
charts:
notes: "Número de publicaciones: aumentar/disminuir (Combinado)"
local-notes: "Número de publicaciones: aumentar/disminuir (Local)"
remote-notes: "Número de publicaciones: aumentar/disminuir (Remoto)"
notes-total: "Número de publicaciones: Acumulativo total"
users: "Número de usuarios: aumentar/disminuir"
users-total: "Número de usuarios: Acumulativo total"
drive: "Capacidad de almacenamiento usada: aumentar/disminuir"
drive-total: "Capacidad de almacenamiento usada: Acumulativa total"
drive-files: "Número de archivos almacenados: aumentar/disminuir"
drive-files-total: "Número de archivos almacenados: Acumulativo total"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Escoger archivos"
upload: "Cargar archivos de tu dispositivo"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Avatar"
banner: "Banner"
nsfw: "Ver más"
contextmenu:
rename: "Renombrar"
mark-as-sensitive: "Marcar como 'sensible'"
@ -492,31 +541,31 @@ desktop/views/components/media-image.vue:
sensitive: "El contenido es NSFW (no seguro para ver en el trabajo, 'not safe for work')"
click-to-show: "Click para mostrar"
desktop/views/components/media-video.vue:
sensitive: "閲覧注意"
click-to-show: "クリックして表示"
sensitive: "Este contenido no es apropiado para ver en el trabajo"
click-to-show: "Click para mostrar"
desktop/views/components/follow-button.vue:
following: "Siguiendo"
follow: "Sigue"
request-pending: "Pendiente de aprobación"
follow-request: "フォロー申請"
follow-request: "Solicitud de seguir"
desktop/views/components/followers-window.vue:
followers: "{} のフォロワー"
followers: "{} seguidores"
desktop/views/components/followers.vue:
empty: "フォロワーはいないようです。"
empty: "Parece que no tienes seguidores aún."
desktop/views/components/following-window.vue:
following: "{} のフォロー"
following: "Siguiendo {}"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
empty: "Parece que aún no sigues a nadie."
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
title: "Usuarios recomendados:"
empty: "No se pudieron encontrar usuarios para recomendar"
fetching: "Cargando"
refresh: "Más"
close: "Cerrar"
desktop/views/components/game-window.vue:
game: "リバーシ"
game: "Reversi"
desktop/views/components/home.vue:
done: "完了"
done: "Listo"
add-widget: "Agregar accesorio:"
add: "Agregar"
desktop/views/input-dialog.vue:
@ -542,8 +591,8 @@ desktop/views/components/notes.note.vue:
detail: "Mostrar detalles"
private: "Esta publicación es privada"
deleted: "Esta publicación ha sido borrada"
hide: "隠す"
see-more: "もっと見る"
hide: "Esconder"
see-more: "Ver más"
desktop/views/components/notes.vue:
error: "Error al cargar."
retry: "Reintentar"
@ -579,7 +628,7 @@ desktop/views/components/post-form.vue:
geolocation-alert: "Tu dispositivo no tiene soporte de geolocalización."
error: "Error"
enter-username: "Por favor escribe un nombre de usuario..."
annotations: "内容への注釈 (オプション)"
annotations: "Anotaciones a la publicación (opcional)"
desktop/views/components/post-form-window.vue:
note: "Nota nueva"
reply: "Responder"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "Acciones"
fetch-on-scroll: "Desplazamiento infinito"
fetch-on-scroll-desc: "Cuando te deslizas al final de la página nuevo contenido se carga automáticamente."
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "Ventana emergente automática"
auto-popout-desc: "Muestra una ventana emergente si es posible. Esta configuración depende del navegador."
advanced: "Configuración avanzada"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "Suprimir fondo"
dark-mode: "Modo Nocturno"
circle-icons: "Usar iconos circulares"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "Usar degradados en las cabeceras de las páginas"
post-form-on-timeline: "Mostrar el formulario de las entradas encima de la línea de tiempo"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -742,39 +796,40 @@ desktop/views/components/timeline.vue:
global: "グローバル"
list: "リスト"
desktop/views/components/ui.header.vue:
welcome-back: "おかえりなさい、"
adjective: "さん"
welcome-back: "Bienvenido/a de vuelta,"
adjective: "-san"
desktop/views/components/ui.header.account.vue:
profile: "プロフィール"
drive: "ドライブ"
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
profile: "Tu perfil"
drive: "Unidad"
favorites: "Favoritos"
lists: "Listas"
follow-requests: "Solicitudes de seguimiento"
customize: "Personalizar la página de inicio"
admin: "Admin"
settings: "Configuraciones"
signout: "Desconectarse"
dark: "Sumergirse en la oscuridad"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
messaging: "メッセージ"
game: "ゲーム"
home: "Inicio"
deck: "Cubierta"
messaging: "Mensajes"
game: "Juegos"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
title: "Notificaciones"
desktop/views/components/ui.header.post.vue:
post: "新規投稿"
post: "Crear una publicación"
desktop/views/components/ui.header.search.vue:
placeholder: "検索"
placeholder: "Buscar"
desktop/views/components/received-follow-requests-window.vue:
title: "フォロー申請"
accept: "承認"
reject: "拒否"
title: "Solicitudes de seguidores"
accept: "Aceptar"
reject: "Rechazar"
desktop/views/components/user-lists-window.vue:
title: "リスト"
create-list: "リストを作成"
list-name: "リスト名"
title: "Listas de usuario"
create-list: "Crear lista"
list-name: "Nombre de lista"
desktop/views/components/user-preview.vue:
notes: "投稿"
notes: "Publicaciones"
following: "フォロー"
followers: "フォロワー"
desktop/views/components/users-list.vue:
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -4,10 +4,23 @@ meta:
divider: ""
common:
misskey: "Une ⭐ du fédiverse"
about-title: "Une ⭐ du fédiverse."
about: "Merci d'avoir découvert Misskey. Misskey est une <b>plateforme de micro-blogging distribuée</b> née sur Terre. Parce qu'il fait partie du Fédiverse (un univers composé de diverses plateformes de réseaux sociaux organisées), il est mutuellement connecté avec d'autres plateformes de réseaux sociaux. Désirez-vous prendre une pause, pendant un instant, loin de l'agitation de la ville et plonger dans un nouvel Internet ?"
about-title: "Une ⭐ du fédivers."
about: "Merci d'avoir découvert Misskey. Misskey est une <b>plateforme de microblogage distribuée</b> née sur Terre. Parce qu'il fait partie du Fédivers (un univers composé de diverses plateformes de réseaux sociaux organisées), il est mutuellement connecté avec d'autres plateformes de réseaux sociaux. Désirez-vous prendre une pause, pendant un instant, loin de l'agitation de la ville et plonger dans un nouvel Internet ?"
intro:
title: "Cest quoi Misskey ?"
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
features: "Fonctionnalités"
rich-contents: "Notes"
rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
reaction: "Réactions"
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
ui: "Interface utilisateur"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
drive: "Drive"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんかもしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんかMisskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
adblock:
detected: "Veuillez désactiver le bloqueur de publicités"
detected: "Veuillez désactiver votre bloqueur de publicités"
warning: "<strong>Misskey n'utilise pas de publicités</strong>, mais quelques options peuvent être non disponibles ou fonctionneraient mal si un bloqueur de publicités est activé."
application-authorization: "Permissions de l'application"
close: "Fermer"
@ -17,7 +30,7 @@ common:
title: "Conseils de personnalisation"
paragraph1: "La personnalisation à la maison vous permet d'ajouter / supprimer, glisser et déposer et réorganiser les widgets."
paragraph2: "Vous pouvez changer l'affichage en <strong>cliquant droit</strong> sur certains widgets."
paragraph3: "Pour supprimer un widget, <strong>glissez et déposez le widget sur la zone étiquetée \"Corbeille\"</strong> dans l'en-tête."
paragraph3: "Pour supprimer un widget, <strong>glissez et déposez le widget sur la zone étiquetée « Corbeille »</strong> dans l'en-tête."
paragraph4: "Pour terminer la personnalisation, cliquez sur \"Terminer\" dans le coin supérieur droit."
gotit: "Compris!"
notification:
@ -30,7 +43,7 @@ common:
quoted-by: "Cité·e par {} :"
time:
unknown: "inconnu"
future: "future"
future: "à l'instant"
just_now: "à l'instant"
seconds_ago: "Il y a {} seconde·s"
minutes_ago: "Il y a {} minute·s"
@ -58,21 +71,30 @@ common:
friday: "Vendredi"
saturday: "Samedi"
reactions:
like: "Aime"
like: "J'aime"
love: "Adore"
laugh: "Rire"
hmm: "Hmm ... ?"
hmm: "Hmm ?"
surprise: "Wow"
congrats: "Félicitations !"
angry: "En colère"
confused: "Confus"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "Public"
home: "Accueil"
home-desc: "Publier sur le fil local uniquement"
followers: "Abonnés·es"
followers-desc: "Publier à vos abonnés·es uniquement"
specified: "Direct"
specified-desc: "Publier aux utilisateurs·trices mentionnés·es"
private: "Privé"
note-placeholders:
a: "Que faîtes vous maintenant ?"
a: "Que faites-vous maintenant ?"
b: "Quoi de neuf ?"
c: "Qu'avez-vous en tête ?"
d: "Voulez-vous exprimer quelque chose ?"
d: "Désirez-vous publier quelques mots ?"
e: "Écrivez ici"
f: "En attente de vos écrits"
search: "Recherche"
@ -82,10 +104,12 @@ common:
update-available-title: "Mise à jour disponible"
update-available: "Une nouvelle version de Misskey est disponible ({newer}, version actuelle: {current}). Veuillez recharger la page pour appliquer la mise à jour."
my-token-regenerated: "Votre token vient d'être généré, vous allez maintenant être déconnecté."
i-like-sushi: "Je préfère les sushis (au pudding)"
i-like-sushi: "Je préfère les sushis plutôt que le pudding"
show-reversi-board-labels: "Afficher les étiquettes des lignes et colonnes dans Reversi"
verified-user: "公式アカウント"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "Compte vérifié"
disable-animated-mfm: "Désactiver les textes animés dans les publications"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "Partie nulle"
my-turn: "Cest votre tour"
@ -101,18 +125,18 @@ common:
analog-clock: "Horloge analogique"
profile: "Profil"
calendar: "Calendrier"
timemachine: "Calendrier (Machine de temps)"
timemachine: "Calendrier (Machine temporelle)"
activity: "Activité"
rss: "Lecteur de flux RSS"
memo: "Pense-bête"
trends: "Tendances"
photo-stream: "Flux de photos"
posts-monitor: "Graph des publications"
posts-monitor: "Graphe des publications"
slideshow: "Diaporama"
version: "Version"
broadcast: "Diffusion"
notifications: "Notifications"
users: "Utilisateurs"
users: "Utilisateur·rice·s"
polls: "Sondages"
post-form: "Formulaire de publication"
messaging: "Messagerie"
@ -171,19 +195,19 @@ common/views/components/games/reversi/reversi.game.vue:
surrendered: "Par abandon"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "Carte en boucle"
can-put-everywhere: "どこでも置けるモード"
can-put-everywhere: "Peut poser partout"
common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi"
sub-title: "Jouer à Reversi avec vos amis·es !"
sub-title: "Jouer à Reversi avec vos ami·e·s !"
invite: "Inviter"
rule: "Comment Jouer ?"
rule: "Comment jouer ?"
rule-desc: "リバーシは、相手と交互に石をボードに置いて、相手の石を挟んで自分の色に変えてゆき、最終的に残った石が多い方が勝ちというボードゲームです。"
mode-invite: "Inviter"
mode-invite-desc: "Inviter un joueur."
mode-invite-desc: "Inviter un·e joueur·se."
invitations: "Vous avez reçu une invitation !"
my-games: "Mes jeux"
all-games: "Tous les jeux"
enter-username: "Saisir un nom d'utilisateur"
enter-username: "Saisir un nom d'utilisateur·rice"
game-state:
ended: "Terminée"
playing: "En cours"
@ -204,7 +228,7 @@ common/views/components/games/reversi/reversi.room.vue:
waiting-for-both: "En attente que vous soyez prêt"
cancel: "Annuler"
ready: "Prêt"
cancel-ready: "Annuler \"Je suis prêt\""
cancel-ready: "Annuler « Prêt »"
common/views/components/connect-failed.vue:
title: "Échec de connexion au serveur"
description: "Il y a soit un problème avec votre connexion internet, soit le serveur est hors-ligne ou en maintenance. Veuillez {ressayer} plus tard."
@ -230,20 +254,20 @@ common/views/components/connect-failed.troubleshooter.vue:
flush: "Vider le cache"
set-version: "Choisissez une version"
common/views/components/messaging.vue:
search-user: "Trouver un utilisateur"
search-user: "Trouver un·e utilisateur·trice"
you: "Vous"
no-history: "Pas d'historique"
common/views/components/messaging-room.vue:
empty: "Pas de conversations"
more: "Voir Plus"
more: "Voir plus"
no-history: "Il n'y a pas plus d'historique"
resize-form: "Faites glisser pour redimensionner"
new-message: "Nouveau message"
only-one-file-attached: "Un seul fichier uniquement peut être joint au message"
only-one-file-attached: "Un seul fichier peut être joint au message"
common/views/components/messaging-room.form.vue:
input-message-here: "Tapez ici votre message"
send: "Envoyer"
attach-from-local: "Joindre un fichier depuis votre PC"
attach-from-local: "Joindre un fichier depuis votre ordinateur"
attach-from-drive: "Joindre un fichier depuis votre Drive"
only-one-file-attached: "Un seul fichier uniquement peut être joint au message"
common/views/components/messaging-room.message.vue:
@ -251,23 +275,25 @@ common/views/components/messaging-room.message.vue:
deleted: "Ce message a été supprimé"
common/views/components/nav.vue:
about: "À propos"
stats: "Stats"
status: "Status"
stats: "Statistiques"
status: "Statut"
wiki: "Wiki"
donors: "Donateurs"
repository: "Repo"
develop: "Développeurs"
donors: "Donateur·rice·s"
repository: "Dépôt"
develop: "Développeur·se·s"
feedback: "Remarques"
common/views/components/note-menu.vue:
favorite: "Favorite this note"
pin: "Épingler sur votre profile"
detail: "Détails"
copy-link: "Copier le lien"
favorite: "Mettre cette note en favoris"
pin: "Épingler sur votre profil"
delete: "Supprimer"
delete-confirm: "Supprimer cette publication ?"
remote: "Afficher les note originale"
remote: "Afficher la note originale"
common/views/components/poll.vue:
vote-to: "Voter pour '{}'"
vote-count: "{} votes"
total-users: "{} utilisateurs ont voté"
total-users: "{} utilisateur·rice·s ont voté·e·s"
vote: "Vote"
show-result: "Montrer les résultats"
voted: "Voté"
@ -280,32 +306,34 @@ common/views/components/poll-editor.vue:
common/views/components/reaction-picker.vue:
choose-reaction: "Choisissez votre réaction"
common/views/components/signin.vue:
username: "Nom d'utilisateur"
username: "Nom d'utilisateur·rice"
password: "Mot de passe"
token: "Token"
signing-in: "Connexion...."
signing-in: "Connexion"
signin: "Se connecter"
or: "Ou"
signin-with-twitter: "Se connecter via Twitter"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
login-failed: "Échec d'authentification. Veuillez vérifier que votre nom d'utilisateur et mot de passe sont corrects."
common/views/components/signup.vue:
username: "Nom d'utilisateur"
checking: "Vérification"
invitation-code: "Code dinvitation"
invitation-info: "Si vous navez pas de code dinvitation, contactez un·e <a href=\"{}\">administrateur·rice</a>."
username: "Nom d'utilisateur·rice"
checking: "Vérification…"
available: "Disponible"
unavailable: "Non disponible"
error: "Erreur de réseau"
invalid-format: "Utilisez seulement des lettres, nombres et/ou -."
error: "Erreur du réseau"
invalid-format: "Vous pouvez utiliser des lettres, des nombres et _."
too-short: "Veuillez saisir au moins un caractère !"
too-long: "Veuillez entrer au maximum 20 caractères."
password: "Mot de Passe"
password-placeholder: "Nous recommendons au moins 8 caractères."
password: "Mot de passe"
password-placeholder: "Nous recommandons au moins 8 caractères."
weak-password: "Faible"
normal-password: "Moyen"
strong-password: "Fort"
retype: "Retapez"
retype-placeholder: "Confirmez votre mot de passe"
password-matched: "OK"
password-not-matched: "Les mots de passes ne correspondent pas."
password-not-matched: "Les mots de passe ne correspondent pas."
recaptcha: "Vérifier"
create: "Créer un compte"
some-error: "La création du compte a échoué. Veuillez réessayer."
@ -317,14 +345,14 @@ common/views/components/stream-indicator.vue:
reconnecting: "Reconnexion en cours"
connected: "Connecté"
common/views/components/twitter-setting.vue:
description: "Si vous liez votre compte Twitter à votre compte Misskey, vous verrez ensuite votre compte Twitter s'afficher sur votre profile, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Twitter."
description: "Si vous liez votre compte Twitter à votre compte Misskey, vous verrez ensuite votre compte Twitter s'afficher sur votre profil, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Twitter."
connected-to: "Vous êtes connecté à ce compte Twitter"
detail: "Détails …"
reconnect: "Reconnecter"
detail: "Détails…"
reconnect: "Reconnexion"
connect: "Lier votre compte Twitter"
disconnect: "Déconnecter"
disconnect: "Déconnexion"
common/views/components/uploader.vue:
waiting: "En attente"
waiting: "Veuillez patienter"
common/views/components/visibility-chooser.vue:
public: "Public"
home: "Accueil"
@ -332,42 +360,43 @@ common/views/components/visibility-chooser.vue:
followers: "Abonné·e·s"
followers-desc: "Publier à vos abonné·e·s uniquement"
specified: "Direct"
specified-desc: "Publier aux utilisateurs·trices mentionné·es"
specified-desc: "Publier aux utilisateur·rice·s mentionné·e·s"
private: "Privé"
common/views/components/trends.vue:
count: "{} utilisateurs·trices mentionnés·es"
empty: "Aucune tendance"
common/views/widgets/broadcast.vue:
fetching: "Récuperation"
fetching: "Récupération"
no-broadcasts: "Aucune annonce"
have-a-nice-day: "Passez une bonne journée !"
next: "Suivant"
common/views/widgets/calendar.vue:
year: "{} année"
month: "{} mois"
day: "{} jour"
year: "Année {}"
month: "Mois {}"
day: "Jour {}"
today: "Aujourd'hui :"
this-month: "Ce mois-ci :"
this-year: "Cette année :"
common/views/widgets/donation.vue:
title: "Dons"
title: "Faire un don"
text: "Les frais pour faire fonctionner Misskey sortent directement de notre poche. Nous ne recevons pas d'argent issu de la publicité, si vous pouvez nous faire des dons, on vous serait éternellement reconnaissants. Si vous êtes intéressé·es veuillez contacter {}. Merci pour votre contribution !"
common/views/widgets/photo-stream.vue:
title: "Flux de photo"
no-photos: "Pas de photos"
title: "Flux de photos"
no-photos: "Pas de photo"
common/views/widgets/posts-monitor.vue:
title: "Graph des publications"
title: "Graphe des publications"
toggle: "Basculer entre les vues"
common/views/widgets/hashtags.vue:
title: "Étiquettes"
count: "{} utilisateurs mentionnés"
empty: "Aucune tendance"
common/views/widgets/server.vue:
title: "Info sur le serveur"
title: "Informations sur le serveur"
toggle: "Afficher les vues"
common/views/widgets/memo.vue:
title: "Pense-bête"
memo: "Écrivez ici !"
save: "Enregistrer"
common/views/widgets/slideshow.vue:
folder-customize-mode: "Veuillez quitter le mode personnalisé pour pouvour spécifier un dossier"
folder-customize-mode: "Pour pouvoir spécifier un dossier, veuillez quitter le mode de personnalisation"
folder: "Veuillez cliquer pour spécifier le dossier"
no-image: "Il n'y a aucune image dans ce dossier"
common/views/widgets/tips.vue:
@ -375,55 +404,74 @@ common/views/widgets/tips.vue:
tips-line2: "<kbd>p</kbd>または<kbd>n</kbd>で投稿フォームを開きます"
tips-line3: "Vous pouvez glisser et déposer des fichiers sur la fenêtre de la note"
tips-line4: "Vous pouvez coller des images à partir du presse-papier sur la fenêtre de la note"
tips-line5: "Vous pouvez téléverser des fichiers sur le Drive en faisant un glisser/déplacer"
tips-line6: "ドライブでファイルをドラッグしてフォルダ移動できます"
tips-line5: "Vous pouvez téléverser des fichiers sur le Drive en faisant un glisser-déposer"
tips-line6: "Vous pouvez déplacer un dossier en le glissant dans le Drive"
tips-line7: "ドライブでフォルダをドラッグしてフォルダ移動できます"
tips-line8: "Vous pouvez personnaliser l'Accueil via les paramètres"
tips-line9: "Misskey est sous licence AGPLv3"
tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
tips-line11: "Vous pouvez épingler des notes sur votre page en appuyant sur \"…\""
tips-line11: "Vous pouvez épingler des notes sur votre page en cliquant sur « … »"
tips-line13: "Tous les fichiers attachés à cette publication sont sauvegardés dans le Drive"
tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
tips-line17: "Vous pouvez mettre un texte en surbrillance en le mettant entre ** **"
tips-line19: "いくつかのウィンドウはブラウザの外に切り離すことができます"
tips-line20: "カレンダーウィジェットのパーセンテージは、経過の割合を示しています"
tips-line21: "Vous pouvez aussi utiliser l'API pour développer des Bots."
tips-line23: "まゆかわいいよまゆ"
tips-line23: "Mayu est mignone avec ses sourcils."
tips-line24: "Misskey a vu le jour en 2014"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/follow.vue:
signed-in-as: "Connecté·é en tant que {}"
signed-in-as: "Connecté·e en tant que {}"
following: "Suit"
follow: "Suivre"
request-pending: "Demande d'abonnement en attente"
follow-request: "Demande d'abonnement"
desktop:
banner-crop-title: "Découpez la partie qui apparaîtra comme une bannière"
banner-crop-title: "Découpez la partie qui apparaitra comme bannière"
banner: "Bannière"
uploading-banner: "Téléversement d'une nouvelle bannière"
banner-updated: "La bannière est mise à jour"
choose-banner: "Choisir une bannière"
avatar-crop-title: "Découpez la partie qui apparaîtra dans l'avatar"
avatar-crop-title: "Découpez la partie qui apparaitra comme avatar"
avatar: "Avatar"
uploading-avatar: "Téléversement du nouvel avatar"
avatar-updated: "L'avatar est mis à jour"
choose-avatar: "Choisir un avatar"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Noirs ... Total"
notes: "Bleu ... Notes"
replies: "Rouge ... Réponses"
renotes: "Vert ... Partages"
desktop/views/components/activity.vue:
title: "Activitié"
title: "Activité"
toggle: "Afficher les vues"
desktop/views/components/calendar.vue:
title: "{1} / {2}"
prev: "Mois dernier"
next: "Mois prochain"
go: "Cliquer pour naviguer"
go: "Cliquez pour naviguer"
desktop/views/components/charts.vue:
title: "Graphiques"
per-day: "par jour"
per-hour: "par heure"
notes: "Publications"
users: "Utilisateurs"
drive: "Drive"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "Nombre dutilisateurs·trices : augmentation/diminution"
users-total: "Nombre total dutilisateurs·trices : total cumulé"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Sélection de fichiers"
upload: "Téléverser des fichiers à partir de votre PC"
upload: "Téléverser des fichiers à partir de votre ordinateur"
cancel: "Annuler"
ok: "OK"
choose-prompt: "Choisir un fichier"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Avatar"
banner: "Bannière"
nsfw: "CW"
contextmenu:
rename: "Renommer"
mark-as-sensitive: "Marquer comme sensible"
@ -454,14 +503,14 @@ desktop/views/components/drive.file.vue:
add-app: "Ajouter une application"
rename-file: "Renommer le ficher"
input-new-file-name: "Entrer un nouveau nom"
copied: "Copied"
copied-url-to-clipboard: "L'URL a été copié dans le presse-papier"
copied: "Copié"
copied-url-to-clipboard: "L'URL a été copiée dans le presse-papier"
desktop/views/components/drive.folder.vue:
unable-to-process: "L'opération n'a pas pu être complétée"
circular-reference-detected: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer."
unhandled-error: "Erreur inconnue"
contextmenu:
move-to-this-folder: "Bouger dans ce dossier"
move-to-this-folder: "Déplacer dans ce dossier"
show-in-new-window: "Ouvrir dans une nouvelle fenêtre"
rename: "Renommer"
rename-folder: "Renommer le dossier"
@ -509,7 +558,7 @@ desktop/views/components/following.vue:
empty: "Vous ne suivez aucun compte."
desktop/views/components/friends-maker.vue:
title: "Utilisateurs recommandés :"
empty: "Impossible de trouver des utilisateurs à recommander."
empty: "Impossible de trouver des utilisateurs·trices à recommander."
fetching: "Chargement"
refresh: "Plus"
close: "Fermer"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "Comportement"
fetch-on-scroll: "Chargement lors du défilement"
fetch-on-scroll-desc: "Chargement automatique du contenu lors du défilement de la page."
note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "Fenêtre contextuelle automatique"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "Paramètres avancés"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "Supprimer le fond d'écran"
dark-mode: "Mode nuit"
circle-icons: "Utiliser des icônes circulaires"
contrasted-acct: "Nom dutilisateur contrasté"
gradient-window-header: "Utiliser les dégradés sur la barre de titre de la fenêtre"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
post-form-on-timeline: "Afficher le formulaire en haut du fil"
suggest-recent-hashtags: "Afficher les hashtags populaires dans le champs de saisie"
show-clock-on-header: "Afficher l'horloge à droite sur le coté supérieur"
show-reply-target: "Afficher les réponses"
show-my-renotes: "Afficher mes republications dans le fil"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -635,7 +689,7 @@ desktop/views/components/settings.vue:
show-maps-desc: "位置情報が添付された投稿のマップを自動的に展開します。"
sound: "Son"
enable-sounds: "Activer le son"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
enable-sounds-desc: "Jouer un son lorsque vous recevez un message. Ce paramètre est sauvegardé dans le navigateur."
volume: "Volume"
test: "Test"
mobile: "Mobile"
@ -696,7 +750,7 @@ desktop/views/components/settings.2fa.vue:
desktop/views/components/settings.api.vue:
intro: "APIを利用するには、上記のトークンを「i」というキーでパラメータに付加してリクエストします。"
caution: "アカウントを不正利用される可能性があるため、このトークンは第三者に教えないでください(アプリなどにも入力しないでください)。"
regeneration-of-token: "万が一このトークンが漏れたりその可能性がある場合はトークンを再生成できます。"
regeneration-of-token: "Si votre jeton est compromis, vous pouvez le régénérer."
regenerate-token: "Regenerer le token"
token: "Jeton :"
enter-password: "Veuillez entrer le mot de passe"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "Listes"
follow-requests: "Demandes de suivi"
customize: "Personnaliser l'Accueil"
admin: "Admin"
settings: "Réglages"
signout: "Déconnexion"
dark: "Fall in dark"
@ -788,24 +843,33 @@ desktop/views/components/window.vue:
popout: "ポップアウト"
close: "Fermer"
desktop/views/pages/admin/admin.vue:
dashboard: "ダッシュボード"
drive: "ドライブ"
users: "ユーザー"
update: "更新"
dashboard: "Tableau de bord"
drive: "Drive"
users: "Utilisateur·rice·s"
update: "Mises à jour"
desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
dashboard: "Tableau de bord"
all-users: "Toutes les utilisateurrices"
original-users: "Utilisateurrices sur cette instance"
all-notes: "Toutes les publications"
original-notes: "Publication sur cette instance"
invite: "Invitation"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
suspended: "凍結しました"
suspend-user: "Suspendre un·e utilisateur·rice"
suspend: "Suspendre"
suspended: "Suspendu avec succès"
desktop/views/pages/admin/admin.unsuspend-user.vue:
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
unsuspend-user: "Lever la suspension dutilisateur·rice·s"
unsuspend: "Suspension levée"
unsuspended: "La suspension de lutilisateur·rice a été levée avec succès"
desktop/views/pages/admin/admin.verify-user.vue:
verify-user: "Paramètres de vérification du compte utilisateur"
verify: "Vérification du compte"
verified: "Le compte a été vérifié"
desktop/views/pages/admin/admin.unverify-user.vue:
unverify-user: "ユーザーの公式アカウント解除"
unverify: "Ôter la vérification du compte"
unverified: "Ce compte n'est pas vérifié"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "Les publications médias uniquement"
is-media-view: "Vue média"
@ -814,6 +878,11 @@ desktop/views/pages/deck/deck.note.vue:
reposted-by: "Reposté par {}"
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
desktop/views/pages/stats/stats.vue:
all-users: "Toutes les utilisateurrices"
original-users: "Utilisateurrices sur cette instance"
all-notes: "Toutes les publications"
original-notes: "Publication sur cette instance"
desktop/views/pages/welcome.vue:
about: "à propos"
gotit: "J'ai compris !"
@ -822,7 +891,10 @@ desktop/views/pages/welcome.vue:
signin-button: "Se connecter"
signup-button: "S'inscrire"
timeline: "Fil d'actualité"
announcements: "Notices"
photos: "Images récentes"
powered-by-misskey: "Propulsé par <b>Misskey</b>."
info: "Informations"
desktop/views/pages/drive.vue:
title: "Lecteur de Misskey"
desktop/views/pages/favorites.vue:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "Annuler"
upload: "Uploader un ou plusieurs fichier(s) depuis votre PC"
desktop/views/pages/search.vue:
not-available: "Vous ne pouvez pas utiliser la fonctionnalité de recherche."
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "Aucun message trouvé pour '{}'"
desktop/views/pages/share.vue:
share-with: "Partager avec {}"
@ -931,12 +1003,15 @@ mobile/views/components/drive-file-chooser.vue:
select-file: "Choisissez un fichier"
mobile/views/components/drive-folder-chooser.vue:
select-folder: "Choisissez un dossier"
mobile/views/components/drive.file.vue:
nsfw: "CW"
mobile/views/components/drive.file-detail.vue:
download: "Télécharger"
rename: "Renommer"
move: "Déplacer"
hash: "Hash (md5)"
exif: "EXIF"
nsfw: "CW"
mobile/views/components/media-image.vue:
sensitive: "Le contenu est NSFW"
click-to-show: "Cliquer pour afficher"
@ -950,7 +1025,7 @@ mobile/views/components/follow-button.vue:
follow-request: "Demande d'abonnement"
mobile/views/components/friends-maker.vue:
title: "Abonnez-vous aux utilisateurs"
empty: "Impossible de trouver des utilisateurs à recommander."
empty: "Impossible de trouver des utilisateurs·trices à recommander."
fetching: "Chargement"
refresh: "Voir plus"
close: "Fermer"
@ -1003,7 +1078,7 @@ mobile/views/components/timeline.vue:
load-more: "Afficher plus"
mobile/views/components/ui.header.vue:
welcome-back: "Content de vous revoir ! "
adjective: "さん"
adjective: "M."
mobile/views/components/ui.nav.vue:
timeline: "Fil d'actualité"
notifications: "Notifications"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "Jeux"
darkmode: "Mode nuit"
settings: "Réglages"
admin: "Admin"
about: "À propose de Misskey"
mobile/views/components/user-timeline.vue:
no-notes: "Cette utilisateur semble n'avoir rien poster pour le moment"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité"
circle-icons: "Utiliser des icônes circulaires"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "Fil d'actualité"
show-reply-target: "Afficher les réponses"
show-my-renotes: "Afficher mes republications"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "Style de la publication"
post-style-standard: "Standard"
post-style-smart: "Intelligent"
notification-position: "Style de notification"
notification-position-bottom: "en bas"
notification-position-top: "en haut"
behavior: "Comportement"
fetch-on-scroll: "Chargement lors du défilement"
note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
disable-via-mobile: "Ne pas mentionner que ma publication provient d'un 'périphérique mobile'"
load-raw-images: "Afficher les photos jointes en haute qualité"
load-remote-media: "Afficher les médias sur le serveur distant"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "Les mises à jour seront appliquées une fois la page est rechargée."
settings: "Réglages"
signout: "Déconnexion"
sound: "Sons"
enable-sounds: "Activer les sons"
mobile/views/pages/user.vue:
follows-you: "vous suit"
following: "Abonnements"
@ -1176,14 +1261,14 @@ docs:
params: "Paramètres"
no-params: "Aucun paramètre"
res: "Réponse"
require-credential: "このエンドポイントは認証情報が必須です。"
require-permission: "このエンドポイントは{permission}の権限を必要とします。"
has-limit: "レートリミットがあります。"
require-credential: "Ce point de communication nécessite une authentification."
require-permission: "Ce point de communication nécessite la permission {permission}."
has-limit: "Il ya un taux limite."
duration-limit: "直近{duration}ミリ秒の間のこのエンドポイントへのリクエスト数の合計が{max}を超える場合はリクエストできません。"
min-interval-limit: "前回のリクエストから{interval}ミリ秒経っていない場合はリクエストできません。"
show-src: "このエンドポイントのソースコードも閲覧できます。"
show-src: "Vous pouvez voir le code source ce point de communication."
show-src-link: "Consulter le code sur GitHub"
generated: "このドキュメントはAPI定義に基づき自動生成されています。"
generated: "Ce document est généré à partir de la définition de lAPI."
props:
name: "Nom"
type: "Type"

View File

@ -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.values(langs).forEach(locale => {
// Extend native language (Japanese)
locale = Object.assign({}, native, locale);
});
module.exports = langs;
module.exports = locales.reduce((a, b) => ({ ...a, ...b }));

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -68,6 +81,15 @@ common:
confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -73,6 +86,16 @@ common:
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -90,9 +113,12 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -282,6 +308,8 @@ common/views/components/nav.vue:
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -370,6 +398,10 @@ common/views/components/visibility-chooser.vue:
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@ -398,8 +430,6 @@ common/views/widgets/posts-monitor.vue:
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
@ -455,6 +485,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
@ -472,6 +503,25 @@ desktop/views/components/calendar.vue:
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -496,6 +546,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -696,6 +747,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -708,9 +762,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -855,6 +911,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -912,8 +969,8 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
@ -931,15 +988,10 @@ desktop/views/pages/admin/admin.verify-user.vue:
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
desktop/views/pages/admin/admin.notes-chart.vue:
title: "投稿"
local: "ローカル"
remote: "リモート"
desktop/views/pages/admin/admin.users-chart.vue:
title: "ユーザー"
local: "ローカル"
remote: "リモート"
desktop/views/pages/admin/admin.unverify-user.vue:
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
desktop/views/pages/deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
@ -951,6 +1003,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: "わかった"
@ -959,7 +1017,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"
@ -981,7 +1042,7 @@ desktop/views/pages/selectdrive.vue:
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
@ -1097,12 +1158,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: "閲覧注意"
@ -1198,6 +1263,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
@ -1311,6 +1377,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1319,8 +1386,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1339,6 +1412,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
@ -1402,6 +1477,5 @@ docs:
type: "型"
description: "説明"
dev/views/index.vue:
manage-apps: "アプリの管理"

1277
locales/ja-KS.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,19 @@ 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> 그러나 광고를 차단하는 기능 기능을 사용할 경우 일부 기능을 사용할 수 없게 될 가능성이나 결함이 발생하는 경우가 있습니다."
@ -58,7 +71,7 @@ common:
friday: "금요일"
saturday: "토요일"
reactions:
like: "좋네"
like: "いいね"
love: "좋아"
laugh: "크크"
hmm: "음..."
@ -68,6 +81,15 @@ common:
confused: "곤란하고 있어"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "지금 어떻게하고있어?"
b: "뭔가 있었습니까?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "당신의 토큰이 업데이트되어 있기 때문에 로그 아웃합니다."
i-like-sushi: "나는(푸딩보다 오히려)스시가 좋아"
show-reversi-board-labels: "리버시 보드의 행과 열 레이블을 표시"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "게시물의 문자 애니메이션을 비활성화 할"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "무승부"
my-turn: "당신의 차례입니다"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

1277
locales/nl-NL.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,11 +1,24 @@
---
meta:
lang: "Português"
lang: "norsk"
divider: ""
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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -29,26 +42,26 @@ common:
reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:"
time:
unknown: "なぞのじかん"
future: "未来"
just_now: "たった今"
seconds_ago: "{}秒前"
minutes_ago: "{}分前"
hours_ago: "{}時間前"
days_ago: "{}日前"
weeks_ago: "{}週間前"
months_ago: "{}ヶ月前"
years_ago: "{}年前"
unknown: "ukjent"
future: "fremtidig"
just_now: "akkurat nå"
seconds_ago: "{} sekunder siden"
minutes_ago: "{} minutter siden"
hours_ago: "{} time siden"
days_ago: "{} dag siden"
weeks_ago: "{} uke(r) siden"
months_ago: "{} måned(er) siden"
years_ago: "{} år siden"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱"
weekday-short:
sunday: ""
monday: ""
tuesday: ""
wednesday: ""
thursday: ""
friday: ""
saturday: ""
sunday: "S"
monday: "M"
tuesday: "T"
wednesday: "O"
thursday: "T"
friday: "F"
saturday: "L"
weekday:
sunday: "日曜日"
monday: "月曜日"
@ -58,16 +71,25 @@ common:
friday: "金曜日"
saturday: "土曜日"
reactions:
like: "いいね"
love: "しゅき"
laugh: ""
hmm: "ふぅ~む"
surprise: "わお"
congrats: "おめでとう"
angry: "おこ"
confused: "こまこまのこまり"
like: "Lik"
love: "Elsk"
laugh: "Le"
hmm: "Hmm…?"
surprise: "Wow"
congrats: "Gratulerer!"
angry: "Sint"
confused: "Forvirret"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -80,12 +102,14 @@ common:
loading: "読み込み中"
ok: "わかった"
update-available-title: "更新があります"
update-available: "Misskeyの新しいバージョンがあります({newer}。現在{current}を利用中)。ページを再度読み込みすると更新が適用されます。"
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
update-available: "En ny versjon av Misskey er nå tilgjengelig ({newer}, nåværende versjon er {current}). Last inn siden igjen for at oppdateringen skal tre i kraft."
my-token-regenerated: "Ditt synbol har blitt generert. Du vil nå bli utlogget."
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -206,8 +230,8 @@ common/views/components/games/reversi/reversi.room.vue:
ready: "準備完了"
cancel-ready: "準備続行"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
title: "Kunne ikke koble til tjeneren."
description: "Det er enten et problem med internettilknytningen din, eller så har tjeneren blitt tatt ned for vedlikehold. {Prøv igjen} senere."
thanks: "いつもMisskeyをご利用いただきありがとうございます。"
troubleshoot: "トラブルシュート"
common/views/components/connect-failed.troubleshooter.vue:
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -6,6 +6,19 @@ 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."
@ -58,7 +71,7 @@ common:
friday: "Piątek"
saturday: "Sobota"
reactions:
like: "Lubię"
like: "いいね"
love: "Kocham"
laugh: "Śmieszne"
hmm: "Hmm…?"
@ -68,6 +81,15 @@ common:
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?"
@ -84,8 +106,10 @@ 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"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "Remis"
my-turn: "Twoja kolej"
@ -259,6 +283,8 @@ 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"
delete: "Usuń"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
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"
@ -334,6 +362,9 @@ 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"
@ -357,8 +388,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"
@ -408,6 +437,7 @@ desktop:
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"
@ -421,6 +451,24 @@ 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: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "Wybierz plik"
upload: "Wyślij pliki z Twojego komputera"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "Awatar"
banner: "Baner"
nsfw: "閲覧注意"
contextmenu:
rename: "Zmień nazwę"
mark-as-sensitive: "Oznacz jako zawartość wrażliwą"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
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"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "Usuń tło"
dark-mode: "Tryb ciemny"
circle-icons: "Używaj okrągłych ikon"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "Używaj gradientów na pasku tytułu okna"
post-form-on-timeline: "Wyświetlaj formularz tworzenia wpisu w górnej części osi czasu"
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: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,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ść"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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"
@ -814,6 +878,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!"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "Anuluj"
upload: "Wyślij pliki z Twojego komputera"
desktop/views/pages/search.vue:
not-available: "Funkcja wyszukiwania nie może zostać wykorzystywana."
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "Nie znaleziono wpisów zawierających „{}”"
desktop/views/pages/share.vue:
share-with: "Udostępnij z {}."
@ -931,12 +1003,15 @@ 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: "To jest zawartość NSFW"
click-to-show: "Naciśnij aby wyświetlić"
@ -1017,6 +1092,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"
@ -1106,6 +1182,7 @@ 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"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "Styl wpisów"
post-style-standard: "Standardowy"
post-style-smart: "Inteligentny"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
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"
@ -1134,6 +1217,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"

1277
locales/pt-PT.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -68,6 +81,15 @@ common:
confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -6,6 +6,19 @@ 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>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
@ -68,6 +81,15 @@ common:
confused: "こまこまのこまり"
rip: "RIP"
pudding: "Pudding"
note-visibility:
public: "公開"
home: "ホーム"
home-desc: "ホームタイムラインにのみ公開"
followers: "フォロワー"
followers-desc: "自分のフォロワーにのみ公開"
specified: "ダイレクト"
specified-desc: "指定したユーザーにのみ公開"
private: "非公開"
note-placeholders:
a: "今どうしてる?"
b: "何かありましたか?"
@ -84,8 +106,10 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
@ -259,6 +283,8 @@ common/views/components/nav.vue:
develop: "開発者"
feedback: "フィードバック"
common/views/components/note-menu.vue:
detail: "詳細"
copy-link: "リンクをコピー"
favorite: "お気に入り"
pin: "ピン留め"
delete: "削除"
@ -289,6 +315,8 @@ common/views/components/signin.vue:
signin-with-twitter: "Twitterでログイン"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
common/views/components/signup.vue:
invitation-code: "招待コード"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
username: "ユーザー名"
checking: "確認しています..."
available: "利用できます"
@ -334,6 +362,9 @@ 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: "お知らせはありません"
@ -357,8 +388,6 @@ common/views/widgets/posts-monitor.vue:
toggle: "表示を切り替え"
common/views/widgets/hashtags.vue:
title: "ハッシュタグ"
count: "{}人が投稿"
empty: "トレンドなし"
common/views/widgets/server.vue:
title: "サーバー情報"
toggle: "表示を切り替え"
@ -408,6 +437,7 @@ desktop:
uploading-avatar: "新しいアバターをアップロードしています"
avatar-updated: "アバターを更新しました"
choose-avatar: "アバターにする画像を選択"
invalid-filetype: "この形式のファイルはサポートされていません"
desktop/views/components/activity.chart.vue:
total: "Black ... Total"
notes: "Blue ... Notes"
@ -421,6 +451,24 @@ desktop/views/components/calendar.vue:
prev: "前の月"
next: "次の月"
go: "クリックして時間遡行"
desktop/views/components/charts.vue:
title: "チャート"
per-day: "1日ごと"
per-hour: "1時間ごと"
notes: "投稿"
users: "ユーザー"
drive: "ドライブ"
charts:
notes: "投稿の増減 (統合)"
local-notes: "投稿の増減 (ローカル)"
remote-notes: "投稿の増減 (リモート)"
notes-total: "投稿の累計"
users: "ユーザーの増減"
users-total: "ユーザーの累計"
drive: "ドライブ使用量の増減"
drive-total: "ドライブ使用量の累計"
drive-files: "ドライブのファイル数の増減"
drive-files-total: "ドライブのファイル数の累計"
desktop/views/components/choose-file-from-drive-window.vue:
choose-file: "ファイル選択中"
upload: "PCからドライブにファイルをアップロード"
@ -441,6 +489,7 @@ desktop/views/components/drive-window.vue:
desktop/views/components/drive.file.vue:
avatar: "アイコン"
banner: "バナー"
nsfw: "閲覧注意"
contextmenu:
rename: "名前を変更"
mark-as-sensitive: "閲覧注意に設定"
@ -613,6 +662,9 @@ desktop/views/components/settings.vue:
behaviour: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
fetch-on-scroll-desc: "ページを下までスクロールしたときに自動で追加のコンテンツを読み込みます。"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@ -624,9 +676,11 @@ desktop/views/components/settings.vue:
delete-wallpaper: "壁紙を削除"
dark-mode: "ダークモード"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
gradient-window-header: "ウィンドウのタイトルバーにグラデーションを使用"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteをタイムラインに表示する"
show-renoted-my-notes: "自分の投稿のRenoteをタイムラインに表示する"
@ -751,6 +805,7 @@ desktop/views/components/ui.header.account.vue:
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
@ -796,8 +851,9 @@ desktop/views/pages/admin/admin.dashboard.vue:
dashboard: "ダッシュボード"
all-users: "全てのユーザー"
original-users: "このインスタンスのユーザー"
all-notes: "全てのノート"
original-notes: "このインスタンスのノート"
all-notes: "全ての投稿"
original-notes: "このインスタンスの投稿"
invite: "招待"
desktop/views/pages/admin/admin.suspend-user.vue:
suspend-user: "ユーザーの凍結"
suspend: "凍結"
@ -806,6 +862,14 @@ 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: "メディアビュー"
@ -814,6 +878,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: "わかった"
@ -822,7 +891,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:
@ -838,7 +910,7 @@ desktop/views/pages/selectdrive.vue:
cancel: "キャンセル"
upload: "PCからドライブにファイルをアップロード"
desktop/views/pages/search.vue:
not-available: "検索機能を利用することができません。"
not-available: "検索機能はインスタンスの設定で無効になっています。"
not-found: "「{}」に関する投稿は見つかりませんでした。"
desktop/views/pages/share.vue:
share-with: "{}で共有"
@ -931,12 +1003,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: "クリックして表示"
@ -1017,6 +1092,7 @@ mobile/views/components/ui.nav.vue:
game: "ゲーム"
darkmode: "ダークモード"
settings: "設定"
admin: "管理"
about: "Misskeyについて"
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
@ -1106,6 +1182,7 @@ mobile/views/pages/settings.vue:
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
timeline: "タイムライン"
show-reply-target: "リプライ先を表示する"
show-my-renotes: "自分の行ったRenoteを表示する"
@ -1114,8 +1191,14 @@ mobile/views/pages/settings.vue:
post-style: "投稿の表示スタイル"
post-style-standard: "標準"
post-style-smart: "スマート"
notification-position: "通知の表示"
notification-position-bottom: "下"
notification-position-top: "上"
behavior: "動作"
fetch-on-scroll: "スクロールで自動読み込み"
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
@ -1134,6 +1217,8 @@ mobile/views/pages/settings.vue:
update-available-desc: "ページを再度読み込みすると更新が適用されます。"
settings: "設定"
signout: "サインアウト"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
mobile/views/pages/user.vue:
follows-you: "フォローされています"
following: "フォロー"

View File

@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "6.4.0",
"clientVersion": "1.0.8520",
"version": "8.34.2",
"clientVersion": "1.0.9567",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,
@ -32,7 +32,7 @@
"@types/debug": "0.0.30",
"@types/deep-equal": "1.0.1",
"@types/double-ended-queue": "2.1.0",
"@types/elasticsearch": "5.0.25",
"@types/elasticsearch": "5.0.26",
"@types/file-type": "5.2.1",
"@types/gulp": "3.8.36",
"@types/gulp-htmlmin": "1.3.32",
@ -55,12 +55,12 @@
"@types/koa-send": "4.1.1",
"@types/koa-views": "2.0.3",
"@types/koa__cors": "2.2.3",
"@types/minio": "6.0.2",
"@types/minio": "7.0.0",
"@types/mkdirp": "0.5.2",
"@types/mocha": "5.2.3",
"@types/mongodb": "3.1.4",
"@types/ms": "0.7.30",
"@types/node": "10.7.1",
"@types/node": "10.9.4",
"@types/portscanner": "2.1.0",
"@types/pug": "2.0.4",
"@types/qrcode": "1.2.0",
@ -70,17 +70,17 @@
"@types/request-promise-native": "1.0.15",
"@types/rimraf": "2.0.2",
"@types/seedrandom": "2.4.27",
"@types/sharp": "0.17.9",
"@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/tmp": "0.0.33",
"@types/uuid": "3.4.3",
"@types/webpack": "4.4.10",
"@types/uuid": "3.4.4",
"@types/webpack": "4.4.11",
"@types/webpack-stream": "3.2.10",
"@types/websocket": "0.0.39",
"@types/ws": "6.0.0",
"@types/websocket": "0.0.40",
"@types/ws": "6.0.1",
"animejs": "2.2.0",
"autosize": "4.0.2",
"autwh": "0.1.0",
@ -89,6 +89,7 @@
"bootstrap-vue": "2.0.0-rc.11",
"cafy": "11.3.0",
"chalk": "2.4.1",
"chart.js": "2.7.2",
"commander": "2.17.1",
"crc-32": "1.2.0",
"css-loader": "1.0.0",
@ -126,7 +127,7 @@
"gulp-util": "3.0.8",
"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",
@ -149,16 +150,18 @@
"loader-utils": "1.1.0",
"lodash.assign": "4.2.0",
"mecab-async": "0.1.2",
"minio": "7.0.0",
"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",
"nan": "2.11.0",
"nested-property": "0.0.7",
"node-sass": "4.9.3",
"node-sass-json-importer": "3.3.1",
"node-sass-json-importer": "4.0.1",
"nprogress": "0.2.0",
"object-assign-deep": "0.4.0",
"on-build-webpack": "0.1.0",
@ -181,17 +184,17 @@
"s-age": "1.1.2",
"sass-loader": "7.1.0",
"seedrandom": "2.4.4",
"sharp": "0.20.5",
"sharp": "0.20.7",
"showdown": "1.8.6",
"showdown-highlightjs-extension": "0.1.2",
"single-line-log": "1.1.2",
"speakeasy": "2.0.0",
"stringz": "1.0.0",
"style-loader": "0.22.1",
"style-loader": "0.23.0",
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
"summaly": "2.1.3",
"systeminformation": "3.42.9",
"summaly": "2.2.0",
"systeminformation": "3.45.1",
"syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0",
"tmp": "0.0.33",
@ -205,19 +208,21 @@
"uuid": "3.3.2",
"v-animate-css": "0.0.2",
"vue": "2.5.17",
"vue-chartjs": "3.4.0",
"vue-cropperjs": "2.2.1",
"vue-js-modal": "1.3.17",
"vue-js-modal": "1.3.26",
"vue-json-tree-view": "2.1.4",
"vue-loader": "15.3.0",
"vue-loader": "15.4.1",
"vue-router": "3.0.1",
"vue-style-loader": "4.1.2",
"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",
"webfinger.js": "2.6.6",
"webpack": "4.16.5",
"webpack": "4.17.2",
"webpack-cli": "3.1.0",
"websocket": "1.0.26",
"ws": "6.0.0",

View File

@ -6,6 +6,10 @@ html
&, *
cursor progress !important
html
// iOS
overflow auto
body
overflow-wrap break-word

View File

@ -7,7 +7,7 @@
<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>

View File

@ -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}`;
}
}
}

View File

@ -32,19 +32,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
@ -85,7 +94,7 @@
// Get salt query
const salt = localStorage.getItem('salt')
? '?salt=' + localStorage.getItem('salt')
? `?salt=${localStorage.getItem('salt')}`
: '';
// Load an app script
@ -104,7 +113,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 +140,7 @@
// Random
localStorage.setItem('salt', Math.random().toString());
// Clear cache (serive worker)
// Clear cache (service worker)
try {
navigator.serviceWorker.controller.postMessage('clear');

View File

@ -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');

View File

@ -1,2 +0,0 @@
const gcd = (a, b) => !b ? a : gcd(b, a % b);
export default gcd;

View File

@ -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;
}

View File

@ -3,8 +3,10 @@ import MiOS from '../../../../../mios';
export class ReversiGameStream extends Stream {
constructor(os: MiOS, me, game) {
super(os, 'games/reversi-game', {
i: me ? me.token : null,
super(os, 'games/reversi-game', me ? {
i: me.token,
game: game.id
} : {
game: game.id
});
}

View File

@ -7,9 +7,9 @@ import MiOS from '../../../mios';
*/
export class LocalTimelineStream extends Stream {
constructor(os: MiOS, me) {
super(os, 'local-timeline', {
super(os, 'local-timeline', me ? {
i: me.token
});
} : {});
}
}

View File

@ -1,6 +1,7 @@
import { EventEmitter } from 'eventemitter3';
import * as uuid from 'uuid';
import Connection from './stream';
import { erase } from '../../../../../prelude/array';
/**
* ストリーム接続を管理するクラス
@ -89,7 +90,7 @@ export default abstract class StreamManager<T extends Connection> extends EventE
* @param userId use で発行したユーザーID
*/
public dispose(userId) {
this.users = this.users.filter(id => id != userId);
this.users = erase(userId, this.users);
this._connection.user = `Managed (${ this.users.length })`;

View File

@ -44,11 +44,11 @@ export default class Connection extends EventEmitter {
const query = params
? Object.keys(params)
.map(k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k]))
.map(k => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`)
.join('&')
: null;
this.socket = new ReconnectingWebsocket(`${wsUrl}/${endpoint}${query ? '?' + query : ''}`);
this.socket = new ReconnectingWebsocket(`${wsUrl}/${endpoint}${query ? `?${query}` : ''}`);
this.socket.addEventListener('open', this.onOpen);
this.socket.addEventListener('close', this.onClose);
this.socket.addEventListener('message', this.onMessage);

View File

@ -1,19 +1,25 @@
<template>
<span class="mk-acct">
<span class="name">@{{ user.username }}</span>
<span class="host" v-if="user.host">@{{ user.host }}</span>
<span class="host" :class="{ fade: $store.state.settings.contrastedAcct }" v-if="user.host || detail">@{{ user.host || host }}</span>
</span>
</template>
<script lang="ts">
import Vue from 'vue';
import { host } from '../../../config';
export default Vue.extend({
props: ['user']
props: ['user', 'detail'],
data() {
return {
host
};
}
});
</script>
<style lang="stylus" scoped>
.mk-acct
> .host
> .host.fade
opacity 0.5
</style>

View File

@ -125,7 +125,7 @@ export default Vue.extend({
}
if (this.type == 'user') {
const cacheKey = 'autocomplete:user:' + this.q;
const cacheKey = `autocomplete:user:${this.q}`;
const cache = sessionStorage.getItem(cacheKey);
if (cache) {
const users = JSON.parse(cache);
@ -148,7 +148,7 @@ export default Vue.extend({
this.hashtags = JSON.parse(localStorage.getItem('hashtags') || '[]');
this.fetching = false;
} else {
const cacheKey = 'autocomplete:hashtag:' + this.q;
const cacheKey = `autocomplete:hashtag:${this.q}`;
const cache = sessionStorage.getItem(cacheKey);
if (cache) {
const hashtags = JSON.parse(cache);

View File

@ -57,7 +57,7 @@ export default Vue.extend({
}
// Check internet connection
fetch('https://google.com?rand=' + Math.random(), {
fetch(`https://google.com?rand=${Math.random()}`, {
mode: 'no-cors'
}).then(() => {
this.internet = true;

View File

@ -18,11 +18,11 @@
</div>
<div class="board">
<div class="labels-x" v-if="this.$store.state.settings.reversiBoardLabels">
<div class="labels-x" v-if="this.$store.state.settings.games.reversi.showBoardLabels">
<span v-for="i in game.settings.map[0].length">{{ String.fromCharCode(64 + i) }}</span>
</div>
<div class="flex">
<div class="labels-y" v-if="this.$store.state.settings.reversiBoardLabels">
<div class="labels-y" v-if="this.$store.state.settings.games.reversi.showBoardLabels">
<div v-for="i in game.settings.map.length">{{ i }}</div>
</div>
<div class="cells" :style="cellsStyle">
@ -30,15 +30,15 @@
:class="{ empty: stone == null, none: o.map[i] == 'null', isEnded: game.isEnded, myTurn: !game.isEnded && isMyTurn, can: turnUser ? o.canPut(turnUser.id == blackUser.id, i) : null, prev: o.prevPos == i }"
@click="set(i)"
:title="`${String.fromCharCode(65 + o.transformPosToXy(i)[0])}${o.transformPosToXy(i)[1] + 1}`">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
</div>
</div>
<div class="labels-y" v-if="this.$store.state.settings.reversiBoardLabels">
<div class="labels-y" v-if="this.$store.state.settings.games.reversi.showBoardLabels">
<div v-for="i in game.settings.map.length">{{ i }}</div>
</div>
</div>
<div class="labels-x" v-if="this.$store.state.settings.reversiBoardLabels">
<div class="labels-x" v-if="this.$store.state.settings.games.reversi.showBoardLabels">
<span v-for="i in game.settings.map[0].length">{{ String.fromCharCode(64 + i) }}</span>
</div>
</div>
@ -159,11 +159,9 @@ export default Vue.extend({
canPutEverywhere: this.game.settings.canPutEverywhere,
loopedBoard: this.game.settings.loopedBoard
});
this.logs.forEach((log, i) => {
if (i < v) {
this.o.put(log.color, log.pos);
}
});
for (const log of this.logs.slice(0, v)) {
this.o.put(log.color, log.pos);
}
this.$forceUpdate();
}
},
@ -421,6 +419,13 @@ root(isDark)
width 100%
height 100%
&.contrast
&[alt="black"]
filter brightness(.5)
&[alt="white"]
filter brightness(2)
> .graph
display grid
grid-template-columns repeat(61, 1fr)

View File

@ -32,6 +32,7 @@
<mk-avatar class="avatar" :user="g.user2"/>
<span><b>{{ g.user1 | userName }}</b> vs <b>{{ g.user2 | userName }}</b></span>
<span class="state">{{ g.isEnded ? '%i18n:@game-state.ended%' : '%i18n:@game-state.playing%' }}</span>
<mk-time :time="g.createdAt" />
</a>
</section>
<section v-if="games.length > 0">
@ -41,6 +42,7 @@
<mk-avatar class="avatar" :user="g.user2"/>
<span><b>{{ g.user1 | userName }}</b> vs <b>{{ g.user2 | userName }}</b></span>
<span class="state">{{ g.isEnded ? '%i18n:@game-state.ended%' : '%i18n:@game-state.playing%' }}</span>
<mk-time :time="g.createdAt" />
</a>
</section>
</div>

View File

@ -1,5 +1,7 @@
import Vue from 'vue';
import tagCloud from './tag-cloud.vue';
import trends from './trends.vue';
import analogClock from './analog-clock.vue';
import menu from './menu.vue';
import noteHeader from './note-header.vue';
@ -40,6 +42,8 @@ import uiSelect from './ui/select.vue';
import formButton from './ui/form/button.vue';
import formRadio from './ui/form/radio.vue';
Vue.component('mk-tag-cloud', tagCloud);
Vue.component('mk-trends', trends);
Vue.component('mk-analog-clock', analogClock);
Vue.component('mk-menu', menu);
Vue.component('mk-note-header', noteHeader);

View File

@ -1,5 +1,5 @@
<template>
<div class="mk-menu">
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv">
<div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ hukidasi }" ref="popover">
<template v-for="item in items">
@ -119,9 +119,10 @@ export default Vue.extend({
<style lang="stylus" scoped>
@import '~const.styl'
$border-color = rgba(27, 31, 35, 0.15)
root(isDark)
$bg-color = isDark ? #2c303c : #fff
$border-color = rgba(27, 31, 35, 0.15)
.mk-menu
position initial
> .backdrop
@ -131,14 +132,14 @@ $border-color = rgba(27, 31, 35, 0.15)
z-index 10000
width 100%
height 100%
background rgba(#000, 0.1)
background rgba(#000, isDark ? 0.5 : 0.1)
opacity 0
> .popover
position absolute
z-index 10001
padding 8px 0
background #fff
background $bg-color
border 1px solid $border-color
border-radius 4px
box-shadow 0 3px 12px rgba(27, 31, 35, 0.15)
@ -172,12 +173,13 @@ $border-color = rgba(27, 31, 35, 0.15)
border-top solid $balloon-size transparent
border-left solid $balloon-size transparent
border-right solid $balloon-size transparent
border-bottom solid $balloon-size #fff
border-bottom solid $balloon-size $bg-color
> button
display block
padding 8px 16px
width 100%
color isDark ? #d6dce2 : #111
&:hover
color $theme-color-foreground
@ -191,6 +193,12 @@ $border-color = rgba(27, 31, 35, 0.15)
> div
margin 8px 0
height 1px
background #eee
background isDark ? #1c2023 : #eee
.onchrpzrvnoruiaenfcqvccjfuupzzwv[data-darkmode]
root(true)
.onchrpzrvnoruiaenfcqvccjfuupzzwv:not([data-darkmode])
root(false)
</style>

View File

@ -3,7 +3,7 @@
@dragover.prevent.stop="onDragover"
@drop.prevent.stop="onDrop"
>
<div class="stream">
<div class="body">
<p class="init" v-if="init">%fa:spinner .spin%%i18n:common.loading%</p>
<p class="empty" v-if="!init && messages.length == 0">%fa:info-circle%%i18n:@empty%</p>
<p class="no-history" v-if="!init && messages.length > 0 && !existMoreMessages">%fa:flag%%i18n:@no-history%</p>
@ -77,6 +77,12 @@ export default Vue.extend({
this.connection.on('message', this.onMessage);
this.connection.on('read', this.onRead);
if (this.isNaked) {
window.addEventListener('scroll', this.onScroll, { passive: true });
} else {
this.$el.addEventListener('scroll', this.onScroll, { passive: true });
}
document.addEventListener('visibilitychange', this.onVisibilitychange);
this.fetchMessages().then(() => {
@ -90,6 +96,12 @@ export default Vue.extend({
this.connection.off('read', this.onRead);
this.connection.close();
if (this.isNaked) {
window.removeEventListener('scroll', this.onScroll);
} else {
this.$el.removeEventListener('scroll', this.onScroll);
}
document.removeEventListener('visibilitychange', this.onVisibilitychange);
},
@ -226,6 +238,14 @@ export default Vue.extend({
}, 4000);
},
onScroll() {
const el = this.isNaked ? window.document.documentElement : this.$el;
const current = el.scrollTop + el.clientHeight;
if (current > el.scrollHeight - 1) {
this.showIndicator = false;
}
},
onVisibilitychange() {
if (document.hidden) return;
this.messages.forEach(message => {
@ -251,7 +271,7 @@ root(isDark)
height 100%
background isDark ? #191b22 : #fff
> .stream
> .body
width 100%
max-width 600px
margin 0 auto

View File

@ -205,17 +205,8 @@ export default Vue.component('misskey-flavored-markdown', {
}
}));
const _els = [];
els.forEach((el, i) => {
if (el.tag == 'br') {
if (!['div', 'pre'].includes(els[i - 1].tag)) {
_els.push(el);
}
} else {
_els.push(el);
}
});
// el.tag === 'br' のとき i !== 0 が保証されるため、短絡評価により els[i - 1] は配列外参照しない
const _els = els.filter((el, i) => !(el.tag === 'br' && ['div', 'pre'].includes(els[i - 1].tag)));
return createElement('span', _els);
}
});

View File

@ -6,7 +6,7 @@
<i></i>
<a :href="feedbackUrl" target="_blank">%i18n:@feedback%</a>
<i></i>
<a :href="devUrl">%i18n:@develop%</a>
<a href="/dev">%i18n:@develop%</a>
<i></i>
<a href="https://twitter.com/misskey_xyz" target="_blank">Follow us on %fa:B twitter%</a>
</span>
@ -14,18 +14,21 @@
<script lang="ts">
import Vue from 'vue';
import { docsUrl, statsUrl, statusUrl, devUrl, repositoryUrl, feedbackUrl, lang } from '../../../config';
import { lang } from '../../../config';
export default Vue.extend({
data() {
return {
aboutUrl: `${docsUrl}/${lang}/about`,
statsUrl,
statusUrl,
devUrl,
repositoryUrl: repositoryUrl || `https://github.com/syuilo/misskey`,
feedbackUrl: feedbackUrl || `https://github.com/syuilo/misskey/issues/new`
aboutUrl: `/docs/${lang}/about`,
repositoryUrl: 'https://github.com/syuilo/misskey',
feedbackUrl: 'https://github.com/syuilo/misskey/issues/new'
}
},
created() {
(this as any).os.getMeta().then(meta => {
if (meta.maintainer.repository_url) this.repositoryUrl = meta.maintainer.repository_url;
if (meta.maintainer.feedback_url) this.feedbackUrl = meta.maintainer.feedback_url;
});
}
});
</script>

View File

@ -6,17 +6,27 @@
<script lang="ts">
import Vue from 'vue';
import { url } from '../../../config';
import copyToClipboard from '../../../common/scripts/copy-to-clipboard';
export default Vue.extend({
props: ['note', 'source', 'compact'],
computed: {
items() {
const items = [];
items.push({
const items = [{
icon: '%fa:info-circle%',
text: '%i18n:@detail%',
action: this.detail
}, {
icon: '%fa:link%',
text: '%i18n:@copy-link%',
action: this.copyLink
}, null, {
icon: '%fa:star%',
text: '%i18n:@favorite%',
action: this.favorite
});
}];
if (this.note.userId == this.$store.state.i.id) {
items.push({
icon: '%fa:thumbtack%',
@ -42,6 +52,14 @@ export default Vue.extend({
}
},
methods: {
detail() {
this.$router.push(`/notes/${ this.note.id }`);
},
copyLink() {
copyToClipboard(`${url}/notes/${ this.note.id }`);
},
pin() {
(this as any).api('i/pin', {
noteId: this.note.id

View File

@ -20,6 +20,7 @@
<script lang="ts">
import Vue from 'vue';
import { erase } from '../../../../../prelude/array';
export default Vue.extend({
data() {
return {
@ -53,7 +54,7 @@ export default Vue.extend({
get() {
return {
choices: this.choices.filter(choice => choice != '')
choices: erase('', this.choices)
}
},

View File

@ -21,6 +21,7 @@
<script lang="ts">
import Vue from 'vue';
import { sum } from '../../../../../prelude/array';
export default Vue.extend({
props: ['note'],
data() {
@ -33,7 +34,7 @@ export default Vue.extend({
return this.note.poll;
},
total(): number {
return this.poll.choices.reduce((a, b) => a + b.votes, 0);
return sum(this.poll.choices.map(x => x.votes));
},
isVoted(): boolean {
return this.poll.choices.some(c => c.isVoted);

View File

@ -1,17 +1,17 @@
<template>
<span class="mk-reaction-icon">
<img v-if="reaction == 'like'" src="/assets/reactions/like.png" alt="%i18n:common.reactions.like%">
<img v-if="reaction == 'love'" src="/assets/reactions/love.png" alt="%i18n:common.reactions.love%">
<img v-if="reaction == 'laugh'" src="/assets/reactions/laugh.png" alt="%i18n:common.reactions.laugh%">
<img v-if="reaction == 'hmm'" src="/assets/reactions/hmm.png" alt="%i18n:common.reactions.hmm%">
<img v-if="reaction == 'surprise'" src="/assets/reactions/surprise.png" alt="%i18n:common.reactions.surprise%">
<img v-if="reaction == 'congrats'" src="/assets/reactions/congrats.png" alt="%i18n:common.reactions.congrats%">
<img v-if="reaction == 'angry'" src="/assets/reactions/angry.png" alt="%i18n:common.reactions.angry%">
<img v-if="reaction == 'confused'" src="/assets/reactions/confused.png" alt="%i18n:common.reactions.confused%">
<img v-if="reaction == 'rip'" src="/assets/reactions/rip.png" alt="%i18n:common.reactions.rip%">
<img v-if="reaction == 'like'" src="https://twemoji.maxcdn.com/2/svg/1f44d.svg" alt="%i18n:common.reactions.like%">
<img v-if="reaction == 'love'" src="https://twemoji.maxcdn.com/2/svg/2764.svg" alt="%i18n:common.reactions.love%">
<img v-if="reaction == 'laugh'" src="https://twemoji.maxcdn.com/2/svg/1f606.svg" alt="%i18n:common.reactions.laugh%">
<img v-if="reaction == 'hmm'" src="https://twemoji.maxcdn.com/2/svg/1f914.svg" alt="%i18n:common.reactions.hmm%">
<img v-if="reaction == 'surprise'" src="https://twemoji.maxcdn.com/2/svg/1f62e.svg" alt="%i18n:common.reactions.surprise%">
<img v-if="reaction == 'congrats'" src="https://twemoji.maxcdn.com/2/svg/1f389.svg" alt="%i18n:common.reactions.congrats%">
<img v-if="reaction == 'angry'" src="https://twemoji.maxcdn.com/2/svg/1f4a2.svg" alt="%i18n:common.reactions.angry%">
<img v-if="reaction == 'confused'" src="https://twemoji.maxcdn.com/2/svg/1f625.svg" alt="%i18n:common.reactions.confused%">
<img v-if="reaction == 'rip'" src="https://twemoji.maxcdn.com/2/svg/1f607.svg" alt="%i18n:common.reactions.rip%">
<template v-if="reaction == 'pudding'">
<img v-if="$store.getters.isSignedIn && $store.state.settings.iLikeSushi" src="/assets/reactions/sushi.png" alt="%i18n:common.reactions.pudding%">
<img v-else src="/assets/reactions/pudding.png" alt="%i18n:common.reactions.pudding%">
<img v-if="$store.getters.isSignedIn && $store.state.settings.iLikeSushi" src="https://twemoji.maxcdn.com/2/svg/1f363.svg" alt="%i18n:common.reactions.pudding%">
<img v-else src="https://twemoji.maxcdn.com/2/svg/1f36e.svg" alt="%i18n:common.reactions.pudding%">
</template>
</span>
</template>

View File

@ -12,13 +12,13 @@
</ui-input>
<ui-input v-if="user && user.twoFactorEnabled" v-model="token" type="number" required/>
<ui-button type="submit" :disabled="signing">{{ signing ? '%i18n:@signing-in%' : '%i18n:@signin%' }}</ui-button>
<p style="margin: 8px 0;" v-if="twitterIntegration">%i18n:@or% <a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p>
<p style="margin: 8px 0;">%i18n:@or% <a :href="`${apiUrl}/signin/twitter`">%i18n:@signin-with-twitter%</a></p>
</form>
</template>
<script lang="ts">
import Vue from 'vue';
import { apiUrl, host, twitterIntegration } from '../../../config';
import { apiUrl, host } from '../../../config';
export default Vue.extend({
props: {
@ -36,8 +36,7 @@ export default Vue.extend({
password: '',
token: '',
apiUrl,
host,
twitterIntegration
host
};
},
methods: {
@ -79,7 +78,7 @@ export default Vue.extend({
cursor wait !important
> .avatar
margin 16px auto 0 auto
margin 0 auto 0 auto
width 64px
height 64px
background #ddd

View File

@ -1,48 +1,50 @@
<template>
<form class="mk-signup" @submit.prevent="onSubmit" :autocomplete="Math.random()">
<ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required>
<span>%i18n:@invitation-code%</span>
<span slot="prefix">%fa:id-card-alt%</span>
<p slot="text" v-html="'%i18n:@invitation-info%'.replace('{}', meta.maintainer.url)"></p>
</ui-input>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername">
<span>%i18n:@username%</span>
<span slot="prefix">@</span>
<span slot="suffix">@{{ host }}</span>
<p slot="text" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw% %i18n:@checking%</p>
<p slot="text" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw% %i18n:@available%</p>
<p slot="text" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@unavailable%</p>
<p slot="text" v-if="usernameState == 'error'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@error%</p>
<p slot="text" v-if="usernameState == 'invalid-format'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@invalid-format%</p>
<p slot="text" v-if="usernameState == 'min-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-short%</p>
<p slot="text" v-if="usernameState == 'max-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-long%</p>
</ui-input>
<ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true">
<span>%i18n:@password%</span>
<span slot="prefix">%fa:lock%</span>
<div slot="text">
<p slot="text" v-if="passwordStrength == 'low'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@weak-password%</p>
<p slot="text" v-if="passwordStrength == 'medium'" style="color:#3CB7B5">%fa:check .fw% %i18n:@normal-password%</p>
<p slot="text" v-if="passwordStrength == 'high'" style="color:#3CB7B5">%fa:check .fw% %i18n:@strong-password%</p>
</div>
</ui-input>
<ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype">
<span>%i18n:@password% (%i18n:@retype%)</span>
<span slot="prefix">%fa:lock%</span>
<div slot="text">
<p slot="text" v-if="passwordRetypeState == 'match'" style="color:#3CB7B5">%fa:check .fw% %i18n:@password-matched%</p>
<p slot="text" v-if="passwordRetypeState == 'not-match'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@password-not-matched%</p>
</div>
</ui-input>
<div v-if="recaptchaSitekey != null" class="g-recaptcha" :data-sitekey="recaptchaSitekey" style="margin: 16px 0;"></div>
<ui-button type="submit">%i18n:@create%</ui-button>
<template v-if="meta">
<ui-input v-if="meta.disableRegistration" v-model="invitationCode" type="text" :autocomplete="Math.random()" spellcheck="false" required>
<span>%i18n:@invitation-code%</span>
<span slot="prefix">%fa:id-card-alt%</span>
<p slot="text" v-html="'%i18n:@invitation-info%'.replace('{}', meta.maintainer.url)"></p>
</ui-input>
<ui-input v-model="username" type="text" pattern="^[a-zA-Z0-9_]{1,20}$" :autocomplete="Math.random()" spellcheck="false" required @input="onChangeUsername">
<span>%i18n:@username%</span>
<span slot="prefix">@</span>
<span slot="suffix">@{{ host }}</span>
<p slot="text" v-if="usernameState == 'wait'" style="color:#999">%fa:spinner .pulse .fw% %i18n:@checking%</p>
<p slot="text" v-if="usernameState == 'ok'" style="color:#3CB7B5">%fa:check .fw% %i18n:@available%</p>
<p slot="text" v-if="usernameState == 'unavailable'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@unavailable%</p>
<p slot="text" v-if="usernameState == 'error'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@error%</p>
<p slot="text" v-if="usernameState == 'invalid-format'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@invalid-format%</p>
<p slot="text" v-if="usernameState == 'min-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-short%</p>
<p slot="text" v-if="usernameState == 'max-range'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@too-long%</p>
</ui-input>
<ui-input v-model="password" type="password" :autocomplete="Math.random()" required @input="onChangePassword" :with-password-meter="true">
<span>%i18n:@password%</span>
<span slot="prefix">%fa:lock%</span>
<div slot="text">
<p slot="text" v-if="passwordStrength == 'low'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@weak-password%</p>
<p slot="text" v-if="passwordStrength == 'medium'" style="color:#3CB7B5">%fa:check .fw% %i18n:@normal-password%</p>
<p slot="text" v-if="passwordStrength == 'high'" style="color:#3CB7B5">%fa:check .fw% %i18n:@strong-password%</p>
</div>
</ui-input>
<ui-input v-model="retypedPassword" type="password" :autocomplete="Math.random()" required @input="onChangePasswordRetype">
<span>%i18n:@password% (%i18n:@retype%)</span>
<span slot="prefix">%fa:lock%</span>
<div slot="text">
<p slot="text" v-if="passwordRetypeState == 'match'" style="color:#3CB7B5">%fa:check .fw% %i18n:@password-matched%</p>
<p slot="text" v-if="passwordRetypeState == 'not-match'" style="color:#FF1161">%fa:exclamation-triangle .fw% %i18n:@password-not-matched%</p>
</div>
</ui-input>
<div v-if="meta.recaptchaSitekey != null" class="g-recaptcha" :data-sitekey="meta.recaptchaSitekey" style="margin: 16px 0;"></div>
<ui-button type="submit">%i18n:@create%</ui-button>
</template>
</form>
</template>
<script lang="ts">
import Vue from 'vue';
const getPasswordStrength = require('syuilo-password-strength');
import { host, url, recaptchaSitekey } from '../../../config';
import { host, url } from '../../../config';
export default Vue.extend({
data() {
@ -53,7 +55,6 @@ export default Vue.extend({
retypedPassword: '',
invitationCode: '',
url,
recaptchaSitekey,
usernameState: null,
passwordStrength: '',
passwordRetypeState: null,
@ -73,6 +74,12 @@ export default Vue.extend({
this.meta = meta;
});
},
mounted() {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.setAttribute('src', 'https://www.google.com/recaptcha/api.js');
head.appendChild(script);
},
methods: {
onChangeUsername() {
if (this.username == '') {
@ -123,7 +130,7 @@ export default Vue.extend({
username: this.username,
password: this.password,
invitationCode: this.invitationCode,
'g-recaptcha-response': recaptchaSitekey != null ? (window as any).grecaptcha.getResponse() : null
'g-recaptcha-response': this.meta.recaptchaSitekey != null ? (window as any).grecaptcha.getResponse() : null
}).then(() => {
(this as any).api('signin', {
username: this.username,
@ -134,19 +141,11 @@ export default Vue.extend({
}).catch(() => {
alert('%i18n:@some-error%');
if (recaptchaSitekey != null) {
if (this.meta.recaptchaSitekey != null) {
(window as any).grecaptcha.reset();
}
});
}
},
mounted() {
if (recaptchaSitekey != null) {
const head = document.getElementsByTagName('head')[0];
const script = document.createElement('script');
script.setAttribute('src', 'https://www.google.com/recaptcha/api.js');
head.appendChild(script);
}
}
});
</script>

View File

@ -0,0 +1,90 @@
<template>
<div class="jtivnzhfwquxpsfidertopbmwmchmnmo">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<p class="empty" v-else-if="tags.length == 0">%fa:exclamation-circle%%i18n:@empty%</p>
<div v-else>
<vue-word-cloud
:words="tags.slice(0, 20).map(x => [x.name, x.count])"
:color="color"
:spacing="1">
<template slot-scope="{word, text, weight}">
<div style="cursor: pointer;" :title="weight">
{{ text }}
</div>
</template>
</vue-word-cloud>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import * as VueWordCloud from 'vuewordcloud';
export default Vue.extend({
components: {
[VueWordCloud.name]: VueWordCloud
},
data() {
return {
tags: [],
fetching: true,
clock: null
};
},
mounted() {
this.fetch();
this.clock = setInterval(this.fetch, 1000 * 60);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
fetch() {
(this as any).api('aggregation/hashtags').then(tags => {
this.tags = tags;
this.fetching = false;
});
},
color([, weight]) {
const peak = Math.max.apply(null, this.tags.map(x => x.count));
const w = weight / peak;
if (w > 0.9) {
return this.$store.state.device.darkmode ? '#ff4e69' : '#ff4e69';
} else if (w > 0.5) {
return this.$store.state.device.darkmode ? '#3bc4c7' : '#3bc4c7';
} else {
return this.$store.state.device.darkmode ? '#fff' : '#555';
}
}
}
});
</script>
<style lang="stylus" scoped>
root(isDark)
height 100%
width 100%
> .fetching
> .empty
margin 0
padding 16px
text-align center
color #aaa
> [data-fa]
margin-right 4px
> div
height 100%
width 100%
.jtivnzhfwquxpsfidertopbmwmchmnmo[data-darkmode]
root(true)
.jtivnzhfwquxpsfidertopbmwmchmnmo:not([data-darkmode])
root(false)
</style>

View File

@ -0,0 +1,105 @@
<template>
<div class="csqvmxybqbycalfhkxvyfrgbrdalkaoc">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<p class="empty" v-else-if="stats.length == 0">%fa:exclamation-circle%%i18n:@empty%</p>
<!-- トランジションを有効にするとなぜかメモリリークする -->
<!-- <transition-group v-else tag="div" name="chart"> -->
<div>
<div v-for="stat in stats" :key="stat.tag">
<div class="tag">
<router-link :to="`/tags/${ encodeURIComponent(stat.tag) }`" :title="stat.tag">#{{ stat.tag }}</router-link>
<p>{{ '%i18n:@count%'.replace('{}', stat.usersCount) }}</p>
</div>
<x-chart class="chart" :src="stat.chart"/>
</div>
</div>
<!-- </transition-group> -->
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import XChart from './trends.chart.vue';
export default Vue.extend({
components: {
XChart
},
data() {
return {
stats: [],
fetching: true,
clock: null
};
},
mounted() {
this.fetch();
this.clock = setInterval(this.fetch, 1000 * 60);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
fetch() {
(this as any).api('hashtags/trend').then(stats => {
this.stats = stats;
this.fetching = false;
});
}
}
});
</script>
<style lang="stylus" scoped>
root(isDark)
> .fetching
> .empty
margin 0
padding 16px
text-align center
color #aaa
> [data-fa]
margin-right 4px
> div
.chart-move
transition transform 1s ease
> div
display flex
align-items center
padding 14px 16px
&:not(:last-child)
border-bottom solid 1px isDark ? #393f4f : #eee
> .tag
flex 1
overflow hidden
font-size 14px
color isDark ? #9baec8 : #65727b
> a
display block
width 100%
white-space nowrap
overflow hidden
text-overflow ellipsis
color inherit
> p
margin 0
font-size 75%
opacity 0.7
> .chart
height 30px
.csqvmxybqbycalfhkxvyfrgbrdalkaoc[data-darkmode]
root(true)
.csqvmxybqbycalfhkxvyfrgbrdalkaoc:not([data-darkmode])
root(false)
</style>

View File

@ -24,19 +24,34 @@ export default Vue.extend({
root(isDark)
margin 16px
padding 16px
color isDark ? #fff : #000
background isDark ? #282C37 : #fff
box-shadow 0 3px 1px -2px rgba(#000, 0.2), 0 2px 2px 0 rgba(#000, 0.14), 0 1px 5px 0 rgba(#000, 0.12)
@media (min-width 500px)
padding 32px
> header
font-weight normal
font-size 24px
padding 16px
font-weight bold
font-size 20px
color isDark ? #fff : #444
@media (min-width 500px)
padding 24px 32px
> section
padding 20px 16px
border-top solid 1px isDark ? rgba(#000, 0.3) : rgba(#000, 0.1)
@media (min-width 500px)
padding 32px
&.fit-top
padding-top 0
> header
margin-bottom 16px
font-weight bold
color isDark ? #fff : #444
.ui-card[data-darkmode]
root(true)

View File

@ -55,7 +55,7 @@ export default Vue.extend({
root(isDark)
display inline-block
margin 32px 32px 32px 0
margin 0 32px 0 0
cursor pointer
transition all 0.3s

View File

@ -64,6 +64,12 @@ root(isDark)
cursor pointer
transition all 0.3s
&:first-child
margin-top 0
&:last-child
margin-bottom 0
> *
user-select none
@ -89,6 +95,7 @@ root(isDark)
> .button
display inline-block
flex-shrink 0
margin 3px 0 0 0
width 34px
height 14px

View File

@ -1,18 +1,20 @@
<template>
<iframe v-if="player" :src="player" heigth="250" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen />
<div v-if="player.url" class="player" :style="`padding: ${(player.height || 0) / (player.width || 1) * 100}% 0 0`">
<iframe :src="player.url" :width="player.width || '100%'" :heigth="player.height || 250" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen />
</div>
<div v-else-if="tweetUrl && detail" class="twitter">
<blockquote ref="tweet" class="twitter-tweet" :data-theme="$store.state.device.darkmode ? 'dark' : null">
<a :href="url"></a>
</blockquote>
</div>
<div v-else class="mk-url-preview">
<a :href="url" target="_blank" :title="url" v-if="!fetching">
<a :class="{ mini }" :href="url" target="_blank" :title="url" v-if="!fetching">
<div class="thumbnail" v-if="thumbnail" :style="`background-image: url(${thumbnail})`"></div>
<article>
<header>
<h1>{{ title }}</h1>
</header>
<p>{{ description }}</p>
<p>{{ description.length > 85 ? description.slice(0, 85) + '…' : description }}</p>
<footer>
<img class="icon" v-if="icon" :src="icon"/>
<p>{{ sitename }}</p>
@ -26,18 +28,105 @@
import Vue from 'vue';
import { url as misskeyUrl } from '../../../config';
// THIS IS THE WHITELIST FOR THE EMBED PLAYER
const whiteList = [
'afreecatv.com',
'aparat.com',
'applemusic.com',
'amazon.com',
'awa.fm',
'bandcamp.com',
'bbc.co.uk',
'beatport.com',
'bilibili.com',
'boomstream.com',
'breakers.tv',
'cam4.com',
'cavelis.net',
'chaturbate.com',
'cnn.com',
'cybergame.tv',
'dailymotion.com',
'deezer.com',
'djlive.pl',
'e-onkyo.com',
'eventials.com',
'facebook.com',
'fc2.com',
'gameplank.tv',
'goodgame.ru',
'google.com',
'hardtunes.com',
'instagram.com',
'johnnylooch.com',
'kexp.org',
'lahzenegar.com',
'liveedu.tv',
'livetube.cc',
'livestream.com',
'meridix.com',
'mixcloud.com',
'mixer.com',
'mobcrush.com',
'mylive.in.th',
'myspace.com',
'netflix.com',
'newretrowave.com',
'nhk.or.jp',
'nicovideo.jp',
'nico.ms',
'noisetrade.com',
'nood.tv',
'npr.org',
'openrec.tv',
'pandora.com',
'pandora.tv',
'picarto.tv',
'pscp.tv',
'restream.io',
'reverbnation.com',
'sermonaudio.com',
'smashcast.tv',
'songkick.com',
'soundcloud.com',
'spinninrecords.com',
'spotify.com',
'stitcher.com',
'stream.me',
'switchboard.live',
'tunein.com',
'twitcasting.tv',
'twitch.tv',
'twitter.com',
'vaughnlive.tv',
'veoh.com',
'vimeo.com',
'watchpeoplecode.com',
'web.tv',
'youtube.com',
'youtu.be'
];
export default Vue.extend({
props: {
url: {
type: String,
require: true
},
detail: {
type: Boolean,
required: false,
default: false
},
mini: {
type: Boolean,
required: false,
default: false
}
},
data() {
return {
fetching: true,
@ -46,11 +135,16 @@ export default Vue.extend({
thumbnail: null,
icon: null,
sitename: null,
player: null,
player: {
url: null,
width: null,
height: null
},
tweetUrl: null,
misskeyUrl
};
},
created() {
const url = new URL(this.url);
@ -75,104 +169,37 @@ export default Vue.extend({
}
return;
}
fetch('/url?url=' + encodeURIComponent(this.url)).then(res => {
fetch(`/url?url=${encodeURIComponent(this.url)}`).then(res => {
res.json().then(info => {
if (info.url != null) {
this.title = info.title;
this.description = info.description;
this.thumbnail = info.thumbnail;
this.icon = info.icon;
this.sitename = info.sitename;
this.fetching = false;
if ([ // THIS IS THE WHITELIST FOR THE EMBED PLAYER
'afreecatv.com',
'aparat.com',
'applemusic.com',
'amazon.com',
'awa.fm',
'bandcamp.com',
'bbc.co.uk',
'beatport.com',
'bilibili.com',
'boomstream.com',
'breakers.tv',
'cam4.com',
'cavelis.net',
'chaturbate.com',
'cnn.com',
'cybergame.tv',
'dailymotion.com',
'deezer.com',
'djlive.pl',
'e-onkyo.com',
'eventials.com',
'facebook.com',
'fc2.com',
'gameplank.tv',
'goodgame.ru',
'google.com',
'hardtunes.com',
'instagram.com',
'johnnylooch.com',
'kexp.org',
'lahzenegar.com',
'liveedu.tv',
'livetube.cc',
'livestream.com',
'meridix.com',
'mixcloud.com',
'mixer.com',
'mobcrush.com',
'mylive.in.th',
'myspace.com',
'netflix.com',
'newretrowave.com',
'nhk.or.jp',
'nicovideo.jp',
'nico.ms',
'noisetrade.com',
'nood.tv',
'npr.org',
'openrec.tv',
'pandora.com',
'pandora.tv',
'picarto.tv',
'pscp.tv',
'restream.io',
'reverbnation.com',
'sermonaudio.com',
'smashcast.tv',
'songkick.com',
'soundcloud.com',
'spinninrecords.com',
'spotify.com',
'stitcher.com',
'stream.me',
'switchboard.live',
'tunein.com',
'twitcasting.tv',
'twitch.tv',
'twitter.com',
'vaughnlive.tv',
'veoh.com',
'vimeo.com',
'watchpeoplecode.com',
'web.tv',
'youtube.com',
'youtu.be'
].some(x => x == url.hostname || url.hostname.endsWith(`.${x}`)))
this.player = info.player;
} // info.url
}) // json
}); // fetch
} // created
if (info.url == null) return;
this.title = info.title;
this.description = info.description;
this.thumbnail = info.thumbnail;
this.icon = info.icon;
this.sitename = info.sitename;
this.fetching = false;
if (whiteList.some(x => x == url.hostname || url.hostname.endsWith(`.${x}`))) {
this.player = info.player;
}
})
});
}
});
</script>
<style lang="stylus" scoped>
iframe
.player
position relative
width 100%
> iframe
height 100%
left 0
position absolute
top 0
width 100%
root(isDark)
> a
display block
@ -272,6 +299,29 @@ root(isDark)
width 12px
height 12px
&.mini
font-size 10px
> .thumbnail
position relative
width 100%
height 60px
> article
left 0
width 100%
padding 8px
> header
margin-bottom 4px
> footer
margin-top 4px
> img
width 12px
height 12px
.mk-url-preview[data-darkmode]
root(true)

View File

@ -12,6 +12,7 @@
<script lang="ts">
import Vue from 'vue';
import { toUnicode as decodePunycode } from 'punycode';
export default Vue.extend({
props: ['url', 'target'],
data() {
@ -27,11 +28,11 @@ export default Vue.extend({
created() {
const url = new URL(this.url);
this.schema = url.protocol;
this.hostname = url.hostname;
this.hostname = decodePunycode(url.hostname);
this.port = url.port;
this.pathname = url.pathname;
this.query = url.search;
this.hash = url.hash;
this.pathname = decodeURIComponent(url.pathname);
this.query = decodeURIComponent(url.search);
this.hash = decodeURIComponent(url.hash);
}
});
</script>

View File

@ -47,7 +47,7 @@ export default Vue.extend({
props: ['source', 'compact'],
data() {
return {
v: this.$store.state.device.visibility || 'public'
v: this.$store.state.settings.rememberNoteVisibility ? (this.$store.state.device.visibility || this.$store.state.settings.defaultNoteVisibility) : this.$store.state.settings.defaultNoteVisibility
}
},
mounted() {
@ -97,7 +97,9 @@ export default Vue.extend({
},
methods: {
choose(visibility) {
this.$store.commit('device/setVisibility', visibility);
if (this.$store.state.settings.rememberNoteVisibility) {
this.$store.commit('device/setVisibility', visibility);
}
this.$emit('chosen', visibility);
this.$destroy();
},

View File

@ -1,22 +1,24 @@
<template>
<div class="mk-welcome-timeline">
<div v-for="note in notes">
<mk-avatar class="avatar" :user="note.user" target="_blank"/>
<div class="body">
<header>
<router-link class="name" :to="note.user | userPage" v-user-preview="note.user.id">{{ note.user | userName }}</router-link>
<span class="username">@{{ note.user | acct }}</span>
<div class="info">
<router-link class="created-at" :to="note | notePage">
<mk-time :time="note.createdAt"/>
</router-link>
<transition-group name="ldzpakcixzickvggyixyrhqwjaefknon" tag="div">
<div v-for="note in notes" :key="note.id">
<mk-avatar class="avatar" :user="note.user" target="_blank"/>
<div class="body">
<header>
<router-link class="name" :to="note.user | userPage" v-user-preview="note.user.id">{{ note.user | userName }}</router-link>
<span class="username">@{{ note.user | acct }}</span>
<div class="info">
<router-link class="created-at" :to="note | notePage">
<mk-time :time="note.createdAt"/>
</router-link>
</div>
</header>
<div class="text">
<misskey-flavored-markdown v-if="note.text" :text="note.text"/>
</div>
</header>
<div class="text">
<misskey-flavored-markdown v-if="note.text" :text="note.text"/>
</div>
</div>
</div>
</transition-group>
</div>
</template>
@ -31,15 +33,30 @@ export default Vue.extend({
default: undefined
}
},
data() {
return {
fetching: true,
notes: []
notes: [],
connection: null,
connectionId: null
};
},
mounted() {
this.fetch();
this.connection = (this as any).os.streams.localTimelineStream.getConnection();
this.connectionId = (this as any).os.streams.localTimelineStream.use();
this.connection.on('note', this.onNote);
},
beforeDestroy() {
this.connection.off('note', this.onNote);
(this as any).os.streams.localTimelineStream.dispose(this.connectionId);
},
methods: {
fetch(cb?) {
this.fetching = true;
@ -48,77 +65,93 @@ export default Vue.extend({
local: true,
reply: false,
renote: false,
media: false,
poll: false,
bot: false
file: false,
poll: false
}).then(notes => {
this.notes = notes;
this.fetching = false;
});
}
},
onNote(note) {
if (note.replyId != null) return;
if (note.renoteId != null) return;
if (note.poll != null) return;
this.notes.unshift(note);
},
}
});
</script>
<style lang="stylus" scoped>
.ldzpakcixzickvggyixyrhqwjaefknon-enter
.ldzpakcixzickvggyixyrhqwjaefknon-leave-to
opacity 0
transform translateY(-30px)
root(isDark)
background isDark ? #282C37 : #fff
> div
padding 16px
overflow-wrap break-word
font-size .9em
color isDark ? #fff : #4C4C4C
border-bottom 1px solid isDark ? rgba(#000, 0.1) : rgba(#000, 0.05)
> *
transition transform .3s ease, opacity .3s ease
&:after
content ""
display block
clear both
> div
padding 16px
overflow-wrap break-word
font-size .9em
color isDark ? #fff : #4C4C4C
border-bottom 1px solid isDark ? rgba(#000, 0.1) : rgba(#000, 0.05)
> .avatar
display block
float left
position -webkit-sticky
position sticky
top 16px
width 42px
height 42px
border-radius 6px
&:after
content ""
display block
clear both
> .body
float right
width calc(100% - 42px)
padding-left 12px
> .avatar
display block
float left
position -webkit-sticky
position sticky
top 16px
width 42px
height 42px
border-radius 6px
> header
display flex
align-items center
margin-bottom 4px
white-space nowrap
> .body
float right
width calc(100% - 42px)
padding-left 12px
> .name
display block
margin 0 .5em 0 0
padding 0
overflow hidden
font-weight bold
text-overflow ellipsis
color isDark ? #fff : #627079
> header
display flex
align-items center
margin-bottom 4px
white-space nowrap
> .username
margin 0 .5em 0 0
color isDark ? #606984 : #ccc
> .name
display block
margin 0 .5em 0 0
padding 0
overflow hidden
font-weight bold
text-overflow ellipsis
color isDark ? #fff : #627079
> .info
margin-left auto
font-size 0.9em
> .username
margin 0 .5em 0 0
color isDark ? #606984 : #ccc
> .created-at
color isDark ? #606984 : #c0c0c0
> .info
margin-left auto
font-size 0.9em
> .text
text-align left
> .created-at
color isDark ? #606984 : #c0c0c0
> .text
text-align left
.mk-welcome-timeline[data-darkmode]
root(true)

View File

@ -191,7 +191,7 @@ class Autocomplete {
const acct = renderAcct(value);
// 挿入
this.text = trimmedBefore + '@' + acct + ' ' + after;
this.text = `${trimmedBefore}@${acct} ${after}`;
// キャレットを戻す
this.vm.$nextTick(() => {
@ -207,7 +207,7 @@ class Autocomplete {
const after = source.substr(caret);
// 挿入
this.text = trimmedBefore + '#' + value + ' ' + after;
this.text = `${trimmedBefore}#${value} ${after}`;
// キャレットを戻す
this.vm.$nextTick(() => {

View File

@ -1,8 +1,10 @@
import Vue from 'vue';
Vue.filter('bytes', (v, digits = 0) => {
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB'];
if (v == 0) return '0Byte';
const sizes = ['B', 'KB', 'MB', 'GB', 'TB'];
if (v == 0) return '0';
const isMinus = v < 0;
if (isMinus) v = -v;
const i = Math.floor(Math.log(v) / Math.log(1024));
return (v / Math.pow(1024, i)).toFixed(digits).replace(/\.0+$/, '') + sizes[i];
return (isMinus ? '-' : '') + (v / Math.pow(1024, i)).toFixed(digits).replace(/\.0+$/, '') + sizes[i];
});

View File

@ -1,5 +1,5 @@
import Vue from 'vue';
Vue.filter('notePage', note => {
return '/notes/' + note.id;
return `/notes/${note.id}`;
});

View File

@ -11,5 +11,5 @@ Vue.filter('userName', user => {
});
Vue.filter('userPage', (user, path?) => {
return '/@' + Vue.filter('acct')(user) + (path ? '/' + path : '');
return `/@${Vue.filter('acct')(user)}${(path ? `/${path}` : '')}`;
});

View File

@ -1,6 +1,6 @@
<template>
<div class="syxhndwprovvuqhmyvveewmbqayniwkv" v-if="!fetching" :data-darkmode="$store.state.device.darkmode">
<div class="signed-in-as" v-html="'%i18n:@signed-in-as%'.replace('{}', '<b>' + myName + '</b>')"></div>
<div class="signed-in-as" v-html="'%i18n:@signed-in-as%'.replace('{}', `<b>${myName}`)"></div>
<main>
<div class="banner" :style="bannerStyle"></div>
@ -83,7 +83,7 @@ export default Vue.extend({
userId: this.user.id
});
} else {
if (this.user.isLocked && this.user.hasPendingFollowRequestFromYou) {
if (this.user.hasPendingFollowRequestFromYou) {
this.user = await (this as any).api('following/requests/cancel', {
userId: this.user.id
});

View File

@ -1,8 +1,8 @@
<template>
<div class="mkw-analog-clock">
<mk-widget-container :naked="!(props.design % 2)" :show-header="false">
<mk-widget-container :naked="props.style % 2 === 0" :show-header="false">
<div class="mkw-analog-clock--body">
<mk-analog-clock :dark="$store.state.device.darkmode" :smooth="!(props.design && ~props.design)"/>
<mk-analog-clock :dark="$store.state.device.darkmode" :smooth="props.style < 2"/>
</div>
</mk-widget-container>
</div>
@ -13,13 +13,12 @@ import define from '../../../common/define-widget';
export default define({
name: 'analog-clock',
props: () => ({
design: -1
style: 0
})
}).extend({
methods: {
func() {
if (++this.props.design > 2)
this.props.design = -1;
this.props.style = (this.props.style + 1) % 4;
this.save();
}
}

View File

@ -1,6 +1,6 @@
<template>
<div class="mkw-broadcast"
:data-found="broadcasts.length != 0"
<div class="anltbovirfeutcigvwgmgxipejaeozxi"
:data-found="announcements && announcements.length != 0"
:data-melt="props.design == 1"
:data-mobile="platform == 'mobile'"
>
@ -14,18 +14,17 @@
</svg>
</div>
<p class="fetching" v-if="fetching">%i18n:@fetching%<mk-ellipsis/></p>
<h1 v-if="!fetching">{{ broadcasts.length == 0 ? '%i18n:@no-broadcasts%' : broadcasts[i].title }}</h1>
<h1 v-if="!fetching">{{ announcements.length == 0 ? '%i18n:@no-broadcasts%' : announcements[i].title }}</h1>
<p v-if="!fetching">
<span v-if="broadcasts.length != 0" v-html="broadcasts[i].text"></span>
<template v-if="broadcasts.length == 0">%i18n:@have-a-nice-day%</template>
<span v-if="announcements.length != 0" v-html="announcements[i].text"></span>
<template v-if="announcements.length == 0">%i18n:@have-a-nice-day%</template>
</p>
<a v-if="broadcasts.length > 1" @click="next">%i18n:@next% &gt;&gt;</a>
<a v-if="announcements.length > 1" @click="next">%i18n:@next% &gt;&gt;</a>
</div>
</template>
<script lang="ts">
import define from '../../../common/define-widget';
import { lang } from '../../../config';
export default define({
name: 'broadcast',
@ -37,26 +36,18 @@ export default define({
return {
i: 0,
fetching: true,
broadcasts: []
announcements: []
};
},
mounted() {
(this as any).os.getMeta().then(meta => {
let broadcasts = [];
if (meta.broadcasts) {
meta.broadcasts.forEach(broadcast => {
if (broadcast[lang]) {
broadcasts.push(broadcast[lang]);
}
});
}
this.broadcasts = broadcasts;
this.announcements = meta.broadcasts;
this.fetching = false;
});
},
methods: {
next() {
if (this.i == this.broadcasts.length - 1) {
if (this.i == this.announcements.length - 1) {
this.i = 0;
} else {
this.i++;
@ -75,7 +66,7 @@ export default define({
</script>
<style lang="stylus" scoped>
.mkw-broadcast
root(isDark)
padding 10px
border solid 1px #4078c0
border-radius 6px
@ -135,22 +126,18 @@ export default define({
margin 0
font-size 0.95em
font-weight normal
color #4078c0
color isDark ? #539eff : #4078c0
> p
display block
z-index 1
margin 0
font-size 0.7em
color #555
color isDark ? #fff : #555
&.fetching
text-align center
a
color #555
text-decoration underline
> a
display block
font-size 0.7em
@ -159,4 +146,10 @@ export default define({
> p
color #fff
.anltbovirfeutcigvwgmgxipejaeozxi[data-darkmode]
root(true)
.anltbovirfeutcigvwgmgxipejaeozxi:not([data-darkmode])
root(false)
</style>

View File

@ -2,9 +2,9 @@
<div class="mkw-donation" :data-mobile="platform == 'mobile'">
<article>
<h1>%fa:heart%%i18n:@title%</h1>
<p>
<p v-if="meta">
{{ '%i18n:@text%'.substr(0, '%i18n:@text%'.indexOf('{')) }}
<a href="https://syuilo.com">@syuilo</a>
<a :href="meta.maintainer.url">{{ meta.maintainer.name }}</a>
{{ '%i18n:@text%'.substr('%i18n:@text%'.indexOf('}') + 1) }}
</p>
</article>
@ -15,6 +15,17 @@
import define from '../../../common/define-widget';
export default define({
name: 'donation'
}).extend({
data() {
return {
meta: null
};
},
created() {
(this as any).os.getMeta().then(meta => {
this.meta = meta;
});
}
});
</script>

View File

@ -4,20 +4,7 @@
<template slot="header">%fa:hashtag%%i18n:@title%</template>
<div class="mkw-hashtags--body" :data-mobile="platform == 'mobile'">
<p class="fetching" v-if="fetching">%fa:spinner .pulse .fw%%i18n:common.loading%<mk-ellipsis/></p>
<p class="empty" v-else-if="stats.length == 0">%fa:exclamation-circle%%i18n:@empty%</p>
<!-- トランジションを有効にするとなぜかメモリリークする -->
<!-- <transition-group v-else tag="div" name="chart"> -->
<div>
<div v-for="stat in stats" :key="stat.tag">
<div class="tag">
<router-link :to="`/tags/${ encodeURIComponent(stat.tag) }`" :title="stat.tag">#{{ stat.tag }}</router-link>
<p>{{ '%i18n:@count%'.replace('{}', stat.usersCount) }}</p>
</div>
<x-chart class="chart" :src="stat.chart"/>
</div>
</div>
<!-- </transition-group> -->
<mk-trends/>
</div>
</mk-widget-container>
</div>
@ -25,7 +12,6 @@
<script lang="ts">
import define from '../../../common/define-widget';
import XChart from './hashtags.chart.vue';
export default define({
name: 'hashtags',
@ -33,89 +19,11 @@ export default define({
compact: false
})
}).extend({
components: {
XChart
},
data() {
return {
stats: [],
fetching: true,
clock: null
};
},
mounted() {
this.fetch();
this.clock = setInterval(this.fetch, 1000 * 60);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
func() {
this.props.compact = !this.props.compact;
this.save();
},
fetch() {
(this as any).api('hashtags/trend').then(stats => {
this.stats = stats;
this.fetching = false;
});
}
}
});
</script>
<style lang="stylus" scoped>
root(isDark)
.mkw-hashtags--body
> .fetching
> .empty
margin 0
padding 16px
text-align center
color #aaa
> [data-fa]
margin-right 4px
> div
.chart-move
transition transform 1s ease
> div
display flex
align-items center
padding 14px 16px
&:not(:last-child)
border-bottom solid 1px isDark ? #393f4f : #eee
> .tag
flex 1
overflow hidden
font-size 14px
color isDark ? #9baec8 : #65727b
> a
display block
width 100%
white-space nowrap
overflow hidden
text-overflow ellipsis
color inherit
> p
margin 0
font-size 75%
opacity 0.7
> .chart
height 30px
.mkw-hashtags[data-darkmode]
root(true)
.mkw-hashtags:not([data-darkmode])
root(false)
</style>

View File

@ -122,7 +122,7 @@ export default Vue.extend({
this.memP = (stats.mem.used / stats.mem.total * 100).toFixed(0);
},
onStatsLog(statsLog) {
statsLog.forEach(stats => this.onStats(stats));
statsLog.reverse().forEach(stats => this.onStats(stats));
}
}
});

View File

@ -1,51 +1,22 @@
declare const _HOST_: string;
declare const _HOSTNAME_: string;
declare const _URL_: string;
declare const _NAME_: string;
declare const _DESCRIPTION_: string;
declare const _API_URL_: string;
declare const _WS_URL_: string;
declare const _DOCS_URL_: string;
declare const _STATS_URL_: string;
declare const _STATUS_URL_: string;
declare const _DEV_URL_: string;
declare const _REPOSITORY_URL_: string;
declare const _FEEDBACK_URL_: string;
declare const _LANG_: string;
declare const _LANGS_: string;
declare const _RECAPTCHA_SITEKEY_: string;
declare const _SW_PUBLICKEY_: string;
declare const _THEME_COLOR_: string;
declare const _COPYRIGHT_: string;
declare const _VERSION_: string;
declare const _CODENAME_: string;
declare const _LICENSE_: string;
declare const _GOOGLE_MAPS_API_KEY_: string;
declare const _WELCOME_BG_URL_: string;
declare const _TWITTER_INTEGRATION_: boolean;
declare const _ENV_: string;
export const host = _HOST_;
export const hostname = _HOSTNAME_;
export const url = _URL_;
export const name = _NAME_;
export const description = _DESCRIPTION_;
export const apiUrl = _API_URL_;
export const wsUrl = _WS_URL_;
export const docsUrl = _DOCS_URL_;
export const statsUrl = _STATS_URL_;
export const statusUrl = _STATUS_URL_;
export const devUrl = _DEV_URL_;
export const repositoryUrl = _REPOSITORY_URL_;
export const feedbackUrl = _FEEDBACK_URL_;
const address = new URL(location.href);
export const host = address.host;
export const hostname = address.hostname;
export const url = address.origin;
export const apiUrl = url + '/api';
export const wsUrl = url.replace('http://', 'ws://').replace('https://', 'wss://');
export const lang = _LANG_;
export const langs = _LANGS_;
export const recaptchaSitekey = _RECAPTCHA_SITEKEY_;
export const swPublickey = _SW_PUBLICKEY_;
export const themeColor = _THEME_COLOR_;
export const copyright = _COPYRIGHT_;
export const version = _VERSION_;
export const codename = _CODENAME_;
export const license = _LICENSE_;
export const googleMapsApiKey = _GOOGLE_MAPS_API_KEY_;
export const welcomeBgUrl = _WELCOME_BG_URL_;
export const twitterIntegration = _TWITTER_INTEGRATION_;
export const env = _ENV_;

View File

@ -3,8 +3,21 @@ import { apiUrl } from '../../config';
import CropWindow from '../views/components/crop-window.vue';
import ProgressDialog from '../views/components/progress-dialog.vue';
export default (os: OS) => (cb, file = null) => {
const fileSelected = file => {
export default (os: OS) => {
const cropImage = file => new Promise((resolve, reject) => {
const regex = RegExp('\.(jpg|jpeg|png|gif|webp|bmp|tiff)$');
if (!regex.test(file.name) ) {
os.apis.dialog({
title: '%fa:info-circle% %i18n:desktop.invalid-filetype%',
text: null,
actions: [{
text: '%i18n:common.got-it%'
}]
});
return reject('invalid-filetype');
}
const w = os.new(CropWindow, {
image: file,
@ -19,27 +32,29 @@ export default (os: OS) => (cb, file = null) => {
os.api('drive/folders/find', {
name: '%i18n:desktop.avatar%'
}).then(iconFolder => {
if (iconFolder.length === 0) {
}).then(avatarFolder => {
if (avatarFolder.length === 0) {
os.api('drive/folders/create', {
name: '%i18n:desktop.avatar%'
}).then(iconFolder => {
upload(data, iconFolder);
resolve(upload(data, iconFolder));
});
} else {
upload(data, iconFolder[0]);
resolve(upload(data, avatarFolder[0]));
}
});
});
w.$once('skipped', () => {
set(file);
resolve(file);
});
document.body.appendChild(w.$el);
};
w.$once('cancelled', reject);
const upload = (data, folder) => {
document.body.appendChild(w.$el);
});
const upload = (data, folder) => new Promise((resolve, reject) => {
const dialog = os.new(ProgressDialog, {
title: '%i18n:desktop.uploading-avatar%'
});
@ -52,18 +67,19 @@ export default (os: OS) => (cb, file = null) => {
xhr.onload = e => {
const file = JSON.parse((e.target as any).response);
(dialog as any).close();
set(file);
resolve(file);
};
xhr.onerror = reject;
xhr.upload.onprogress = e => {
if (e.lengthComputable) (dialog as any).update(e.loaded, e.total);
};
xhr.send(data);
};
});
const set = file => {
os.api('i/update', {
const setAvatar = file => {
return os.api('i/update', {
avatarId: file.id
}).then(i => {
os.store.commit('updateIKeyValue', {
@ -83,18 +99,21 @@ export default (os: OS) => (cb, file = null) => {
}]
});
if (cb) cb(i);
return i;
});
};
if (file) {
fileSelected(file);
} else {
os.apis.chooseDriveFile({
multiple: false,
title: '%fa:image% %i18n:desktop.choose-avatar%'
}).then(file => {
fileSelected(file);
});
}
return (file = null) => {
const selectedFile = file
? Promise.resolve(file)
: os.apis.chooseDriveFile({
multiple: false,
title: '%fa:image% %i18n:desktop.choose-avatar%'
});
return selectedFile
.then(cropImage)
.then(setAvatar)
.catch(err => err && console.warn(err));
};
};

View File

@ -6,6 +6,19 @@ import ProgressDialog from '../views/components/progress-dialog.vue';
export default (os: OS) => {
const cropImage = file => new Promise((resolve, reject) => {
const regex = RegExp('\.(jpg|jpeg|png|gif|webp|bmp|tiff)$');
if (!regex.test(file.name) ) {
os.apis.dialog({
title: '%fa:info-circle% %i18n:desktop.invalid-filetype%',
text: null,
actions: [{
text: '%i18n:common.got-it%'
}]
});
return reject('invalid-filetype');
}
const w = os.new(CropWindow, {
image: file,
title: '%i18n:desktop.banner-crop-title%',

View File

@ -25,6 +25,7 @@ import updateBanner from './api/update-banner';
import MkIndex from './views/pages/index.vue';
import MkDeck from './views/pages/deck/deck.vue';
import MkAdmin from './views/pages/admin/admin.vue';
import MkStats from './views/pages/stats/stats.vue';
import MkUser from './views/pages/user/user.vue';
import MkFavorites from './views/pages/favorites.vue';
import MkSelectDrive from './views/pages/selectdrive.vue';
@ -57,6 +58,7 @@ init(async (launch) => {
{ path: '/', name: 'index', component: MkIndex },
{ path: '/deck', name: 'deck', component: MkDeck },
{ path: '/admin', name: 'admin', component: MkAdmin },
{ path: '/stats', name: 'stats', component: MkStats },
{ path: '/i/customize-home', component: MkHomeCustomize },
{ path: '/i/favorites', component: MkFavorites },
{ path: '/i/messaging/:user', component: MkMessagingRoom },
@ -94,7 +96,7 @@ init(async (launch) => {
/**
* Init Notification
*/
if ('Notification' in window) {
if ('Notification' in window && os.store.getters.isSignedIn) {
// 許可を得ていなかったらリクエスト
if ((Notification as any).permission == 'default') {
await Notification.requestPermission();

View File

@ -0,0 +1,42 @@
import Vue from 'vue';
import { Line } from 'vue-chartjs';
import * as mergeOptions from 'merge-options';
export default Vue.extend({
extends: Line,
props: {
data: {
required: true
},
opts: {
required: false
}
},
watch: {
data() {
this.render();
}
},
mounted() {
this.render();
},
methods: {
render() {
this.renderChart(this.data, mergeOptions({
responsive: true,
maintainAspectRatio: false,
scales: {
xAxes: [{
type: 'time',
distribution: 'series'
}]
},
tooltips: {
intersect: false,
mode: 'x',
position: 'nearest'
}
}, this.opts || {}));
}
}
});

View File

@ -0,0 +1,587 @@
<template>
<div class="gkgckalzgidaygcxnugepioremxvxvpt">
<header>
<b>%i18n:@title%:</b>
<select v-model="chartType">
<optgroup label="%i18n:@users%">
<option value="users">%i18n:@charts.users%</option>
<option value="users-total">%i18n:@charts.users-total%</option>
</optgroup>
<optgroup label="%i18n:@notes%">
<option value="notes">%i18n:@charts.notes%</option>
<option value="local-notes">%i18n:@charts.local-notes%</option>
<option value="remote-notes">%i18n:@charts.remote-notes%</option>
<option value="notes-total">%i18n:@charts.notes-total%</option>
</optgroup>
<optgroup label="%i18n:@drive%">
<option value="drive-files">%i18n:@charts.drive-files%</option>
<option value="drive-files-total">%i18n:@charts.drive-files-total%</option>
<option value="drive">%i18n:@charts.drive%</option>
<option value="drive-total">%i18n:@charts.drive-total%</option>
</optgroup>
</select>
<div>
<span @click="span = 'day'" :class="{ active: span == 'day' }">%i18n:@per-day%</span> | <span @click="span = 'hour'" :class="{ active: span == 'hour' }">%i18n:@per-hour%</span>
</div>
</header>
<div>
<x-chart v-if="chart" :data="data[0]" :opts="data[1]"/>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import XChart from './charts.chart.ts';
const colors = {
local: 'rgb(246, 88, 79)',
remote: 'rgb(65, 221, 222)',
localPlus: 'rgb(52, 178, 118)',
remotePlus: 'rgb(158, 255, 209)',
localMinus: 'rgb(255, 97, 74)',
remoteMinus: 'rgb(255, 149, 134)'
};
const rgba = (color: string): string => {
return color.replace('rgb', 'rgba').replace(')', ', 0.1)');
};
export default Vue.extend({
components: {
XChart
},
data() {
return {
chart: null,
chartType: 'notes',
span: 'hour'
};
},
computed: {
data(): any {
if (this.chart == null) return null;
switch (this.chartType) {
case 'users': return this.usersChart(false);
case 'users-total': return this.usersChart(true);
case 'notes': return this.notesChart('combined');
case 'local-notes': return this.notesChart('local');
case 'remote-notes': return this.notesChart('remote');
case 'notes-total': return this.notesTotalChart();
case 'drive': return this.driveChart();
case 'drive-total': return this.driveTotalChart();
case 'drive-files': return this.driveFilesChart();
case 'drive-files-total': return this.driveFilesTotalChart();
}
},
stats(): any[] {
return (
this.span == 'day' ? this.chart.perDay :
this.span == 'hour' ? this.chart.perHour :
null
);
}
},
created() {
(this as any).api('chart', {
limit: 32
}).then(chart => {
this.chart = chart;
});
},
methods: {
notesChart(type: string): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
normal: type == 'local' ? x.notes.local.diffs.normal : type == 'remote' ? x.notes.remote.diffs.normal : x.notes.local.diffs.normal + x.notes.remote.diffs.normal,
reply: type == 'local' ? x.notes.local.diffs.reply : type == 'remote' ? x.notes.remote.diffs.reply : x.notes.local.diffs.reply + x.notes.remote.diffs.reply,
renote: type == 'local' ? x.notes.local.diffs.renote : type == 'remote' ? x.notes.remote.diffs.renote : x.notes.local.diffs.renote + x.notes.remote.diffs.renote,
all: type == 'local' ? (x.notes.local.inc + -x.notes.local.dec) : type == 'remote' ? (x.notes.remote.inc + -x.notes.remote.dec) : (x.notes.local.inc + -x.notes.local.dec) + (x.notes.remote.inc + -x.notes.remote.dec)
}));
return [{
datasets: [{
label: 'All',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.all }))
}, {
label: 'Renotes',
fill: true,
backgroundColor: 'rgba(161, 222, 65, 0.1)',
borderColor: '#a1de41',
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.renote }))
}, {
label: 'Replies',
fill: true,
backgroundColor: 'rgba(247, 121, 108, 0.1)',
borderColor: '#f7796c',
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.reply }))
}, {
label: 'Normal',
fill: true,
backgroundColor: 'rgba(65, 221, 222, 0.1)',
borderColor: '#41ddde',
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.normal }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('number')(value);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('number')(tooltipItem.yLabel)}`;
}
}
}
}];
},
notesTotalChart(): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localCount: x.notes.local.total,
remoteCount: x.notes.remote.total
}));
return [{
datasets: [{
label: 'Combined',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteCount + x.localCount }))
}, {
label: 'Local',
fill: true,
backgroundColor: rgba(colors.local),
borderColor: colors.local,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localCount }))
}, {
label: 'Remote',
fill: true,
backgroundColor: rgba(colors.remote),
borderColor: colors.remote,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteCount }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('number')(value);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('number')(tooltipItem.yLabel)}`;
}
}
}
}];
},
usersChart(total: boolean): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localCount: total ? x.users.local.total : (x.users.local.inc + -x.users.local.dec),
remoteCount: total ? x.users.remote.total : (x.users.remote.inc + -x.users.remote.dec)
}));
return [{
datasets: [{
label: 'Combined',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteCount + x.localCount }))
}, {
label: 'Local',
fill: true,
backgroundColor: rgba(colors.local),
borderColor: colors.local,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localCount }))
}, {
label: 'Remote',
fill: true,
backgroundColor: rgba(colors.remote),
borderColor: colors.remote,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteCount }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('number')(value);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('number')(tooltipItem.yLabel)}`;
}
}
}
}];
},
driveChart(): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localInc: x.drive.local.incSize,
localDec: -x.drive.local.decSize,
remoteInc: x.drive.remote.incSize,
remoteDec: -x.drive.remote.decSize,
}));
return [{
datasets: [{
label: 'All',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localInc + x.localDec + x.remoteInc + x.remoteDec }))
}, {
label: 'Local +',
fill: true,
backgroundColor: rgba(colors.localPlus),
borderColor: colors.localPlus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localInc }))
}, {
label: 'Local -',
fill: true,
backgroundColor: rgba(colors.localMinus),
borderColor: colors.localMinus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localDec }))
}, {
label: 'Remote +',
fill: true,
backgroundColor: rgba(colors.remotePlus),
borderColor: colors.remotePlus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteInc }))
}, {
label: 'Remote -',
fill: true,
backgroundColor: rgba(colors.remoteMinus),
borderColor: colors.remoteMinus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteDec }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('bytes')(value, 1);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('bytes')(tooltipItem.yLabel, 1)}`;
}
}
}
}];
},
driveTotalChart(): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localSize: x.drive.local.totalSize,
remoteSize: x.drive.remote.totalSize
}));
return [{
datasets: [{
label: 'Combined',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteSize + x.localSize }))
}, {
label: 'Local',
fill: true,
backgroundColor: rgba(colors.local),
borderColor: colors.local,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localSize }))
}, {
label: 'Remote',
fill: true,
backgroundColor: rgba(colors.remote),
borderColor: colors.remote,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteSize }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('bytes')(value, 1);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('bytes')(tooltipItem.yLabel, 1)}`;
}
}
}
}];
},
driveFilesChart(): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localInc: x.drive.local.incCount,
localDec: -x.drive.local.decCount,
remoteInc: x.drive.remote.incCount,
remoteDec: -x.drive.remote.decCount
}));
return [{
datasets: [{
label: 'All',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localInc + x.localDec + x.remoteInc + x.remoteDec }))
}, {
label: 'Local +',
fill: true,
backgroundColor: rgba(colors.localPlus),
borderColor: colors.localPlus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localInc }))
}, {
label: 'Local -',
fill: true,
backgroundColor: rgba(colors.localMinus),
borderColor: colors.localMinus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localDec }))
}, {
label: 'Remote +',
fill: true,
backgroundColor: rgba(colors.remotePlus),
borderColor: colors.remotePlus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteInc }))
}, {
label: 'Remote -',
fill: true,
backgroundColor: rgba(colors.remoteMinus),
borderColor: colors.remoteMinus,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteDec }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('number')(value);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('number')(tooltipItem.yLabel)}`;
}
}
}
}];
},
driveFilesTotalChart(): any {
const data = this.stats.slice().reverse().map(x => ({
date: new Date(x.date),
localCount: x.drive.local.totalCount,
remoteCount: x.drive.remote.totalCount,
}));
return [{
datasets: [{
label: 'Combined',
fill: false,
borderColor: '#555',
borderWidth: 2,
borderDash: [4, 4],
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localCount + x.remoteCount }))
}, {
label: 'Local',
fill: true,
backgroundColor: rgba(colors.local),
borderColor: colors.local,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.localCount }))
}, {
label: 'Remote',
fill: true,
backgroundColor: rgba(colors.remote),
borderColor: colors.remote,
borderWidth: 2,
pointBackgroundColor: '#fff',
lineTension: 0,
data: data.map(x => ({ t: x.date, y: x.remoteCount }))
}]
}, {
scales: {
yAxes: [{
ticks: {
callback: value => {
return Vue.filter('number')(value);
}
}
}]
},
tooltips: {
callbacks: {
label: (tooltipItem, data) => {
const label = data.datasets[tooltipItem.datasetIndex].label || '';
return `${label}: ${Vue.filter('number')(tooltipItem.yLabel)}`;
}
}
}
}];
}
}
});
</script>
<style lang="stylus" scoped>
@import '~const.styl'
.gkgckalzgidaygcxnugepioremxvxvpt
padding 32px
background #fff
box-shadow 0 2px 8px rgba(#000, 0.1)
*
user-select none
> header
display flex
margin 0 0 1em 0
padding 0 0 8px 0
font-size 1em
color #555
border-bottom solid 1px #eee
> b
margin-right 8px
> *:last-child
margin-left auto
*
&:not(.active)
color $theme-color
cursor pointer
> div
> *
display block
height 320px
</style>

View File

@ -9,12 +9,18 @@
@contextmenu.prevent.stop="onContextmenu"
:title="title"
>
<div class="label" v-if="$store.state.i.avatarId == file.id"><img src="/assets/label.svg"/>
<div class="label" v-if="$store.state.i.avatarId == file.id">
<img src="/assets/label.svg"/>
<p>%i18n:@avatar%</p>
</div>
<div class="label" v-if="$store.state.i.bannerId == file.id"><img src="/assets/label.svg"/>
<div class="label" v-if="$store.state.i.bannerId == file.id">
<img src="/assets/label.svg"/>
<p>%i18n:@banner%</p>
</div>
<div class="label red" v-if="file.isSensitive">
<img src="/assets/label-red.svg"/>
<p>%i18n:@nsfw%</p>
</div>
<div class="thumbnail" ref="thumbnail" :style="`background-color: ${ background }`">
<img :src="file.thumbnailUrl" alt="" @load="onThumbnailLoaded"/>
</div>
@ -212,6 +218,11 @@ root(isDark)
&:after
background #0b65a5
&.red
&:before
&:after
background #c12113
&:active
background rgba(#000, 0.1)
@ -220,6 +231,11 @@ root(isDark)
&:after
background #0b588c
&.red
&:before
&:after
background #ce2212
&[data-is-selected]
background $theme-color
@ -256,26 +272,29 @@ root(isDark)
pointer-events none
&:before
content ""
display block
position absolute
z-index 1
top 0
left 57px
width 28px
height 8px
background #0c7ac9
&:after
content ""
display block
position absolute
z-index 1
background #0c7ac9
&:before
top 0
left 57px
width 28px
height 8px
&:after
top 57px
left 0
width 8px
height 28px
background #0c7ac9
&.red
&:before
&:after
background #c12113
> img
position absolute

View File

@ -163,7 +163,7 @@ export default Vue.extend({
});
break;
default:
alert('%i18n:@unhandled-error% ' + err);
alert(`%i18n:@unhandled-error% ${err}`);
}
});
}

View File

@ -323,7 +323,7 @@ export default Vue.extend({
});
break;
default:
alert('%i18n:@unhandled-error% ' + err);
alert(`%i18n:@unhandled-error% ${err}`);
}
});
}
@ -404,7 +404,7 @@ export default Vue.extend({
folder: folder
});
} else {
window.open(url + '/i/drive/folder/' + folder.id,
window.open(`${url}/i/drive/folder/${folder.id}`,
'drive_window',
'height=500, width=800');
}

Some files were not shown because too many files have changed in this diff Show More