Compare commits

...

546 Commits

Author SHA1 Message Date
syuilo
f1047f1ce5 10.87.5 2019-02-20 16:35:36 +09:00
syuilo
9beddc941a 返信が遷移後も残り続ける問題を修正 2019-02-20 16:35:00 +09:00
syuilo
3a6a01d2d6 New Crowdin translations (#4328)
* 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 (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Chinese Simplified)
2019-02-20 16:27:04 +09:00
syuilo
e0e4bdbdbc Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-20 16:14:39 +09:00
syuilo
b3daf79b6a Update CHANGELOG.md 2019-02-20 16:14:31 +09:00
Acid Chicken (硫酸鶏)
81aa21915b Fix #4329 (#4330)
* Create xml.ts

* Update well-known.ts

* Update well-known.ts

* Fix typo

* Update well-known.ts

* Update well-known.ts
2019-02-20 16:13:43 +09:00
syuilo
5aadd80243 Update CHANGELOG.md 2019-02-20 13:41:55 +09:00
syuilo
23350b1cbc 🎨 2019-02-20 13:41:31 +09:00
syuilo
daff0977cb Resolve #747 2019-02-20 13:38:48 +09:00
syuilo
c1e7d56ff8 Fix bug 2019-02-20 10:15:06 +09:00
syuilo
61aef56f83 🎨 2019-02-20 10:14:11 +09:00
syuilo
249f591403 10.87.4 2019-02-20 07:21:58 +09:00
syuilo
36599c82d1 New translations ja-JP.yml (Chinese Simplified) (#4323) 2019-02-20 07:21:12 +09:00
syuilo
7615b1ea0a Improve usability 2019-02-20 07:19:05 +09:00
syuilo
d8de9f8eba 🎨 2019-02-20 07:15:08 +09:00
syuilo
8c0e65ce6f Fix error 2019-02-20 07:09:57 +09:00
syuilo
9aa24c0552 🎨 2019-02-20 07:08:54 +09:00
MeiMei
47bf06f432 人気のタグは常に上 (#4314) 2019-02-20 06:46:35 +09:00
syuilo
99d291c71b Update CHANGELOG.md 2019-02-20 06:45:16 +09:00
syuilo
d51cafca74 Fix #4326 2019-02-20 06:44:40 +09:00
syuilo
7921f8cd43 🎨 2019-02-20 01:00:59 +09:00
imgbot[bot]
1b8467d5e5 [ImgBot] Optimize images (#4322)
*Total -- 482.97kb -> 427.88kb (11.41%)

/src/client/assets/misskey-php-like-logo.png -- 48.77kb -> 41.66kb (14.59%)
/assets/ss/explore.jpg -- 272.68kb -> 238.07kb (12.69%)
/assets/ss/user.jpg -- 161.52kb -> 148.15kb (8.27%)
2019-02-19 20:47:11 +09:00
syuilo
e13b2689b5 New Crowdin translations (#4318)
* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Korean)
2019-02-19 20:12:52 +09:00
MeiMei
9c167acbd9 Supports scrollbar width in Firefox (#4319)
* Supports scrollbar width in Firefox

* fix style
2019-02-19 20:12:19 +09:00
syuilo
1bc531edbd Update README.md 2019-02-19 20:09:33 +09:00
syuilo
b4d0db9202 Create user.jpg 2019-02-19 20:07:52 +09:00
syuilo
bd2b681367 Create explore.jpg 2019-02-19 20:01:38 +09:00
syuilo
f0edf81cc4 Remove unused import 2019-02-19 08:48:25 +09:00
syuilo
e81ac05ba6 Fix bug 2019-02-19 05:17:36 +09:00
Acid Chicken (硫酸鶏)
6279ce8f22 Add fallback for locales (#4109)
* Update index.js

* Update index.js
2019-02-19 04:04:05 +09:00
syuilo
0fd20cf588 New Crowdin translations (#4254)
* 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 (Chinese Simplified)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

* 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 (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)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

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

* 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 (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)

* New translations ja-JP.yml (Korean)

* 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 (Korean)

* New translations ja-JP.yml (Korean)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

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

* 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 (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* 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 (Chinese Simplified)

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

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

* 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 (Korean)

* New translations ja-JP.yml (Korean)

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

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

* New translations ja-JP.yml (English)

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

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

* 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)
2019-02-19 04:01:22 +09:00
MeiMei
f2d55e7f60 Fix #4308 (#4310) 2019-02-19 03:48:21 +09:00
syuilo
963b0db3d3 コンポーネント整理 2019-02-19 03:38:34 +09:00
MeiMei
aeca115a37 developにキャッシュFlushリンクを追加 (#4313) 2019-02-18 20:55:52 +09:00
syuilo
6f97142b59 10.87.3 2019-02-18 20:54:14 +09:00
syuilo
b31d1ce61d フォローリクエスト数がおかしい場合の応急処置APIを追加 2019-02-18 20:52:41 +09:00
syuilo
b07cd37a16 🎨 2019-02-18 20:48:39 +09:00
syuilo
69b74a46b9 Split cropperjs to reduce bundle size 2019-02-18 19:26:53 +09:00
syuilo
882d829558 Fix #4063 2019-02-18 19:22:10 +09:00
syuilo
532821d503 Fix #4309
Close #4311
2019-02-18 18:50:45 +09:00
syuilo
522ce67498 10.87.2 2019-02-18 11:49:32 +09:00
syuilo
0e046faf4a みつけるの人気のタグを第2ソートで連合含めたユーザー数にしたりユーザーのタグ以外は除外するように 2019-02-18 11:47:25 +09:00
syuilo
d9092dc81f ユーザーが存在しない場合の表示を追加 2019-02-18 11:27:15 +09:00
syuilo
92a4e90026 Remove duplicated route name 2019-02-18 11:21:50 +09:00
syuilo
07dccad5b1 Avoid dupulicated route name 2019-02-18 11:20:20 +09:00
syuilo
146b0d2889 Improve usability 2019-02-18 11:16:52 +09:00
syuilo
388565fb10 Use # instead of v-slot: 2019-02-18 11:13:56 +09:00
syuilo
da4ba51a74 Fix bug 2019-02-18 10:05:58 +09:00
syuilo
1edcd136a4 Revert "🎨"
This reverts commit 9883c751da.
2019-02-18 10:02:32 +09:00
syuilo
9883c751da 🎨 2019-02-18 09:57:19 +09:00
syuilo
f78b28b995 🎨 2019-02-18 09:51:22 +09:00
syuilo
54d40420ad Use v-slot instead of slot 2019-02-18 09:48:00 +09:00
syuilo
ba1492f977 Refactor client (#4307)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Fix bug

* 🎨

* 🎨

* 🎨
2019-02-18 09:17:55 +09:00
syuilo
efd0368e56 Resolve #4305 2019-02-18 04:52:40 +09:00
syuilo
a766a57af9 誰もフォローしていない状態でホームTLを表示したときにexploreページへ誘導するように 2019-02-18 04:45:16 +09:00
Acid Chicken (硫酸鶏)
3bdd8a2d90 Update CircleCI configuration (#4297)
* Update config.yml

* Fix typo

* Add name
2019-02-18 02:44:46 +09:00
syuilo
7ef1205f8b 10.87.1 2019-02-18 01:11:28 +09:00
syuilo
e8db63e788 Fix bug 2019-02-18 01:11:14 +09:00
syuilo
0bcef2453c 10.87.0 2019-02-18 00:51:39 +09:00
syuilo
b9f549135c Fix bug 2019-02-18 00:49:34 +09:00
syuilo
87b0017386 Fix bug 2019-02-18 00:47:45 +09:00
syuilo
cc8ff556d4 Fix bug 2019-02-18 00:45:43 +09:00
syuilo
021f74da54 🎨 2019-02-18 00:41:05 +09:00
syuilo
f9389802d7 Update CHANGELOG.md 2019-02-18 00:39:31 +09:00
syuilo
18dd172c97 Chore: Fix type definition 2019-02-18 00:20:14 +09:00
syuilo
1d5a54ff6f ハッシュタグでユーザー検索できるように (#4298)
* ハッシュタグでユーザー検索できるように

* 🎨

* Increase limit

* リモートユーザーも表示

* Fix bug

* Fix bug

* Improve performance
2019-02-17 23:41:47 +09:00
MeiMei
03e2c7eec6 Fix #4300 (#4304)
* Fix #4300

* sidebar
2019-02-17 23:40:00 +09:00
dependabot[bot]
0902727d1c Update @types/node requirement from 10.12.21 to 10.12.24 (#4231)
Updates the requirements on [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-17 21:42:40 +09:00
dependabot[bot]
496895634d Update @types/sharp requirement from 0.21.1 to 0.21.2 (#4263)
Updates the requirements on [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-17 21:42:03 +09:00
dependabot[bot]
9414e9e258 Update cssnano requirement from 4.1.8 to 4.1.10 (#4265)
Updates the requirements on [cssnano](https://github.com/cssnano/cssnano) to permit the latest version.
- [Release notes](https://github.com/cssnano/cssnano/releases)
- [Commits](https://github.com/cssnano/cssnano/commits/v4.1.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-17 21:41:36 +09:00
Acid Chicken (硫酸鶏)
357528d139 Use object instead of if chain (#4212) 2019-02-17 21:40:53 +09:00
MeiMei
c4efbdf4c7 Fix #4292 (#4294)
* Fix #4292

* use commit
2019-02-17 21:28:20 +09:00
かひわし4(バージョン1)
fb4a921cd9 Docker: Add support for service worker (#4296)
Service worker requires web-push package.
2019-02-17 21:26:00 +09:00
Acid Chicken (硫酸鶏)
683b242215 Use Record<string, number> instead of any (#4293) 2019-02-17 19:38:46 +09:00
syuilo
a5660d6c82 Exploreページに新規ユーザー一覧を追加 (#4295) 2019-02-17 17:53:51 +09:00
syuilo
f632ec50c1 10.86.2 2019-02-17 03:29:17 +09:00
syuilo
a55d15214b Update ja-JP.yml 2019-02-17 03:28:36 +09:00
syuilo
f1709a2cc2 Update CHANGELOG.md 2019-02-17 03:23:43 +09:00
syuilo
effa542958 Improve user page 2019-02-17 03:23:34 +09:00
MeiMei
e8bf742c87 別タブでルートより下を開いたときにはデッキにしないように (#4291) 2019-02-17 02:26:17 +09:00
syuilo
2e6652edce Resolve #4272 2019-02-17 01:50:17 +09:00
syuilo
230c204b48 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-17 01:12:08 +09:00
syuilo
3755c600b1 Update CHANGELOG.md 2019-02-17 01:11:59 +09:00
Acid Chicken (硫酸鶏)
24513fc0a3 Update media-banner.vue (#4287) 2019-02-17 01:09:49 +09:00
syuilo
0a79a6564a Add support for disabled timeline to deck
Close #4286
Resolve #4275
2019-02-17 01:04:21 +09:00
syuilo
562bb5842b [Client] Improve featured notes page 2019-02-17 00:28:41 +09:00
syuilo
ec3ca3032e ミュートワードで正規表現を使えるように 2019-02-16 19:37:05 +09:00
syuilo
890770c275 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-16 17:42:01 +09:00
syuilo
9ed58a1b4e 🎨 2019-02-16 17:41:54 +09:00
Acid Chicken (硫酸鶏)
08984be2fe Update config.yml 2019-02-16 17:05:56 +09:00
syuilo
e3ade148ca 10.86.1 2019-02-16 16:59:56 +09:00
syuilo
34c0eff89f 🎨 2019-02-16 16:46:06 +09:00
syuilo
40aba47a47 Fix bug 2019-02-16 16:43:17 +09:00
syuilo
6736f51134 Use home icon 2019-02-16 16:40:17 +09:00
syuilo
9d826d6e52 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-16 16:39:42 +09:00
syuilo
902d9bc7a5 Fix bug 2019-02-16 16:39:34 +09:00
MeiMei
b6c86e2845 Change home button to timeline (#4282)
* Home to Timeline

* remove home from locales
2019-02-16 16:27:24 +09:00
Acid Chicken (硫酸鶏)
34dffdfc8f Update config.yml 2019-02-16 11:10:06 +09:00
syuilo
a56f3f1d89 10.86.0 2019-02-16 11:06:45 +09:00
syuilo
88dc4c83cb Improve UI 2019-02-16 10:58:44 +09:00
syuilo
5a28dc0198 Improve user-list component 2019-02-16 09:27:53 +09:00
syuilo
40d2650d49 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-16 08:51:38 +09:00
syuilo
545e83efb1 🎨 2019-02-16 08:51:35 +09:00
Acid Chicken (硫酸鶏)
d4b00a5482 Update README.md [AUTOGEN] (#4280) 2019-02-16 06:58:51 +09:00
syuilo
c2b1bbeec5 Exploreページを実装 2019-02-16 06:50:58 +09:00
syuilo
8c8f165a6e Add missing comma 2019-02-16 04:51:57 +09:00
MeiMei
04553de230 Fix #4276 (#4278) 2019-02-15 23:43:49 +09:00
Acid Chicken (硫酸鶏)
2776934728 Update is-objectid.ts (#4277)
* Update is-objectid.ts

* Update is-objectid.ts
2019-02-15 23:42:44 +09:00
syuilo
0064dbb010 🎨 2019-02-15 19:40:11 +09:00
Acid Chicken (硫酸鶏)
d52e671adf Update README.md [AUTOGEN] (#4274) 2019-02-15 17:20:17 +09:00
syuilo
6017dc2dff 10.85.2 2019-02-15 15:38:10 +09:00
syuilo
937f7cbd60 🎨 2019-02-15 15:35:52 +09:00
syuilo
f8b3f66904 Refactor 2019-02-15 15:12:23 +09:00
syuilo
9d5701f35a Update deck.vue 2019-02-15 15:06:15 +09:00
syuilo
dff65810c6 Increase featured limit 2019-02-15 15:01:05 +09:00
syuilo
6752cf1d64 🎨 2019-02-15 15:00:20 +09:00
syuilo
8336910a59 🎨 2019-02-15 14:58:15 +09:00
syuilo
957a1149e0 検索結果を内部コンポーネントに 2019-02-15 14:52:21 +09:00
syuilo
e8719ff6e6 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-15 14:29:59 +09:00
syuilo
28b63298e5 Increase featured limit 2019-02-15 14:29:42 +09:00
MeiMei
dd4dee8095 デッキから フォロー/フォロワー ページに行けるように (#4271) 2019-02-15 14:27:16 +09:00
syuilo
c47818fed4 🎨 2019-02-15 08:52:09 +09:00
syuilo
e53c383908 10.85.1 2019-02-15 08:42:48 +09:00
syuilo
55c9c0436b 🎨 2019-02-15 08:42:41 +09:00
syuilo
66b79e5e24 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-15 08:40:25 +09:00
syuilo
514b830910 Fix bug 2019-02-15 08:40:16 +09:00
MeiMei
e4f799bf1d Hide localOnly from welcome TL (#4257) 2019-02-15 08:38:59 +09:00
syuilo
b383427d3d 🎨 2019-02-15 08:37:46 +09:00
syuilo
e969518139 Fix bug 2019-02-15 08:34:54 +09:00
syuilo
113fe294bd Fix #4267
Close #4269
2019-02-15 08:32:18 +09:00
syuilo
a4d92f781f 10.85.0 2019-02-15 06:34:45 +09:00
syuilo
414cac49c3 Improve featured api 2019-02-15 06:31:22 +09:00
syuilo
95b157ac3e Add featured page 2019-02-15 06:31:03 +09:00
syuilo
8e3d884081 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-15 06:06:24 +09:00
syuilo
9def6fcadd 🎨 2019-02-15 06:06:13 +09:00
Lynx Kotoura
7837bd44fc Add i18n when timelines are empty (#4261) 2019-02-15 05:59:07 +09:00
syuilo
a6c3663155 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-15 05:58:18 +09:00
syuilo
0b5afadbb8 Update setup.ja.md 2019-02-15 05:58:09 +09:00
syuilo
43864f0da4 既にフォローされている場合はフォローリクエストを生成しないように (#4266) 2019-02-15 05:56:28 +09:00
syuilo
6a0d9d70ed 非ログイン時にお知らせを表示 2019-02-15 05:55:59 +09:00
syuilo
63c6dce68e 🎨 2019-02-15 05:51:22 +09:00
syuilo
53422ffcb2 Improve desktop UX (#4262)
* wip

* wip

* wip

* wip

* wip

* wip

* Merge

* wip

* wip

* wip

* wip

* wip

* wip
2019-02-15 05:08:59 +09:00
Acid Chicken (硫酸鶏)
38ca514f53 Update README.md [AUTOGEN] (#4253) 2019-02-15 00:58:57 +09:00
MeiMei
caea0f0376 Change minimum allowed maxNoteTextLength to 0 (#4256) 2019-02-14 16:30:20 +09:00
Lynx Kotoura
25a8b26977 Emojify user.friends of desktop view (#4249) 2019-02-14 13:42:14 +09:00
Lynx Kotoura
bcaefe8d62 Fix huge close icon of friends-maker (#4245) 2019-02-14 13:41:48 +09:00
MeiMei
46f1e8c599 Restore web max-age to 5 minutes (#4246) 2019-02-14 13:41:28 +09:00
Lynx Kotoura
16230f320e Unify translations of frequently replied users (#4248) 2019-02-14 13:40:48 +09:00
Acid Chicken (硫酸鶏)
ace6419aef 無効化されているタイムラインのフォールバック (#4242)
* Update timeline.vue

* Update home.vue
2019-02-14 13:39:42 +09:00
Lynx Kotoura
77fb9eb2be Fix title of robot icon in user.header of desktop view (#4243) 2019-02-14 03:01:42 +09:00
syuilo
aa7fc7c893 10.84.2 2019-02-14 01:27:22 +09:00
syuilo
8fc170109f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-14 01:13:28 +09:00
syuilo
ad12d00d7e ハッシュタグの集計期間を短くした
Resolve #4238 ?
2019-02-14 01:13:19 +09:00
Acid Chicken (硫酸鶏)
fa5ea45726 Docker: Remove unnecessary workaround for BusyBox's "free" (#4199) (#4213)
systeminformation gets incorrect memory information due to BusyBox's
"free" issue.(#3409)
A workaround for avoiding it was made.

But it never works because the runner container has no effect.
It should be deleted.
2019-02-13 23:45:58 +09:00
Acid Chicken (硫酸鶏)
4b6c113251 Add prelude function for URL Query (#4135)
* Update string.ts

* Refactor

* Update string.ts

* Update wrap-url.ts

* Update string.ts

* Update get-static-image-url.ts

* Use querystring.stringify

* Update outbox.ts

* Back to the urlQuery

* Update followers.ts

* Update following.ts

* Update outbox.ts

* Update string.ts

* Update get-static-image-url.ts

* Update string.ts

* Update string.ts

* Separate prelude files
2019-02-13 23:45:35 +09:00
Acid Chicken (硫酸鶏)
3548290ff2 Fix tslint.json styles (#4219) 2019-02-13 23:43:55 +09:00
syuilo
b165b90c40 Update dependencies 2019-02-13 21:57:00 +09:00
syuilo
4ffe9c908b Make ignore pointer events 2019-02-13 21:48:20 +09:00
syuilo
a135f75e71 🎨 2019-02-13 21:47:53 +09:00
Acid Chicken (硫酸鶏)
cbc61ba03d Add GIF badge (#4241) 2019-02-13 21:43:58 +09:00
syuilo
5aa58da918 Migrate cafy to 14.0 (#4240) 2019-02-13 16:33:07 +09:00
MeiMei
b083430011 Sort ISSUE_TEMPLATE (#4236) 2019-02-13 15:59:51 +09:00
Acid Chicken (硫酸鶏)
a8946b0404 Update nodeinfo.ts (#4239)
* Update nodeinfo.ts

* Update nodeinfo.ts

* Update nodeinfo.ts

* Update nodeinfo.ts

* Update nodeinfo.ts
2019-02-13 15:56:45 +09:00
dependabot[bot]
0303bccc61 Update vue-i18n requirement from 8.8.0 to 8.8.1 (#4235)
Updates the requirements on [vue-i18n](https://github.com/kazupon/vue-i18n) to permit the latest version.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/commits/v8.8.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-13 14:46:41 +09:00
MeiMei
f3ce8564ea よく話すユーザーからサスペンドされたユーザーを隠すなど (#4228)
* Resolve #4226

* fix

* Fix: anonymousでアクセスするとサスペンドユーザーが隠れない

* fix
2019-02-12 17:19:15 +09:00
syuilo
52c3f9e98c 10.84.1 2019-02-11 23:42:39 +09:00
syuilo
6c8b4184fe Update CHANGELOG.md 2019-02-11 23:41:00 +09:00
syuilo
a0979f8435 Update dependencies 🚀 2019-02-11 23:40:10 +09:00
syuilo
faba21d003 Remove unused import 2019-02-11 23:39:05 +09:00
syuilo
d82c5dff71 Fix bug 2019-02-11 23:37:15 +09:00
syuilo
59fbc5b054 New translations ja-JP.yml (English) (#4221) 2019-02-11 22:37:28 +09:00
MeiMei
2c1a7f4392 Fix #4152 (#4224)
* Fix #4152

* fix

* remove unused code
2019-02-11 22:37:20 +09:00
syuilo
769e6182d8 New Crowdin translations (#4220)
* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)
2019-02-11 01:39:46 +09:00
syuilo
88176a17a3 New Crowdin translations (#4218)
* 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)
2019-02-10 23:17:49 +09:00
syuilo
fc660e869f [Client] Make default sort lastCommunicatedAt in instances list of admin panel 2019-02-10 19:46:47 +09:00
syuilo
dc04869650 [Client] Make default origin local in user list of admin panel 2019-02-10 19:44:57 +09:00
syuilo
93c3f34813 管理画面でサイレンスされているユーザーを一覧できるように 2019-02-10 19:43:46 +09:00
syuilo
1282eed192 Update CHANGELOG.md 2019-02-10 19:39:42 +09:00
syuilo
962b3ca78e [Client] Fix bug 2019-02-10 19:38:17 +09:00
MeiMei
62d17c9266 Optimize url-preview image (#4216) 2019-02-10 19:19:26 +09:00
syuilo
f5b928a537 New translations ja-JP.yml (English) (#4210) 2019-02-10 19:19:10 +09:00
Acid Chicken (硫酸鶏)
c8811894b5 Update package.json 2019-02-10 17:58:03 +09:00
Acid Chicken (硫酸鶏)
e579b49228 Update package.json 2019-02-10 17:55:42 +09:00
Acid Chicken (硫酸鶏)
9561908ad3 Update user.followers-you-know.vue (#4215) 2019-02-10 17:15:41 +09:00
Acid Chicken (硫酸鶏)
fac7ebf4f6 Fix Dockerfile (#4214)
* Update Dockerfile

* Update Dockerfile
2019-02-10 16:14:48 +09:00
Acid Chicken (硫酸鶏)
a0769d65e3 Update package.json 2019-02-10 15:08:13 +09:00
syuilo
d17aa4b24e New translations ja-JP.yml (Korean) (#4209) 2019-02-10 11:45:00 +09:00
syuilo
310371658b 重いのでジョブキュー無効化 2019-02-10 11:44:08 +09:00
MeiMei
7ca073aafd Hide unusable follow buttons (#4208) 2019-02-10 05:56:11 +09:00
syuilo
7216d0fb1f New Crowdin translations (#4201)
* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* 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)
2019-02-10 05:34:23 +09:00
MeiMei
22a9e950c7 deckにフォローされていますマークを追加 (#4207)
* deckにフォローされていますを追加

* opacity
2019-02-10 05:26:49 +09:00
Acid Chicken (硫酸鶏)
6683d50bae Update CircleCI configuration (#4204)
* Update config.yml

* Update config.yml

* Update config.yml

* Update config.yml

* Update config.yml
2019-02-10 02:17:43 +09:00
Acid Chicken (硫酸鶏)
8f26176273 Update README.md (#4198) 2019-02-09 13:35:04 +09:00
syuilo
9ea7d446e8 10.84.0 2019-02-09 13:04:58 +09:00
MeiMei
757312ba52 Limit the parallelism of AP object processing (#4193) 2019-02-09 13:01:21 +09:00
syuilo
1675c473d4 🎨 2019-02-09 12:43:26 +09:00
syuilo
3a3a5d4bfb Update vue 2019-02-09 12:35:52 +09:00
syuilo
4a41499c95 🎨 2019-02-09 12:34:42 +09:00
syuilo
a1d1cb58e0 New Crowdin translations (#4184)
* 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 (Chinese Simplified)

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

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

* 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 (Chinese Simplified)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)
2019-02-09 12:29:44 +09:00
syuilo
acb82fe7b6 フォロー処理のリファクタリング (#4196)
* Fix #4185

* Fix bug
2019-02-09 12:04:03 +09:00
dependabot[bot]
b25df24cea Merge pull request #4197 from syuilo/dependabot/npm_and_yarn/@fortawesome/free-solid-svg-icons-5.7.1 2019-02-08 20:37:00 +00:00
dependabot[bot]
39284eb9b2 Update @fortawesome/free-solid-svg-icons requirement from 5.6.3 to 5.7.1
Updates the requirements on [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.7.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-08 20:27:31 +00:00
syuilo
31b0e552a2 Improve usability 2019-02-09 01:53:46 +09:00
fangzheng
c4a2a31cf3 Update ja-JP.yml (#4195)
Fix incorrect strings
2019-02-08 23:10:42 +09:00
かひわし4(バージョン1)
4497ddb3f3 Doc: Add bug details to CHANGELOG (#4191)
Bug in Misskey 10.82.3 (#4179) is critical to server administrators,
and they need more detail about it.
2019-02-08 21:04:04 +09:00
syuilo
5e0eda9526 Improve instances manegement
Resolve #4187
2019-02-08 20:56:16 +09:00
syuilo
72b85fc09f 10.83.0 2019-02-08 17:06:07 +09:00
syuilo
6c27412c9c Fix theme 2019-02-08 17:05:50 +09:00
syuilo
46bddfc9c2 New Crowdin translations (#4178)
* 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 (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 (Chinese Simplified)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (English)

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

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

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

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

* New translations ja-JP.yml (Chinese Simplified)
2019-02-08 17:01:43 +09:00
syuilo
56275bcfcb Introduce per-instance chart (#4183)
* Introduce per-instance chart

* Implement chart view in client

* Handle note deleting

* More chart srcs

* Add drive stats

* Improve drive stats

* Fix bug

* Add icon
2019-02-08 16:58:57 +09:00
syuilo
f35688bab8 Supress logs during test 2019-02-08 16:56:23 +09:00
syuilo
93541f83c8 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-08 04:40:55 +09:00
syuilo
ea0d114833 🎨 2019-02-08 04:40:47 +09:00
syuilo
7f6a3ec828 🎨 2019-02-08 04:36:23 +09:00
syuilo
732804b6fa Update CONTRIBUTING.md 2019-02-08 04:33:15 +09:00
syuilo
aba85b977d Refactoring: Move chart dir into services dir 2019-02-08 04:31:33 +09:00
syuilo
e6612f610c Implement instance blocking (#4182)
* Implement instance blocking

* Add missing text

* Delete unnecessary file

* Covert Punycode to Unicode
2019-02-08 04:26:43 +09:00
syuilo
5a28632af7 Update CONTRIBUTING.md 2019-02-08 04:08:25 +09:00
syuilo
4099db0d42 [Client] Add icon 🎨 2019-02-07 23:42:56 +09:00
syuilo
9d50a06d9c Fix bug 2019-02-07 23:37:39 +09:00
syuilo
dd7bf9b2a3 Remove unused import 2019-02-07 23:32:39 +09:00
syuilo
c463284c2f Fix bug 2019-02-07 23:27:42 +09:00
syuilo
c1d728a616 インスタンス一覧の表示数を増やした 2019-02-07 22:00:55 +09:00
syuilo
e43c9c0e21 特定インスタンスからのフォローを全解除できるように 2019-02-07 21:59:18 +09:00
syuilo
15cac10d7b 10.82.4 2019-02-07 21:30:38 +09:00
syuilo
49958ca03f Make instance information more detail 2019-02-07 21:23:12 +09:00
syuilo
280dbe9853 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-07 21:07:58 +09:00
Acid Chicken (硫酸鶏)
bf964ee969 Update load.ts 2019-02-07 21:03:24 +09:00
syuilo
61dcd51888 Revert "Fix bug"
This reverts commit 2ef795aba8.
2019-02-07 21:02:57 +09:00
syuilo
5448c22031 Revert 96bc17aa10 2019-02-07 21:02:33 +09:00
Acid Chicken (硫酸鶏)
27768081e2 Fix #4179 2019-02-07 20:14:15 +09:00
syuilo
c3140f57b9 連合しているインスタンスを一覧できるように 2019-02-07 18:11:20 +09:00
syuilo
7275bc6d3b Improve instance stats 2019-02-07 16:05:29 +09:00
syuilo
485f2f460e Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-07 15:00:52 +09:00
syuilo
336912e442 Improve instance stats 2019-02-07 15:00:44 +09:00
syuilo
dd9c94e47e Update CONTRIBUTING.md 2019-02-07 14:54:14 +09:00
Acid Chicken (硫酸鶏)
055863144d Update issue templates (#4038)
* WIP: Update issue templates

* Update client-side-feature-request.md

* Update bug_report.md

* Update feature_request.md

* Update server-side-bug-report.md

* Update server-side-feature-request.md

* Update bug_report.md
2019-02-07 14:46:17 +09:00
syuilo
0bf602bae6 10.82.3 2019-02-07 10:55:52 +09:00
syuilo
6fc28d1df7 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-07 10:52:07 +09:00
syuilo
2ef795aba8 Fix bug 2019-02-07 10:51:55 +09:00
syuilo
1d2c50fc26 デフォルトでログのタイムスタンプ非表示 2019-02-07 10:51:50 +09:00
syuilo
cef8aa5e7a APのジョブキュー無効化 2019-02-07 10:51:24 +09:00
syuilo
edf3e75344 New Crowdin translations (#4166)
* 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)
2019-02-07 10:37:36 +09:00
syuilo
62835c6011 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-07 10:36:09 +09:00
syuilo
60fb22cb3c Update dependencies 🚀 2019-02-07 10:35:59 +09:00
dependabot[bot]
20dea3a793 Merge pull request #4174 from syuilo/dependabot/npm_and_yarn/@fortawesome/free-brands-svg-icons-5.7.1 2019-02-06 20:35:37 +00:00
dependabot[bot]
aba37ae701 Merge pull request #4173 from syuilo/dependabot/npm_and_yarn/tslint-5.12.1 2019-02-06 20:26:06 +00:00
dependabot[bot]
2c6e6275aa Update @fortawesome/free-brands-svg-icons requirement
Updates the requirements on [@fortawesome/free-brands-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.7.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-06 20:24:43 +00:00
dependabot[bot]
20ef362854 Update tslint requirement from 5.12.0 to 5.12.1
Updates the requirements on [tslint](https://github.com/palantir/tslint) to permit the latest version.
- [Release notes](https://github.com/palantir/tslint/releases)
- [Changelog](https://github.com/palantir/tslint/blob/master/CHANGELOG.md)
- [Commits](https://github.com/palantir/tslint/commits/5.12.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-06 20:15:49 +00:00
Acid Chicken (硫酸鶏)
4692aa8d9b Update README.md [AUTOGEN] (#4172) 2019-02-07 03:29:10 +09:00
syuilo
f7b6dc08f7 😢 2019-02-07 02:50:03 +09:00
syuilo
7dfe7005e0 Update builtin themes 2019-02-07 02:36:02 +09:00
syuilo
b91de4ac12 🎨 2019-02-07 02:28:08 +09:00
MeiMei
d5205d7328 Refactor reaction-viewer (#4171)
* Refactor reaction-viewer

* code style

* fix
2019-02-07 02:05:49 +09:00
MeiMei
f44ce535fa リアクションマージン再調整 (#4169)
* リアクションマージン再調整

* fix size
2019-02-06 22:57:08 +09:00
syuilo
7177fd27c8 Fix bug 2019-02-06 22:56:20 +09:00
syuilo
cf304f88d4 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-06 22:49:42 +09:00
syuilo
dff1d84031 Fix cofig for ci 2019-02-06 22:46:21 +09:00
Aya Morisawa
96bc17aa10 Check config on load (#4170)
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
2019-02-06 22:44:55 +09:00
syuilo
41ba06a5e6 Fix bug 2019-02-06 22:27:23 +09:00
syuilo
d7ac0418d7 Revert "余計なマージンを削除 (#4168)"
This reverts commit 77bcb58f12.
2019-02-06 21:51:01 +09:00
syuilo
f4319a9c01 Revert "[Client] リアクション一覧のマージンを調整"
This reverts commit 80ea747db6.
2019-02-06 21:50:37 +09:00
syuilo
f4c4d53bbb Fix bug 2019-02-06 21:21:49 +09:00
syuilo
0ed43e1bdf Fix file name 2019-02-06 21:10:37 +09:00
syuilo
d25bd876cb Better file names 2019-02-06 21:10:12 +09:00
syuilo
b9782397c2 Fix file ext 2019-02-06 21:07:36 +09:00
syuilo
ea0abc9f71 Clean up 2019-02-06 20:57:15 +09:00
syuilo
27d16c6a12 Resolve #4151 2019-02-06 20:56:48 +09:00
syuilo
ede70d354e Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-06 19:36:52 +09:00
syuilo
66fa583f6e Update example.yml 2019-02-06 19:36:44 +09:00
MeiMei
77bcb58f12 余計なマージンを削除 (#4168) 2019-02-06 18:29:39 +09:00
Aya Morisawa
61036e3a70 Rename clusterLog to clusterLogger (#4167) 2019-02-06 18:01:35 +09:00
syuilo
bcd886c4f5 🎨 2019-02-06 17:51:33 +09:00
syuilo
4d868aaf1f 🎨 2019-02-06 17:10:40 +09:00
syuilo
80ea747db6 [Client] リアクション一覧のマージンを調整
Close #4160
2019-02-06 17:03:43 +09:00
syuilo
960f29ce81 10.82.2 2019-02-06 15:25:47 +09:00
syuilo
20ee57931f Resolve #4165 2019-02-06 15:24:59 +09:00
syuilo
71ba72e796 Better logs 2019-02-06 15:06:23 +09:00
syuilo
9835945ee1 Improve queue option 2019-02-06 15:01:43 +09:00
syuilo
4f2d52697d Update queue setting 2019-02-06 14:53:02 +09:00
syuilo
46c258d77a 10.82.1 2019-02-06 14:01:52 +09:00
syuilo
3b5b3cf521 Merge branches 'develop' and 'develop' of https://github.com/syuilo/misskey into develop 2019-02-06 13:56:21 +09:00
syuilo
5e0bdd8a78 New Crowdin translations (#4147)
* 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 (Chinese Simplified)

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

* New translations ja-JP.yml (English)
2019-02-06 13:56:00 +09:00
Aya Morisawa
b299988bb5 Simplify comment (#4164) 2019-02-06 13:52:32 +09:00
syuilo
e26bec6ab4 Improve queue configuration
Resolve #4157
Resolve #4158
2019-02-06 13:51:02 +09:00
Aya Morisawa
e9955e01d6 Introduce option type (#4150)
* Introduce option type

* Improve test naming
2019-02-06 13:42:35 +09:00
Acid Chicken (硫酸鶏)
1974d8f58b Add URL validation (#4148) 2019-02-06 13:37:20 +09:00
dependabot[bot]
08c0be11b2 Merge pull request #4163 from syuilo/dependabot/npm_and_yarn/jsdom-13.2.0 2019-02-05 20:36:15 +00:00
dependabot[bot]
87c7058494 Merge pull request #4162 from syuilo/dependabot/npm_and_yarn/@types/node-10.12.21 2019-02-05 20:31:01 +00:00
dependabot[bot]
b92addffa9 Update jsdom requirement from 13.1.0 to 13.2.0
Updates the requirements on [jsdom](https://github.com/jsdom/jsdom) to permit the latest version.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/master/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/commits/13.2.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-05 20:26:19 +00:00
dependabot[bot]
e8b49df842 Update @types/node requirement from 10.12.18 to 10.12.21
Updates the requirements on [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-05 20:22:20 +00:00
MeiMei
18fd39b335 proxyで400番台はそのステータスを返す (#4154) 2019-02-06 00:20:00 +09:00
syuilo
8a11322802 Update README.md 2019-02-06 00:13:31 +09:00
syuilo
31929dad61 [MFM] Better hashtag parsing: Ignore slash 2019-02-06 00:05:26 +09:00
syuilo
4a41d2fddc Add logs 2019-02-06 00:01:37 +09:00
syuilo
4c65b0cd6f 🎨 2019-02-05 23:45:27 +09:00
Aya Morisawa
3e89dc603d Bye 'is-url' (#4113) 2019-02-05 19:54:41 +09:00
syuilo
2a1def3cce 10.82.0 2019-02-05 19:53:31 +09:00
syuilo
938fe05fef Update CHANGELOG.md 2019-02-05 19:52:22 +09:00
syuilo
5db5bbd1cd 自分の投稿情報をエクスポートできるように (#4144)
* wip

* 正しいJSONを生成するように

* データを整形
2019-02-05 19:50:14 +09:00
かひわし4(バージョン1)
ba7e05837c Add ffmpeg package for the runner container (#4145)
* Revert "Update Dockerfile (#4090)"

This reverts commit 6758b0f133.

* Docker: Add ffmpeg package for the runner container

Misskey 10.81.0 added thumbnail generation support.
However it did not work with Docker bacause ffmpeg has not been
installed in the runner container.
2019-02-05 19:32:53 +09:00
Acid Chicken (硫酸鶏)
9dd06a7621 /.well-known 周りをいい感じに (#4141)
* Enhance /.well-known and their friends

* Fix bug
2019-02-05 17:42:55 +09:00
syuilo
2f4434b0d8 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-05 17:30:25 +09:00
syuilo
350328770b Improve readability 2019-02-05 17:30:17 +09:00
syuilo
17e1b49bff New translations ja-JP.yml (Chinese Simplified) (#4140) 2019-02-05 15:16:53 +09:00
Acid Chicken (硫酸鶏)
266c31981d Fix typo 2019-02-05 15:09:37 +09:00
syuilo
803fb0898a Fix bug 2019-02-05 14:56:33 +09:00
syuilo
01983da514 [Client] Use localStorage instead of window 2019-02-05 14:42:18 +09:00
syuilo
6f473aa64a Update setup.ja.md 2019-02-05 14:25:03 +09:00
syuilo
574747b9d4 Improve doc 2019-02-05 14:24:10 +09:00
syuilo
dff1122bd5 Enable service worker 2019-02-05 14:22:52 +09:00
syuilo
43cb12930a Remove unused declare 2019-02-05 14:22:35 +09:00
syuilo
8129d4dc23 Refactoring 2019-02-05 14:14:23 +09:00
syuilo
9b780dff04 Fix log 2019-02-05 14:04:40 +09:00
syuilo
11a0ef485b Resolve #4139 2019-02-05 13:56:50 +09:00
syuilo
83b2aa72b1 [Client] Clip note content 2019-02-05 13:54:40 +09:00
syuilo
c71b24987d Make index.js for more convinience 2019-02-05 13:46:06 +09:00
syuilo
78d22dbd22 Update vue to 2.6.2 🚀 2019-02-05 13:35:47 +09:00
Acid Chicken (硫酸鶏)
8961dab137 Fix comment 2019-02-05 11:49:03 +09:00
Acid Chicken (硫酸鶏)
bcc549fd8e Fix style 2019-02-05 11:48:08 +09:00
syuilo
5a6c3fc11c Update css-loader to 2.1.0 🚀
Close #3961
2019-02-05 07:06:57 +09:00
syuilo
7d730f676d Refactoring: Extract showMachineInfo function 2019-02-05 06:49:00 +09:00
syuilo
6bda571660 Make some error logs important 2019-02-05 06:46:01 +09:00
syuilo
d3c7129e1f Refactoring: Extract checkMongoDB function 2019-02-05 06:43:36 +09:00
syuilo
3709ba95cd Improve doc 2019-02-05 06:29:56 +09:00
MeiMei
4162981081 アニメーション停止箇所の追加 (#4138) 2019-02-05 06:22:39 +09:00
syuilo
7b7359fbdc [Client] Fix bug 2019-02-05 06:12:41 +09:00
syuilo
70c01c52a8 Update Vue to 2.6 🚀 2019-02-05 06:07:23 +09:00
dependabot[bot]
443006c868 Update terser-webpack-plugin requirement from 1.2.1 to 1.2.2 (#4137)
Updates the requirements on [terser-webpack-plugin](https://github.com/webpack-contrib/terser-webpack-plugin) to permit the latest version.
- [Release notes](https://github.com/webpack-contrib/terser-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/terser-webpack-plugin/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/terser-webpack-plugin/commits/v1.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-05 05:20:10 +09:00
syuilo
7c1db1fea5 New Crowdin translations (#4130)
* 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)

* 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 (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)
2019-02-05 04:58:07 +09:00
syuilo
7c2b704bef Fix CHANGELOG 2019-02-05 04:23:28 +09:00
syuilo
368c3f1e29 Update CHANGELOG.md 2019-02-05 04:22:24 +09:00
syuilo
dd39d6ea37 Better key name 2019-02-05 04:09:44 +09:00
syuilo
ef618b2431 [Client] Increase font size a little in the Deck view
Resolve #1821
2019-02-05 04:01:50 +09:00
syuilo
861302f0fd アニメーション画像を無効にする際、サーバーサイドではなくクライアントサイドでURLを変更するように 2019-02-05 03:51:54 +09:00
MeiMei
f014b7ae0e アニメーションを自動再生しないオプション (#4131)
* Refactor

* settings

* Media Proxy

* Replace API response
2019-02-05 03:01:36 +09:00
syuilo
00b2d89f1a Refactor: Better type definition 2019-02-05 01:52:09 +09:00
syuilo
5410efe9ca Refactoring 2019-02-05 01:31:02 +09:00
syuilo
1d814ba0e1 個別に投稿のウォッチ/ウォッチ解除をできるように
Resolve #161
2019-02-05 01:24:44 +09:00
syuilo
c107333f56 [API] お気に入り状態は投稿情報に含めないように統一 2019-02-05 01:11:06 +09:00
Acid Chicken (硫酸鶏)
9595a56346 Revert "Update load.ts"
This reverts commit cf9e8ed39e, commit 67792fcb5e, and commit c7e8c27ce6.
2019-02-04 22:30:24 +09:00
syuilo
06707705bf Add dummy option for some libraries 2019-02-04 19:41:31 +09:00
Acid Chicken (硫酸鶏)
68ee9a008e Resolve #4121 (#4122)
* Resolve #4121

* Update tslint.json
2019-02-04 18:27:45 +09:00
Acid Chicken (硫酸鶏)
3a035c481e Fix fusion 2019-02-04 16:50:14 +09:00
Acid Chicken (硫酸鶏)
23a0aead9f Update config.yml
Redis なしが帰ってきたぞっ!
2019-02-04 16:41:57 +09:00
Aya Morisawa
6cd41f9860 Initialize queue only if queue is enabled (#4125) 2019-02-04 16:41:53 +09:00
Acid Chicken (硫酸鶏)
baf861ac79 Update __MISSKEY_HEAD 2019-02-04 16:41:11 +09:00
syuilo
0ae1190c08 Add --disable-queue option 2019-02-04 13:37:50 +09:00
syuilo
d3b3426ebe Enable job queue
Resolve #3216
2019-02-04 13:35:58 +09:00
syuilo
4982ea8f14 Add --verbose option 2019-02-04 12:14:07 +09:00
syuilo
3be89e9702 Better logging 2019-02-04 12:09:59 +09:00
syuilo
4275af2324 Make Logger#log method private 2019-02-04 11:51:23 +09:00
syuilo
84d42be090 Fix MongoDB connectivity checking 2019-02-04 11:48:59 +09:00
syuilo
c4c7783691 [Server] Enable slow option 2019-02-04 10:03:49 +09:00
syuilo
d6dba7fd71 Update dependencies 🚀 2019-02-04 09:56:48 +09:00
syuilo
30b1b1a5ed Fix imports 2019-02-04 09:37:15 +09:00
dependabot[bot]
90b6688057 Update apexcharts requirement from 2.5.1 to 3.2.1 (#4124)
Updates the requirements on [apexcharts](https://github.com/apexcharts/apexcharts.js) to permit the latest version.
- [Release notes](https://github.com/apexcharts/apexcharts.js/releases)
- [Changelog](https://github.com/apexcharts/apexcharts.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/apexcharts/apexcharts.js/commits/v3.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-04 09:29:47 +09:00
syuilo
b536ee4dcd Add collaborators credit 2019-02-04 09:09:45 +09:00
syuilo
11101a6aca Better error log of WebFinger 2019-02-04 09:06:13 +09:00
syuilo
b4a3e5aa4f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-04 09:02:27 +09:00
syuilo
874c0eae6a Better error log of WebFinger 2019-02-04 09:02:23 +09:00
dependabot[bot]
9950b6fbc6 Update tslint-sonarts requirement from 1.8.0 to 1.9.0 (#3978)
Updates the requirements on [tslint-sonarts](https://github.com/SonarSource/SonarTS) to permit the latest version.
- [Release notes](https://github.com/SonarSource/SonarTS/releases)
- [Commits](https://github.com/SonarSource/SonarTS/commits/v1.9.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-04 07:16:01 +09:00
syuilo
42d6ed62f6 New translations ja-JP.yml (English) (#4120) 2019-02-04 07:01:19 +09:00
Acid Chicken (硫酸鶏)
c7e8c27ce6 Fix bug
C#っぽく使ってしまっていた。
2019-02-04 02:14:18 +09:00
Acid Chicken (硫酸鶏)
67792fcb5e Update load.ts 2019-02-04 02:09:41 +09:00
Acid Chicken (硫酸鶏)
353fc18f19 Merge branch 'develop' into acid-chicken-patch-10 2019-02-04 02:06:46 +09:00
Acid Chicken (硫酸鶏)
cf9e8ed39e Update load.ts 2019-02-04 02:06:08 +09:00
syuilo
beb1b570d4 New translations ja-JP.yml (Polish) (#4119) 2019-02-04 01:52:39 +09:00
syuilo
ba1b5a8ede Update README.md 2019-02-04 01:51:01 +09:00
Acid Chicken (硫酸鶏)
99d8d0a484 Create type definition for '*/const.json' (#4118) 2019-02-04 01:47:12 +09:00
Acid Chicken (硫酸鶏)
5891135ac1 Create type definition for ./locales (#4117) 2019-02-04 01:46:59 +09:00
Acid Chicken (硫酸鶏)
c4f7491322 Revert "Create new type definition for 'is-url' (#4013)"
This reverts commit 014b58cb40.
2019-02-04 01:30:33 +09:00
syuilo
206b57b962 New translations ja-JP.yml (Polish) (#4116) 2019-02-04 01:22:37 +09:00
syuilo
1b0e03704e New translations ja-JP.yml (Polish) (#4115) 2019-02-04 01:13:39 +09:00
Acid Chicken (硫酸鶏)
8b71006fbe Bye 'is-url' 2019-02-04 00:09:24 +09:00
Aya Morisawa
8f2f4b6d2d Add missing semicolons 2019-02-03 23:52:46 +09:00
Acid Chicken (硫酸鶏)
6e0c055faf Module 'jsdom' as import syntax (#4016) 2019-02-03 23:49:00 +09:00
Acid Chicken (硫酸鶏)
893a3b527d Create type definition for 'os-utils' (#4050) 2019-02-03 23:41:27 +09:00
Acid Chicken (硫酸鶏)
fe13c17fcb Create type definition for 'langmap' (#4059)
* Create type definition for 'langmap'

* Follow lint
2019-02-03 23:41:05 +09:00
Acid Chicken (硫酸鶏)
5049870b6e Create type definition for 'koa-slow' (#4072) 2019-02-03 23:01:03 +09:00
Acid Chicken (硫酸鶏)
ce576dea8f Create type definition for 'recaptcha-promise' (#4068) 2019-02-03 22:21:55 +09:00
Acid Chicken (硫酸鶏)
ceda3dd72a Create new type definition for 'escape-regexp' (#4058) 2019-02-03 22:21:47 +09:00
Acid Chicken (硫酸鶏)
014b58cb40 Create new type definition for 'is-url' (#4013)
* Create new type definition for 'is-url'

* [Client] Resolve #3638

* 10.79.1

* New translations ja-JP.yml (Korean)

* Add missing semicolon

* Remove file-loader from dependencies (#4025)

* Update README.md [AUTOGEN] (#4028)

* Update README.md [AUTOGEN] (#4030)

* Add visibility test (#4029)

* Update ws requirement from 6.1.2 to 6.1.3 (#4027)

Updates the requirements on [ws](https://github.com/websockets/ws) to permit the latest version.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits/6.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Module 'web-push' as import syntax (#4017)

* Fix visibility test (#4031)

* Upgrade gulp version to 4.0.0

* Prevent typescript errors from crashing

* Remove duplicated dependencies

* Use parallel and task to specify dependencies

* Sort tasks by topological ordering

* リプライ/メンションされていれば非フォロワーへのフォロワー限定でも参照可能に (#4033)

* 非メンション/リプライ投稿がmentionsにあるかどうかはvisibilityと関係ないので削除

* リプライ/メンションされていれば非フォロワーでも参照可能に

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

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

* Fix #4034 (#4037)

* Fix #4034

* improve

* Module 'crypto' as import syntax (#4011)

* Extract MFM normalize function

* Extract MFM types

* Rename html to toHtml

* Rename html-to-mfm to fromHtml

* Merge plainParser into mfm

* Extract parsePlain function

* Rename analyze to parse in MFM tests

* Update @types/mongodb requirement from 3.1.18 to 3.1.19 (#4041)

Updates the requirements on [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update vue-svg-inline-loader requirement from 1.2.7 to 1.2.10 (#4040)

Updates the requirements on [vue-svg-inline-loader](https://github.com/oliverfindl/vue-svg-inline-loader) to permit the latest version.
- [Release notes](https://github.com/oliverfindl/vue-svg-inline-loader/releases)
- [Commits](https://github.com/oliverfindl/vue-svg-inline-loader/commits/v1.2.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Avoid export default

* Rename parser to language

* Fix import

* Introduce silence (#4043)

* Introduce silence

* Fix icon

* delete unnecessary key (#4045)

* delete unnecessary key

* Add note

* Update CHANGELOG.md

* [ActivityPub] Use microformats on mentions

To avoid pointless link previews.
see: https://misskey.xyz/notes/5c51ab5c2d85f2003248eddc

* Create type definition for '*/package.json' (#4014)

* Create type definition for '*/package.json'

* Update tsconfig.json

* Update index.ts

* Create type definition for 'is-root' (#4001)

* Update @types/sharp requirement from 0.21.0 to 0.21.1

Updates the requirements on [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Add multiline math syntax

Co-authored-by: syuilo <syuilotan@yahoo.co.jp>

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

* Create type definition for 'is-root'

* [MFM] Add spin syntax

Resolve #4003

* [MFM] Add flip syntax

Resolve #4002

* Fix test

* Update CHANGELOG.md

* 10.79.0

* Update @fortawesome/free-regular-svg-icons requirement (#3963)

Updates the requirements on [@fortawesome/free-regular-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.6.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update @types/webpack requirement from 4.4.21 to 4.4.24 (#3976)

Updates the requirements on [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update @types/js-yaml requirement from 3.11.4 to 3.12.0 (#3977)

Updates the requirements on [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update debug requirement from 4.1.0 to 4.1.1 (#3964)

Updates the requirements on [debug](https://github.com/visionmedia/debug) to permit the latest version.
- [Release notes](https://github.com/visionmedia/debug/releases)
- [Commits](https://github.com/visionmedia/debug/commits/4.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* [MFM] spinの中でflipを使えるように

* Add jump syntax (#4007)

* Add jump syntax

* Fix typo: spin -> jump

* Fix typo

* [MFM] Resolve #4009

* Module 'nprogress' as import syntax (#4012)

* 🎨

* [Client] Fix #4008

* Use yarn instead of npm on CircleCI

* touch yarn.lock

* [Client] Resolve #3638

* 10.79.1

* New translations ja-JP.yml (Korean)

* Add missing semicolon

* Remove file-loader from dependencies (#4025)

* Update README.md [AUTOGEN] (#4028)

* Update README.md [AUTOGEN] (#4030)

* Add visibility test (#4029)

* Update ws requirement from 6.1.2 to 6.1.3 (#4027)

Updates the requirements on [ws](https://github.com/websockets/ws) to permit the latest version.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits/6.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Module 'web-push' as import syntax (#4017)

* Fix visibility test (#4031)

* Upgrade gulp version to 4.0.0

* Prevent typescript errors from crashing

* Remove duplicated dependencies

* Use parallel and task to specify dependencies

* Sort tasks by topological ordering

* リプライ/メンションされていれば非フォロワーへのフォロワー限定でも参照可能に (#4033)

* 非メンション/リプライ投稿がmentionsにあるかどうかはvisibilityと関係ないので削除

* リプライ/メンションされていれば非フォロワーでも参照可能に

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

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

* Fix #4034 (#4037)

* Fix #4034

* improve

* Module 'crypto' as import syntax (#4011)

* Extract MFM normalize function

* Extract MFM types

* Rename html to toHtml

* Rename html-to-mfm to fromHtml

* Merge plainParser into mfm

* Extract parsePlain function

* Rename analyze to parse in MFM tests

* Update @types/mongodb requirement from 3.1.18 to 3.1.19 (#4041)

Updates the requirements on [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update vue-svg-inline-loader requirement from 1.2.7 to 1.2.10 (#4040)

Updates the requirements on [vue-svg-inline-loader](https://github.com/oliverfindl/vue-svg-inline-loader) to permit the latest version.
- [Release notes](https://github.com/oliverfindl/vue-svg-inline-loader/releases)
- [Commits](https://github.com/oliverfindl/vue-svg-inline-loader/commits/v1.2.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Avoid export default

* Rename parser to language

* Fix import

* Introduce silence (#4043)

* Introduce silence

* Fix icon

* Update is-root.d.ts

* Update index.ts

* Create type definition for 'is-root'

* Update is-root.d.ts

* Update index.ts

* Fix path

refs: 7e3a8d56e6

* Re-fix path

refs: 4bb4903ee5, 7e3a8d56e6

*  Do not import as pack from AP renderer  (#4048)

* Do not import as pack from AP renderer

* rename

* Simplify MFM (#4046)

* [MFM] Make some syntax block

Resolve #3508

* [MFM] Better syntax parsing

Allow nesting by same tag

* [Client] MFMの制限を緩和

* 🎨

* Update CHANGELOG.md

* 10.80.0

* Update is-url.d.ts
2019-02-03 22:21:36 +09:00
syuilo
b4859be098 Improve log readability 2019-02-03 21:42:52 +09:00
syuilo
df54da9510 Fix type declaretion 2019-02-03 20:32:46 +09:00
syuilo
b97f788d71 Display version in logo 2019-02-03 20:31:35 +09:00
syuilo
edd1baa9f4 🎨 2019-02-03 20:23:53 +09:00
syuilo
4a23ebe534 Refactoring 2019-02-03 20:10:20 +09:00
MeiMei
64c1075b06 Remember the media playback volume (#4089)
* Remember the media playback volume

* fix
2019-02-03 19:33:23 +09:00
syuilo
217e4ee39c New translations ja-JP.yml (Korean) (#4110) 2019-02-03 19:13:56 +09:00
Acid Chicken (硫酸鶏)
7e2a7cdff8 Update README.md [AUTOGEN] (#4111) 2019-02-03 19:13:41 +09:00
syuilo
e1fb4f23f0 10.81.0 2019-02-03 18:41:41 +09:00
syuilo
452fb8e496 Improve usability 2019-02-03 18:40:50 +09:00
Acid Chicken (硫酸鶏)
6758b0f133 Update Dockerfile (#4090)
* Update Dockerfile

* Fix indent
2019-02-03 18:30:47 +09:00
syuilo
35e509850f Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-03 18:17:05 +09:00
syuilo
0868c3517f Use internal logger instead of debug/console for logging
Resolve #4104
Resolve #1966
Resolve #1937
2019-02-03 18:16:57 +09:00
Acid Chicken (硫酸鶏)
1cd839215b Fix typo 2019-02-03 18:03:58 +09:00
Acid Chicken (硫酸鶏)
42be09ad33 Fix typo 2019-02-03 18:01:09 +09:00
Acid Chicken (硫酸鶏)
bcb7ee8d2a Hotfix build fails
refs: https://github.com/vuejs/vue-cli/issues/3407#issuecomment-459985313
2019-02-03 18:00:56 +09:00
syuilo
3a5867b324 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-03 17:14:02 +09:00
syuilo
efe2a6be14 Better logging 2019-02-03 17:09:16 +09:00
Acid Chicken (硫酸鶏)
11f30b0444 Use yarn instead of npm 2019-02-03 16:57:36 +09:00
syuilo
75558add17 Better logging 2019-02-03 16:45:13 +09:00
syuilo
ca91709801 Revert "Revert "Merge pull request #4098 from syuilo/dependabot/npm_and_yarn/@fortawesome/fontawesome-svg-core-1.2.14""
This reverts commit 45b905df6a.
2019-02-03 14:55:58 +09:00
syuilo
45b905df6a Revert "Merge pull request #4098 from syuilo/dependabot/npm_and_yarn/@fortawesome/fontawesome-svg-core-1.2.14"
This reverts commit 7f6bb75f95, reversing
changes made to cefecd7903.
2019-02-03 14:49:41 +09:00
syuilo
32a0cd4b13 Display Misskey logo when misskey launched 🎨 2019-02-03 14:05:01 +09:00
syuilo
0b2571858f More logs 2019-02-03 13:52:21 +09:00
syuilo
08eb3851da Merge branches 'develop' and 'develop' of https://github.com/syuilo/misskey into develop 2019-02-03 13:51:32 +09:00
syuilo
0bd0fb9fbf Include worker information for each logs 2019-02-03 13:51:24 +09:00
syuilo
9beab05a30 Make more importance for env log 2019-02-03 13:51:00 +09:00
syuilo
3b3ef20e0a New Crowdin translations (#4105)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (Chinese Simplified)
2019-02-03 13:22:39 +09:00
syuilo
3441acf56c Improve usability 2019-02-03 05:06:23 +09:00
syuilo
189f9f6592 Close #4093 2019-02-03 04:50:40 +09:00
syuilo
6071fc7077 Better log 2019-02-03 04:43:43 +09:00
Acid Chicken (硫酸鶏)
2f215ea34c Use is syntax (#4079) 2019-02-03 04:31:03 +09:00
syuilo
c44c777976 Update CHANGELOG.md 2019-02-03 04:27:45 +09:00
MeiMei
7d2f0a1f31 Fix: URLプレビューのthumbnailで()を含むURLを提示されると表示できない (#4103)
* Fix: URLプレビューのthumbnailで()を含むURLを提示されると表示できない

* remove debug
2019-02-03 04:26:58 +09:00
syuilo
15eca04bc4 🎨 2019-02-03 04:20:35 +09:00
syuilo
238c6a428b [Server] Use logger for logging 2019-02-03 04:18:27 +09:00
syuilo
110eeb89f1 Clean up 2019-02-03 04:18:09 +09:00
syuilo
278e43e9ba [Server] Use logger for logging 2019-02-03 04:04:57 +09:00
syuilo
d55277e57e Better logging 2019-02-03 02:01:06 +09:00
syuilo
f53a93ea13 Better logger 2019-02-03 01:39:42 +09:00
syuilo
a3e37294e5 Better logs 2019-02-03 01:33:34 +09:00
syuilo
05baa89508 Refactoring of logger 2019-02-03 01:24:59 +09:00
syuilo
80aa45372a Better logger 2019-02-03 01:20:21 +09:00
syuilo
a91f95451a Fix logger 2019-02-03 01:07:14 +09:00
syuilo
122ef23e0f Remove unnecessary log 2019-02-03 01:04:38 +09:00
syuilo
cd9d67389a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-03 01:01:54 +09:00
syuilo
52d6ec2138 Refatoring of logger 2019-02-03 01:01:40 +09:00
dependabot[bot]
a5725c1d04 Merge pull request #4102 from syuilo/dependabot/npm_and_yarn/gulp-imagemin-5.0.3 2019-02-02 15:59:21 +00:00
dependabot[bot]
db8ad3c035 Merge pull request #4101 from syuilo/dependabot/npm_and_yarn/vue-i18n-8.8.0 2019-02-02 15:56:02 +00:00
dependabot[bot]
a0957f2e50 Merge pull request #4100 from syuilo/dependabot/npm_and_yarn/systeminformation-3.54.0 2019-02-02 15:47:56 +00:00
dependabot[bot]
301b8f5e13 Update elasticsearch requirement from 15.3.0 to 15.3.1 (#4085)
Updates the requirements on [elasticsearch](https://github.com/elastic/elasticsearch-js) to permit the latest version.
- [Release notes](https://github.com/elastic/elasticsearch-js/releases)
- [Changelog](https://github.com/elastic/elasticsearch-js/blob/v15.3.1/docs/changelog.asciidoc)
- [Commits](https://github.com/elastic/elasticsearch-js/commits/v15.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-03 00:45:18 +09:00
dependabot[bot]
7f6bb75f95 Merge pull request #4098 from syuilo/dependabot/npm_and_yarn/@fortawesome/fontawesome-svg-core-1.2.14 2019-02-02 15:44:00 +00:00
dependabot[bot]
9be47df10e Update gulp-imagemin requirement from 4.1.0 to 5.0.3
Updates the requirements on [gulp-imagemin](https://github.com/sindresorhus/gulp-imagemin) to permit the latest version.
- [Release notes](https://github.com/sindresorhus/gulp-imagemin/releases)
- [Commits](https://github.com/sindresorhus/gulp-imagemin/commits/v5.0.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-02 15:40:08 +00:00
dependabot[bot]
bec014da4a Update vue-i18n requirement from 8.7.0 to 8.8.0
Updates the requirements on [vue-i18n](https://github.com/kazupon/vue-i18n) to permit the latest version.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/commits/v8.8.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-02 15:39:47 +00:00
dependabot[bot]
cefecd7903 Update cafy requirement from 12.0.0 to 12.1.0 (#4099)
Updates the requirements on [cafy](https://github.com/syuilo/cafy) to permit the latest version.
- [Release notes](https://github.com/syuilo/cafy/releases)
- [Changelog](https://github.com/syuilo/cafy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/syuilo/cafy/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-03 00:35:30 +09:00
dependabot[bot]
52cb043185 Update sharp requirement from 0.21.1 to 0.21.3 (#4097)
Updates the requirements on [sharp](https://github.com/lovell/sharp) to permit the latest version.
- [Release notes](https://github.com/lovell/sharp/releases)
- [Changelog](https://github.com/lovell/sharp/blob/master/docs/changelog.md)
- [Commits](https://github.com/lovell/sharp/commits/v0.21.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-03 00:35:03 +09:00
dependabot[bot]
3a440dd116 Update systeminformation requirement from 3.52.2 to 3.54.0
Updates the requirements on [systeminformation](https://github.com/sebhildebrandt/systeminformation) to permit the latest version.
- [Release notes](https://github.com/sebhildebrandt/systeminformation/releases)
- [Changelog](https://github.com/sebhildebrandt/systeminformation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sebhildebrandt/systeminformation/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-02 15:33:49 +00:00
dependabot[bot]
8ae1039c77 Update @fortawesome/fontawesome-svg-core requirement
Updates the requirements on [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-02 15:30:23 +00:00
syuilo
190eb0601f New Crowdin translations (#4096)
* 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)
2019-02-03 00:15:50 +09:00
MeiMei
84931003ea Fix video thumbnails (#4095)
* Fix video thumbnails

* Fix import
2019-02-02 23:30:34 +09:00
syuilo
2b0cb6d728 [Client] Resolve #3226 2019-02-02 23:20:40 +09:00
syuilo
4ea7e711ce [Client] Improve usability
Resolve #4094
2019-02-02 22:59:11 +09:00
syuilo
2a50997a75 Fallback en-US 2019-02-02 16:16:31 +09:00
syuilo
d692d531d1 Fix indent 2019-02-02 13:57:26 +09:00
syuilo
e325410649 [Server] Remove unnecessarily property 2019-02-02 13:50:41 +09:00
syuilo
eea2b97ae5 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-02 13:47:26 +09:00
syuilo
6b53e9ed29 [Client] Fix #4086 2019-02-02 13:47:12 +09:00
syuilo
9ae3e7bdab New translations ja-JP.yml (Chinese Simplified) (#4087) 2019-02-02 13:42:34 +09:00
syuilo
3905129eae New Crowdin translations (#4044)
* 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 (Polish)

* New translations ja-JP.yml (Polish)

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

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

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

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

* New translations ja-JP.yml (Korean)

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

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

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

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

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

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

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

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

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

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

* New translations ja-JP.yml (English)

* 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 (Korean)

* New translations ja-JP.yml (English)

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

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

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

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

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

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

* New translations ja-JP.yml (Chinese Simplified)
2019-02-02 13:39:48 +09:00
syuilo
6b4e417cc7 Update CHANGELOG.md 2019-02-02 13:24:41 +09:00
MeiMei
3040700005 Generate video thumbnails (#4084)
* Generate video thumbnails

* import order
2019-02-02 13:22:09 +09:00
syuilo
170b1bb4cc Downgrade webpack to avoid build error
See https://github.com/webpack/webpack/issues/8656
2019-02-02 02:00:00 +09:00
Acid Chicken (硫酸鶏)
da1a238be3 Create new type definition for 'ms' (#4057)
* Create new type definition for 'ms'

* Follow lint
2019-02-02 00:16:27 +09:00
MeiMei
9c106022ae Fix #3871 (#4082) 2019-02-01 21:37:34 +09:00
Acid Chicken (硫酸鶏)
bab1dc1d97 Create type definition for 'koa-json-body' (#4056)
* Create type definition for 'koa-json-body'

* Follow lint
2019-02-01 21:08:58 +09:00
Acid Chicken (硫酸鶏)
3b30ad5404 Create type definition for 'nested-property' (#4004)
* Create type definition for 'nested-property'

* Follow lint
2019-02-01 21:08:49 +09:00
dependabot[bot]
27268fd6b7 Update @fortawesome/free-regular-svg-icons requirement (#4076)
Updates the requirements on [@fortawesome/free-regular-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.7.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-01 20:03:11 +09:00
Acid Chicken (硫酸鶏)
00f9c824d1 リモートの外部サービス認証情報を表示する (#4047)
* Update user.vue

* Update ja-JP.yml

* Fix path

refs: 7e3a8d56e6

* Update user.vue

* Update ja-JP.yml

* Re-fix path

refs: 4bb4903ee5, 7e3a8d56e6

* Update user.vue

* Update ja-JP.yml

* Update ja-JP.yml

* Fix sentence a little
2019-02-01 20:02:10 +09:00
Acid Chicken (硫酸鶏)
40e177fa96 Create type definition for 'http-signature' (#4049)
* Create type definition for 'http-signature'

* Follow lint
2019-02-01 19:59:12 +09:00
Acid Chicken (硫酸鶏)
2f72c38516 Create type definition for 'deepcopy' (#4000) 2019-02-01 19:56:16 +09:00
Acid Chicken (硫酸鶏)
2dc4696b0a Module '@koa/cors' as import syntax (#4060) 2019-02-01 19:46:18 +09:00
Acid Chicken (硫酸鶏)
723d5baed5 Module 'parse5' as import syntax (#4015) 2019-02-01 19:41:13 +09:00
dependabot[bot]
341838b502 Update webpack requirement from 4.28.4 to 4.29.0 (#4077)
Updates the requirements on [webpack](https://github.com/webpack/webpack) to permit the latest version.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/commits/v4.29.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-02-01 12:17:15 +09:00
syuilo
72efa278b3 Update CHANGELOG.md 2019-02-01 10:02:02 +09:00
syuilo
5fe9f2baee Improve performance 2019-02-01 10:00:36 +09:00
MeiMei
c7ebf6f990 Hide suspended users (#4075) 2019-02-01 09:57:51 +09:00
syuilo
9bf9519b8f Fix path 2019-02-01 00:17:15 +09:00
syuilo
6c57690359 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-02-01 00:09:36 +09:00
syuilo
3a03010ee2 Refactoring 2019-02-01 00:09:28 +09:00
Acid Chicken (硫酸鶏)
ba4dcc40da Create type definition for '*/meta.json' (#4073) 2019-02-01 00:00:54 +09:00
syuilo
1b0601b421 Update CHANGELOG.md 2019-01-31 23:53:20 +09:00
Acid Chicken (硫酸鶏)
e2bf0067b2 Module 'request-stats' as import syntax (#4071) 2019-01-31 23:46:15 +09:00
Acid Chicken (硫酸鶏)
6d004fde7c Module 'uuid' as import syntax (#4070) 2019-01-31 23:45:12 +09:00
Acid Chicken (硫酸鶏)
f35547f3b8 API modules as import syntax (#4069) 2019-01-31 23:32:58 +09:00
MeiMei
c34a278533 おすすめのアンケートでミュートユーザーのものは表示しない (#4067) 2019-01-31 23:14:45 +09:00
syuilo
6d3408ae73 [Client] Add information 2019-01-31 20:55:40 +09:00
MeiMei
a6e7bbc306 send/receive user hashtags via AP (#4064) 2019-01-31 20:42:45 +09:00
dependabot[bot]
d140548784 Update @types/koa-router requirement from 7.0.38 to 7.0.39 (#4052)
Updates the requirements on [@types/koa-router](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-31 17:54:19 +09:00
Acid Chicken (硫酸鶏)
76569bfb08 Create type definition for 'lookup-dns-cache' (#4051) 2019-01-31 17:53:49 +09:00
Acid Chicken (硫酸鶏)
bbcdf1bb8a Create type definition for 'promise-any' (#4055) 2019-01-31 17:52:27 +09:00
Acid Chicken (硫酸鶏)
6439a6c63f Create type definition for 'webfinger.js' (#4054) 2019-01-31 17:52:17 +09:00
dependabot[bot]
76fe1c21c3 Update gulp-yaml requirement from 2.0.2 to 2.0.3 (#4053)
Updates the requirements on [gulp-yaml](https://github.com/crissdev/gulp-yaml) to permit the latest version.
- [Release notes](https://github.com/crissdev/gulp-yaml/releases)
- [Changelog](https://github.com/crissdev/gulp-yaml/blob/master/CHANGELOG.md)
- [Commits](https://github.com/crissdev/gulp-yaml/commits/2.0.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-31 17:46:42 +09:00
syuilo
4f99b98ed8 Revert b515cc90e9 2019-01-31 17:42:36 +09:00
syuilo
7cb38f5525 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-01-31 17:38:24 +09:00
syuilo
734277d9f6 [Server] Resolve #4062 2019-01-31 17:37:57 +09:00
Acid Chicken (硫酸鶏)
960d4e2e7b Close #3380 (#4061)
* Delete index.ts

* Delete emoji.ts

* Update index.ts
2019-01-31 17:30:56 +09:00
syuilo
33eb91c0f0 [Test] Disable some tests temporary 2019-01-31 17:15:14 +09:00
syuilo
6f1e47f0b3 [Test] Better tests 2019-01-31 15:19:59 +09:00
syuilo
0a8488a78c Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-01-31 15:10:33 +09:00
syuilo
57ab640221 Fix typo 2019-01-31 15:10:27 +09:00
Acid Chicken (硫酸鶏)
3c4682782c Add 'src/@types' to typeRoots 2019-01-31 14:40:06 +09:00
syuilo
dc820ffba6 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2019-01-31 14:31:31 +09:00
syuilo
e4c745bccd [Test] Add MFM test 2019-01-31 14:31:25 +09:00
Acid Chicken (硫酸鶏)
a05c94437c Make type definition for 'is-root' better 2019-01-31 13:42:13 +09:00
syuilo
fdcc994291 10.80.0 2019-01-31 12:27:44 +09:00
syuilo
f54363076c Update CHANGELOG.md 2019-01-31 12:26:56 +09:00
syuilo
ec016e5a95 🎨 2019-01-31 12:24:21 +09:00
syuilo
bbdb2496a4 [Client] MFMの制限を緩和 2019-01-31 12:24:14 +09:00
syuilo
b515cc90e9 [MFM] Better syntax parsing
Allow nesting by same tag
2019-01-31 12:23:45 +09:00
syuilo
bb92158dff [MFM] Make some syntax block
Resolve #3508
2019-01-31 12:10:48 +09:00
Aya Morisawa
c652add16a Simplify MFM (#4046) 2019-01-31 12:06:13 +09:00
MeiMei
b8a7468c4a Do not import as pack from AP renderer (#4048)
* Do not import as pack from AP renderer

* rename
2019-01-31 02:29:35 +09:00
Acid Chicken (硫酸鶏)
e220ef3e75 Re-fix path
refs: 4bb4903ee5, 7e3a8d56e6
2019-01-31 01:38:52 +09:00
Acid Chicken (硫酸鶏)
4bb4903ee5 Fix path
refs: 7e3a8d56e6
2019-01-31 01:26:11 +09:00
Acid Chicken (硫酸鶏)
9487840ae3 Create type definition for 'is-root' (#4001)
* Update @types/sharp requirement from 0.21.0 to 0.21.1

Updates the requirements on [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Add multiline math syntax

Co-authored-by: syuilo <syuilotan@yahoo.co.jp>

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

* Create type definition for 'is-root'

* [MFM] Add spin syntax

Resolve #4003

* [MFM] Add flip syntax

Resolve #4002

* Fix test

* Update CHANGELOG.md

* 10.79.0

* Update @fortawesome/free-regular-svg-icons requirement (#3963)

Updates the requirements on [@fortawesome/free-regular-svg-icons](https://github.com/FortAwesome/Font-Awesome) to permit the latest version.
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/master/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/commits/5.6.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update @types/webpack requirement from 4.4.21 to 4.4.24 (#3976)

Updates the requirements on [@types/webpack](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update @types/js-yaml requirement from 3.11.4 to 3.12.0 (#3977)

Updates the requirements on [@types/js-yaml](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update debug requirement from 4.1.0 to 4.1.1 (#3964)

Updates the requirements on [debug](https://github.com/visionmedia/debug) to permit the latest version.
- [Release notes](https://github.com/visionmedia/debug/releases)
- [Commits](https://github.com/visionmedia/debug/commits/4.1.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* [MFM] spinの中でflipを使えるように

* Add jump syntax (#4007)

* Add jump syntax

* Fix typo: spin -> jump

* Fix typo

* [MFM] Resolve #4009

* Module 'nprogress' as import syntax (#4012)

* 🎨

* [Client] Fix #4008

* Use yarn instead of npm on CircleCI

* touch yarn.lock

* [Client] Resolve #3638

* 10.79.1

* New translations ja-JP.yml (Korean)

* Add missing semicolon

* Remove file-loader from dependencies (#4025)

* Update README.md [AUTOGEN] (#4028)

* Update README.md [AUTOGEN] (#4030)

* Add visibility test (#4029)

* Update ws requirement from 6.1.2 to 6.1.3 (#4027)

Updates the requirements on [ws](https://github.com/websockets/ws) to permit the latest version.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits/6.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Module 'web-push' as import syntax (#4017)

* Fix visibility test (#4031)

* Upgrade gulp version to 4.0.0

* Prevent typescript errors from crashing

* Remove duplicated dependencies

* Use parallel and task to specify dependencies

* Sort tasks by topological ordering

* リプライ/メンションされていれば非フォロワーへのフォロワー限定でも参照可能に (#4033)

* 非メンション/リプライ投稿がmentionsにあるかどうかはvisibilityと関係ないので削除

* リプライ/メンションされていれば非フォロワーでも参照可能に

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

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

* Fix #4034 (#4037)

* Fix #4034

* improve

* Module 'crypto' as import syntax (#4011)

* Extract MFM normalize function

* Extract MFM types

* Rename html to toHtml

* Rename html-to-mfm to fromHtml

* Merge plainParser into mfm

* Extract parsePlain function

* Rename analyze to parse in MFM tests

* Update @types/mongodb requirement from 3.1.18 to 3.1.19 (#4041)

Updates the requirements on [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Update vue-svg-inline-loader requirement from 1.2.7 to 1.2.10 (#4040)

Updates the requirements on [vue-svg-inline-loader](https://github.com/oliverfindl/vue-svg-inline-loader) to permit the latest version.
- [Release notes](https://github.com/oliverfindl/vue-svg-inline-loader/releases)
- [Commits](https://github.com/oliverfindl/vue-svg-inline-loader/commits/v1.2.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>

* Avoid export default

* Rename parser to language

* Fix import

* Introduce silence (#4043)

* Introduce silence

* Fix icon

* Update is-root.d.ts

* Update index.ts

* Create type definition for 'is-root'

* Update is-root.d.ts

* Update index.ts
2019-01-31 01:09:52 +09:00
Acid Chicken (硫酸鶏)
7e3a8d56e6 Update index.ts 2019-01-31 01:09:36 +09:00
Acid Chicken (硫酸鶏)
e909eac296 Create type definition for '*/package.json' (#4014)
* Create type definition for '*/package.json'

* Update tsconfig.json
2019-01-31 01:08:43 +09:00
syuilo
8dc7f28744 [ActivityPub] Use microformats on mentions
To avoid pointless link previews.
see: https://misskey.xyz/notes/5c51ab5c2d85f2003248eddc
2019-01-30 22:57:32 +09:00
syuilo
a4b1e8ca26 Update CHANGELOG.md 2019-01-30 22:44:36 +09:00
MeiMei
79b0cc6785 delete unnecessary key (#4045)
* delete unnecessary key

* Add note
2019-01-30 21:31:45 +09:00
syuilo
00b134ce1e Introduce silence (#4043)
* Introduce silence

* Fix icon
2019-01-30 17:25:56 +09:00
Aya Morisawa
b3fc4dc00f Fix import 2019-01-30 17:15:12 +09:00
Aya Morisawa
d06fbbe3ea Rename parser to language 2019-01-30 17:04:49 +09:00
Aya Morisawa
28bfb45426 Avoid export default 2019-01-30 16:56:27 +09:00
dependabot[bot]
1c60a49c96 Update vue-svg-inline-loader requirement from 1.2.7 to 1.2.10 (#4040)
Updates the requirements on [vue-svg-inline-loader](https://github.com/oliverfindl/vue-svg-inline-loader) to permit the latest version.
- [Release notes](https://github.com/oliverfindl/vue-svg-inline-loader/releases)
- [Commits](https://github.com/oliverfindl/vue-svg-inline-loader/commits/v1.2.10)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-30 16:06:45 +09:00
dependabot[bot]
3ae8ff083b Update @types/mongodb requirement from 3.1.18 to 3.1.19 (#4041)
Updates the requirements on [@types/mongodb](https://github.com/DefinitelyTyped/DefinitelyTyped) to permit the latest version.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-30 16:06:28 +09:00
Aya Morisawa
c12ccb2a15 Rename analyze to parse in MFM tests 2019-01-30 15:30:05 +09:00
Aya Morisawa
e3b1d00e4c Extract parsePlain function 2019-01-30 15:27:54 +09:00
Aya Morisawa
98795aad9a Merge plainParser into mfm 2019-01-30 15:12:48 +09:00
Aya Morisawa
ca26edbfce Rename html-to-mfm to fromHtml 2019-01-30 15:00:05 +09:00
Aya Morisawa
3058e8f354 Rename html to toHtml 2019-01-30 14:57:13 +09:00
Aya Morisawa
4c9b66b0f0 Extract MFM types 2019-01-30 14:51:30 +09:00
Aya Morisawa
6eb9ba31bf Extract MFM normalize function 2019-01-30 14:21:36 +09:00
Acid Chicken (硫酸鶏)
5bbf4187e6 Module 'crypto' as import syntax (#4011) 2019-01-30 11:51:29 +09:00
syuilo
f2425f71c2 Merge pull request #4020 from syuilo/l10n_develop
New Crowdin translations
2019-01-30 11:50:55 +09:00
MeiMei
b0e00da2f7 Fix #4034 (#4037)
* Fix #4034

* improve
2019-01-29 20:33:28 +09:00
syuilo
215472cd17 New translations ja-JP.yml (Chinese Simplified) 2019-01-29 18:33:13 +09:00
syuilo
072fd4455e New translations ja-JP.yml (Chinese Simplified) 2019-01-29 18:22:34 +09:00
MeiMei
2ed9e26a4f リプライ/メンションされていれば非フォロワーへのフォロワー限定でも参照可能に (#4033)
* 非メンション/リプライ投稿がmentionsにあるかどうかはvisibilityと関係ないので削除

* リプライ/メンションされていれば非フォロワーでも参照可能に
2019-01-29 17:34:43 +09:00
Aya Morisawa
8a3e26cdb8 Sort tasks by topological ordering 2019-01-29 17:10:16 +09:00
Aya Morisawa
7301671962 Use parallel and task to specify dependencies 2019-01-29 17:10:16 +09:00
Aya Morisawa
0d0f25818e Remove duplicated dependencies 2019-01-29 17:10:16 +09:00
Aya Morisawa
7850d68dc2 Prevent typescript errors from crashing 2019-01-29 17:10:16 +09:00
Aya Morisawa
f0f5b32300 Upgrade gulp version to 4.0.0 2019-01-29 17:10:16 +09:00
MeiMei
1ca0976e85 Fix visibility test (#4031) 2019-01-29 15:16:11 +09:00
Acid Chicken (硫酸鶏)
7fbfd17896 Module 'web-push' as import syntax (#4017) 2019-01-29 14:36:24 +09:00
dependabot[bot]
3d04f7db62 Update ws requirement from 6.1.2 to 6.1.3 (#4027)
Updates the requirements on [ws](https://github.com/websockets/ws) to permit the latest version.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits/6.1.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2019-01-29 14:35:34 +09:00
MeiMei
e301630c9d Add visibility test (#4029) 2019-01-29 13:46:24 +09:00
Acid Chicken (硫酸鶏)
afbccaae41 Update README.md [AUTOGEN] (#4030) 2019-01-29 13:42:28 +09:00
Acid Chicken (硫酸鶏)
893c01c207 Update README.md [AUTOGEN] (#4028) 2019-01-29 05:55:21 +09:00
Aya Morisawa
41c80097ce Remove file-loader from dependencies (#4025) 2019-01-28 18:04:30 +09:00
Aya Morisawa
250933fff3 Add missing semicolon 2019-01-28 17:49:20 +09:00
syuilo
bc9454f67c New translations ja-JP.yml (Korean) 2019-01-28 00:51:55 +09:00
598 changed files with 13356 additions and 8636 deletions

View File

@@ -2,7 +2,7 @@
# __MISSKEY_BEARER_TOKEN=
# __MISSKEY_CAMPAIGN_ID=
# __MISSKEY_GITHUB_TOKEN=
# __MISSKEY_HEAD=acid-chicken:patch-autogen
# __MISSKEY_HEAD=syuilo: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 -f check_pr.jq | grep $__MISSKEY_HEAD)" && exit 1

View File

@@ -2,6 +2,11 @@ version: 2.1
executors:
default:
working_directory: /tmp/workspace
docker:
- image: misskey/ci:latest
- image: circleci/mongo:latest
with-redis:
working_directory: /tmp/workspace
docker:
- image: misskey/ci:latest
@@ -11,20 +16,8 @@ executors:
working_directory: /tmp/workspace
docker:
- image: docker:latest
alpine:
working_directory: /tmp/workspace
docker:
- image: alpine:latest
jobs:
ok:
executor: alpine
steps:
- run:
name: OK
command: |
echo -e '\033[0;32mOK\033[0;39m'
build:
executor: default
steps:
@@ -44,8 +37,7 @@ jobs:
- run:
name: Install Dependencies
command: |
npm install
npm prune
yarn install
- run:
name: Configure
command: |
@@ -54,8 +46,6 @@ jobs:
- run:
name: Build
command: |
yarn install
yarn autoclean
yarn build
touch yarn.lock
- save_cache:
@@ -63,18 +53,19 @@ jobs:
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
paths:
- node_modules
# - store_artifacts:
# path: built
- persist_to_workspace:
root: .
paths:
- .
test:
parameters:
without_redis:
executor:
type: string
default: ""
executor: default
default: "default"
without_redis:
type: boolean
default: false
executor: <<parameters.executor>>
steps:
- attach_workspace:
at: /tmp/workspace
@@ -97,12 +88,11 @@ jobs:
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
paths:
- node_modules
docker:
parameters:
with_deploy:
type: string
default: ""
type: boolean
default: false
executor: docker
steps:
- checkout
@@ -129,42 +119,76 @@ jobs:
workflows:
version: 2
build-and-test:
nodejs:
jobs:
- ok:
- hold:
name: manual-build-trigger
type: approval
filters:
branches:
only:
- l10n_develop
- imgbot
ignore: master
- build:
name: manual-build
requires:
- manual-build-trigger
filters:
branches:
ignore:
- l10n_develop
- imgbot
- test:
requires:
- build
filters:
branches:
ignore:
# - master
- l10n_develop
- imgbot
- test:
without_redis: "true"
requires:
- build
ignore: master
- build:
name: auto-build
filters:
branches:
only: master
# - docker:
# filters:
# branches:
# ignore: master
- test:
name: manual-test-with-redis
executor: with-redis
requires:
- manual-build
filters:
branches:
ignore: master
- test:
name: auto-test-without-redis
executor: with-redis
requires:
- auto-build
filters:
branches:
only: master
- test:
name: manual-test-with-redis
without_redis: true
requires:
- manual-build
filters:
branches:
ignore: master
- test:
name: auto-test-without-redis
without_redis: true
requires:
- auto-build
filters:
branches:
only: master
docker:
jobs:
- hold:
name: manual-build-trigger
type: approval
filters:
branches:
ignore: master
- docker:
with_deploy: "true"
name: manual-build
requires:
- manual-build-trigger
filters:
branches:
ignore: master
- docker:
name: auto-build
with_deploy: true
filters:
branches:
only: master

View File

@@ -6,6 +6,8 @@ mongodb:
db: misskey
user: syuilo
pass: ''
drive:
storage: 'db'
redis:
host: localhost
port: 6379

View File

@@ -6,6 +6,8 @@ mongodb:
db: test-misskey
user: admin
pass: ''
drive:
storage: 'db'
# __REDIS__
redis:
host: localhost

View File

@@ -108,5 +108,8 @@ autoAdmin: true
# port: 9200
# pass: null
# Whether disable HSTS
#disableHsts: true
# Clustering
#clusterLimit: 1

View File

@@ -1,22 +1,30 @@
---
name: Bug Report
about: Create a report to help us improve
title: ''
labels: bug
assignees: ''
---
# Summary
<!-- Tell us what the bug is -->
# Expected Behavior
<!--- Tell us what should happen -->
# Actual Behavior
<!--- Tell us what happens instead of the expected behavior -->
# Steps to Reproduce
1.
2.
3.
# Environment
<!-- Tell us where on the platform it happens -->
<!-- e.g. desktop or mobile version, your browser, your OS -->

View File

@@ -0,0 +1,31 @@
---
name: Client-side Bug Report
about: Create a report to help us improve
title: ''
labels: bug, client-side
assignees: ''
---
# Summary
<!-- Tell us what the bug is -->
# Expected Behavior
<!--- Tell us what should happen -->
# Actual Behavior
<!--- Tell us what happens instead of the expected behavior -->
# Steps to Reproduce
1.
2.
3.
# Environment
<!-- Tell us where on the platform it happens -->
<!-- e.g. desktop or mobile version, your browser, your OS -->

View File

@@ -0,0 +1,31 @@
---
name: Server-side Bug Report
about: Create a report to help us improve
title: ''
labels: bug, server-side
assignees: ''
---
# Summary
<!-- Tell us what the bug is -->
# Expected Behavior
<!--- Tell us what should happen -->
# Actual Behavior
<!--- Tell us what happens instead of the expected behavior -->
# Steps to Reproduce
1.
2.
3.
# Environment
<!-- Tell us where on the platform it happens -->
<!-- e.g. your Node.js version, your OS -->

View File

@@ -0,0 +1,12 @@
---
name: Feature Request
about: Suggest an idea for this project
title: ''
labels: feature
assignees: ''
---
# Summary
<!-- Tell us what the suggestion is -->

View File

@@ -0,0 +1,12 @@
---
name: Client-side Feature Request
about: Suggest an idea for this project
title: ''
labels: client-side, feature
assignees: ''
---
# Summary
<!-- Tell us what the suggestion is -->

View File

@@ -0,0 +1,12 @@
---
name: Server-side Feature Request
about: Suggest an idea for this project
title: ''
labels: feature, server-side
assignees: ''
---
# Summary
<!-- Tell us what the suggestion is -->

View File

@@ -1,11 +0,0 @@
---
name: Feature Request
about: Suggest an idea for this project
---
# Summary
<!-- Tell us what the suggestion is -->
# Environment
<!-- Tell us where on the platform it related -->
<!-- e.g. desktop or mobile version, your browser, your OS -->

View File

@@ -1,6 +1,159 @@
ChangeLog
=========
10.87.5
----------
* モバイル版でも連携サービスを表示するように
* webfingerのacceptが反映されない問題を修正
* 返信が遷移後も残り続ける問題を修正
* デザインの調整
10.87.4
----------
* フォローリクエストを許可するときにエラーになる問題を修正
* デザインの調整
10.87.3
----------
* 開発モードでビルドしてもスクリプトが404になる問題を修正
* 拡張子判別だとアイコンやバナー設定で対応していないと表示される問題を修正
* フォローリクエスト数がおかしい場合の応急処置APIを追加
* デザインの調整
10.87.2
----------
* みつけるの人気のタグを第2ソートで連合含めたユーザー数にしたりユーザーのタグ以外は除外するように
* デザインの調整
10.87.1
----------
* ハッシュタグ検索で大文字小文字が区別されてしまう問題を修正
10.87.0
----------
* ハッシュタグでユーザー検索できるように
* Exploreページに新規ユーザー一覧を追加
* デッキ使用中にホーム扱いで開かれた時にタイムラインボタン等がない問題を修正
* デッキ使用中に / 以外でリロードした際にホームモードになる問題を修正
10.86.2
----------
* 別タブでルートより下を開いたときにはデッキにしないように
* 横のナビゲーションバーの改善
* MIDIファイルがオーディオ扱いになる問題を修正
* ミュートワードで正規表現を使えるように
* デッキで無効になったタイムラインに警告を表示するように
* デザインの調整
* その他細かな修正
10.86.1
----------
* ナビゲーションバーの「ホーム」を「タイムライン」に改称
* モバイル版でユーザーページが二重に描画される問題を修正
* ユーザー一覧の「もっと読み込む」の動作がおかしい問題を修正
* デザインの調整
10.86.0
----------
* Exploreページを実装
* UIを改良
* その他細かな修正
10.85.2
----------
* デッキから フォロー/フォロワー ページに行けるように
* ナビゲーションが発生したときに最上部までスクロールように
* 検索結果でページ遷移が発生する問題を修正
* デザインの調整
10.85.1
----------
* ローカルのみ投稿をログイン画面のタイムラインに表示しないように
* ナビゲーションバーを横にしてるとデッキに行けない問題を修正
10.85.0
----------
* デスクトップ版のUIを改良
* 投稿ハイライトページを実装
* 無効化されているタイムラインのフォールバック
* 既にフォローされている場合はフォローリクエストを生成しないように
* その他細かな修正
10.84.2
----------
* GIF画像にGIFバッジを表示
* よく話すユーザーからサスペンドされたユーザーを隠すなど
* nodeinfoが重い問題を修正
* ハッシュタグクラウド取得が重い問題を軽減
10.84.1
----------
* deckにフォローされていますマークを追加
* URLプレビューのサムネイルの調整
* 管理画面でサイレンスされているユーザーを一覧できるように
* ドキュメントにアクセスできない問題を修正
* ジョブキューを無効化
* 軽微なバグ修正
10.84.0
----------
* インスタンス管理の強化
* パフォーマンスの問題の修正
* バグ修正
10.83.0
----------
* 特定のインスタンスをブロックをできるように
* 特定のインスタンスからのフォローを全解除できるように
* インスタンスごとのチャートを追加
10.82.4
----------
* 10.82.3でオブジェクトストレージの設定をしていると起動しなくなるバグを修正
10.82.3
----------
* フォロー/ミュート/ブロックデータをエクスポート可能に
* バグ修正
* デザインの調整
* ジョブキューの動作を修正
10.82.2
----------
* ジョブキューの動作を修正
10.82.1
----------
* クラスタリング環境でのジョブキューの動作を修正
* その他の軽微な改善
10.82.0
----------
* 自分の投稿情報をエクスポートできるように
* アニメーションする画像を再生しないで表示するオプションを実装
* 個別に投稿のウォッチ/ウォッチ解除をできるように
10.81.0
----------
* 動画のサムネイルを作成するように
* リモートの外部サービス認証情報を表示するように
* public の Renote/Reply/Quote先 が public以外 だったら、public => homeに
* ユーザーページから管理者/モデレーターがアカウントのサイレンス/凍結をできるように
* 凍結されたユーザーをタイムライン等に表示しないように
* おすすめのアンケートでミュートユーザーのものは表示しないように
* おすすめのアンケートで凍結済みユーザーのものは表示しないように
* 画像でないファイルのサムネイルとしてオリジナルファイルを返してしまうのを修正
* URLプレビューのサムネイルが表示されない場合がある問題を修正
* ダークモードで読みにくいボタンがあるのを修正
10.80.0
----------
* サイレンス機能の追加
* リプライ/メンションされていれば非フォロワーへのフォロワー限定でも参照可能に
* MFMの解析を強化
* Misskey以外のインスタンスからMisskeyの投稿を見たときに改行が多い問題を修正
* Misskey以外のインスタンスからMisskeyの投稿を見たときにメンションのURLが展開されるのを修正
10.79.1
----------
* jump構文の追加

View File

@@ -44,3 +44,31 @@ Stands for _**S**ervice**W**orker_.
#### Denyaize
Nyaizeを解除すること
## Code style
### Don't use `export default`
Bad:
``` ts
export default function(foo: string): string {
```
Good:
``` ts
export function something(foo: string): string {
```
## Directory structure
```
src ... ソースコード
@types ... 外部ライブラリなどの型定義
prelude ... Misskeyに関係ないかつ副作用なし
misc ... 副作用なしのユーティリティ処理
service ... 副作用ありの共通処理
queue ... ジョブキューとジョブ
server ... Webサーバー
client ... クライアント
mfm ... MFM
test ... テスト
```

View File

@@ -8,7 +8,6 @@ WORKDIR /misskey
FROM base AS builder
RUN unlink /usr/bin/free
RUN apk add --no-cache \
autoconf \
automake \
@@ -20,22 +19,20 @@ RUN apk add --no-cache \
make \
nasm \
pkgconfig \
procps \
python \
zlib-dev
RUN npm i -g node-gyp
COPY ./package.json ./
RUN npm i
RUN npm i -g yarn
COPY . ./
RUN node-gyp configure \
&& node-gyp build \
&& npm run build
RUN yarn install
RUN yarn build
FROM base AS runner
RUN apk add --no-cache tini
RUN apk add --no-cache \
ffmpeg \
tini
RUN npm i -g web-push
ENTRYPOINT ["/sbin/tini", "--"]
COPY --from=builder /misskey/node_modules ./node_modules

View File

@@ -3,9 +3,9 @@
[![Misskey](/assets/title.png)](https://misskey.xyz/)
================================================================
[![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge)](https://circleci.com/gh/syuilo/misskey)
[![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge)](https://david-dm.org/syuilo/misskey)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge)](http://makeapullrequest.com)
[![CircleCI](https://img.shields.io/circleci/project/github/syuilo/misskey.svg?style=for-the-badge&logo=circleci)](https://circleci.com/gh/syuilo/misskey)
[![Dependencies](https://img.shields.io/david/syuilo/misskey.svg?style=for-the-badge&logo=npm)](https://david-dm.org/syuilo/misskey)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=for-the-badge&logo=github)](http://makeapullrequest.com)
**A forever evolving, sophisticated microblogging platform.**
@@ -61,6 +61,18 @@ Organize and store your files! Want to post a picture you have already uploaded?
...and more! Experience Misskey with your own eyes at [misskey.xyz](https://misskey.xyz) or join one of the [other instances](https://joinmisskey.github.io/) that are available.
Screen shots
----------------------------------------------------------------
### Profile page
<img src="/assets/ss/user.jpg" width="500px"/>
### Explore users
<img src="/assets/ss/explore.jpg" width="500px"/>
:new: What's new
----------------------------------------------------------------
Please see the [Release notes](./CHANGELOG.md).
:package: Create your own instance
----------------------------------------------------------------
Please see the [Setup and Installation Guide](./docs/setup.en.md).
@@ -85,22 +97,22 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
</tr>
</table>
:heart: Backers & Sponsors
:heart: Backers
----------------------------------------------------------------
<!-- PATREON_START -->
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/1?token-time=2145916800&token-hash=WeuDzzz24cRXJogyIkU-mxARqkdyms-rcZKbO-GpGjw%3D" alt="weep" width="100"></td>
<td><img src="https://c8.patreon.com/2/200/12059069" alt="naga_rus" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=prtYqPOiSHBulhM7NU0VzMaWx39-9ntdq25b6kafDNA%3D" alt="negao" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/3?token-time=2145916800&token-hash=c8HeVqLtmdgH-gSBJg8i10gmOcwllM87MDHeznl3el0%3D" alt="Melilot" width="100"></td>
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/3?token-time=2145916800&token-hash=LtV2lRi3L2jOWMLwccr9qWYfPrFlzIo2jYZHKzHEb6k%3D" alt="Xeltica" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=Ch3iF81ZGP0LMo894Y9ajpLisgtE91SnxtZE7fxsgrM%3D" alt="べすれい" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=1FlxS9MEgmNGH_RHUVHbO5hIXB5I1z0lvA33CTvYvjA%3D" alt="gutfuckllc" width="100"></td>
</tr><tr>
<td><a href="https://www.patreon.com/weepjp">weep</a></td>
<td><a href="https://www.patreon.com/user?u=12059069">naga_rus</a></td>
<td><a href="https://www.patreon.com/negao">negao</a></td>
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ</a></td>
<td><a href="https://www.patreon.com/Xeltica">Xeltica</a></td>
<td><a href="https://www.patreon.com/user?u=3384329">べすれい</a></td>
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
@@ -111,20 +123,22 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=2PsbFNw0tnubZzgSXD01R6hIgncfiElG7H7HX2Y3dyo%3D" alt="nemu" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=9JtETp0X8gI280Ne1E8bxn6j4Lw5o2k4mJkICx97V_k%3D" alt="YUKIMOCHI" width="100"></td>
<td><img src="https://c8.patreon.com/2/200/17463605" alt="Sampot" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17195955/be45e5e14c3e48b2bee0456c84e19df4/4?token-time=2145916800&token-hash=SbdZeN5SmsuT9stD6v0jN1z0hftg0FmRiCTxysU0Ihw%3D" alt="Damillora" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/3?token-time=2145916800&token-hash=gMq30aylxu5v3G8pRhWR5jeRBbYWEoRKjGbNeiCQz5g%3D" alt="Acid Chicken" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/2?token-time=2145916800&token-hash=zcwFxb2zopzWwksKVU1YpfAEjsl4yKT02aQ6yiAFRiQ%3D" alt="natalie" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=5T8XcaAf9Zyzfg3QubR06s_kJZkArVEM2dwObrBVAU4%3D" alt="Hiratake" width="100"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=ubVARikVOg3v7NW6LDhtG-ClE1LTU3I2TJ3js2-5xDs%3D" alt="Naoki Hirayama" width="100"></td>
</tr><tr>
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</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=16542964">Takumi Sugita</a></td>
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
<td><a href="https://www.patreon.com/user?u=17463605">Sampot</a></td>
<td><a href="https://www.patreon.com/damillora">Damillora</a></td>
<td><a href="https://www.patreon.com/acid_chicken">Acid Chicken</a></td>
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
<td><a href="https://www.patreon.com/spinlock">Naoki Hirayama</a></td>
</tr></table>
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=Ksk_2l3gjPDbnzMUOCSW1E-hdPJsNs2tSR4_RAakRK8%3D" alt="dansup" width="100"></td>
@@ -138,7 +152,7 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
</tr></table>
**Last updated:** Mon, 21 Jan 2019 06:45:06 UTC
**Last updated:** Fri, 15 Feb 2019 19:12:06 UTC
<!-- PATREON_END -->
:four_leaf_clover: Copyright

BIN
assets/ss/explore.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

BIN
assets/ss/user.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

View File

@@ -29,15 +29,15 @@ Please install and setup these softwares:
* [Redis](https://redis.io/)
* Redis is optional, but we strongly recommended to install it
* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature
* [FFmpeg](https://www.ffmpeg.org/)
*3.* Setup MongoDB
----------------------------------------------------------------
As root:
1. `mongo` Go to the mongo shell
2. `use misskey` Use the misskey database
3. `db.users.save( {dummy:"dummy"} )` Write dummy data to initialize the db.
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Create the misskey user.
5. `exit` You're done !
3. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Create the misskey user.
4. `exit` You're done!
*4.* Install Misskey
----------------------------------------------------------------
@@ -55,6 +55,11 @@ As root:
*6.* Build Misskey
----------------------------------------------------------------
Before build, you need to set `NODE_ENV` to `production`. like this:
* Linux: `export NODE_ENV=production`
* Windows (PowerShell): `$env:NODE_ENV="production"`
* Windows (CMD): `set NODE_ENV=production`
Build misskey with the following:
`npm run build`

View File

@@ -29,15 +29,15 @@ Installez les paquets suivants :
* [Redis](https://redis.io/)
* Redis est optionnel mais nous vous recommandons vivement de l'installer
* [Elasticsearch](https://www.elastic.co/) - requis pour pouvoir activer la fonctionnalité de recherche
* [FFmpeg](https://www.ffmpeg.org/)
*3.* Paramètrage de MongoDB
----------------------------------------------------------------
En root :
1. `mongo` Ouvrez le shell mongo
2. `use misskey` Utilisez la base de données misskey
3. `db.users.save( {dummy:"dummy"} )` Écrivez une donnée factice pour initialiser la base de données.
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Créez l'utilisateur misskey.
5. `exit` Vous avez terminé !
3. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` Créez l'utilisateur misskey.
4. `exit` Vous avez terminé !
*4.* Installation de Misskey
----------------------------------------------------------------

View File

@@ -32,18 +32,19 @@ adduser --disabled-password --disabled-login misskey
* 具体的には、Redisをインストールしないと、次の事が出来なくなります:
* Misskeyプロセスを複数起動しての負荷分散
* レートリミット
* ジョブキュー
* Twitter連携
* [Elasticsearch](https://www.elastic.co/)
* 検索機能を有効にするためにはインストールが必要です。
* [FFmpeg](https://www.ffmpeg.org/)
*3.* MongoDBの設定
----------------------------------------------------------------
ルートで:
1. `mongo` mongoシェルを起動
2. `use misskey` misskeyデータベースを使用
3. `db.users.save( {dummy:"dummy"} )` ダミーデータを書き込みDBを初期化
4. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` misskeyユーザーを作成
5. `exit` mongoシェルを終了
3. `db.createUser( { user: "misskey", pwd: "<password>", roles: [ { role: "readWrite", db: "misskey" } ] } )` misskeyユーザーを作成
4. `exit` mongoシェルを終了
*4.* Misskeyのインストール
----------------------------------------------------------------
@@ -61,6 +62,11 @@ adduser --disabled-password --disabled-login misskey
*6.* Misskeyのビルド
----------------------------------------------------------------
ビルドする前に、`NODE_ENV``production`にする必要があります。例:
* Linux: `export NODE_ENV=production`
* Windows (PowerShell): `$env:NODE_ENV="production"`
* Windows (CMD): `set NODE_ENV=production`
次のコマンドでMisskeyをビルドしてください:
`npm run build`
@@ -116,6 +122,8 @@ CentOSで1024以下のポートを使用してMisskeyを使用する場合は`Ex
4. `npm run build`
5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
なにか問題が発生した場合は、`npm run clean`すると直る場合があります。
----------------------------------------------------------------
なにかお困りのことがありましたらお気軽にご連絡ください。

View File

@@ -32,14 +32,6 @@ if (isDebug) {
console.warn(chalk.yellow.bold(' built script will not be compressed.'));
}
gulp.task('build', [
'build:ts',
'build:copy',
'build:client',
'locales',
'doc'
]);
gulp.task('build:ts', () => {
const tsProject = ts.createProject('./tsconfig.json');
@@ -47,6 +39,7 @@ gulp.task('build:ts', () => {
.src()
.pipe(sourcemaps.init())
.pipe(tsProject())
.on('error', () => {})
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: '../built' }))
.pipe(gulp.dest('./built/'));
});
@@ -55,7 +48,7 @@ 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', gulp.parallel('build:copy:views', () =>
gulp.src([
'./build/Release/crypto_key.node',
'./src/const.json',
@@ -63,9 +56,7 @@ gulp.task('build:copy', ['build:copy:views'], () =>
'./src/**/assets/**/*',
'!./src/client/app/**/assets/**/*'
]).pipe(gulp.dest('./built/'))
);
gulp.task('test', ['mocha']);
));
gulp.task('lint', () =>
gulp.src('./src/**/*.ts')
@@ -92,22 +83,15 @@ gulp.task('mocha', () =>
} as any))
);
gulp.task('test', gulp.task('mocha'));
gulp.task('clean', cb =>
rimraf('./built', cb)
);
gulp.task('cleanall', ['clean'], cb =>
gulp.task('cleanall', gulp.parallel('clean', cb =>
rimraf('./node_modules', cb)
);
gulp.task('default', ['build']);
gulp.task('build:client', [
'build:ts',
'build:client:script',
'build:client:styles',
'copy:client'
]);
));
gulp.task('build:client:script', () => {
const client = require('./built/client/meta.json');
@@ -129,9 +113,7 @@ gulp.task('build:client:styles', () =>
.pipe(gulp.dest('./built/client/assets/'))
);
gulp.task('copy:client', [
'build:client:script'
], () =>
gulp.task('copy:client', () =>
gulp.src([
'./assets/**/*',
'./src/client/assets/**/*',
@@ -156,3 +138,19 @@ gulp.task('doc', () =>
.pipe((cssnano as any)())
.pipe(gulp.dest('./built/docs/assets/'))
);
gulp.task('build:client', gulp.parallel(
'build:client:script',
'build:client:styles',
'copy:client'
));
gulp.task('build', gulp.parallel(
'build:ts',
'build:copy',
'build:client',
'locales',
'doc'
));
gulp.task('default', gulp.task('build'));

1
index.js Normal file
View File

@@ -0,0 +1 @@
require('./built');

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -56,6 +58,14 @@ common:
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "日"
monday: "月"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、やっていってください。"
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{}票"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "リバーシ"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -5,7 +5,7 @@ meta:
common:
misskey: "Ein ⭐ des Fediversums"
about-title: "Ein ⭐ des Fediversums."
about: "Misskeyを見つけていただき、ありがとうございます。Misskeyは、地球で生まれた<b>分散マイクロブログSNS</b>です。Fediverse(様々なSNSで構成される宇宙)の中に存在するため、他のSNSと相互に繋がっています。暫し都会の喧騒から離れて、新しいインターネットにダイブしてみませんか。"
about: "Danke, dass Du Misskey gefunden hast. Misskey ist eine <b>dezentralisierte Microblogging-Plattform</b>, welche auf der ganzen Welt verteilt ist. Da es innerhalb es Fediversums existiert (ein Universum, in dem verschiedene Soziale Netzwerke organisiert sind), ist es unmittelbar mit anderen sozialen Netzwerken verbunden. Warum nimmst du dir nicht einmal eine Auszeit von dem Trubel der Stadt und tauchst in das neue Internet hinein?"
intro:
title: "Was ist Misskey?"
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
@@ -25,9 +25,11 @@ common:
application-authorization: "Autorisierte Anwendungen"
close: "Schließen"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
load-more: "Mehr laden"
enter-password: "Bitte Passwort eingeben"
2fa: "Zwei-Faktor-Authentifizierung"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "Verstanden!"
customization-tips:
title: "Anpassung-Tipps"
@@ -54,8 +56,16 @@ common:
years_ago: "vor {} Jahr(en)"
month-and-day: "{day}/{month}"
trash: "Papierkorb"
drive: "ドライブ"
messaging: "トーク"
drive: "Drive"
messaging: "Unterhaltungen"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "So"
monday: "Mo"
@@ -91,9 +101,9 @@ common:
followers-desc: "Nur für diejenigen sichtbar, die dir folgen"
specified: "Direkt"
specified-desc: "Nur für bestimmte Benutzer posten"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
local-public: "Öffentlich (nur lokal)"
local-home: "Home (nur lokal)"
local-followers: "Follower (nur lokal)"
note-placeholders:
a: "Was machst du gerade?"
b: "Was ist so passiert?"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "Verifizierter Benutzer"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "Dies ist eine Entwicklungsversion. Nicht in einer Produktionsumgebung verwenden."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -171,18 +182,18 @@ common:
hashtags: "Hashtags"
dev: "Fehler beim Erstellen der Applikation. Bitte versuche es erneut."
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
you: "Du"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
account-read: "アカウントの情報を見る。"
account-write: "アカウントの情報を操作する。"
share-access: "Erlaubst Du <i>{name}</i> auf deinen Account zuzugreifen?"
permission-ask: "Diese Applikation benötigt folgende Berechtigungen:"
account-read: "Accountinformationen anzeigen."
account-write: "Accountinformationen bearbeiten."
note-write: "Senden."
like-write: "いいねしたりいいね解除する。"
following-write: "フォローしたりフォロー解除する。"
like-write: "Auf Beiträge reagieren."
following-write: "Folgen oder entfolgen."
drive-read: "ドライブを見る。"
drive-write: "ドライブを操作する。"
notification-read: "通知を見る。"
notification-read: "Siehe deine Benachrichtigungen."
notification-write: "Benachrichtigungen verwalten."
cancel: "Abbrechen"
accept: "Zugriff erlauben."
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Bitte gehe zurück zur Anwendung."
error: "Sitzung ist nicht vorhanden."
sign-in: "Bitte melde dich an."
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "Warten auf {}"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "Diese Notiz favorisieren"
unfavorite: "Aus Favoriten entfernen"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "An die Profilseite pinnen"
unpin: "ピン留め解除"
delete: "Löschen"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "Stimme für '{}'"
vote-count: "{} Stimmen"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "Du folgst niemanden"
desktop/views/components/friends-maker.vue:
title: "Wem folgen?"
empty: "Der ausgewählte Benutzer konnte nicht gefunden werden."
fetching: "Lade…"
refresh: "Mehr"
close: "Schließen"
desktop/views/components/game-window.vue:
game: "リバーシ"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Weitersagen fehlgeschlagen"
desktop/views/components/renote-form-window.vue:
title: "Bist du dir sicher, dass du das reposten willst?"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "Automatische Pop-out Fenster"
auto-popout-desc: "Pop-out ein offenes Fenster wenn möglich. Diese Einstellung wird im Browser gespeichert."
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "Erscheinungsbild und Anzeige"
customize: "Startseite anpassen"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Favoriten"
lists: "Listen"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "Einstellungen"
signout: "Ausloggen"
dark: "Verdunkeln"
desktop/views/components/ui.header.nav.vue:
home: "Home"
deck: "デッキ"
game: "Spielen"
desktop/views/components/ui.header.notifications.vue:
title: "Benachrichtigungen"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "Vorheriger Kommentar"
next: "Nächster Kommentar"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "Lade…"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "Favoriten"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "Schlagwörter"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -8,10 +8,10 @@ common:
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 an open-source <b>decentralized microblogging service</b>. Sophisticated fully customizable UI, varieties of reactions for posts, free file storage providing an integrated management system and other advanced functions are available. In addition, Misskey connects to a network system called the “Fediverse” enables us to communicate with users on other SNSs. For example, when you post something it will be sent not only to Misskey but also Mastodon and Pleroma. Just imagine that the planet is sending a radio transmission to other planet to communicate."
about: "Misskey is an open-source, <b>decentralized microblogging service</b>. Sophisticated, fully customizable UI, varieties of reactions for posts, free file storage providing an integrated management system and other advanced features are available. In addition, Misskey connects to a network system called the “Fediverse”, that enables us to communicate with users on other SNSs. For example, when you post something, it will be sent not only to Misskey, but also to Mastodon, Osada and Pleroma. Just imagine that the planet is sending a radio transmission to another planet to communicate."
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!"
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 videos, or create a poll - those are some of the things you can do with 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"
@@ -28,6 +28,8 @@ common:
load-more: "Load more"
enter-password: "Please enter the Password"
2fa: "Two-factor authentication"
customize-home: "Customize your home layout"
featured-notes: "Featured notes"
got-it: "Got it!"
customization-tips:
title: "Customization tips"
@@ -56,6 +58,14 @@ common:
trash: "Trash"
drive: "Drive"
messaging: "Talk"
deck: "Deck"
timeline: "Timeline"
explore: "Discover"
following: "Following"
followers: "Followers"
empty-timeline-info:
follow-users-to-make-your-timeline: "Following users will show their posts in your timeline."
explore: "Find users"
weekday-short:
sunday: "S"
monday: "M"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "Use avatar as a stone in reversi"
verified-user: "Verified account"
disable-animated-mfm: "Disable animated texts in a post"
disable-showing-animated-images: "Do not play animated images"
suggest-recent-hashtags: "Suggest recently used hashtags within the post composition area"
always-show-nsfw: "Always show NSFW contents"
always-mark-nsfw: "Always mark posts with media attachments as NSFW"
@@ -129,7 +140,7 @@ common:
show-password: "Show Password"
do-not-use-in-production: "This is a development build. Do not use in production."
user-suspended: "This user has been suspended."
is-remote-user: "This user's information is mirrored."
is-remote-user: "The information about this user may not be entirely complete."
is-remote-post: "These post contents are mirrored."
view-on-remote: "For completion, view it remotely."
renoted-by: "Renoted by {user}"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Please go back to the application."
error: "Session does not exist."
sign-in: "Please sign in."
common/views/pages/explore.vue:
verified-users: "Verified accounts"
popular-users: "Popular users"
recently-updated-users: "Recently active users"
recently-registered-users: "Users who joined recently"
popular-tags: "Popular Tags"
federated: "From the fediverse"
explore: "Explore {host}"
users-info: "Currently, {users} users are registered here"
common/views/components/user-list.vue:
no-users: "There are no users."
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "Waiting for {}"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "Copy link"
favorite: "Favorite this note"
unfavorite: "Unfavorite"
watch: "Watch"
unwatch: "Unwatch"
pin: "Pin to your profile"
unpin: "Unpin"
delete: "Delete"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "Report abuse"
report-abuse-detail: "What kind of nuisance did you encounter?"
report-abuse-reported: "The issue has been reported to the administrator. Your cooperation is much appreciated."
silence: "Mute"
unsilence: "Unmute"
suspend: "Suspend"
unsuspend: "Unsuspend"
common/views/components/poll.vue:
vote-to: "Vote for '{}'"
vote-count: "{} votes"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "Account"
location: "Location"
description: "About me"
you-can-include-hashtags: "You can also include hashtags in your profile description."
language: "Language"
birthday: "Birthday"
avatar: "Icon"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "Email Address"
email-verified: "Your email has been verified."
email-not-verified: "Email address is not confirmed. Please check your inbox."
export: "Export"
export-targets:
all-notes: "All posted Notes"
following-list: "List of followers"
mute-list: "List of muted accounts"
blocking-list: "List of blocked accounts"
export-requested: "You have requested an export. This may take a while. After the export is complete, the resulting file will be added to the drive."
common/views/components/user-list-editor.vue:
users: "User"
rename: "Rename list"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "Following {}"
desktop/views/components/following.vue:
empty: "It seems you don't have any following users…"
desktop/views/components/friends-maker.vue:
title: "Recommended users:"
empty: "Couldn't find any recommended users."
fetching: "Loading"
refresh: "More"
close: "Close"
desktop/views/components/game-window.vue:
game: "Reversi"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Failed to Repost"
desktop/views/components/renote-form-window.vue:
title: "Do you want to Repost it?"
desktop/views/components/timeline.core.vue:
empty: "Without any notes"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}'s following"
followers: "{user}'s follower"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "Example: https://www.google.com/?#q={{query}}"
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."
deck-nav: "Transitionless deck navigation"
deck-nav-desc: "You get a temporary column without page transitions during navigation when using the deck."
keep-cw: "Preserve content warning"
keep-cw-desc: "When replying to a post, the same content warning is set by default to the reply, as has been set by the original post."
deck-default: "Use Deck view as the default UI"
display: "Design and display"
customize: "Customize home layout"
wallpaper: "Wallpaper"
choose-wallpaper: "Choose a background"
delete-wallpaper: "Remove background"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Favorites"
lists: "Lists"
follow-requests: "Follow requests"
customize: "Customize home layout"
admin: "Admin"
settings: "Settings"
signout: "Sign out"
dark: "Toggle dark mode"
desktop/views/components/ui.header.nav.vue:
home: "Home"
deck: "Deck"
game: "Games"
desktop/views/components/ui.header.notifications.vue:
title: "Notifications"
@@ -967,7 +992,7 @@ desktop/views/components/received-follow-requests-window.vue:
reject: "Reject"
desktop/views/components/user-lists-window.vue:
title: "User lists"
create-list: "Create list"
create-list: "Create a list"
list-name: "List name"
desktop/views/components/user-preview.vue:
notes: "Posts"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "Announcements"
hashtags: "Hashtags"
abuse: "Abuse"
queue: "Job Queue"
back-to-misskey: "Back to Misskey"
admin/views/dashboard.vue:
dashboard: "Dashboard"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "Instances"
this-instance: "This instance"
federated: "Federated"
admin/views/queue.vue:
operation: "Action(s)"
remove-all-jobs: "Clear all queued jobs"
admin/views/abuse.vue:
title: "Abuse"
target: "Target"
@@ -1012,7 +1041,6 @@ admin/views/instance.vue:
instance-name: "Instance name"
instance-description: "Instance description"
host: "Host"
logo-url: "Logo image URL"
banner-url: "Banner image URL"
error-image-url: "Error image URL"
languages: "Language of this instance"
@@ -1073,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "Turn off STARTTLS when used that."
smtp-host: "SMTP Host"
smtp-port: "SMTP Port"
smtp-auth: "Perform SMTP authentication"
smtp-user: "SMTP User"
smtp-pass: "SMTP Password"
serviceworker-config: "ServiceWorker"
@@ -1100,7 +1129,7 @@ admin/views/charts.vue:
users: "The number of users: increase/decrease"
users-total: "Total users"
active-users: "Active users"
drive: "Capacity used as the storage: increase/decrease"
drive: "Increase and decrease in storage capacity use"
drive-total: "Total usage of Drive"
drive-files: "The number of files on the storage: increase/decrease"
drive-files-total: "Total number of files on Drive"
@@ -1143,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "Unsuspend"
unsuspend-confirm: "Are you sure you want to unsuspend this account?"
unsuspended: "The user has successfully unsuspended."
make-silence: "Mute"
unmake-silence: "Unmute"
verify: "Verify account"
verify-confirm: "Do you want this to be a verified account?"
verified: "The account is now being verified"
@@ -1166,6 +1197,7 @@ admin/views/users.vue:
moderator: "Moderator"
adminOrModerator: "Admin/Moderator"
verified: "Verified account"
silenced: "Already silenced"
suspended: "Suspended"
origin:
title: "Origin"
@@ -1213,6 +1245,64 @@ admin/views/announcements.vue:
removed: "Deleted"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "Federation"
host: "Host"
notes: "Notes"
users: "Users"
following: "Following"
followers: "Followers"
status: "Status"
latest-request-sent-at: "Time of last request sent"
latest-request-received-at: "Last request received at"
remove-all-following: "Withold all followers"
remove-all-following-info: "Unfollow all accounts from {host}. Please run this if the instance no longer exists."
block: "Block"
marked-as-closed: "Marked as closed"
lookup: "Look up"
instances: "Instances"
instance-not-registered: "The instance has not been discovered"
sort: "Sort by"
sorts:
caughtAtAsc: "Date of discovery (Ascending)"
caughtAtDesc: "Date of discovery (Descending)"
lastCommunicatedAtAsc: "The date and time of the older interactions"
lastCommunicatedAtDesc: "The date and time of the newer interactions"
notesAsc: "Order by least Notes posted"
notesDesc: "Order by most Notes posted"
usersAsc: "Less followers"
usersDesc: "More followers"
followingAsc: "Least followed"
followingDesc: "Has more followers"
followersAsc: "Sort by having less followers"
followersDesc: "Sort by the larger number of followers"
driveUsageAsc: "Least storage used"
driveUsageDesc: "Most storage used"
driveFilesAsc: "By the smallest number of files stored on Drive"
driveFilesDesc: "By the largest number of files stored on Drive"
state: "Status"
states:
all: "All"
blocked: "Blocked"
not-responding: "Without response"
marked-as-closed: "Marked as closed"
result-is-truncated: "Displaying the top {n} items."
charts: "Charts"
chart-srcs:
requests: "Requests"
users: "Increase, or decrease in the number of users"
users-total: "Total number of users"
notes: "Increase, or decrease in the number of notes"
notes-total: "Total number of notes"
ff: "Increase of followers"
ff-total: "Total number of follows accumulated"
drive-usage: "Increase and decrease in storage use"
drive-usage-total: "Total usage of the Drive"
drive-files: "Increase, or decrease in the number of files stored on Drive"
drive-files-total: "The number of files accumulated on Drive"
chart-spans:
hour: "Hourly"
day: "Daily"
desktop/views/pages/welcome.vue:
about: "More details..."
gotit: "Got it!"
@@ -1227,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "Information"
desktop/views/pages/drive.vue:
title: "Misskey storage"
desktop/views/pages/home-customize.vue:
title: "Customize home layout"
desktop/views/pages/note.vue:
prev: "Previous post"
next: "Next post"
@@ -1260,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "Photos"
loading: "Loading"
no-photos: "No photos"
desktop/views/pages/user/user.profile.vue:
follows-you: "Follows you"
menu: "Menu"
desktop/views/pages/user/user.header.vue:
posts: "Notes"
following: "Following"
followers: "Followers"
is-bot: "This account is a Bot"
no-description: "自己紹介はありません"
years-old: "{age} years old"
year: "/"
month: "/"
day: "-"
follows-you: "Follows you"
desktop/views/pages/user/user.timeline.vue:
default: "Posts"
with-replies: "Posts and replies"
@@ -1339,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "Pending"
follow-processing: "Processing"
follow-request: "Follow request"
mobile/views/components/friends-maker.vue:
title: "Let's follow them"
empty: "Featured user was not found."
fetching: "Loading"
refresh: "See more"
close: "Close"
mobile/views/components/note.vue:
private: "This post is private"
deleted: "This post has been deleted"
@@ -1402,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "It seems this user hasn't posted anything yet."
no-notes-with-media: "There are no notes with media attachments"
mobile/views/components/users-list.vue:
all: "All"
known: "In common"
mobile/views/pages/favorites.vue:
title: "Favorites"
mobile/views/pages/user-lists.vue:
@@ -1423,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "Global"
mentions: "Mentions"
messages: "Messages"
mobile/views/pages/home.timeline.vue:
empty: "Without any notes"
mobile/views/pages/tag.vue:
no-posts-found: "No posts contains \"{q}\" found."
mobile/views/pages/welcome.vue:
@@ -1464,7 +1544,7 @@ mobile/views/pages/settings.vue:
timeline: "Timeline"
show-reply-target: "Show reply target"
show-my-renotes: "Show my reposts"
show-renoted-my-notes: "Show renoted posts of mine"
show-renoted-my-notes: "Show the renotes of my posts"
show-local-renotes: "Show renoted local posts"
post-style: "Post design"
post-style-standard: "Standard"
@@ -1512,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "Activity"
keywords: "Keywords"
domains: "Domains"
frequently-replied-users: "Frequently mentioned users"
frequently-replied-users: "Frequent mentions"
followers-you-know: "Followers you know"
last-used-at: "Last active:"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "No users you know"
mobile/views/pages/user/home.friends.vue:
no-users: "There are no users that you know"
mobile/views/pages/user/home.notes.vue:
no-notes: "No notes"
mobile/views/pages/user/home.photos.vue:
@@ -1543,11 +1619,15 @@ deck:
rename: "Rename"
stack-left: "Stack to the left"
pop-right: "Dock on the right"
disabled-timeline:
title: "Timeline has been disabled"
description: "This timeline has been disabled by the server administrator."
deck/deck.tl-column.vue:
is-media-only: "Only media posts"
is-media-view: "Media view"
edit: "Options"
deck/deck.user-column.vue:
follows-you: "Follows you"
posts: "Posts"
following: "Following"
followers: "Followers"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "Autenticación de dos factores"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "¡Listo!"
customization-tips:
title: "Consejos de personalización"
@@ -56,6 +58,14 @@ common:
trash: "Papelera"
drive: "Drive"
messaging: "Conversación"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "domingo"
monday: "lunes"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "Cuenta verificada"
disable-animated-mfm: "Desactivar texto animado en una publicación"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "Esto está en desarrollo, no usarlo para producción."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Por favor, vuelve a la aplicación."
error: "Esta sesión no existe."
sign-in: "Por favor inicia sesión."
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "Esperando por {}"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "Copiar enlace"
favorite: "Me gusta esta nota"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "Fijar en el perfil"
unpin: "ピン留め解除"
delete: "Borrar"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "'{}' para votar"
vote-count: "{} votos"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "Cuenta"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "Avatar"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "Correo electrónico"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "Usuarios"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "Siguiendo {}"
desktop/views/components/following.vue:
empty: "Parece que aún no sigues a nadie."
desktop/views/components/friends-maker.vue:
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: "Reversi"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "La publicación ha fallado"
desktop/views/components/renote-form-window.vue:
title: "¿Seguro qué quieres volver a publicarlo?"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user} sigue a"
followers: "Seguidores de {user}"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "Ventana emergente automática"
auto-popout-desc: "Muestra una ventana emergente si es posible. Esta configuración depende del navegador."
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "Diseño y pantalla"
customize: "Personaliza la página principal"
wallpaper: "壁紙"
choose-wallpaper: "Elije un fondo"
delete-wallpaper: "Suprimir fondo"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
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: "Inicio"
deck: "Cubierta"
game: "Juegos"
desktop/views/components/ui.header.notifications.vue:
title: "Notificaciones"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "Hashtags"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Volver a Misskey"
admin/views/dashboard.vue:
dashboard: "Panel de Control"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "Instancias"
this-instance: "Esta instancia"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "Host SMTP"
smtp-port: "Puerto SMTP"
smtp-auth: "SMTP認証を行う"
smtp-user: "Usuario SMTP"
smtp-pass: "Contraseña SMTP"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "Charger plus"
enter-password: "Veuillez entrer le mot de passe"
2fa: "Authentification à deux facteurs"
customize-home: "Personnaliser la disposition de votre accueil"
featured-notes: "Les notes mises en avant"
got-it: "Jai compris !"
customization-tips:
title: "Conseils de personnalisation"
@@ -56,6 +58,14 @@ common:
trash: "Corbeille"
drive: "Drive"
messaging: "Conversations"
deck: "Deck"
timeline: "Fil"
explore: "Découvrir"
following: "Suit"
followers: "Abonné·e·s"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "Trouver des utilisateurs"
weekday-short:
sunday: "D"
monday: "L"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "Utiliser lavatar comme pion dans Reversi"
verified-user: "Compte vérifié"
disable-animated-mfm: "Désactiver les textes animés dans les publications"
disable-showing-animated-images: "Désactiver l'animation dans les images"
suggest-recent-hashtags: "Suggérer les hashtags récemment utilisés dans le champs de saisie"
always-show-nsfw: "Toujours afficher les contenus sensibles"
always-mark-nsfw: "Toujours marquer les notes ayant des attachements comme sensibles"
@@ -129,7 +140,7 @@ common:
show-password: "Afficher le mot de passe"
do-not-use-in-production: "Il sagit dune version de développement. Ne pas utiliser dans un environnement de production."
user-suspended: "Cet·te utilisateur·trice a été suspendu·e"
is-remote-user: "Ces informations appartiennent à un utilisateur distant."
is-remote-user: "Les informations à propos de ce compte peuvent être incomplètes."
is-remote-post: "Ceci est une publication distante."
view-on-remote: " Consulter le profil complet"
renoted-by: "Renoté par {user}"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Veillez retourner à l'application."
error: "La session nexiste pas."
sign-in: "Veuillez vous connecter"
common/views/pages/explore.vue:
verified-users: "Comptes vérifiés"
popular-users: "Utilisateurs populaires"
recently-updated-users: "Utilisateurs actifs récemment"
recently-registered-users: "Les nouveaux inscrits"
popular-tags: "Mots-clés populaires"
federated: "Du Fédiverse"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "En attente de {}"
@@ -333,7 +355,7 @@ common/views/components/nav.vue:
stats: "Statistiques"
status: "Statut"
wiki: "Wiki"
donors: "Donateurs"
donors: "Donateur·rice·s"
repository: "Dépôt"
develop: "Développeurs"
feedback: "Suggestions"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "Copier le lien"
favorite: "Mettre cette note en favoris"
unfavorite: "Retirer des favoris"
watch: "Surveiller"
unwatch: "Ne plus surveiller"
pin: "Épingler sur votre profil"
unpin: "Désépingler"
delete: "Supprimer"
@@ -360,10 +384,14 @@ common/views/components/user-menu.vue:
report-abuse: "Signaler un abus"
report-abuse-detail: "Détail du signalement"
report-abuse-reported: "Transmit à ladministrateur. Merci de votre collaboration."
silence: "Mettre en sourdine"
unsilence: "Enlever la sourdine"
suspend: "Suspendre"
unsuspend: "Ne plus suspendre"
common/views/components/poll.vue:
vote-to: "Voter pour '{}'"
vote-count: "{} votes"
total-users: "{} utilisateurs ont voté"
total-users: "{} utilisateur·rice·s ont voté"
vote: "Vote"
show-result: "Montrer les résultats"
voted: "Voté"
@@ -386,7 +414,7 @@ common/views/components/emoji-picker.vue:
symbols: "Symboles"
flags: "Drapeaux"
common/views/components/signin.vue:
username: "Nom d'utilisateur"
username: "Nom d'utilisateur·rice"
password: "Mot de passe"
token: "Jeton"
signing-in: "Connexion…"
@@ -399,7 +427,7 @@ common/views/components/signin.vue:
common/views/components/signup.vue:
invitation-code: "Code dinvitation"
invitation-info: "Si vous navez pas de code dinvitation, contactez un <a href=\"{}\">administrateur</a>."
username: "Nom d'utilisateur"
username: "Nom d'utilisateur·rice"
checking: "Vérification…"
available: "Disponible"
unavailable: "Non disponible"
@@ -432,7 +460,7 @@ common/views/components/notification-settings.vue:
mark-as-read-all-unread-notes: "Marquer toutes les notes comme lues"
mark-as-read-all-talk-messages: "Marquer toutes les conversations comme lues"
auto-watch: "投稿の自動ウォッチ"
auto-watch-desc: "リアクションしたり返信したりした投稿に関する通知を自動的に受け取るようにします。"
auto-watch-desc: "Recevoir automatiquement des notifications à propos des publications auxquelles vous avez réagi ou répondu"
common/views/components/integration-settings.vue:
title: "Intégrations"
connect: "Connecter"
@@ -458,8 +486,8 @@ common/views/components/visibility-chooser.vue:
public: "Public"
home: "Accueil"
home-desc: "Publier sur le fil dAccueil uniquement"
followers: "Abonnés"
followers-desc: "Publier à vos abonnés uniquement"
followers: "Abonné·e·s"
followers-desc: "Publier à vos abonné·e·s uniquement"
specified: "Direct"
specified-desc: "Publier uniquement aux utilisateurs mentionnés"
local-public: "Local (Public)"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "Compte"
location: "Lieu"
description: "À propos de moi"
you-can-include-hashtags: "Vous pouvez également inclure un hashtag sur votre description de profile."
language: "Langue"
birthday: "Date de naissance"
avatar: "Avatar"
@@ -501,8 +530,15 @@ common/views/components/profile-editor.vue:
email-address: "Adresse de courrier électronique"
email-verified: "Ladresse du courrier électronique a été vérifiée."
email-not-verified: "Adresse de courriel nest pas confirmée. Veuillez vérifier votre boite de réception."
export: "Exporter"
export-targets:
all-notes: "Toutes les notes publiées"
following-list: "Liste des abonnements"
mute-list: "Liste des comptes mis en sourdine"
blocking-list: "Liste des comptes bloqués"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "Utilisateur"
users: "Utilisateur·rice"
rename: "Renommer la liste"
delete: "Supprimer la liste"
remove-user: "Retirer de cette liste"
@@ -662,19 +698,13 @@ desktop/views/components/media-video.vue:
sensitive: "Le contenu est NSFW"
click-to-show: "Cliquer pour afficher"
desktop/views/components/followers-window.vue:
followers: "{} abonnés"
followers: "{} abonné·e·s"
desktop/views/components/followers.vue:
empty: "Il semble que vous n'avez pas encore d'abonnés."
empty: "Il semble que vous navez pas encore dabonné·e·s."
desktop/views/components/following-window.vue:
following: "Suit {}"
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."
fetching: "Chargement"
refresh: "Plus"
close: "Fermer"
desktop/views/components/game-window.vue:
game: "Reversi"
desktop/views/components/home.vue:
@@ -709,11 +739,11 @@ desktop/views/components/notes.vue:
desktop/views/components/notifications.vue:
empty: "Aucune de notification !"
desktop/views/components/post-form.vue:
add-visible-user: "+Ajouter un utilisateur"
add-visible-user: "+Ajouter un·e utilisateur·rice"
attach-location-information: "Attacher des informations de localisation"
hide-contents: "Masquer les contenus"
reply-placeholder: "Répondre à cette note…"
quote-placeholder: "Citer cette note…"
reply-placeholder: "Répondre à cette note …"
quote-placeholder: "Citer cette note …"
submit: "Publier"
reply: "Répondre"
renote: "Republier"
@@ -723,7 +753,7 @@ desktop/views/components/post-form.vue:
note-failed: "La note à échoué"
reply-failed: "La réponse a échoué"
renote-failed: "Échec lors de la republication"
posting: "Publication…"
posting: "Publication …"
attach-media-from-local: "Joindre un média depuis votre appareil"
attach-media-from-drive: "Joindre un média depuis votre Drive"
attach-cancel: "Annuler le fichier attaché"
@@ -736,8 +766,8 @@ desktop/views/components/post-form.vue:
visibility: "Visibilité"
geolocation-alert: "Votre appareil ne prend pas en charge les services de localisation"
error: "Erreur"
enter-username: "Saisir un nom d'utilisateur…"
annotations: "内容への注釈 (オプション)"
enter-username: "Saisir un nom d'utilisateur …"
annotations: "Commenter le contenu (optionnel)"
desktop/views/components/post-form-window.vue:
note: "Nouvelle note"
reply: "Répondre"
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "La renote a échoué"
desktop/views/components/renote-form-window.vue:
title: "Êtes vous sûr de vouloir renote cette note?"
desktop/views/components/timeline.core.vue:
empty: "Sans aucune note"
desktop/views/pages/user-following-or-followers.vue:
following: "{user} suit"
followers: "Abonné·e·s de {user}"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "Exemple: https://www.google.com/?#q={{query}}"
auto-popout: "Fenêtre contextuelle automatique"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "Deck sans tansitions"
deck-nav-desc: "Vous obtenez une colonne temporaire sans transitions dans la page pendant la navigation, lors de lutilisation du Deck."
keep-cw: "Maintenir l'avertissement de contenu"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "Utiliser le Deck comme IU par défaut"
display: "Affichage et design"
customize: "Personnaliser l'Accueil"
wallpaper: "Arrière plan"
choose-wallpaper: "Sélectionner un fond d'écran"
delete-wallpaper: "Supprimer le fond d'écran"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Favorites"
lists: "Listes"
follow-requests: "Demandes de suivi"
customize: "Personnaliser l'Accueil"
admin: "Admin"
settings: "Réglages"
signout: "Déconnexion"
dark: "Fall in dark"
desktop/views/components/ui.header.nav.vue:
home: "Accueil"
deck: "Deck"
game: "Jeux"
desktop/views/components/ui.header.notifications.vue:
title: "Notifications"
@@ -972,7 +997,7 @@ desktop/views/components/user-lists-window.vue:
desktop/views/components/user-preview.vue:
notes: "Publications"
following: "Abonné à"
followers: "Abonnés"
followers: "Abonné·e·s"
desktop/views/components/users-list.vue:
all: "Tout"
iknow: "Vous connaissez"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "Annonces"
hashtags: "Hashtags"
abuse: "Abus"
queue: "File dattente"
back-to-misskey: "Retour vers Misskey"
admin/views/dashboard.vue:
dashboard: "Tableau de bord"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "Instances"
this-instance: "Cette instance"
federated: "Fédérées"
admin/views/queue.vue:
operation: "Action(s)"
remove-all-jobs: "Enlever toutes les tâches en attente"
admin/views/abuse.vue:
title: "Abus"
target: "Cible"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "Désactiver STARTTLS lorsque celui-ci est utilisé."
smtp-host: "Hôte SMTP"
smtp-port: "Port SMTP"
smtp-auth: "SMTP認証を行う"
smtp-user: "Utilisateur SMTP"
smtp-pass: "Mot de passe SMTP"
serviceworker-config: "ServiceWorker"
@@ -1142,11 +1172,13 @@ admin/views/users.vue:
unsuspend: "Suspension levée"
unsuspend-confirm: "Souhaiteriez-vous ne plus suspendre ce compte ?"
unsuspended: "La suspension de lutilisateur a été levée avec succès"
make-silence: "Mettre en sourdine"
unmake-silence: "Enlever la sourdine"
verify: "Vérification du compte"
verify-confirm: "Souhaiteriez-vous rendre votre compte comme étant un compte vérifié ?"
verified: "Le compte a été vérifié"
unverify: "Enlever la vérification du compte"
unverify-confirm: "公式アカウントを解除しますか?"
unverify-confirm: "Désirez-vous considérer ce compte comme étant non-vérifié ?"
unverified: "Ce compte n'est plus vérifié"
update-remote-user: "Mettre à jour les informations de lutilisateur·rice distant·e"
remote-user-updated: "Les informations de lutilisateur·rice distant·e ont étés mis à jour"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "Modérateur"
adminOrModerator: "Administrateur/Modérateur"
verified: "Compte vérifié"
silenced: "Déjà mis en sourdine"
suspended: "Suspendu"
origin:
title: "Origine"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "Supprimé"
admin/views/hashtags.vue:
hided-tags: "Tags cachés"
admin/views/federation.vue:
federation: "Fédération"
host: "Hôte"
notes: "Notes"
users: "Utilisateur·rice·s"
following: "Abonnements"
followers: "Abonné·e·s"
status: "Statuts"
latest-request-sent-at: "Dernière requête envoyée"
latest-request-received-at: "Dernière requête reçue"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "Bloquer"
marked-as-closed: "Marquées comme fermées"
lookup: "Recherche"
instances: "Instances"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "Trier par"
sorts:
caughtAtAsc: "Date dinscription (Ascendant)"
caughtAtDesc: "Date dinscription (Descendant)"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "Description des notes"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "Les moins suivies"
followingDesc: "Ayant le plus d'abonné·e·s"
followersAsc: "Ayant le moins d'abonné·e·s"
followersDesc: "Ayant le plus d'abonné·e·s"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "État"
states:
all: "Tout"
blocked: "Bloquées"
not-responding: "Sans réponse"
marked-as-closed: "Marquée comme fermée"
result-is-truncated: "上位{n}件を表示しています。"
charts: "Graphs"
chart-srcs:
requests: "Requêtes"
users: "Nombre dutilisateurs·trices : augmentation/diminution"
users-total: "Nombre total des utilisateur·rice·s"
notes: "Augmentation/diminution du nombre des notes"
notes-total: "Nombre total des notes"
ff: "Augmentation des abonné·e·s"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "Augmentation et diminution de la capacité stockage"
drive-usage-total: "Utilisation totale du stockage"
drive-files: "ドライブファイル数の増減"
drive-files-total: "Nombre total des fichiers sur le Drive"
chart-spans:
hour: "Par heure"
day: "Par jour"
desktop/views/pages/welcome.vue:
about: "à propos"
gotit: "J'ai compris !"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "Informations"
desktop/views/pages/drive.vue:
title: "Lecteur de Misskey"
desktop/views/pages/home-customize.vue:
title: "Personnaliser l'Accueil"
desktop/views/pages/note.vue:
prev: "Note précédente"
next: "Note suivante"
@@ -1244,11 +1333,11 @@ desktop/views/pages/share.vue:
desktop/views/pages/tag.vue:
no-posts-found: "Aucune publication contenant « {q} » na été trouvée."
desktop/views/pages/user-list.users.vue:
users: "Utilisateurs"
users: "Utilisateur·rice·s"
add-user: "Ajouter un utilisateur"
username: "Nom d'utilisateur"
desktop/views/pages/user/user.followers-you-know.vue:
title: "Abonnés que vous connaissez"
title: "Abonné·e·s que vous connaissez"
loading: "Chargement en cours"
no-users: "Aucun abonné connu"
desktop/views/pages/user/user.friends.vue:
@@ -1259,24 +1348,23 @@ desktop/views/pages/user/user.photos.vue:
title: "Photos"
loading: "Chargement en cours"
no-photos: "Pas de photos"
desktop/views/pages/user/user.profile.vue:
follows-you: "Vous suit"
menu: "Menu"
desktop/views/pages/user/user.header.vue:
posts: "Notes"
following: "Suit"
followers: "Abonnés"
followers: "Abonné·e·s"
is-bot: "Ce compte est un Bot"
no-description: "自己紹介はありません"
years-old: "{age} ans"
year: "/"
month: "/"
day: "-"
follows-you: "Vous suit"
desktop/views/pages/user/user.timeline.vue:
default: "Publications"
with-replies: "Publications et réponses"
with-media: "Média"
my-posts: "Mes Messages"
empty: "Cet utilisateur n'a rien posté encore."
empty: "Cet·te utilisateur·rice n'a rien posté encore."
desktop/views/widgets/messaging.vue:
title: "Messagerie"
desktop/views/widgets/notifications.vue:
@@ -1297,7 +1385,7 @@ desktop/views/widgets/trends.vue:
refresh: "Afficher d'autres"
nothing: "Rien"
desktop/views/widgets/users.vue:
title: "Utilisateurs"
title: "Utilisateurs·rices"
refresh: "Afficher d'autres"
no-one: "Personne"
mobile/views/components/drive.vue:
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "Demande en attente"
follow-processing: "En cours dabonnement"
follow-request: "Demande dabonnement"
mobile/views/components/friends-maker.vue:
title: "Abonnez-vous à"
empty: "Impossible de trouver des utilisateurs à recommander."
fetching: "Chargement"
refresh: "Voir plus"
close: "Fermer"
mobile/views/components/note.vue:
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
@@ -1365,11 +1447,11 @@ mobile/views/components/note-sub.vue:
mobile/views/components/notifications.vue:
empty: "Aucune de notification !"
mobile/views/components/post-form.vue:
add-visible-user: "Ajouter un utilisateur"
add-visible-user: "Ajouter un·e utilisateur·rice"
submit: "Publier"
reply: "Répondre"
renote: "Republier"
quote-placeholder: "Citer ce billet... (Facultatif)"
quote-placeholder: "Citer ce billet ... (Facultatif)"
reply-placeholder: "Répondre à cette note"
cw-placeholder: "Commenter le contenu (optionnel)"
location-alert: "Votre appareil ne prend pas en charge les services de localisation"
@@ -1399,11 +1481,8 @@ mobile/views/components/ui.nav.vue:
admin: "Admin"
about: "À propos de Misskey"
mobile/views/components/user-timeline.vue:
no-notes: "Il semble que cet utilisateur na rien publié pour le moment."
no-notes: "Il semble que cet·te utilisateur·rice na rien publié pour le moment."
no-notes-with-media: "Aucune note comprenant des médias"
mobile/views/components/users-list.vue:
all: "Tout"
known: "Vous connaissez"
mobile/views/pages/favorites.vue:
title: "Favoris"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "Global"
mentions: "Mentions"
messages: "Messages"
mobile/views/pages/home.timeline.vue:
empty: "Sans aucune note"
mobile/views/pages/tag.vue:
no-posts-found: "Aucune publication ayant pour hashtag « {q} » na été trouvée."
mobile/views/pages/welcome.vue:
@@ -1440,7 +1521,7 @@ mobile/views/pages/received-follow-requests.vue:
accept: "Accepter"
reject: "Refuser"
mobile/views/pages/note.vue:
title: "Post"
title: "Publication"
prev: "Note précédente"
next: "Note suivante"
mobile/views/pages/notifications.vue:
@@ -1454,7 +1535,7 @@ mobile/views/pages/search.vue:
mobile/views/pages/selectdrive.vue:
select-file: "Choisissez un fichier"
mobile/views/pages/settings.vue:
signed-in-as: "Connecté en tant que {}"
signed-in-as: "Connecté·e en tant que {}"
design: "Affichage et design"
dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité"
@@ -1499,7 +1580,7 @@ mobile/views/pages/settings.vue:
mobile/views/pages/user.vue:
follows-you: "Vous suit"
following: "Abonnements"
followers: "Abonnés"
followers: "Abonné·e·s"
notes: "Notes"
overview: "Aperçu"
timeline: "Fil dactualité"
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "Activité"
keywords: "Mot clés"
domains: "Domaines"
frequently-replied-users: "Utilisateurs mentionnés souvent"
followers-you-know: "Abonnés que vous connaissez"
frequently-replied-users: "Mentions fréquentes"
followers-you-know: "Abonné·e·s que vous connaissez"
last-used-at: "Dernière connexion il y a"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "Aucun utilisateur connu"
mobile/views/pages/user/home.friends.vue:
no-users: "Aucun utilisateur connu"
mobile/views/pages/user/home.notes.vue:
no-notes: "Pas de notes"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "Renommer"
stack-left: "Vers la gauche"
pop-right: "Vers la droite"
disabled-timeline:
title: "Le fil été désactivé"
description: "Ce fil a été désactivé par l'administrateur du serveur."
deck/deck.tl-column.vue:
is-media-only: "Les publications médias uniquement"
is-media-view: "Vue média"
edit: "Option"
deck/deck.user-column.vue:
follows-you: "Vous suit"
posts: "Notes"
following: "Suit"
followers: "Abonnés"

3
locales/index.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
declare const locales: { [lang: string]: any };
export = locales;

View File

@@ -8,6 +8,19 @@ const yaml = require('js-yaml');
const langs = ['de-DE', 'en-US', 'fr-FR', 'ja-JP', 'ja-KS', 'pl-PL', 'es-ES', 'nl-NL', 'zh-CN', 'ko-KR'];
const loadLocale = lang => yaml.safeLoad(fs.readFileSync(`${__dirname}/${lang}.yml`, 'utf-8'));
const locales = langs.map(lang => ({ [lang]: loadLocale(lang) }));
const locales = langs
.map(lang => [lang, loadLocale(lang)])
.map(([lang, locale], _, locales) => {
switch (lang) {
case 'ja-JP': return [lang, locale];
case 'en-US': return [lang, { ...locales['ja-JP'], ...locale }];
default: return [lang, {
...(lang.startsWith('ja-') ? {} : locales['en-US']),
...locales['ja-JP'],
...locale
}];
}
})
.map(([lang, locale]) => ({ [lang]: loadLocale(lang) }));
module.exports = locales.reduce((a, b) => ({ ...a, ...b }));

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -56,6 +58,14 @@ common:
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "日"
monday: "月"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、やっていってください。"
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{}票"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "リバーシ"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "わかった"
customization-tips:
@@ -58,6 +60,15 @@ common:
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "日"
@@ -121,6 +132,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -138,7 +150,7 @@ common:
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -212,6 +224,19 @@ auth/views/index.vue:
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -374,6 +399,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"
@@ -391,6 +418,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
@@ -530,6 +561,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -549,6 +581,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
@@ -746,13 +785,6 @@ desktop/views/components/following-window.vue:
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "リバーシ"
@@ -847,6 +879,9 @@ desktop/views/components/renote-form.vue:
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -878,14 +913,10 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -1061,15 +1092,12 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
@@ -1118,6 +1146,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
@@ -1129,6 +1158,10 @@ admin/views/dashboard.vue:
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1201,6 +1234,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1274,6 +1308,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1297,6 +1333,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1349,6 +1386,65 @@ admin/views/announcements.vue:
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1365,9 +1461,6 @@ desktop/views/pages/welcome.vue:
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
@@ -1408,19 +1501,17 @@ desktop/views/pages/user/user.photos.vue:
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
@@ -1504,13 +1595,6 @@ common/views/components/follow-button.vue:
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1579,10 +1663,6 @@ mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
@@ -1607,6 +1687,9 @@ mobile/views/pages/home.vue:
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
@@ -1709,16 +1792,10 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
@@ -1745,6 +1822,9 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
@@ -1752,6 +1832,7 @@ deck/deck.tl-column.vue:
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっとあらへんのか!"
enter-password: "パスワードを入れてや"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "ほい"
customization-tips:
title: "カスタマイズのヒント"
@@ -56,6 +58,14 @@ common:
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "日"
monday: "月"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "アメちゃん付きアカウント"
disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "閲覧注意?見せたらあかん?そんなん知らんわ、見せろや!"
always-mark-nsfw: "わからんからとりあえずメディアは見せたらあかん"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "開発ビルドや。本番環境で使わんといて!知らんで!"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "ちゃんとした情報見せてや!"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、気張ってってな。"
error: "セッションが存在してへん。"
sign-in: "サインインしてや"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っとります"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入りやめる"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留めやめる"
delete: "ほかす"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票や!"
vote-count: "{}票"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "このメールアドレスOKや"
email-not-verified: "メールアドレスが確認されとらん。メールボックスもっぺん見てくれへん?"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはおらんっぽいで、知らんけど。"
desktop/views/components/friends-maker.vue:
title: "おもろそうやな:"
empty: "おもろいユーザー居らんかったわ"
fetching: "読み込んどります"
refresh: "もっとあるやろ!"
close: "さいなら"
desktop/views/components/game-window.vue:
game: "ゲーム"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteでけへん"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしてもええか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q?{{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトすんで。この設定はブラウザに記憶されんで。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使うとるとき、ナビゲーションが発生するときにページ移動せんで、一時的なカラムで受けれるようにするで"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "見た感じ"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙選ぶ"
delete-wallpaper: "壁紙ほかす"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー許してくれや!言うてみる"
customize: "ホームをカスタマイズ"
admin: "管理"
settings: "設定"
signout: "さいなら"
dark: "ナイトゲームじゃ!"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "知っといてや"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "ワイのインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "もうちょい……"
gotit: "ほい"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "ドライブ"
desktop/views/pages/home-customize.vue:
title: "ホームをカスタマイズ"
desktop/views/pages/note.vue:
prev: "前のやつ"
next: "次のやつ"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "写真"
loading: "読み込んどります"
no-photos: "写真はあらへんで"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされとるで"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotや"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許してくれるん待っとる"
follow-processing: "今フォロー処理やっとる‥"
follow-request: "フォローさせてや!言うてみる"
mobile/views/components/friends-maker.vue:
title: "おもろそうやな"
empty: "おすすめのユーザーはおらん。"
fetching: "読み込んどります"
refresh: "もっとあるやろ!"
close: "さいなら"
mobile/views/components/note.vue:
private: "この投稿は見せられへんわ"
deleted: "この投稿なんか無くなってもうたわ"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿しとらんようや。"
no-notes-with-media: "メディア付き投稿はあらへん。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知っとる"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あんた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿はあらへんかった。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "やっとること"
keywords: "キーワード"
domains: "よく出るドメイン"
frequently-replied-users: "よう話しとるユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知っとるフォロワー"
last-used-at: "最後いつ来た?"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知っとるユーザーは居らん"
mobile/views/pages/user/home.friends.vue:
no-users: "よう話すユーザーは居らん"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はあらへん"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変えるで"
stack-left: "左に重ねんで!"
pop-right: "右に出すで!"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿だけや"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "더보기"
enter-password: "비밀번호를 입력하여 주십시오"
2fa: "2단계 인증"
customize-home: "홈 커스터마이징"
featured-notes: "하이라이트"
got-it: "알겠습니다"
customization-tips:
title: "커스터마이징 도움말"
@@ -56,6 +58,14 @@ common:
trash: "휴지통"
drive: "드라이브"
messaging: "대화"
deck: "덱"
timeline: "타임라인"
explore: "발견"
following: "팔로우 중"
followers: "팔로워"
empty-timeline-info:
follow-users-to-make-your-timeline: "사용자를 팔로우하면 글이 타임라인에 표시됩니다."
explore: "사용자 탐색"
weekday-short:
sunday: "일"
monday: "월"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "리버시의 돌로 아바타를 사용"
verified-user: "공식 계정"
disable-animated-mfm: "글의 문자 애니메이션을 비활성화"
disable-showing-animated-images: "움직이는 이미지를 자동으로 재생하지 않음"
suggest-recent-hashtags: "최근 해시태그를 글 작성란에 표시"
always-show-nsfw: "항상 열람주의 미디어를 표시"
always-mark-nsfw: "항상 미디어를 열람주의로 설정하여 게시"
@@ -129,7 +140,7 @@ common:
show-password: "비밀번호 표시"
do-not-use-in-production: "이것은 개발 빌드입니다. 프로덕션 환경에서 사용하지 마십시오."
user-suspended: "이 사용자는 정지된 상태입니다."
is-remote-user: "이 유저 정보는 복사본입니다."
is-remote-user: "이 사용자 정보는 정확하지 않을 수 있습니다."
is-remote-post: "이 글 정보는 복사본입니다."
view-on-remote: "정확한 정보 보기"
renoted-by: "{user}이(가) 리노트"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "어플리케이션으로 돌아가여 시도하여 주십시오."
error: "세션이 존재하지 않습니다."
sign-in: "로그인 해주시기 바랍니다"
common/views/pages/explore.vue:
verified-users: "공식 계정"
popular-users: "인기 사용자"
recently-updated-users: "최근 게시한 사용자"
recently-registered-users: "신규 사용자"
popular-tags: "인기 태그"
federated: "연합"
explore: "{host}을(를) 탐색"
users-info: "현재 {users} 사용자가 등록되어 있습니다"
common/views/components/user-list.vue:
no-users: "사용자가 없습니다"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}을(를) 기다리고 있습니다"
@@ -208,7 +230,7 @@ common/views/components/games/reversi/reversi.game.vue:
can-put-everywhere: "어디에도 둘 수 있는 모드"
common/views/components/games/reversi/reversi.index.vue:
title: "Misskey Reversi"
sub-title: "다른 Misskey 유저와 리버시로 대결하자"
sub-title: "다른 Misskey 사용자와 리버시로 대결하자"
invite: "초대"
rule: "게임 방법"
rule-desc: "리버시는 상대와 번갈아가며 돌을 판에 두고, 상대의 돌을 자신의 돌 사이에 두어 자신의 색으로 바꿔나가며, 최종적으로 남아있는 돌이 많은 쪽이 승리하는 보드게임입니다."
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "링크 복사"
favorite: "이 노트 즐겨찾기"
unfavorite: "즐겨찾기에서 제거"
watch: "지켜보기"
unwatch: "지켜보기 해제"
pin: "프로필에 고정"
unpin: "프로필에서 고정 해제"
delete: "삭제"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "스팸 신고"
report-abuse-detail: "어떤 스팸 행위를 하고 있습니까?"
report-abuse-reported: "관리자에게 보고되었습니다. 협조해주셔서 감사합니다."
silence: "침묵"
unsilence: "침묵 해제"
suspend: "정지"
unsuspend: "정지 해제"
common/views/components/poll.vue:
vote-to: "\"{}\"에 투표하기"
vote-count: "{}표"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "계정"
location: "장소"
description: "자기소개"
you-can-include-hashtags: "해시 태그를 포함할 수 있습니다."
language: "언어"
birthday: "생일"
avatar: "아바타"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "메일 주소"
email-verified: "매일 주소가 확인되었습니다"
email-not-verified: "메일 주소가 확인되지 않았습니다. 받은 편지함을 확인하여 주시기 바랍니다."
export: "내보내기"
export-targets:
all-notes: "모든 글 데이터"
following-list: "팔로잉"
mute-list: "뮤트"
blocking-list: "차단"
export-requested: "내보내기를 요청하였습니다. 이 작업은 시간이 걸릴 수 있습니다. 내보내기가 완료되면 드라이브에 파일이 추가됩니다."
common/views/components/user-list-editor.vue:
users: "사용자"
rename: "리스트 이름 바꾸기"
@@ -593,7 +629,7 @@ desktop/views/components/calendar.vue:
title: "{year}년 {month}월"
prev: "이전 달"
next: "다음 달"
go: "클릭여 시간 회귀"
go: "클릭여 시간역행"
desktop/views/components/choose-file-from-drive-window.vue:
chosen-files: "{count} 파일 선택중"
upload: "PC에서 드라이브에 파일을 업로드"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} 의 팔로우"
desktop/views/components/following.vue:
empty: "팔로우중인 사용자가 없는 것 같습니다."
desktop/views/components/friends-maker.vue:
title: "마음에 드는 사용자를 팔로우:"
empty: "추천 사용자를 찾을 수 없습니다."
fetching: "불러오는 중입니다"
refresh: "더 보기"
close: "닫기"
desktop/views/components/game-window.vue:
game: "리버시"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "리노트에 실패하였습니다"
desktop/views/components/renote-form-window.vue:
title: "이 글을 리노트하시겠습니까?"
desktop/views/components/timeline.core.vue:
empty: "글이 없습니다"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}의 팔로잉"
followers: "{user}의 팔로워"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "예: https://www.google.com/?#q={{query}}"
auto-popout: "창 자동 팝아웃"
auto-popout-desc: "창이 열릴 때 팝아웃 (브라우저 밖으로 분리) 이 가능한 경우 자동으로 팝아웃합니다. 이 설정은 브라우저에 저장됩니다."
deck-nav: "덱 내 탐색"
deck-nav-desc: "덱을 사용중일 때, 내비게이션이 발생하였을 경우 페이지를 이동하지 않고 일시적으로 임시 칼럼을 생성하도록 합니다."
keep-cw: "CW 유지"
keep-cw-desc: "글에 답글을 달 때, 답글할 글에 CW가 설정되어 있는 경우 기본값으로 동일한 CW를 설정하도록 합니다."
deck-default: "덱을 기본 UI로 설정"
display: "디자인 및 표시"
customize: "홈 커스터마이징"
wallpaper: "배경"
choose-wallpaper: "배경 설정"
delete-wallpaper: "배경 제거"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "즐겨찾기"
lists: "리스트"
follow-requests: "팔로우 요청"
customize: "홈 커스터마이징"
admin: "관리"
settings: "설정"
signout: "로그아웃"
dark: "어둠에 삼켜져라"
desktop/views/components/ui.header.nav.vue:
home: "홈"
deck: "덱"
game: "게임"
desktop/views/components/ui.header.notifications.vue:
title: "알림"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "공지사항"
hashtags: "해시태그"
abuse: "스팸 신고"
queue: "작업 대기열"
back-to-misskey: "Misskey로 돌아가기"
admin/views/dashboard.vue:
dashboard: "대시보드"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "인스턴스"
this-instance: "이 인스턴스"
federated: "연합"
admin/views/queue.vue:
operation: "동작"
remove-all-jobs: "모든 작업 제거"
admin/views/abuse.vue:
title: "스팸 신고"
target: "대상"
@@ -1021,7 +1050,7 @@ admin/views/instance.vue:
maintainer-email: "관리자 연락처"
drive-config: "드라이브 설정"
cache-remote-files: "원격 파일을 캐시"
cache-remote-files-desc: "이 설정을 해지하면 원격 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 프라이버시 설정에서 직접 링크를 무효로 설정한 유저에게는 파일이 보이지 않거나, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다. 일반적으로 이 설정을 ON으로 두는 것을 추천합니다."
cache-remote-files-desc: "이 설정을 해지하면 원격 파일을 캐시하지 않고 해당 파일을 직접 링크하게 됩니다. 그에 따라 서버의 저장 공간을 절약할 수 있지만, 프라이버시 설정에서 직접 링크를 무효로 설정한 사용자에게는 파일이 보이지 않거나, 썸네일이 생성되지 않기 때문에 통신량이 증가합니다. 일반적으로 이 설정을 ON으로 두는 것을 추천합니다."
local-drive-capacity-mb: "로컬 사용자 한 명당 드라이브 용량"
remote-drive-capacity-mb: "원격 사용자 한 명당 드라이브 용량"
mb: "메가바이트 단위"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS를 사용 시 ON으로 합니다."
smtp-host: "SMTP 호스트"
smtp-port: "SMTP 포트"
smtp-auth: "SMTP 인증 수행"
smtp-user: "SMTP 사용자"
smtp-pass: "SMTP 비밀번호"
serviceworker-config: "ServiceWorker"
@@ -1095,7 +1125,7 @@ admin/views/charts.vue:
notes: "글 증감 (통합)"
local-notes: "글 증감 (로컬)"
remote-notes: "글 증감 (원격)"
notes-total: "글 누적"
notes-total: "글 누적"
users: "사용자 증감"
users-total: "사용자 누적"
active-users: "활성 사용자 수"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "정지 해제"
unsuspend-confirm: "정지를 해제하시겠습니까?"
unsuspended: "정지를 해제하였습니다"
make-silence: "침묵"
unmake-silence: "침묵 해제"
verify: "공식 계정으로 설정"
verify-confirm: "공식 계정으로 설정하시겠습니까?"
verified: "공식 계정으로 설정하였습니다"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "모더레이터"
adminOrModerator: "관리자+모더레이터"
verified: "공식 계정"
silenced: "침묵됨"
suspended: "정지됨"
origin:
title: "위치 (오리진)"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "삭제하였습니다"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "연합"
host: "호스트"
notes: "글"
users: "사용자"
following: "팔로우 중"
followers: "팔로워"
status: "상태"
latest-request-sent-at: "마지막으로 요청을 전송한 시간"
latest-request-received-at: "마지막으로 요청을 받은 시간"
remove-all-following: "모든 팔로잉 해제"
remove-all-following-info: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행하십시오."
block: "차단"
marked-as-closed: "폐쇄된 것으로 표시"
lookup: "조회"
instances: "인스턴스"
instance-not-registered: "해당 인스턴스가 등록되어 있지 않습니다"
sort: "정렬"
sorts:
caughtAtAsc: "등록일이 오래된 순"
caughtAtDesc: "등록일이 최신인 순"
lastCommunicatedAtAsc: "마지막으로 요청을 주고받은 일시가 오래된 순"
lastCommunicatedAtDesc: "마지막으로 요청을 주고받은 일시가 빠른 순"
notesAsc: "글이 적은 순"
notesDesc: "글이 많은 순"
usersAsc: "사용자가 적은 순"
usersDesc: "사용자가 많은 순"
followingAsc: "팔로잉이 적은 순"
followingDesc: "팔로잉이 많은 순"
followersAsc: "팔로워가 적은 순"
followersDesc: "팔로워가 많은 순"
driveUsageAsc: "드라이브 사용량이 적은 순"
driveUsageDesc: "드라이브 사용량이 많은 순"
driveFilesAsc: "드라이브 파일 수가 적은 순"
driveFilesDesc: "드라이브 파일 수가 많은 순"
state: "상태"
states:
all: "모두"
blocked: "차단됨"
not-responding: "응답 없음"
marked-as-closed: "폐쇄된 것으로 표시됨"
result-is-truncated: "상위 {n}개를 표시하고 있습니다."
charts: "차트"
chart-srcs:
requests: "요청"
users: "사용자 증감"
users-total: "사용자 누적"
notes: "글 증감"
notes-total: "글 누적"
ff: "팔로잉/팔로워 증감"
ff-total: "팔로잉/팔로워 누적"
drive-usage: "드라이브 사용량 증감"
drive-usage-total: "드라이브 사용량 누적"
drive-files: "드라이브 파일 수 증감"
drive-files-total: "드라이브 파일 수 누적"
chart-spans:
hour: "1시간마다"
day: "1일마다"
desktop/views/pages/welcome.vue:
about: "자세히..."
gotit: "알겠습니다"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "정보"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "홈 커스터마이징"
desktop/views/pages/note.vue:
prev: "이전 글"
next: "다음 글"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "사진"
loading: "로드 중"
no-photos: "사진이 없습니다"
desktop/views/pages/user/user.profile.vue:
follows-you: "당신을 팔로우합니다"
menu: "메뉴"
desktop/views/pages/user/user.header.vue:
posts: "글"
following: "팔로잉"
followers: "팔로워"
is-bot: "이 계정은 Bot입니다"
no-description: "자기소개가 없습니다"
years-old: "{age}세"
year: "년"
month: "월"
day: "일"
follows-you: "당신을 팔로우합니다"
desktop/views/pages/user/user.timeline.vue:
default: "글"
with-replies: "글과 답글"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "팔로우 허가 대기중"
follow-processing: "팔로우 처리중"
follow-request: "팔로우 요청"
mobile/views/components/friends-maker.vue:
title: "마음에 드는 사용자를 팔로우"
empty: "추천 사용자를 찾을 수 없습니다."
fetching: "불러오는 중입니다"
refresh: "더 보기"
close: "닫기"
mobile/views/components/note.vue:
private: "이 글은 비공개입니다"
deleted: "이 글은 삭제되었습니다"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "이 사용자는 작성한 글이 없는 것 같습니다."
no-notes-with-media: "미디어가 첨부된 글이 없습니다."
mobile/views/components/users-list.vue:
all: "모두"
known: "아는 사람"
mobile/views/pages/favorites.vue:
title: "즐겨찾기"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "글로벌"
mentions: "받은 멘션"
messages: "메시지"
mobile/views/pages/home.timeline.vue:
empty: "글이 없습니다"
mobile/views/pages/tag.vue:
no-posts-found: "해시태그 \"{q}\"가 붙은 글을 찾을 수 없습니다."
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "활동"
keywords: "키워드"
domains: "자주 보이는 도메인"
frequently-replied-users: "자주 대화하는 사용자"
frequently-replied-users: "자주 언급되는 사용자"
followers-you-know: "아는 사람의 팔로워"
last-used-at: "마지막 로그인"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "아는 사용자가 없습니다"
mobile/views/pages/user/home.friends.vue:
no-users: "자주 대화하는 사용자가 없습니다"
mobile/views/pages/user/home.notes.vue:
no-notes: "글이 없습니다"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "이름 변경"
stack-left: "왼쪽에 쌓기"
pop-right: "오른쪽으로 빼기"
disabled-timeline:
title: "비활성화된 타임라인"
description: "서버 운영자에 의해 이 타임라인이 사용할 수 없도록 설정되어 있습니다."
deck/deck.tl-column.vue:
is-media-only: "미디어가 달린 글만"
is-media-view: "미디어 보기"
edit: "옵션"
deck/deck.user-column.vue:
follows-you: "당신을 팔로우합니다"
posts: "글"
following: "팔로잉"
followers: "팔로워"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -56,6 +58,14 @@ common:
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "Z"
monday: "M"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、やっていってください。"
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "Deze notitie toevoegen aan favorieten"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "Vastmaken aan profielpagina"
unpin: "ピン留め解除"
delete: "削除"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "Stemmen op '{}'"
vote-count: "{} stemmen"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "Volgend {}"
desktop/views/components/following.vue:
empty: "Je volgt niemand."
desktop/views/components/friends-maker.vue:
title: "Aanbevolen gebruikers:"
empty: "Er zijn geen vergelijkbare gebruikers gevonden."
fetching: "Bezig met laden…"
refresh: "Meer"
close: "Sluiten"
desktop/views/components/game-window.vue:
game: "Othello"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renote mislukt"
desktop/views/components/renote-form-window.vue:
title: "Weet je zeker dat je deze notitie wilt renoten?"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "Venster automatisch uitvouwen"
auto-popout-desc: "Venster uitvouwen, indien mogelijk. Deze instelling wordt opgeslagen in je browser."
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "Ontwerp en weergave"
customize: "Startpagina aanpassen"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Favorieten"
lists: "Lijsten"
follow-requests: "フォロー申請"
customize: "Aanpassen"
admin: "管理"
settings: "Instellingen"
signout: "Uitloggen"
dark: "Donkere modus"
desktop/views/components/ui.header.nav.vue:
home: "Startpagina"
deck: "デッキ"
game: "Othello spelen"
desktop/views/components/ui.header.notifications.vue:
title: "Meldingen"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "Startpagina aanpassen"
desktop/views/pages/note.vue:
prev: "Vorige notitie"
next: "Volgende notitie"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "Foto's"
loading: "Bezig met laden"
no-photos: "Geen foto's"
desktop/views/pages/user/user.profile.vue:
follows-you: "Volgt jou"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "Berichten"
with-replies: "Berichten en antwoorden"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "Het lijkt erop dat deze gebruiker nog niks heeft geplaatst"
no-notes-with-media: "Er zijn geen notities met bijgevoegde media"
mobile/views/components/users-list.vue:
all: "Alles"
known: "die je kent"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "Activiteit"
keywords: "Sleutelwoorden"
domains: "Domeinnamen"
frequently-replied-users: "Frequent gesproken gebruikers"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "Volgers die je kent"
last-used-at: "Laatst actief"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "Geen gebruikers"
mobile/views/pages/user/home.friends.vue:
no-users: "Geen gebruikers"
mobile/views/pages/user/home.notes.vue:
no-notes: "Geen notities"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "Skjønner!"
customization-tips:
title: "カスタマイズのヒント"
@@ -56,6 +58,14 @@ common:
trash: "Papirkurv"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "S"
monday: "M"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、やっていってください。"
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "Merket som favoritt"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "Fest til profilen din"
unpin: "ピン留め解除"
delete: "Slett"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{} stemmer"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "Mer"
close: "Lukk"
desktop/views/components/game-window.vue:
game: "Reversi"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Favoritter"
lists: "Lister"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "Admin"
settings: "Innstillinger"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "Hjem"
deck: "Kolonner"
game: "Spill"
desktop/views/components/ui.header.notifications.vue:
title: "Notifikasjon"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "Skjønner!"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "Informasjon"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "Forrige innlegg"
next: "Neste innlegg"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "Bilder"
loading: "Laster inn"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "Innlegg"
following: "Følger"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "Innlegg"
with-replies: "Innlegg og svar"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "Se mer"
close: "Lukk"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "Alle"
known: "Du kjenner"
mobile/views/pages/favorites.vue:
title: "Favoritter"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "Globalt"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "Nøkkelord"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -27,7 +27,9 @@ common:
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "Załaduj więcej"
enter-password: "Wprowadź Hasło"
2fa: "二段階認証"
2fa: "Uwierzytelnienie dwuetapowe"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "Rozumiem!"
customization-tips:
title: "Wskazówki o dostosowywaniu"
@@ -56,6 +58,14 @@ common:
trash: "Kosz"
drive: "Dysk"
messaging: "Rozmowy"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "N"
monday: "Pn"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "Zweryfikowane konto"
disable-animated-mfm: "Wyłącz animowany tekst we wpisach"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "Zawszę pokazuj zawartość NSFW"
always-mark-nsfw: "Zawsze oznaczaj posty z multimediami jako NSFW"
@@ -129,7 +140,7 @@ common:
show-password: "Pokaż hasło"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "Informacje o użytkowniku są kopiowane."
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "Dla dopełnienia, zobacz to zdalnie."
renoted-by: "{user} udostępnił(a)"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Wróć do aplikacji."
error: "Sesja nie istnieje."
sign-in: "Proszę zalogować się."
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "Oczekiwanie na {}"
@@ -344,22 +366,28 @@ common/views/components/note-menu.vue:
copy-link: "Skopiuj adres"
favorite: "Dodaj do ulubionych"
unfavorite: "Usuń z ulubionych"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "Przypnij do profilu"
unpin: "Odepnij"
delete: "Usuń"
delete-confirm: "Czy na pewno chcesz usunąć ten wpis?"
remote: "Pokaż oryginał"
common/views/components/user-menu.vue:
mention: "メンション"
mute: "ミュート"
unmute: "ミュート解除"
block: "ブロック"
unblock: "ブロック解除"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
report-abuse: "スパムを報告"
mention: "Wspomnij"
mute: "Wycisz"
unmute: "Cofnij wyciszenie"
block: "Zablokuj"
unblock: "Odblokuj"
push-to-list: "Dodaj do listy"
select-list: "Wybierz listę"
report-abuse: "Zgłoś nadużycie"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "Zagłosuj na '{}'"
vote-count: "{} głosów"
@@ -391,11 +419,11 @@ common/views/components/signin.vue:
token: "Token"
signing-in: "Logowanie…"
signin: "Zaloguj"
or: "または"
or: "lub"
signin-with-twitter: "Zaloguj się za pomocą Twittera"
signin-with-github: "Zaloguj się za pomocą GitHuba"
signin-with-discord: "Zaloguj się za pomocą Discorda"
login-failed: "ログインできませんでした。ユーザー名とパスワードを確認してください。"
login-failed: "Logowanie nie powiodło się. Upewnij się, że podałeś prawidłową nazwę użytkownika i hasło."
common/views/components/signup.vue:
invitation-code: "Kod zaproszenia"
invitation-info: "招待コードをお持ちでない方は、<a href=\"{}\">管理者</a>までご連絡ください。"
@@ -468,13 +496,13 @@ common/views/components/visibility-chooser.vue:
local-followers: "Dla śledzących (tylko lokalnie)"
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
empty: "Brak popularnych hashtagów"
common/views/components/language-settings.vue:
title: "Język"
pick-language: "Wybierz język"
recommended: "Zalecane"
auto: "Automatyczny"
specify-language: "言語を指定"
specify-language: "Wybierz język"
info: "Musisz odświeżyć stronę, aby zmiany zostały uwzględnione."
common/views/components/profile-editor.vue:
title: "Twój profil"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "Konto"
location: "Lokalizacja"
description: "O mnie"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "Język"
birthday: "Data urodzenia"
avatar: "Awatar"
@@ -499,15 +528,22 @@ common/views/components/profile-editor.vue:
upload-failed: "Wysyłanie nie powiodło się"
email: "Ustawienia e-mail"
email-address: "Adres e-mail"
email-verified: "メールアドレスが確認されました"
email-verified: "Twój adres e-mail został zweryfikowany."
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "Użytkownicy"
rename: "Zmień nazwę listy"
delete: "Usuń listę"
remove-user: "Usuń z tej listy"
delete-are-you-sure: "リスト「$1」を削除しますか"
deleted: "削除しました"
delete-are-you-sure: "Usunąć listę \"$1\"?"
deleted: "Usunięto"
common/views/widgets/broadcast.vue:
fetching: "Sprawdzanie"
no-broadcasts: "Brak transmisji"
@@ -590,7 +626,7 @@ desktop/views/components/activity.vue:
title: "Aktywność"
toggle: "Przełącz widok"
desktop/views/components/calendar.vue:
title: "{year} {month}"
title: "{year} / {month}"
prev: "Poprzedni miesiąc"
next: "Następny miesiąc"
go: "Naciśnij, aby przejść"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "Śledzeni przez {}"
desktop/views/components/following.vue:
empty: "Nikt Cię nie śledzi."
desktop/views/components/friends-maker.vue:
title: "Zacznij śledzić ludzi takich jak Ty:"
empty: "Nie znaleziono podobnych użytkowników."
fetching: "Ładowanie…"
refresh: "Więcej"
close: "Zamknij"
desktop/views/components/game-window.vue:
game: "Reversi"
desktop/views/components/home.vue:
@@ -701,7 +731,7 @@ desktop/views/components/note.vue:
add-reaction: "Dodaj reakcję"
undo-reaction: "リアクション解除"
detail: "Szczegóły"
private: "この投稿は非公開です"
private: "Ten wpis jest prywatny"
deleted: "この投稿は削除されました"
desktop/views/components/notes.vue:
error: "Ładowanie nie powiodło się."
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Nie udało się udostępnić"
desktop/views/components/renote-form-window.vue:
title: "Czy na pewno chcesz udostępnić ten wpis?"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "Np: https://www.google.com/?#q={{query}}"
auto-popout: "Automatycznie pojawiające się okna"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "Użyj Talię jako domyślne UI"
display: "Wygląd i wyświetlanie"
customize: "Dostosuj stronę główną"
wallpaper: "Tapeta"
choose-wallpaper: "Wybierz tło"
delete-wallpaper: "Usuń tło"
@@ -865,7 +893,7 @@ desktop/views/components/settings.2fa.vue:
enter-password: "Wprowadź hasło"
authenticator: "Na początek musisz zainstalować Google Authenticator na swoim urządzeniu:"
howtoinstall: "Jak zainstalować"
token: "トークン"
token: "Token"
scan: "Później, zeskanuje ten kod QR:"
done: "Wprowadź token wyświetlony na Twoim urządzeniu:"
submit: "Wyślij"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "Ulubione"
lists: "Listy"
follow-requests: "Prośby o śledzenie"
customize: "Dostosuj stronę główną"
admin: "Admin"
settings: "Ustawienia"
signout: "Wyloguj się"
dark: "Sprowadź ciemność"
desktop/views/components/ui.header.nav.vue:
home: "Strona główna"
deck: "Talia"
game: "Gra"
desktop/views/components/ui.header.notifications.vue:
title: "Powiadomienia"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "Ogłoszenia"
hashtags: "Hashtagi"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,12 +1027,15 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
reporter: "報告者"
details: "詳細"
remove-report: "削除"
remove-report: "Usuń"
admin/views/instance.vue:
instance: "インスタンス"
instance-name: "インスタンス名"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "Źródło"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "Usunięto"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "O Misskey"
gotit: "Rozumiem!"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "Informacje"
desktop/views/pages/drive.vue:
title: "Dysk Misskey"
desktop/views/pages/home-customize.vue:
title: "Dostosuj stronę główną"
desktop/views/pages/note.vue:
prev: "Poprzedni wpis"
next: "Następny wpis"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "Zdjęcia"
loading: "Ładowanie"
no-photos: "Brak zdjęć"
desktop/views/pages/user/user.profile.vue:
follows-you: "Śledzi Cię"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "Wpisy"
following: "Śledzeni"
followers: "Śledzący"
is-bot: "To konto jest botem"
no-description: "自己紹介はありません"
years-old: "{age} lat"
year: "/"
month: "/"
day: "-"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "Wpisy"
with-replies: "Wpisy i odpowiedzi"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "Przetwarzanie"
follow-request: "Poproś o śledzenie"
mobile/views/components/friends-maker.vue:
title: "Zacznij śledzić ludzi takich jak Ty"
empty: "Nie znaleziono podobnych użytkowników."
fetching: "Ładowanie…"
refresh: "Więcej"
close: "Zamknij"
mobile/views/components/note.vue:
private: "ten wpis jest prywatny"
deleted: "ten wpis został usunięty"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "Wygląda na to, że ten użytkownik nie opublikował jeszcze niczego"
no-notes-with-media: "Brak wpisów z zawartością multimedialną"
mobile/views/components/users-list.vue:
all: "Wszyscy"
known: "Znasz"
mobile/views/pages/favorites.vue:
title: "Ulubione"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "Globalne"
mentions: "Wspomnienia"
messages: "Wiadomości"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "Aktywność"
keywords: "Słowa kluczowe"
domains: "Domeny"
frequently-replied-users: "Często aktywni użytkownicy"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "Śledzący których znasz"
last-used-at: "Ostatnio aktywny"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "Brak użytkowników"
mobile/views/pages/user/home.friends.vue:
no-users: "Brak użytkowników"
mobile/views/pages/user/home.notes.vue:
no-notes: "Brak wpisów"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "Zmień nazwę"
stack-left: "Przypnij do lewej"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "Tylko wpisy z zawartością multimedialną"
is-media-view: "Widok multimediów"
edit: "Opcje"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "Wpisy"
following: "Śledzeni"
followers: "Śledzący"

View File

@@ -28,6 +28,8 @@ common:
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "Entendi!"
customization-tips:
title: "Dicas de personalização"
@@ -56,6 +58,14 @@ common:
trash: "Lixo"
drive: "ドライブ"
messaging: "トーク"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "Dom"
monday: "Seg"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "Conta verificada"
disable-animated-mfm: "Desativar texto animado nas publicações"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "これは開発ビルドです。本番環境で使用しないでください。"
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "Por favor, volte ao aplicativo."
error: "A sessão não existe."
sign-in: "Por favor, entre."
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{}票"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "リバーシ"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Drive Misskey"
desktop/views/pages/home-customize.vue:
title: "Personalizar a página inicial"
desktop/views/pages/note.vue:
prev: "Nota anterior"
next: "Próxima nota"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "Atividade"
keywords: "Palavras chave"
domains: "Domínios"
frequently-replied-users: "Perguntas frequentes"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "Seguidores que você conhece"
last-used-at: "Ativo pela última vez"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "Nenhuma mensagem"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

View File

@@ -28,6 +28,8 @@ common:
load-more: "Загрузить больше"
enter-password: "Пожалуйста, введите ваш пароль"
2fa: "二段階認証"
customize-home: "ホームをカスタマイズ"
featured-notes: "ハイライト"
got-it: "わかった"
customization-tips:
title: "Советы по настройке"
@@ -56,6 +58,14 @@ common:
trash: "Мусорное ведро"
drive: "Drive"
messaging: "Чат"
deck: "デッキ"
timeline: "タイムライン"
explore: "みつける"
following: "フォロー中"
followers: "フォロワー"
empty-timeline-info:
follow-users-to-make-your-timeline: "ユーザーをフォローすると投稿がタイムラインに表示されます。"
explore: "ユーザーを探索する"
weekday-short:
sunday: "Вс"
monday: "Пн"
@@ -113,6 +123,7 @@ common:
use-avatar-reversi-stones: "リバーシの石にアバターを使う"
verified-user: "公式アカウント"
disable-animated-mfm: "Отключить анимированный текст в постах"
disable-showing-animated-images: "アニメーション画像を再生しない"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "Всегда показывать NSFW контент"
always-mark-nsfw: "Всегда помечать посты с медиафайлами как NSFW"
@@ -129,7 +140,7 @@ common:
show-password: "パスワードを表示する"
do-not-use-in-production: "Эта сборка для разработчиков. Не используйте в продакшне."
user-suspended: "このユーザーは凍結されています。"
is-remote-user: "このユーザー情報はコピーです。"
is-remote-user: "このユーザー情報は不正確な可能性があります。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
@@ -196,6 +207,17 @@ auth/views/index.vue:
please-go-back: "アプリケーションに戻って、やっていってください。"
error: "セッションが存在しません。"
sign-in: "サインインしてください"
common/views/pages/explore.vue:
verified-users: "公式アカウント"
popular-users: "人気のユーザー"
recently-updated-users: "最近投稿したユーザー"
recently-registered-users: "新規ユーザー"
popular-tags: "人気のタグ"
federated: "連合"
explore: "{host}を探索"
users-info: "現在{users}ユーザーが登録されています"
common/views/components/user-list.vue:
no-users: "ユーザーがいません"
common/views/components/games/reversi/reversi.vue:
matching:
waiting-for: "{}を待っています"
@@ -344,6 +366,8 @@ common/views/components/note-menu.vue:
copy-link: "リンクをコピー"
favorite: "お気に入り"
unfavorite: "お気に入り解除"
watch: "ウォッチ"
unwatch: "ウォッチ解除"
pin: "ピン留め"
unpin: "ピン留め解除"
delete: "削除"
@@ -360,6 +384,10 @@ common/views/components/user-menu.vue:
report-abuse: "スパムを報告"
report-abuse-detail: "どのような迷惑行為を行っていますか?"
report-abuse-reported: "管理者に報告されました。ご協力ありがとうございました。"
silence: "サイレンス"
unsilence: "サイレンス解除"
suspend: "凍結"
unsuspend: "凍結解除"
common/views/components/poll.vue:
vote-to: "「{}」に投票する"
vote-count: "{}票"
@@ -482,6 +510,7 @@ common/views/components/profile-editor.vue:
account: "アカウント"
location: "場所"
description: "自己紹介"
you-can-include-hashtags: "ハッシュタグを含めることができます。"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
@@ -501,6 +530,13 @@ common/views/components/profile-editor.vue:
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
export: "エクスポート"
export-targets:
all-notes: "すべての投稿データ"
following-list: "フォロー"
mute-list: "ミュート"
blocking-list: "ブロック"
export-requested: "エクスポートをリクエストしました。これには時間がかかる場合があります。エクスポートが終わると、ドライブにファイルが追加されます。"
common/views/components/user-list-editor.vue:
users: "ユーザー"
rename: "リスト名を変更"
@@ -669,12 +705,6 @@ desktop/views/components/following-window.vue:
following: "{} のフォロー"
desktop/views/components/following.vue:
empty: "フォロー中のユーザーはいないようです。"
desktop/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー:"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
desktop/views/components/game-window.vue:
game: "リバーシ"
desktop/views/components/home.vue:
@@ -755,6 +785,8 @@ desktop/views/components/renote-form.vue:
failure: "Renoteに失敗しました"
desktop/views/components/renote-form-window.vue:
title: "この投稿をRenoteしますか"
desktop/views/components/timeline.core.vue:
empty: "投稿がありません"
desktop/views/pages/user-following-or-followers.vue:
following: "{user}のフォロー"
followers: "{user}のフォロワー"
@@ -783,13 +815,9 @@ desktop/views/components/settings.vue:
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
deck-nav: "デッキ内ナビゲーション"
deck-nav-desc: "デッキを使用しているとき、ナビゲーションが発生する際にページ遷移を行わずに一時的なカラムで受けるようにします。"
keep-cw: "CW保持"
keep-cw-desc: "投稿にリプライする際、リプライ元の投稿にCWが設定されていたとき、デフォルトで同じCWを設定するようにします。"
deck-default: "デッキをデフォルトのUIにする"
display: "デザインと表示"
customize: "ホームをカスタマイズ"
wallpaper: "壁紙"
choose-wallpaper: "壁紙を選択"
delete-wallpaper: "壁紙を削除"
@@ -946,14 +974,11 @@ desktop/views/components/ui.header.account.vue:
favorites: "お気に入り"
lists: "リスト"
follow-requests: "フォロー申請"
customize: "ホームのカスタマイズ"
admin: "管理"
settings: "設定"
signout: "サインアウト"
dark: "闇に飲まれる"
desktop/views/components/ui.header.nav.vue:
home: "ホーム"
deck: "デッキ"
game: "ゲーム"
desktop/views/components/ui.header.notifications.vue:
title: "通知"
@@ -992,6 +1017,7 @@ admin/views/index.vue:
announcements: "お知らせ"
hashtags: "ハッシュタグ"
abuse: "スパム報告"
queue: "ジョブキュー"
back-to-misskey: "Misskeyに戻る"
admin/views/dashboard.vue:
dashboard: "ダッシュボード"
@@ -1001,6 +1027,9 @@ admin/views/dashboard.vue:
instances: "インスタンス"
this-instance: "このインスタンス"
federated: "連合"
admin/views/queue.vue:
operation: "操作"
remove-all-jobs: "すべてのジョブをクリア"
admin/views/abuse.vue:
title: "スパム報告"
target: "対象"
@@ -1072,6 +1101,7 @@ admin/views/instance.vue:
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-auth: "SMTP認証を行う"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
serviceworker-config: "ServiceWorker"
@@ -1142,6 +1172,8 @@ admin/views/users.vue:
unsuspend: "凍結の解除"
unsuspend-confirm: "凍結を解除しますか?"
unsuspended: "凍結を解除しました"
make-silence: "サイレンス"
unmake-silence: "サイレンスの解除"
verify: "公式アカウントにする"
verify-confirm: "公式アカウントにしますか?"
verified: "公式アカウントにしました"
@@ -1165,6 +1197,7 @@ admin/views/users.vue:
moderator: "モデレーター"
adminOrModerator: "管理者+モデレーター"
verified: "公式アカウント"
silenced: "サイレンス済み"
suspended: "凍結済み"
origin:
title: "オリジン"
@@ -1212,6 +1245,64 @@ admin/views/announcements.vue:
removed: "削除しました"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
admin/views/federation.vue:
federation: "連合"
host: "ホスト"
notes: "投稿"
users: "ユーザー"
following: "フォロー中"
followers: "フォロワー"
status: "ステータス"
latest-request-sent-at: "直近のリクエスト送信"
latest-request-received-at: "直近のリクエスト受信"
remove-all-following: "フォローを全解除"
remove-all-following-info: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
block: "ブロック"
marked-as-closed: "閉鎖されているとマーク"
lookup: "照会"
instances: "インスタンス"
instance-not-registered: "そのインスタンスは登録されていません"
sort: "ソート"
sorts:
caughtAtAsc: "登録日時が古い順"
caughtAtDesc: "登録日時が新しい順"
lastCommunicatedAtAsc: "最後にやり取りした日時が古い順"
lastCommunicatedAtDesc: "最後にやり取りした日時が新しい順"
notesAsc: "投稿が少ない順"
notesDesc: "投稿が多い順"
usersAsc: "ユーザーが少ない順"
usersDesc: "ユーザーが多い順"
followingAsc: "フォローが少ない順"
followingDesc: "フォローが多い順"
followersAsc: "フォロワーが少ない順"
followersDesc: "フォロワーが多い順"
driveUsageAsc: "ドライブ使用量が少ない順"
driveUsageDesc: "ドライブ使用量が多い順"
driveFilesAsc: "ドライブのファイル数が少ない順"
driveFilesDesc: "ドライブのファイル数が多い順"
state: "状態"
states:
all: "すべて"
blocked: "ブロック"
not-responding: "応答なし"
marked-as-closed: "閉鎖とマーク済み"
result-is-truncated: "上位{n}件を表示しています。"
charts: "チャート"
chart-srcs:
requests: "リクエスト"
users: "ユーザーの増減"
users-total: "ユーザーの積算"
notes: "投稿の増減"
notes-total: "投稿の積算"
ff: "フォロー/フォロワーの増減"
ff-total: "フォロー/フォロワーの積算"
drive-usage: "ドライブ使用量の増減"
drive-usage-total: "ドライブ使用量の積算"
drive-files: "ドライブファイル数の増減"
drive-files-total: "ドライブファイル数の積算"
chart-spans:
hour: "1時間ごと"
day: "1日ごと"
desktop/views/pages/welcome.vue:
about: "詳しく..."
gotit: "わかった"
@@ -1226,8 +1317,6 @@ desktop/views/pages/welcome.vue:
info: "情報"
desktop/views/pages/drive.vue:
title: "Misskey Drive"
desktop/views/pages/home-customize.vue:
title: "ホームのカスタマイズ"
desktop/views/pages/note.vue:
prev: "前の投稿"
next: "次の投稿"
@@ -1259,18 +1348,17 @@ desktop/views/pages/user/user.photos.vue:
title: "フォト"
loading: "読み込み中"
no-photos: "写真はありません"
desktop/views/pages/user/user.profile.vue:
follows-you: "フォローされています"
menu: "メニュー"
desktop/views/pages/user/user.header.vue:
posts: "投稿"
following: "フォロー"
followers: "フォロワー"
is-bot: "このアカウントはBotです"
no-description: "自己紹介はありません"
years-old: "{age}歳"
year: "年"
month: "月"
day: "日"
follows-you: "フォローされています"
desktop/views/pages/user/user.timeline.vue:
default: "投稿"
with-replies: "投稿と返信"
@@ -1338,12 +1426,6 @@ common/views/components/follow-button.vue:
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理中"
follow-request: "フォロー申請"
mobile/views/components/friends-maker.vue:
title: "気になるユーザーをフォロー"
empty: "おすすめのユーザーは見つかりませんでした。"
fetching: "読み込んでいます"
refresh: "もっと見る"
close: "閉じる"
mobile/views/components/note.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
@@ -1401,9 +1483,6 @@ mobile/views/components/ui.nav.vue:
mobile/views/components/user-timeline.vue:
no-notes: "このユーザーは投稿していないようです。"
no-notes-with-media: "メディア付き投稿はありません。"
mobile/views/components/users-list.vue:
all: "すべて"
known: "知り合い"
mobile/views/pages/favorites.vue:
title: "お気に入り"
mobile/views/pages/user-lists.vue:
@@ -1422,6 +1501,8 @@ mobile/views/pages/home.vue:
global: "グローバル"
mentions: "あなた宛て"
messages: "メッセージ"
mobile/views/pages/home.timeline.vue:
empty: "投稿がありません"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
mobile/views/pages/welcome.vue:
@@ -1511,13 +1592,9 @@ mobile/views/pages/user/home.vue:
activity: "アクティビティ"
keywords: "キーワード"
domains: "頻出ドメイン"
frequently-replied-users: "よく話すユーザー"
frequently-replied-users: "よく話すユーザー"
followers-you-know: "知り合いのフォロワー"
last-used-at: "最終ログイン"
mobile/views/pages/user/home.followers-you-know.vue:
no-users: "知り合いのユーザーはいません"
mobile/views/pages/user/home.friends.vue:
no-users: "よく会話するユーザーはいません"
mobile/views/pages/user/home.notes.vue:
no-notes: "投稿はありません"
mobile/views/pages/user/home.photos.vue:
@@ -1542,11 +1619,15 @@ deck:
rename: "名前を変更"
stack-left: "左に重ねる"
pop-right: "右に出す"
disabled-timeline:
title: "無効化されたタイムライン"
description: "サーバーの運営者により、このタイムラインは使用できない状態に設定されています。"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
follows-you: "フォローされています"
posts: "投稿"
following: "フォロー"
followers: "フォロワー"

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,17 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.79.1",
"clientVersion": "2.0.13871",
"version": "10.87.5",
"codename": "nighthike",
"main": "./built/index.js",
"repository": {
"type": "git",
"url": "https://github.com/syuilo/misskey.git"
},
"main": "./index.js",
"private": true,
"scripts": {
"start": "node ./built",
"debug": "DEBUG=misskey:* node ./built",
"start": "node ./index.js",
"debug": "DEBUG=misskey:* node ./index.js",
"build": "webpack && gulp build",
"webpack": "webpack",
"watch": "webpack --watch",
@@ -20,10 +23,10 @@
"format": "gulp format"
},
"dependencies": {
"@fortawesome/fontawesome-svg-core": "1.2.12",
"@fortawesome/free-brands-svg-icons": "5.6.3",
"@fortawesome/free-regular-svg-icons": "5.6.3",
"@fortawesome/free-solid-svg-icons": "5.6.3",
"@fortawesome/fontawesome-svg-core": "1.2.14",
"@fortawesome/free-brands-svg-icons": "5.7.1",
"@fortawesome/free-regular-svg-icons": "5.7.0",
"@fortawesome/free-solid-svg-icons": "5.7.1",
"@fortawesome/vue-fontawesome": "0.1.5",
"@koa/cors": "2.2.3",
"@prezzemolo/rap": "0.1.2",
@@ -31,12 +34,11 @@
"@types/bcryptjs": "2.4.2",
"@types/chai-http": "3.0.5",
"@types/dateformat": "3.0.0",
"@types/debug": "0.0.31",
"@types/deep-equal": "1.0.1",
"@types/double-ended-queue": "2.1.0",
"@types/elasticsearch": "5.0.30",
"@types/file-type": "10.6.0",
"@types/gulp": "3.8.36",
"@types/gulp": "4.0.5",
"@types/gulp-mocha": "0.0.32",
"@types/gulp-rename": "0.0.33",
"@types/gulp-replace": "0.0.31",
@@ -46,27 +48,29 @@
"@types/is-svg": "3.0.0",
"@types/is-url": "1.2.28",
"@types/js-yaml": "3.12.0",
"@types/jsdom": "12.2.1",
"@types/katex": "0.5.0",
"@types/koa": "2.0.48",
"@types/koa-bodyparser": "5.0.2",
"@types/koa-compress": "2.0.8",
"@types/koa-cors": "0.0.0",
"@types/koa-favicon": "2.0.19",
"@types/koa-logger": "3.1.1",
"@types/koa-mount": "3.0.1",
"@types/koa-multer": "1.0.0",
"@types/koa-router": "7.0.38",
"@types/koa-router": "7.0.39",
"@types/koa-send": "4.1.1",
"@types/koa-views": "2.0.3",
"@types/koa__cors": "2.2.3",
"@types/minio": "7.0.1",
"@types/mkdirp": "0.5.2",
"@types/mocha": "5.2.5",
"@types/mongodb": "3.1.18",
"@types/ms": "0.7.30",
"@types/node": "10.12.18",
"@types/mongodb": "3.1.19",
"@types/node": "10.12.24",
"@types/nodemailer": "4.6.5",
"@types/nprogress": "0.0.29",
"@types/oauth": "0.9.1",
"@types/parse5": "5.0.0",
"@types/parsimmon": "1.10.0",
"@types/portscanner": "2.1.0",
"@types/pug": "2.0.4",
@@ -75,54 +79,54 @@
"@types/redis": "2.8.10",
"@types/request": "2.48.1",
"@types/request-promise-native": "1.0.15",
"@types/request-stats": "3.0.0",
"@types/rimraf": "2.0.2",
"@types/seedrandom": "2.4.27",
"@types/sharp": "0.21.1",
"@types/sharp": "0.21.2",
"@types/showdown": "1.9.2",
"@types/speakeasy": "2.0.3",
"@types/systeminformation": "3.23.1",
"@types/tinycolor2": "1.4.1",
"@types/tmp": "0.0.33",
"@types/uuid": "3.4.4",
"@types/web-push": "3.3.0",
"@types/webpack": "4.4.24",
"@types/webpack-stream": "3.2.10",
"@types/websocket": "0.0.40",
"@types/ws": "6.0.1",
"animejs": "3.0.1",
"apexcharts": "2.5.1",
"apexcharts": "3.3.0",
"autobind-decorator": "2.4.0",
"autosize": "4.0.2",
"autwh": "0.1.0",
"bcryptjs": "2.4.3",
"bee-queue": "1.2.2",
"bootstrap-vue": "2.0.0-rc.11",
"cafy": "12.0.0",
"cafy": "14.0.1",
"chai": "4.2.0",
"chai-http": "4.2.1",
"chalk": "2.4.2",
"commander": "2.19.0",
"crc-32": "1.2.0",
"css-loader": "1.0.1",
"cssnano": "4.1.8",
"css-loader": "2.1.0",
"cssnano": "4.1.10",
"dateformat": "3.0.3",
"debug": "4.1.1",
"deep-equal": "1.0.1",
"deepcopy": "0.6.3",
"diskusage": "1.0.0",
"double-ended-queue": "2.1.0-0",
"elasticsearch": "15.3.0",
"elasticsearch": "15.3.1",
"emojilib": "2.4.0",
"escape-regexp": "0.0.1",
"eslint": "5.12.0",
"eslint-plugin-vue": "5.1.0",
"eventemitter3": "3.1.0",
"feed": "2.0.2",
"file-loader": "2.0.0",
"file-type": "10.7.0",
"file-type": "10.7.1",
"fuckadblock": "3.2.1",
"gulp": "3.9.1",
"gulp": "4.0.0",
"gulp-cssnano": "2.1.3",
"gulp-imagemin": "4.1.0",
"gulp-imagemin": "5.0.3",
"gulp-mocha": "6.0.0",
"gulp-rename": "1.4.0",
"gulp-replace": "1.0.0",
@@ -132,20 +136,19 @@
"gulp-typescript": "5.0.0",
"gulp-uglify": "3.0.1",
"gulp-util": "3.0.8",
"gulp-yaml": "2.0.2",
"gulp-yaml": "2.0.3",
"hard-source-webpack-plugin": "0.13.1",
"html-minifier": "3.5.21",
"http-signature": "1.2.0",
"insert-text-at-cursor": "0.1.1",
"insert-text-at-cursor": "0.1.2",
"is-root": "2.0.0",
"is-svg": "3.0.0",
"is-url": "1.2.4",
"js-yaml": "3.12.1",
"jsdom": "13.1.0",
"jsdom": "13.2.0",
"json5": "2.1.0",
"json5-loader": "1.0.1",
"katex": "0.10.0",
"koa": "2.6.2",
"koa": "2.7.0",
"koa-bodyparser": "4.2.1",
"koa-compress": "3.0.0",
"koa-favicon": "2.0.1",
@@ -160,12 +163,12 @@
"langmap": "0.0.16",
"loader-utils": "1.2.3",
"lookup-dns-cache": "2.1.0",
"minio": "7.0.3",
"minio": "7.0.5",
"mkdirp": "0.5.1",
"mocha": "5.2.0",
"moji": "0.5.1",
"moment": "2.23.0",
"mongodb": "3.1.10",
"moment": "2.24.0",
"mongodb": "3.1.13",
"monk": "6.0.6",
"ms": "2.1.1",
"nan": "2.12.1",
@@ -180,7 +183,7 @@
"portscanner": "2.2.0",
"postcss-loader": "3.0.0",
"prismjs": "1.15.0",
"progress-bar-webpack-plugin": "1.12.0",
"progress-bar-webpack-plugin": "1.12.1",
"promise-any": "0.2.0",
"promise-limit": "2.7.0",
"promise-sequential": "1.1.1",
@@ -199,7 +202,7 @@
"rndstr": "1.0.0",
"s-age": "1.1.2",
"seedrandom": "2.4.4",
"sharp": "0.21.1",
"sharp": "0.21.3",
"showdown": "1.9.0",
"showdown-highlightjs-extension": "0.1.2",
"speakeasy": "2.0.0",
@@ -208,46 +211,47 @@
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
"summaly": "2.2.0",
"systeminformation": "3.52.2",
"systeminformation": "3.54.0",
"syuilo-password-strength": "0.0.1",
"terser-webpack-plugin": "1.2.1",
"terser-webpack-plugin": "1.2.2",
"textarea-caret": "3.1.0",
"tinycolor2": "1.4.1",
"tmp": "0.0.33",
"ts-loader": "5.3.3",
"ts-node": "7.0.1",
"tslint": "5.12.0",
"tslint-sonarts": "1.8.0",
"tslint": "5.12.1",
"tslint-sonarts": "1.9.0",
"typescript": "3.2.4",
"typescript-eslint-parser": "21.0.2",
"uglify-es": "3.3.9",
"url-loader": "1.1.2",
"uuid": "3.3.2",
"v-animate-css": "0.0.3",
"vue": "2.5.17",
"video-thumbnail-generator": "1.1.3",
"vue": "2.6.6",
"vue-color": "2.7.0",
"vue-content-loading": "1.5.3",
"vue-cropperjs": "3.0.0",
"vue-i18n": "8.7.0",
"vue-i18n": "8.8.1",
"vue-js-modal": "1.3.28",
"vue-loader": "15.5.1",
"vue-loader": "15.6.2",
"vue-marquee-text-component": "1.1.1",
"vue-prism-component": "1.1.1",
"vue-router": "3.0.2",
"vue-sequential-entrance": "1.1.3",
"vue-style-loader": "4.1.2",
"vue-svg-inline-loader": "1.2.7",
"vue-template-compiler": "2.5.17",
"vue-svg-inline-loader": "1.2.10",
"vue-template-compiler": "2.6.6",
"vuedraggable": "2.17.0",
"vuewordcloud": "18.7.11",
"vuex": "3.0.1",
"vuex": "3.1.0",
"vuex-persistedstate": "2.5.4",
"web-push": "3.3.3",
"webfinger.js": "2.7.0",
"webpack": "4.28.4",
"webpack-cli": "3.2.1",
"websocket": "1.0.28",
"ws": "6.1.2",
"ws": "6.1.3",
"xev": "2.0.1"
}
}

3
src/@types/const.json.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
declare module '*/const.json' {
const copyright: string;
}

17
src/@types/deepcopy.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
declare module 'deepcopy';
declare namespace deepcopy {
type DeepcopyCustomizerValueType = 'Object';
type DeepcopyCustomizer<T> = (
value: T,
valueType: DeepcopyCustomizerValueType) => T;
interface DeepcopyOptions<T> {
customizer: DeepcopyCustomizer<T>;
}
export function deepcopy<T>(
value: T,
options?: DeepcopyOptions<T> | DeepcopyCustomizer<T>): T;
}

7
src/@types/escape-regexp.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
declare module 'escape-regexp' {
function escapeRegExp(str: string): string;
namespace escapeRegExp {} // Hack
export = escapeRegExp;
}

75
src/@types/http-signature.d.ts vendored Normal file
View File

@@ -0,0 +1,75 @@
declare module 'http-signature' {
import { IncomingMessage, ClientRequest } from 'http';
interface ISignature {
keyId: string;
algorithm: string;
headers: string[];
signature: string;
}
interface IOptions {
headers?: string[];
algorithm?: string;
strict?: boolean;
authorizationHeaderName?: string;
}
interface IParseRequestOptions extends IOptions {
clockSkew?: number;
}
interface IParsedSignature {
scheme: string;
params: ISignature;
signingString: string;
}
type RequestSignerConstructorOptions =
IRequestSignerConstructorOptionsFromProperties |
IRequestSignerConstructorOptionsFromFunction;
interface IRequestSignerConstructorOptionsFromProperties {
keyId: string;
key: string | Buffer;
algorithm?: string;
}
interface IRequestSignerConstructorOptionsFromFunction {
sign?: (data: string, cb: (err: any, sig: ISignature) => void) => void;
}
class RequestSigner {
constructor(options: RequestSignerConstructorOptions);
public writeHeader(header: string, value: string): string;
public writeDateHeader(): string;
public writeTarget(method: string, path: string): void;
public sign(cb: (err: any, authz: string) => void): void;
}
interface ISignRequestOptions extends IOptions {
keyId: string;
key: string;
httpVersion?: string;
}
export function parse(request: IncomingMessage, options?: IParseRequestOptions): IParsedSignature;
export function parseRequest(request: IncomingMessage, options?: IParseRequestOptions): IParsedSignature;
export function sign(request: ClientRequest, options: ISignRequestOptions): boolean;
export function signRequest(request: ClientRequest, options: ISignRequestOptions): boolean;
export function createSigner(): RequestSigner;
export function isSigner(obj: any): obj is RequestSigner;
export function sshKeyToPEM(key: string): string;
export function sshKeyFingerprint(key: string): string;
export function pemToRsaSSHKey(pem: string, comment: string): string;
export function verify(parsedSignature: IParsedSignature, pubkey: string | Buffer): boolean;
export function verifySignature(parsedSignature: IParsedSignature, pubkey: string | Buffer): boolean;
export function verifyHMAC(parsedSignature: IParsedSignature, secret: string): boolean;
}

7
src/@types/is-root.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
declare module 'is-root' {
function isRoot(): boolean;
namespace isRoot {} // Hack
export = isRoot;
}

15
src/@types/koa-json-body.d.ts vendored Normal file
View File

@@ -0,0 +1,15 @@
declare module 'koa-json-body' {
import { Middleware } from 'koa';
interface IKoaJsonBodyOptions {
strict: boolean;
limit: string;
fallback: boolean;
}
function koaJsonBody(opt?: IKoaJsonBodyOptions): Middleware;
namespace koaJsonBody {} // Hack
export = koaJsonBody;
}

14
src/@types/koa-slow.d.ts vendored Normal file
View File

@@ -0,0 +1,14 @@
declare module 'koa-slow' {
import { Middleware } from 'koa';
interface ISlowOptions {
url?: RegExp;
delay?: number;
}
function slow(options?: ISlowOptions): Middleware;
namespace slow { } // Hack
export = slow;
}

10
src/@types/langmap.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
declare module 'langmap' {
type Lang = {
nativeName: string;
englishName: string;
};
const langmap: { [lang: string]: Lang };
export = langmap;
}

17
src/@types/lookup-dns-cache.d.ts vendored Normal file
View File

@@ -0,0 +1,17 @@
declare module 'lookup-dns-cache' {
type IPv4 = 4;
type IPv6 = 6;
type Family = IPv4 | IPv6 | undefined;
interface IRunOptions {
family?: Family;
all?: boolean;
}
type RunCallback = (error: Error | null, address?: string | string[], family?: Family) => void;
export function lookup(hostname: string, options: IRunOptions | Family, callback: RunCallback): {} | undefined;
export function lookup(hostname: string, callback: RunCallback): {} | undefined;
}

3
src/@types/meta.json.d.ts vendored Normal file
View File

@@ -0,0 +1,3 @@
declare module '*/meta.json' {
const version: string;
}

12
src/@types/ms.d.ts vendored Normal file
View File

@@ -0,0 +1,12 @@
declare module 'ms' {
interface IMSOptions {
long: boolean;
}
function ms(value: string): number;
function ms(value: number, options?: IMSOptions): string;
namespace ms {} // Hack
export = ms;
}

21
src/@types/nested-property.d.ts vendored Normal file
View File

@@ -0,0 +1,21 @@
type Obj = { [key: string]: any };
declare module 'nested-property' {
interface IHasNestedPropertyOptions {
own?: boolean;
}
interface IIsInNestedPropertyOptions {
validPath?: boolean;
}
export function set<T>(object: T, property: string, value: any): T;
export function get(object: Obj, property: string): any;
export function has(object: Obj, property: string, options?: IHasNestedPropertyOptions): boolean;
export function hasOwn(object: Obj, property: string, options?: IHasNestedPropertyOptions): boolean;
export function isIn(object: Obj, property: string, objectInPath: Obj, options?: IIsInNestedPropertyOptions): boolean;
}

30
src/@types/os-utils.d.ts vendored Normal file
View File

@@ -0,0 +1,30 @@
declare module 'os-utils' {
type FreeCommandCallback = (usedmem: number) => void;
type HarddriveCallback = (total: number, free: number, used: number) => void;
type GetProcessesCallback = (result: string) => void;
type CPUCallback = (perc: number) => void;
export function platform(): NodeJS.Platform;
export function cpuCount(): number;
export function sysUptime(): number;
export function processUptime(): number;
export function freemem(): number;
export function totalmem(): number;
export function freememPercentage(): number;
export function freeCommand(callback: FreeCommandCallback): void;
export function harddrive(callback: HarddriveCallback): void;
export function getProcesses(callback: GetProcessesCallback): void;
export function getProcesses(nProcess: number, callback: GetProcessesCallback): void;
export function allLoadavg(): string;
export function loadavg(_time?: number): number;
export function cpuFree(callback: CPUCallback): void;
export function cpuUsage(callback: CPUCallback): void;
}

10
src/@types/package.json.d.ts vendored Normal file
View File

@@ -0,0 +1,10 @@
declare module '*/package.json' {
interface IRepository {
type: string;
url: string;
}
export const name: string;
export const version: string;
export const repository: IRepository;
}

7
src/@types/promise-any.d.ts vendored Normal file
View File

@@ -0,0 +1,7 @@
declare module 'promise-any' {
function promiseAny<T>(iterable: Iterable<T | PromiseLike<T>>): Promise<T>;
namespace promiseAny {} // Hack
export = promiseAny;
}

16
src/@types/recaptcha-promise.d.ts vendored Normal file
View File

@@ -0,0 +1,16 @@
declare module 'recaptcha-promise' {
interface IVerifyOptions {
secret_key?: string;
}
interface IVerify {
(response: string, remoteAddress?: string): Promise<boolean>;
init(options: IVerifyOptions): IVerify;
}
namespace recaptchaPromise {} // Hack
const verify: IVerify;
export = verify;
}

65
src/@types/webfinger.js.d.ts vendored Normal file
View File

@@ -0,0 +1,65 @@
declare module 'webfinger.js' {
interface IWebFingerConstructorConfig {
tls_only?: boolean;
webfist_fallback?: boolean;
uri_fallback?: boolean;
request_timeout?: number;
}
type JRDProperties = { [type: string]: string };
interface IJRDLink {
rel: string;
type?: string;
href?: string;
template?: string;
titles?: { [lang: string]: string };
properties?: JRDProperties;
}
interface IJRD {
subject?: string;
expires?: Date;
aliases?: string[];
properties?: JRDProperties;
links?: IJRDLink[];
}
interface IIDXLinks {
'avatar': IJRDLink[];
'remotestorage': IJRDLink[];
'blog': IJRDLink[];
'vcard': IJRDLink[];
'updates': IJRDLink[];
'share': IJRDLink[];
'profile': IJRDLink[];
'webfist': IJRDLink[];
'camlistore': IJRDLink[];
[type: string]: IJRDLink[];
}
interface IIDXProperties {
'name': string;
[type: string]: string;
}
interface IIDX {
links: IIDXLinks;
properties: IIDXProperties;
}
interface ILookupCallbackResult {
object: IJRD;
json: string;
idx: IIDX;
}
type LookupCallback = (err: Error | string, result?: ILookupCallbackResult) => void;
export class WebFinger {
constructor(config?: IWebFingerConstructorConfig);
public lookup(address: string, cb: LookupCallback): NodeJS.Timeout;
public lookupLink(address: string, rel: string, cb: IJRDLink): void;
}
}

21
src/argv.ts Normal file
View File

@@ -0,0 +1,21 @@
import * as program from 'commander';
import * as pkg from '../package.json';
program
.version(pkg.version)
.option('--no-daemons', 'Disable daemon processes (for debbuging)')
.option('--disable-clustering', 'Disable clustering')
.option('--disable-queue', 'Disable job queue processing')
.option('--only-server', 'Run server only (without job queue)')
.option('--only-queue', 'Pocessing job queue only (without server)')
.option('--quiet', 'Suppress all logs')
.option('--verbose', 'Enable all logs')
.option('--with-log-time', 'Include timestamp for each logs')
.option('--slow', 'Delay all requests (for debbuging)')
.option('--color', 'This option is a dummy for some external program\'s (e.g. forever) issue.')
.parse(process.argv);
/*if (process.env.MK_DISABLE_QUEUE)*/ program.disableQueue = true;
if (process.env.MK_ONLY_QUEUE) program.onlyQueue = true;
export { program };

View File

@@ -1,7 +1,7 @@
<template>
<div>
<ui-card>
<div slot="title"><fa :icon="faExclamationCircle"/> {{ $t('title') }}</div>
<template #title><fa :icon="faExclamationCircle"/> {{ $t('title') }}</template>
<section class="fit-top">
<sequential-entrance animation="entranceFromTop" delay="25">
<div v-for="report in userReports" :key="report.id" class="haexwsjc">

View File

@@ -1,7 +1,7 @@
<template>
<div>
<ui-card>
<div slot="title"><fa icon="broadcast-tower"/> {{ $t('announcements') }}</div>
<template #title><fa icon="broadcast-tower"/> {{ $t('announcements') }}</template>
<section v-for="(announcement, i) in announcements" class="fit-top">
<ui-input v-model="announcement.title" @change="save">
<span>{{ $t('title') }}</span>

View File

@@ -42,7 +42,7 @@
import Vue from 'vue';
import i18n from '../../i18n';
import * as tinycolor from 'tinycolor2';
import * as ApexCharts from 'apexcharts';
import ApexCharts from 'apexcharts';
const limit = 90;

View File

@@ -19,7 +19,7 @@
<script lang="ts">
import Vue from 'vue';
import * as ApexCharts from 'apexcharts';
import ApexCharts from 'apexcharts';
export default Vue.extend({
props: ['connection'],

View File

@@ -124,7 +124,7 @@ export default Vue.extend({
this.meta = meta;
});
this.$root.api('instances', {
this.$root.api('federation/instances', {
sort: '+notes'
}).then(instances => {
for (const i of instances) {

View File

@@ -1,7 +1,7 @@
<template>
<div>
<ui-card>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
<template #title><fa :icon="faTerminal"/> {{ $t('operation') }}</template>
<section class="fit-top">
<ui-input v-model="target" type="text">
<span>{{ $t('fileid-or-url') }}</span>
@@ -17,18 +17,18 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div>
<template #title><fa :icon="faCloud"/> {{ $t('@.drive') }}</template>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-select v-model="sort">
<span slot="label">{{ $t('sort.title') }}</span>
<template #label>{{ $t('sort.title') }}</template>
<option value="-createdAt">{{ $t('sort.createdAtAsc') }}</option>
<option value="+createdAt">{{ $t('sort.createdAtDesc') }}</option>
<option value="-size">{{ $t('sort.sizeAsc') }}</option>
<option value="+size">{{ $t('sort.sizeDesc') }}</option>
</ui-select>
<ui-select v-model="origin">
<span slot="label">{{ $t('origin.title') }}</span>
<template #label>{{ $t('origin.title') }}</template>
<option value="combined">{{ $t('origin.combined') }}</option>
<option value="local">{{ $t('origin.local') }}</option>
<option value="remote">{{ $t('origin.remote') }}</option>

View File

@@ -1,20 +1,20 @@
<template>
<div>
<ui-card>
<div slot="title"><fa icon="plus"/> {{ $t('add-emoji.title') }}</div>
<template #title><fa icon="plus"/> {{ $t('add-emoji.title') }}</template>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-input v-model="name">
<span>{{ $t('add-emoji.name') }}</span>
<span slot="desc">{{ $t('add-emoji.name-desc') }}</span>
<template #desc>{{ $t('add-emoji.name-desc') }}</template>
</ui-input>
<ui-input v-model="aliases">
<span>{{ $t('add-emoji.aliases') }}</span>
<span slot="desc">{{ $t('add-emoji.aliases-desc') }}</span>
<template #desc>{{ $t('add-emoji.aliases-desc') }}</template>
</ui-input>
</ui-horizon-group>
<ui-input v-model="url">
<i slot="icon"><fa icon="link"/></i>
<template #icon><fa icon="link"/></template>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-info>{{ $t('add-emoji.info') }}</ui-info>
@@ -23,7 +23,7 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="faGrin"/> {{ $t('emojis.title') }}</div>
<template #title><fa :icon="faGrin"/> {{ $t('emojis.title') }}</template>
<section v-for="emoji in emojis" class="oryfrbft">
<div>
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
@@ -38,7 +38,7 @@
</ui-input>
</ui-horizon-group>
<ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i>
<template #icon><fa icon="link"/></template>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-horizon-group class="fit-bottom">

View File

@@ -0,0 +1,488 @@
<template>
<div>
<ui-card>
<template #title><fa :icon="faTerminal"/> {{ $t('federation') }}</template>
<section class="fit-top">
<ui-input class="target" v-model="target" type="text" @enter="showInstance()">
<span>{{ $t('host') }}</span>
</ui-input>
<ui-button @click="showInstance()"><fa :icon="faSearch"/> {{ $t('lookup') }}</ui-button>
<div class="instance" v-if="instance">
<ui-input :value="instance.host" type="text" readonly>
<span>{{ $t('host') }}</span>
</ui-input>
<ui-horizon-group inputs>
<ui-input :value="instance.notesCount | number" type="text" readonly>
<span>{{ $t('notes') }}</span>
</ui-input>
<ui-input :value="instance.usersCount | number" type="text" readonly>
<span>{{ $t('users') }}</span>
</ui-input>
</ui-horizon-group>
<ui-horizon-group inputs>
<ui-input :value="instance.followingCount | number" type="text" readonly>
<span>{{ $t('following') }}</span>
</ui-input>
<ui-input :value="instance.followersCount | number" type="text" readonly>
<span>{{ $t('followers') }}</span>
</ui-input>
</ui-horizon-group>
<ui-horizon-group inputs>
<ui-input :value="instance.latestRequestSentAt" type="text" readonly>
<span>{{ $t('latest-request-sent-at') }}</span>
</ui-input>
<ui-input :value="instance.latestStatus" type="text" readonly>
<span>{{ $t('status') }}</span>
</ui-input>
</ui-horizon-group>
<ui-input :value="instance.latestRequestReceivedAt" type="text" readonly>
<span>{{ $t('latest-request-received-at') }}</span>
</ui-input>
<ui-switch v-model="instance.isBlocked" @change="updateInstance()">{{ $t('block') }}</ui-switch>
<ui-switch v-model="instance.isMarkedAsClosed" @change="updateInstance()">{{ $t('marked-as-closed') }}</ui-switch>
<details>
<summary>{{ $t('charts') }}</summary>
<ui-horizon-group inputs>
<ui-select v-model="chartSrc">
<option value="requests">{{ $t('chart-srcs.requests') }}</option>
<option value="users">{{ $t('chart-srcs.users') }}</option>
<option value="users-total">{{ $t('chart-srcs.users-total') }}</option>
<option value="notes">{{ $t('chart-srcs.notes') }}</option>
<option value="notes-total">{{ $t('chart-srcs.notes-total') }}</option>
<option value="ff">{{ $t('chart-srcs.ff') }}</option>
<option value="ff-total">{{ $t('chart-srcs.ff-total') }}</option>
<option value="drive-usage">{{ $t('chart-srcs.drive-usage') }}</option>
<option value="drive-usage-total">{{ $t('chart-srcs.drive-usage-total') }}</option>
<option value="drive-files">{{ $t('chart-srcs.drive-files') }}</option>
<option value="drive-files-total">{{ $t('chart-srcs.drive-files-total') }}</option>
</ui-select>
<ui-select v-model="chartSpan">
<option value="hour">{{ $t('chart-spans.hour') }}</option>
<option value="day">{{ $t('chart-spans.day') }}</option>
</ui-select>
</ui-horizon-group>
<div ref="chart"></div>
</details>
<details>
<summary>{{ $t('remove-all-following') }}</summary>
<ui-button @click="removeAllFollowing()" style="margin-top: 16px;"><fa :icon="faMinusCircle"/> {{ $t('remove-all-following') }}</ui-button>
<ui-info warn>{{ $t('remove-all-following-info', { host: instance.host }) }}</ui-info>
</details>
</div>
</section>
</ui-card>
<ui-card>
<template #title><fa :icon="faServer"/> {{ $t('instances') }}</template>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-select v-model="sort">
<template #label>{{ $t('sort') }}</template>
<option value="-caughtAt">{{ $t('sorts.caughtAtAsc') }}</option>
<option value="+caughtAt">{{ $t('sorts.caughtAtDesc') }}</option>
<option value="-lastCommunicatedAt">{{ $t('sorts.lastCommunicatedAtAsc') }}</option>
<option value="+lastCommunicatedAt">{{ $t('sorts.lastCommunicatedAtDesc') }}</option>
<option value="-notes">{{ $t('sorts.notesAsc') }}</option>
<option value="+notes">{{ $t('sorts.notesDesc') }}</option>
<option value="-users">{{ $t('sorts.usersAsc') }}</option>
<option value="+users">{{ $t('sorts.usersDesc') }}</option>
<option value="-following">{{ $t('sorts.followingAsc') }}</option>
<option value="+following">{{ $t('sorts.followingDesc') }}</option>
<option value="-followers">{{ $t('sorts.followersAsc') }}</option>
<option value="+followers">{{ $t('sorts.followersDesc') }}</option>
<option value="-driveUsage">{{ $t('sorts.driveUsageAsc') }}</option>
<option value="+driveUsage">{{ $t('sorts.driveUsageDesc') }}</option>
<option value="-driveFiles">{{ $t('sorts.driveFilesAsc') }}</option>
<option value="+driveFiles">{{ $t('sorts.driveFilesDesc') }}</option>
</ui-select>
<ui-select v-model="state">
<template #label>{{ $t('state') }}</template>
<option value="all">{{ $t('states.all') }}</option>
<option value="blocked">{{ $t('states.blocked') }}</option>
<option value="notResponding">{{ $t('states.not-responding') }}</option>
<option value="markedAsClosed">{{ $t('states.marked-as-closed') }}</option>
</ui-select>
</ui-horizon-group>
<div class="instances">
<header>
<span>{{ $t('host') }}</span>
<span>{{ $t('notes') }}</span>
<span>{{ $t('users') }}</span>
<span>{{ $t('following') }}</span>
<span>{{ $t('followers') }}</span>
<span>{{ $t('status') }}</span>
</header>
<div v-for="instance in instances" :style="{ opacity: instance.isNotResponding ? 0.5 : 1 }">
<a @click.prevent="showInstance(instance.host)" target="_blank" :href="`https://${instance.host}`" :style="{ textDecoration: instance.isMarkedAsClosed ? 'line-through' : 'none' }">{{ instance.host }}</a>
<span>{{ instance.notesCount | number }}</span>
<span>{{ instance.usersCount | number }}</span>
<span>{{ instance.followingCount | number }}</span>
<span>{{ instance.followersCount | number }}</span>
<span>{{ instance.latestStatus }}</span>
</div>
</div>
<ui-info v-if="instances.length == limit">{{ $t('result-is-truncated', { n: limit }) }}</ui-info>
</section>
</ui-card>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
import { faGlobe, faTerminal, faSearch, faMinusCircle, faServer } from '@fortawesome/free-solid-svg-icons';
import ApexCharts from 'apexcharts';
import * as tinycolor from 'tinycolor2';
const chartLimit = 90;
const sum = (...arr) => arr.reduce((r, a) => r.map((b, i) => a[i] + b));
const negate = arr => arr.map(x => -x);
export default Vue.extend({
i18n: i18n('admin/views/federation.vue'),
data() {
return {
instance: null,
target: null,
sort: '+lastCommunicatedAt',
state: 'all',
limit: 50,
instances: [],
chart: null,
chartSrc: 'requests',
chartSpan: 'hour',
chartInstance: null,
faGlobe, faTerminal, faSearch, faMinusCircle, faServer
};
},
computed: {
data(): any {
if (this.chart == null) return null;
switch (this.chartSrc) {
case 'requests': return this.requestsChart();
case 'users': return this.usersChart(false);
case 'users-total': return this.usersChart(true);
case 'notes': return this.notesChart(false);
case 'notes-total': return this.notesChart(true);
case 'ff': return this.ffChart(false);
case 'ff-total': return this.ffChart(true);
case 'drive-usage': return this.driveUsageChart(false);
case 'drive-usage-total': return this.driveUsageChart(true);
case 'drive-files': return this.driveFilesChart(false);
case 'drive-files-total': return this.driveFilesChart(true);
}
},
stats(): any[] {
const stats =
this.chartSpan == 'day' ? this.chart.perDay :
this.chartSpan == 'hour' ? this.chart.perHour :
null;
return stats;
}
},
watch: {
sort() {
this.fetchInstances();
},
state() {
this.fetchInstances();
},
async instance() {
this.now = new Date();
const [perHour, perDay] = await Promise.all([
this.$root.api('charts/instance', { host: this.instance.host, limit: chartLimit, span: 'hour' }),
this.$root.api('charts/instance', { host: this.instance.host, limit: chartLimit, span: 'day' }),
]);
const chart = {
perHour: perHour,
perDay: perDay
};
this.chart = chart;
this.renderChart();
},
chartSrc() {
this.renderChart();
},
chartSpan() {
this.renderChart();
}
},
mounted() {
this.fetchInstances();
},
beforeDestroy() {
this.chartInstance.destroy();
},
methods: {
showInstance(target?: string) {
this.$root.api('federation/show-instance', {
host: target || this.target
}).then(instance => {
if (instance == null) {
this.$root.dialog({
type: 'error',
text: this.$t('instance-not-registered')
});
} else {
this.instance = instance;
this.target = '';
}
});
},
fetchInstances() {
this.instances = [];
this.$root.api('federation/instances', {
blocked: this.state === 'blocked' ? true : null,
notResponding: this.state === 'notResponding' ? true : null,
markedAsClosed: this.state === 'markedAsClosed' ? true : null,
sort: this.sort,
limit: this.limit
}).then(instances => {
this.instances = instances;
});
},
removeAllFollowing() {
this.$root.api('admin/federation/remove-all-following', {
host: this.instance.host
}).then(() => {
this.$root.dialog({
type: 'success',
splash: true
});
});
},
updateInstance() {
this.$root.api('admin/federation/update-instance', {
host: this.instance.host,
isBlocked: this.instance.isBlocked || false,
isClosed: this.instance.isMarkedAsClosed || false
});
},
setSrc(src) {
this.chartSrc = src;
},
renderChart() {
if (this.chartInstance) {
this.chartInstance.destroy();
}
this.chartInstance = new ApexCharts(this.$refs.chart, {
chart: {
type: 'area',
height: 300,
animations: {
dynamicAnimation: {
enabled: false
}
},
toolbar: {
show: false
},
zoom: {
enabled: false
}
},
dataLabels: {
enabled: false
},
grid: {
clipMarkers: false,
borderColor: 'rgba(0, 0, 0, 0.1)'
},
stroke: {
curve: 'straight',
width: 2
},
tooltip: {
theme: this.$store.state.device.darkmode ? 'dark' : 'light'
},
legend: {
labels: {
colors: tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--text')).toRgbString()
},
},
xaxis: {
type: 'datetime',
labels: {
style: {
colors: tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--text')).toRgbString()
}
},
axisBorder: {
color: 'rgba(0, 0, 0, 0.1)'
},
axisTicks: {
color: 'rgba(0, 0, 0, 0.1)'
},
},
yaxis: {
labels: {
formatter: this.data.bytes ? v => Vue.filter('bytes')(v, 0) : v => Vue.filter('number')(v),
style: {
color: tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--text')).toRgbString()
}
}
},
series: this.data.series
});
this.chartInstance.render();
},
getDate(i: number) {
const y = this.now.getFullYear();
const m = this.now.getMonth();
const d = this.now.getDate();
const h = this.now.getHours();
return (
this.chartSpan == 'day' ? new Date(y, m, d - i) :
this.chartSpan == 'hour' ? new Date(y, m, d, h - i) :
null
);
},
format(arr) {
return arr.map((v, i) => ({ x: this.getDate(i).getTime(), y: v }));
},
requestsChart(): any {
return {
series: [{
name: 'Incoming',
data: this.format(this.stats.requests.received)
}, {
name: 'Outgoing (succeeded)',
data: this.format(this.stats.requests.succeeded)
}, {
name: 'Outgoing (failed)',
data: this.format(this.stats.requests.failed)
}]
};
},
usersChart(total: boolean): any {
return {
series: [{
name: 'Users',
type: 'area',
data: this.format(total
? this.stats.users.total
: sum(this.stats.users.inc, negate(this.stats.users.dec))
)
}]
};
},
notesChart(total: boolean): any {
return {
series: [{
name: 'Notes',
type: 'area',
data: this.format(total
? this.stats.notes.total
: sum(this.stats.notes.inc, negate(this.stats.notes.dec))
)
}]
};
},
ffChart(total: boolean): any {
return {
series: [{
name: 'Following',
type: 'area',
data: this.format(total
? this.stats.following.total
: sum(this.stats.following.inc, negate(this.stats.following.dec))
)
}, {
name: 'Followers',
type: 'area',
data: this.format(total
? this.stats.followers.total
: sum(this.stats.followers.inc, negate(this.stats.followers.dec))
)
}]
};
},
driveUsageChart(total: boolean): any {
return {
bytes: true,
series: [{
name: 'Drive usage',
type: 'area',
data: this.format(total
? this.stats.drive.totalUsage
: sum(this.stats.drive.incUsage, negate(this.stats.drive.decUsage))
)
}]
};
},
driveFilesChart(total: boolean): any {
return {
series: [{
name: 'Drive files',
type: 'area',
data: this.format(total
? this.stats.drive.totalFiles
: sum(this.stats.drive.incFiles, negate(this.stats.drive.decFiles))
)
}]
};
},
}
});
</script>
<style lang="stylus" scoped>
.target
margin-bottom 16px !important
.instances
width 100%
> header
display flex
> *
color var(--text)
font-weight bold
> div
display flex
> * > *
flex 1
overflow auto
&:first-child
min-width 200px
</style>

View File

@@ -1,7 +1,7 @@
<template>
<div>
<ui-card>
<div slot="title">{{ $t('hided-tags') }}</div>
<template #title>{{ $t('hided-tags') }}</template>
<section>
<textarea class="jdnqwkzlnxcfftthoybjxrebyolvoucw" v-model="hidedTags"></textarea>
<ui-button @click="save">{{ $t('save') }}</ui-button>

View File

@@ -20,10 +20,11 @@
<ul>
<li @click="nav('dashboard')" :class="{ active: page == 'dashboard' }"><fa icon="home" fixed-width/>{{ $t('dashboard') }}</li>
<li @click="nav('instance')" :class="{ active: page == 'instance' }"><fa icon="cog" fixed-width/>{{ $t('instance') }}</li>
<li @click="nav('queue')" :class="{ active: page == 'queue' }"><fa :icon="faTasks" fixed-width/>{{ $t('queue') }}</li>
<li @click="nav('moderators')" :class="{ active: page == 'moderators' }"><fa :icon="faHeadset" fixed-width/>{{ $t('moderators') }}</li>
<li @click="nav('users')" :class="{ active: page == 'users' }"><fa icon="users" fixed-width/>{{ $t('users') }}</li>
<li @click="nav('drive')" :class="{ active: page == 'drive' }"><fa icon="cloud" fixed-width/>{{ $t('@.drive') }}</li>
<!-- <li @click="nav('federation')" :class="{ active: page == 'federation' }"><fa :icon="faShareAlt" fixed-width/>{{ $t('federation') }}</li> -->
<li @click="nav('federation')" :class="{ active: page == 'federation' }"><fa :icon="faGlobe" fixed-width/>{{ $t('federation') }}</li>
<li @click="nav('emoji')" :class="{ active: page == 'emoji' }"><fa :icon="faGrin" fixed-width/>{{ $t('emoji') }}</li>
<li @click="nav('announcements')" :class="{ active: page == 'announcements' }"><fa icon="broadcast-tower" fixed-width/>{{ $t('announcements') }}</li>
<li @click="nav('hashtags')" :class="{ active: page == 'hashtags' }"><fa icon="hashtag" fixed-width/>{{ $t('hashtags') }}</li>
@@ -40,12 +41,14 @@
<div class="page">
<div v-if="page == 'dashboard'"><x-dashboard/></div>
<div v-if="page == 'instance'"><x-instance/></div>
<div v-if="page == 'queue'"><x-queue/></div>
<div v-if="page == 'moderators'"><x-moderators/></div>
<div v-if="page == 'users'"><x-users/></div>
<div v-if="page == 'emoji'"><x-emoji/></div>
<div v-if="page == 'announcements'"><x-announcements/></div>
<div v-if="page == 'hashtags'"><x-hashtags/></div>
<div v-if="page == 'drive'"><x-drive/></div>
<div v-if="page == 'federation'"><x-federation/></div>
<div v-if="page == 'abuse'"><x-abuse/></div>
</div>
</main>
@@ -58,6 +61,7 @@ import i18n from '../../i18n';
import { version } from '../../config';
import XDashboard from "./dashboard.vue";
import XInstance from "./instance.vue";
import XQueue from "./queue.vue";
import XModerators from "./moderators.vue";
import XEmoji from "./emoji.vue";
import XAnnouncements from "./announcements.vue";
@@ -65,7 +69,9 @@ import XHashtags from "./hashtags.vue";
import XUsers from "./users.vue";
import XDrive from "./drive.vue";
import XAbuse from "./abuse.vue";
import { faHeadset, faArrowLeft, faShareAlt, faExclamationCircle } from '@fortawesome/free-solid-svg-icons';
import XFederation from "./federation.vue";
import { faHeadset, faArrowLeft, faGlobe, faExclamationCircle, faTasks } from '@fortawesome/free-solid-svg-icons';
import { faGrin } from '@fortawesome/free-regular-svg-icons';
// Detect the user agent
@@ -77,6 +83,7 @@ export default Vue.extend({
components: {
XDashboard,
XInstance,
XQueue,
XModerators,
XEmoji,
XAnnouncements,
@@ -84,6 +91,7 @@ export default Vue.extend({
XUsers,
XDrive,
XAbuse,
XFederation,
},
provide: {
isMobile
@@ -97,8 +105,9 @@ export default Vue.extend({
faGrin,
faArrowLeft,
faHeadset,
faShareAlt,
faExclamationCircle
faGlobe,
faExclamationCircle,
faTasks
};
},
methods: {

View File

@@ -1,20 +1,20 @@
<template>
<div>
<ui-card>
<div slot="title"><fa icon="cog"/> {{ $t('instance') }}</div>
<template #title><fa icon="cog"/> {{ $t('instance') }}</template>
<section class="fit-top fit-bottom">
<ui-input :value="host" readonly>{{ $t('host') }}</ui-input>
<ui-input v-model="name">{{ $t('instance-name') }}</ui-input>
<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea>
<ui-input v-model="mascotImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('logo-url') }}</ui-input>
<ui-input v-model="bannerUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('banner-url') }}</ui-input>
<ui-input v-model="errorImageUrl"><i slot="icon"><fa icon="link"/></i>{{ $t('error-image-url') }}</ui-input>
<ui-input v-model="languages"><i slot="icon"><fa icon="language"/></i>{{ $t('languages') }}<span slot="desc">{{ $t('languages-desc') }}</span></ui-input>
<ui-input v-model="mascotImageUrl"><template #icon><fa icon="link"/></template>{{ $t('logo-url') }}</ui-input>
<ui-input v-model="bannerUrl"><template #icon><fa icon="link"/></template>{{ $t('banner-url') }}</ui-input>
<ui-input v-model="errorImageUrl"><template #icon><fa icon="link"/></template>{{ $t('error-image-url') }}</ui-input>
<ui-input v-model="languages"><template #icon><fa icon="language"/></template>{{ $t('languages') }}<template #desc>{{ $t('languages-desc') }}</template></ui-input>
</section>
<section class="fit-bottom">
<header><fa :icon="faHeadset"/> {{ $t('maintainer-config') }}</header>
<ui-input v-model="maintainerName">{{ $t('maintainer-name') }}</ui-input>
<ui-input v-model="maintainerEmail" type="email"><i slot="icon"><fa :icon="farEnvelope"/></i>{{ $t('maintainer-email') }}</ui-input>
<ui-input v-model="maintainerEmail" type="email"><template #icon><fa :icon="farEnvelope"/></template>{{ $t('maintainer-email') }}</ui-input>
</section>
<section class="fit-top fit-bottom">
<ui-input v-model="maxNoteTextLength">{{ $t('max-note-text-length') }}</ui-input>
@@ -27,46 +27,47 @@
</section>
<section class="fit-bottom">
<header><fa icon="cloud"/> {{ $t('drive-config') }}</header>
<ui-switch v-model="cacheRemoteFiles">{{ $t('cache-remote-files') }}<span slot="desc">{{ $t('cache-remote-files-desc') }}</span></ui-switch>
<ui-input v-model="localDriveCapacityMb" type="number">{{ $t('local-drive-capacity-mb') }}<span slot="suffix">MB</span><span slot="desc">{{ $t('mb') }}</span></ui-input>
<ui-input v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles">{{ $t('remote-drive-capacity-mb') }}<span slot="suffix">MB</span><span slot="desc">{{ $t('mb') }}</span></ui-input>
<ui-switch v-model="cacheRemoteFiles">{{ $t('cache-remote-files') }}<template #desc>{{ $t('cache-remote-files-desc') }}</template></ui-switch>
<ui-input v-model="localDriveCapacityMb" type="number">{{ $t('local-drive-capacity-mb') }}<template #suffix>MB</template><template #desc>{{ $t('mb') }}</template></ui-input>
<ui-input v-model="remoteDriveCapacityMb" type="number" :disabled="!cacheRemoteFiles">{{ $t('remote-drive-capacity-mb') }}<template #suffix>MB</template><template #desc>{{ $t('mb') }}</template></ui-input>
</section>
<section class="fit-bottom">
<header><fa :icon="faShieldAlt"/> {{ $t('recaptcha-config') }}</header>
<ui-switch v-model="enableRecaptcha">{{ $t('enable-recaptcha') }}</ui-switch>
<ui-info>{{ $t('recaptcha-info') }}</ui-info>
<ui-horizon-group inputs>
<ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-site-key') }}</ui-input>
<ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><i slot="icon"><fa icon="key"/></i>{{ $t('recaptcha-secret-key') }}</ui-input>
<ui-input v-model="recaptchaSiteKey" :disabled="!enableRecaptcha"><template #icon><fa icon="key"/></template>{{ $t('recaptcha-site-key') }}</ui-input>
<ui-input v-model="recaptchaSecretKey" :disabled="!enableRecaptcha"><template #icon><fa icon="key"/></template>{{ $t('recaptcha-secret-key') }}</ui-input>
</ui-horizon-group>
</section>
<section>
<header><fa :icon="faGhost"/> {{ $t('proxy-account-config') }}</header>
<ui-info>{{ $t('proxy-account-info') }}</ui-info>
<ui-input v-model="proxyAccount"><span slot="prefix">@</span>{{ $t('proxy-account-username') }}<span slot="desc">{{ $t('proxy-account-username-desc') }}</span></ui-input>
<ui-input v-model="proxyAccount"><template #prefix>@</template>{{ $t('proxy-account-username') }}<template #desc>{{ $t('proxy-account-username-desc') }}</template></ui-input>
<ui-info warn>{{ $t('proxy-account-warn') }}</ui-info>
</section>
<section>
<header><fa :icon="farEnvelope"/> {{ $t('email-config') }}</header>
<ui-switch v-model="enableEmail">{{ $t('enable-email') }}<span slot="desc">{{ $t('email-config-info') }}</span></ui-switch>
<ui-switch v-model="enableEmail">{{ $t('enable-email') }}<template #desc>{{ $t('email-config-info') }}</template></ui-switch>
<ui-input v-model="email" type="email" :disabled="!enableEmail">{{ $t('email') }}</ui-input>
<ui-horizon-group inputs>
<ui-input v-model="smtpHost" :disabled="!enableEmail">{{ $t('smtp-host') }}</ui-input>
<ui-input v-model="smtpPort" type="number" :disabled="!enableEmail">{{ $t('smtp-port') }}</ui-input>
</ui-horizon-group>
<ui-switch v-model="smtpAuth">{{ $t('smtp-auth') }}</ui-switch>
<ui-horizon-group inputs>
<ui-input v-model="smtpUser" :disabled="!enableEmail">{{ $t('smtp-user') }}</ui-input>
<ui-input v-model="smtpPass" type="password" :withPasswordToggle="true" :disabled="!enableEmail">{{ $t('smtp-pass') }}</ui-input>
<ui-input v-model="smtpUser" :disabled="!enableEmail || !smtpAuth">{{ $t('smtp-user') }}</ui-input>
<ui-input v-model="smtpPass" type="password" :withPasswordToggle="true" :disabled="!enableEmail || !smtpAuth">{{ $t('smtp-pass') }}</ui-input>
</ui-horizon-group>
<ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<span slot="desc">{{ $t('smtp-secure-info') }}</span></ui-switch>
<ui-switch v-model="smtpSecure" :disabled="!enableEmail">{{ $t('smtp-secure') }}<template #desc>{{ $t('smtp-secure-info') }}</template></ui-switch>
</section>
<section>
<header><fa :icon="faBolt"/> {{ $t('serviceworker-config') }}</header>
<ui-switch v-model="enableServiceWorker">{{ $t('enable-serviceworker') }}<span slot="desc">{{ $t('serviceworker-info') }}</span></ui-switch>
<ui-switch v-model="enableServiceWorker">{{ $t('enable-serviceworker') }}<template #desc>{{ $t('serviceworker-info') }}</template></ui-switch>
<ui-info>{{ $t('vapid-info') }}<br><code>npm i web-push -g<br>web-push generate-vapid-keys</code></ui-info>
<ui-horizon-group inputs class="fit-bottom">
<ui-input v-model="swPublicKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-publickey') }}</ui-input>
<ui-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><i slot="icon"><fa icon="key"/></i>{{ $t('vapid-privatekey') }}</ui-input>
<ui-input v-model="swPublicKey" :disabled="!enableServiceWorker"><template #icon><fa icon="key"/></template>{{ $t('vapid-publickey') }}</ui-input>
<ui-input v-model="swPrivateKey" :disabled="!enableServiceWorker"><template #icon><fa icon="key"/></template>{{ $t('vapid-privatekey') }}</ui-input>
</ui-horizon-group>
</section>
<section>
@@ -76,8 +77,8 @@
<section>
<header><fa :icon="faUserPlus"/> {{ $t('user-recommendation-config') }}</header>
<ui-switch v-model="enableExternalUserRecommendation">{{ $t('enable-external-user-recommendation') }}</ui-switch>
<ui-input v-model="externalUserRecommendationEngine" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-engine') }}<span slot="desc">{{ $t('external-user-recommendation-engine-desc') }}</span></ui-input>
<ui-input v-model="externalUserRecommendationTimeout" type="number" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-timeout') }}<span slot="suffix">ms</span><span slot="desc">{{ $t('external-user-recommendation-timeout-desc') }}</span></ui-input>
<ui-input v-model="externalUserRecommendationEngine" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-engine') }}<template #desc>{{ $t('external-user-recommendation-engine-desc') }}</template></ui-input>
<ui-input v-model="externalUserRecommendationTimeout" type="number" :disabled="!enableExternalUserRecommendation">{{ $t('external-user-recommendation-timeout') }}<template #suffix>ms</template><template #desc>{{ $t('external-user-recommendation-timeout-desc') }}</template></ui-input>
</section>
<section>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@@ -85,7 +86,7 @@
</ui-card>
<ui-card>
<div slot="title">{{ $t('invite') }}</div>
<template #title>{{ $t('invite') }}</template>
<section>
<ui-button @click="invite">{{ $t('invite') }}</ui-button>
<p v-if="inviteCode">Code: <code>{{ inviteCode }}</code></p>
@@ -93,12 +94,12 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</div>
<template #title><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</template>
<section>
<ui-switch v-model="enableTwitterIntegration">{{ $t('enable-twitter-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-key') }}</ui-input>
<ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('twitter-integration-consumer-secret') }}</ui-input>
<ui-input v-model="twitterConsumerKey" :disabled="!enableTwitterIntegration"><template #icon><fa icon="key"/></template>{{ $t('twitter-integration-consumer-key') }}</ui-input>
<ui-input v-model="twitterConsumerSecret" :disabled="!enableTwitterIntegration"><template #icon><fa icon="key"/></template>{{ $t('twitter-integration-consumer-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@@ -106,12 +107,12 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</div>
<template #title><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</template>
<section>
<ui-switch v-model="enableGithubIntegration">{{ $t('enable-github-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-id') }}</ui-input>
<ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('github-integration-client-secret') }}</ui-input>
<ui-input v-model="githubClientId" :disabled="!enableGithubIntegration"><template #icon><fa icon="key"/></template>{{ $t('github-integration-client-id') }}</ui-input>
<ui-input v-model="githubClientSecret" :disabled="!enableGithubIntegration"><template #icon><fa icon="key"/></template>{{ $t('github-integration-client-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@@ -119,12 +120,12 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</div>
<template #title><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</template>
<section>
<ui-switch v-model="enableDiscordIntegration">{{ $t('enable-discord-integration') }}</ui-switch>
<ui-horizon-group>
<ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-id') }}</ui-input>
<ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><i slot="icon"><fa icon="key"/></i>{{ $t('discord-integration-client-secret') }}</ui-input>
<ui-input v-model="discordClientId" :disabled="!enableDiscordIntegration"><template #icon><fa icon="key"/></template>{{ $t('discord-integration-client-id') }}</ui-input>
<ui-input v-model="discordClientSecret" :disabled="!enableDiscordIntegration"><template #icon><fa icon="key"/></template>{{ $t('discord-integration-client-secret') }}</ui-input>
</ui-horizon-group>
<ui-info>{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@@ -188,6 +189,7 @@ export default Vue.extend({
smtpPort: null,
smtpUser: null,
smtpPass: null,
smtpAuth: false,
enableServiceWorker: false,
swPublicKey: null,
swPrivateKey: null,
@@ -236,6 +238,7 @@ export default Vue.extend({
this.smtpPort = meta.smtpPort;
this.smtpUser = meta.smtpUser;
this.smtpPass = meta.smtpPass;
this.smtpAuth = meta.smtpUser != null && meta.smtpUser !== '';
this.enableServiceWorker = meta.enableServiceWorker;
this.swPublicKey = meta.swPublickey;
this.swPrivateKey = meta.swPrivateKey;
@@ -293,8 +296,8 @@ export default Vue.extend({
smtpSecure: this.smtpSecure,
smtpHost: this.smtpHost,
smtpPort: parseInt(this.smtpPort, 10),
smtpUser: this.smtpUser,
smtpPass: this.smtpPass,
smtpUser: this.smtpAuth ? this.smtpUser : '',
smtpPass: this.smtpAuth ? this.smtpPass : '',
enableServiceWorker: this.enableServiceWorker,
swPublicKey: this.swPublicKey,
swPrivateKey: this.swPrivateKey

View File

@@ -1,13 +1,15 @@
<template>
<div>
<ui-card>
<div slot="title"><fa icon="plus"/> {{ $t('add-moderator.title') }}</div>
<template #title><fa icon="plus"/> {{ $t('add-moderator.title') }}</template>
<section class="fit-top">
<ui-input v-model="username" type="text">
<span slot="prefix">@</span>
<template #prefix>@</template>
</ui-input>
<ui-button @click="add" :disabled="changing">{{ $t('add-moderator.add') }}</ui-button>
<ui-button @click="remove" :disabled="changing">{{ $t('add-moderator.remove') }}</ui-button>
<ui-horizon-group>
<ui-button @click="add" :disabled="changing">{{ $t('add-moderator.add') }}</ui-button>
<ui-button @click="remove" :disabled="changing">{{ $t('add-moderator.remove') }}</ui-button>
</ui-horizon-group>
</section>
</ui-card>
</div>

View File

@@ -0,0 +1,43 @@
<template>
<div>
<ui-card>
<template #title>{{ $t('operation') }}</template>
<section>
<ui-button @click="removeAllJobs">{{ $t('remove-all-jobs') }}</ui-button>
</section>
</ui-card>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
export default Vue.extend({
i18n: i18n('admin/views/queue.vue'),
data() {
return {
};
},
methods: {
async removeAllJobs() {
const process = async () => {
await this.$root.api('admin/queue/clear');
this.$root.dialog({
type: 'success',
splash: true
});
};
await process().catch(e => {
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
},
}
});
</script>

View File

@@ -12,6 +12,7 @@
<span class="is-admin" v-if="user.isAdmin">admin</span>
<span class="is-moderator" v-if="user.isModerator">moderator</span>
<span class="is-verified" v-if="user.isVerified" :title="$t('@.verified-user')"><fa icon="star"/></span>
<span class="is-silenced" v-if="user.isSilenced" :title="$t('@.silenced-user')"><fa :icon="faMicrophoneSlash"/></span>
<span class="is-suspended" v-if="user.isSuspended" :title="$t('@.suspended-user')"><fa :icon="faSnowflake"/></span>
</header>
<div>
@@ -27,6 +28,7 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
import { faMicrophoneSlash } from '@fortawesome/free-solid-svg-icons';
import { faSnowflake } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
@@ -34,7 +36,7 @@ export default Vue.extend({
props: ['user'],
data() {
return {
faSnowflake
faSnowflake, faMicrophoneSlash
};
},
});
@@ -76,6 +78,7 @@ export default Vue.extend({
color var(--noteHeaderAdminFg)
> .is-verified
> .is-silenced
> .is-suspended
margin 0 0 0 .5em
color #4dabf7

View File

@@ -1,9 +1,9 @@
<template>
<div>
<ui-card>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
<template #title><fa :icon="faTerminal"/> {{ $t('operation') }}</template>
<section class="fit-top">
<ui-input class="target" v-model="target" type="text">
<ui-input class="target" v-model="target" type="text" @enter="showUser">
<span>{{ $t('username-or-userid') }}</span>
</ui-input>
<ui-button @click="showUser"><fa :icon="faSearch"/> {{ $t('lookup') }}</ui-button>
@@ -16,6 +16,10 @@
<ui-button @click="verifyUser" :disabled="verifying"><fa :icon="faCertificate"/> {{ $t('verify') }}</ui-button>
<ui-button @click="unverifyUser" :disabled="unverifying">{{ $t('unverify') }}</ui-button>
</ui-horizon-group>
<ui-horizon-group>
<ui-button @click="silenceUser"><fa :icon="faMicrophoneSlash"/> {{ $t('make-silence') }}</ui-button>
<ui-button @click="unsilenceUser">{{ $t('unmake-silence') }}</ui-button>
</ui-horizon-group>
<ui-horizon-group>
<ui-button @click="suspendUser" :disabled="suspending"><fa :icon="faSnowflake"/> {{ $t('suspend') }}</ui-button>
<ui-button @click="unsuspendUser" :disabled="unsuspending">{{ $t('unsuspend') }}</ui-button>
@@ -28,26 +32,27 @@
</ui-card>
<ui-card>
<div slot="title"><fa :icon="faUsers"/> {{ $t('users.title') }}</div>
<template #title><fa :icon="faUsers"/> {{ $t('users.title') }}</template>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-select v-model="sort">
<span slot="label">{{ $t('users.sort.title') }}</span>
<template #label>{{ $t('users.sort.title') }}</template>
<option value="-createdAt">{{ $t('users.sort.createdAtAsc') }}</option>
<option value="+createdAt">{{ $t('users.sort.createdAtDesc') }}</option>
<option value="-updatedAt">{{ $t('users.sort.updatedAtAsc') }}</option>
<option value="+updatedAt">{{ $t('users.sort.updatedAtDesc') }}</option>
</ui-select>
<ui-select v-model="state">
<span slot="label">{{ $t('users.state.title') }}</span>
<template #label>{{ $t('users.state.title') }}</template>
<option value="all">{{ $t('users.state.all') }}</option>
<option value="admin">{{ $t('users.state.admin') }}</option>
<option value="moderator">{{ $t('users.state.moderator') }}</option>
<option value="verified">{{ $t('users.state.verified') }}</option>
<option value="silenced">{{ $t('users.state.silenced') }}</option>
<option value="suspended">{{ $t('users.state.suspended') }}</option>
</ui-select>
<ui-select v-model="origin">
<span slot="label">{{ $t('users.origin.title') }}</span>
<template #label>{{ $t('users.origin.title') }}</template>
<option value="combined">{{ $t('users.origin.combined') }}</option>
<option value="local">{{ $t('users.origin.local') }}</option>
<option value="remote">{{ $t('users.origin.remote') }}</option>
@@ -66,7 +71,7 @@
import Vue from 'vue';
import i18n from '../../i18n';
import parseAcct from "../../../../misc/acct/parse";
import { faCertificate, faUsers, faTerminal, faSearch, faKey, faSync } from '@fortawesome/free-solid-svg-icons';
import { faCertificate, faUsers, faTerminal, faSearch, faKey, faSync, faMicrophoneSlash } from '@fortawesome/free-solid-svg-icons';
import { faSnowflake } from '@fortawesome/free-regular-svg-icons';
import XUser from './users.user.vue';
@@ -85,12 +90,12 @@ export default Vue.extend({
unsuspending: false,
sort: '+createdAt',
state: 'all',
origin: 'combined',
origin: 'local',
limit: 10,
offset: 0,
users: [],
existMore: false,
faTerminal, faCertificate, faUsers, faSnowflake, faSearch, faKey, faSync
faTerminal, faCertificate, faUsers, faSnowflake, faSearch, faKey, faSync, faMicrophoneSlash
};
},
@@ -120,22 +125,32 @@ export default Vue.extend({
methods: {
/** テキストエリアのユーザーを解決する */
async fetchUser() {
try {
return await this.$root.api('users/show', this.target.startsWith('@') ? parseAcct(this.target) : { userId: this.target });
} catch (e) {
if (e == 'user not found') {
this.$root.dialog({
type: 'error',
text: this.$t('user-not-found')
});
} else {
this.$root.dialog({
type: 'error',
text: e.toString()
});
}
}
fetchUser() {
return new Promise((res) => {
const usernamePromise = this.$root.api('users/show', parseAcct(this.target));
const idPromise = this.$root.api('users/show', { userId: this.target });
let _notFound = false;
const notFound = () => {
if (_notFound) {
this.$root.dialog({
type: 'error',
text: this.$t('user-not-found')
});
} else {
_notFound = true;
}
};
usernamePromise.then(res).catch(e => {
if (e == 'user not found') {
notFound();
}
});
idPromise.then(res).catch(e => {
notFound();
});
});
},
/** テキストエリアから処理対象ユーザーを設定する */
@@ -216,6 +231,44 @@ export default Vue.extend({
this.refreshUser();
},
async silenceUser() {
const process = async () => {
await this.$root.api('admin/silence-user', { userId: this.user._id });
this.$root.dialog({
type: 'success',
splash: true
});
};
await process().catch(e => {
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
this.refreshUser();
},
async unsilenceUser() {
const process = async () => {
await this.$root.api('admin/unsilence-user', { userId: this.user._id });
this.$root.dialog({
type: 'success',
splash: true
});
};
await process().catch(e => {
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
this.refreshUser();
},
async suspendUser() {
if (!await this.getConfirmed(this.$t('suspend-confirm'))) return;
@@ -286,7 +339,7 @@ export default Vue.extend({
});
return !confirm.canceled;
}
},
fetchUsers() {
this.$root.api('admin/show-users', {

View File

@@ -62,23 +62,26 @@
}
if (settings && settings.device.lang &&
langs.includes(settings.device.lang)) {
langs.includes(settings.device.lang))
{
lang = settings.device.lang;
}
window.lang = lang;
localStorage.setItem('lang', lang);
//#endregion
let locale = localStorage.getItem('locale');
//#region Fetch locale data
const cachedLocale = localStorage.getItem('locale');
const localeKey = localStorage.getItem('localeKey');
if (locale == null || localeKey != `${ver}.${lang}`) {
if (cachedLocale == null || localeKey != `${ver}.${lang}`) {
const locale = await fetch(`/assets/locales/${lang}.json?ver=${ver}`)
.then(response => response.json());
localStorage.setItem('locale', JSON.stringify(locale));
localStorage.setItem('localeKey', `${ver}.${lang}`);
localStorage.setItem('locale', JSON.stringify(locale));
localStorage.setItem('localeKey', `${ver}.${lang}`);
}
//#endregion
// Detect the user agent
const ua = navigator.userAgent.toLowerCase();
@@ -135,8 +138,8 @@
const meta = await res.json();
// Compare versions
if (meta.clientVersion != ver) {
localStorage.setItem('v', meta.clientVersion);
if (meta.version != ver) {
localStorage.setItem('v', meta.version);
alert(
'Misskeyの新しいバージョンがあります。ページを再度読み込みします。' +

View File

@@ -1,8 +1,8 @@
import { clientVersion as current } from '../../config';
import { version as current } from '../../config';
export default async function($root: any, force = false, silent = false) {
const meta = await $root.getMeta(force);
const newer = meta.clientVersion;
const newer = meta.version;
if (newer != current) {
localStorage.setItem('should-refresh', 'true');

View File

@@ -1,5 +1,5 @@
// スクリプトサイズがデカい
//const crypto = require('crypto');
//import * as crypto from 'crypto';
export default (data: ArrayBuffer) => {
//const buf = new Buffer(data);

View File

@@ -0,0 +1,11 @@
import { url as instanceUrl } from '../../config';
import * as url from '../../../../prelude/url';
export function getStaticImageUrl(baseUrl: string): string {
const u = new URL(baseUrl);
const dummy = `${u.host}${u.pathname}`; // 拡張子がないとキャッシュしてくれないCDNがあるので
return `${instanceUrl}/proxy/${dummy}?${url.query({
url: u.href,
static: '1'
})}`;
}

View File

@@ -1,4 +1,4 @@
import parse from '../../../../mfm/parse';
import { parse } from '../../../../mfm/parse';
import { sum, unique } from '../../../../prelude/array';
import shouldMuteNote from './should-mute-note';
import MkNoteMenu from '../views/components/note-menu.vue';

View File

@@ -4,7 +4,8 @@ export default function(me, settings, note) {
const includesMutedWords = (text: string) =>
text
? settings.mutedWords.some(q => q.length > 0 && !q.some(word => !text.includes(word)))
? settings.mutedWords.some(q => q.length > 0 && !q.some(word =>
word.startsWith('/') && word.endsWith('/') ? !(new RegExp(word.substr(1, word.length - 2)).test(text)) : !text.includes(word)))
: false;
return (

View File

@@ -0,0 +1,18 @@
export default {
install(Vue) {
Vue.directive('size', {
inserted(el, binding) {
const query = binding.value;
const width = el.clientWidth;
for (const q of query) {
if (q.lt && (width <= q.lt)) {
el.classList.add(q.class);
}
if (q.gt && (width >= q.gt)) {
el.classList.add(q.class);
}
}
}
});
}
};

View File

@@ -1,15 +1,25 @@
<template>
<div class="mk-activity">
<div>
<div ref="chart"></div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import * as ApexCharts from 'apexcharts';
import ApexCharts from 'apexcharts';
export default Vue.extend({
props: ['user'],
props: {
user: {
type: Object,
required: true
},
limit: {
type: Number,
required: false,
default: 21
}
},
data() {
return {
fetching: true,
@@ -21,7 +31,7 @@ export default Vue.extend({
this.$root.api('charts/user/notes', {
userId: this.user.id,
span: 'day',
limit: 21
limit: this.limit
}).then(stats => {
const normal = [];
const reply = [];
@@ -32,7 +42,7 @@ export default Vue.extend({
const m = now.getMonth();
const d = now.getDate();
for (let i = 0; i < 21; i++) {
for (let i = 0; i < this.limit; i++) {
const x = new Date(y, m, d - i);
normal.push([
x,
@@ -99,10 +109,3 @@ export default Vue.extend({
}
});
</script>
<style lang="stylus" scoped>
.mk-activity
max-width 600px
margin 0 auto
</style>

View File

@@ -1,6 +1,6 @@
<template>
<ui-card>
<div slot="title"><fa icon="key"/> API</div>
<template #title><fa icon="key"/> API</template>
<section class="fit-top">
<ui-input :value="$store.state.i.token" readonly>
@@ -19,7 +19,7 @@
</ui-input>
<ui-textarea v-model="body">
<span>{{ $t('console.parameter') }} (JSON or JSON5)</span>
<span slot="desc">{{ $t('console.credential-info') }}</span>
<template #desc>{{ $t('console.credential-info') }}</template>
</ui-textarea>
<ui-button @click="send" :disabled="sending">
<template v-if="sending">{{ $t('console.sending') }}</template>

View File

@@ -15,6 +15,7 @@
<script lang="ts">
import Vue from 'vue';
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
export default Vue.extend({
props: {
@@ -47,6 +48,11 @@ export default Vue.extend({
borderRadius: this.$store.state.settings.circleIcons ? '100%' : null
};
},
url(): string {
return this.$store.state.device.disableShowingAnimatedImages
? getStaticImageUrl(this.user.avatarUrl)
: this.user.avatarUrl;
},
icon(): any {
return {
backgroundColor: this.lightmode
@@ -54,7 +60,7 @@ export default Vue.extend({
: this.user.avatarColor && this.user.avatarColor.length == 3
? `rgb(${this.user.avatarColor.join(',')})`
: null,
backgroundImage: this.lightmode ? null : `url(${this.user.avatarUrl})`,
backgroundImage: this.lightmode ? null : `url(${this.url})`,
borderRadius: this.$store.state.settings.circleIcons ? '100%' : null
};
}

View File

@@ -6,7 +6,7 @@
<header v-if="title" v-html="title"></header>
<div class="body" v-if="text" v-html="text"></div>
<ui-input v-if="input" v-model="inputValue" autofocus :type="input.type || 'text'" :placeholder="input.placeholder" @keydown="onInputKeydown"></ui-input>
<ui-input v-if="user" v-model="userInputValue" autofocus @keydown="onInputKeydown"><span slot="prefix">@</span></ui-input>
<ui-input v-if="user" v-model="userInputValue" autofocus @keydown="onInputKeydown"><template #prefix>@</template></ui-input>
<ui-select v-if="select" v-model="selectedValue">
<option v-for="item in select.items" :value="item.value">{{ item.text }}</option>
</ui-select>

View File

@@ -1,6 +1,6 @@
<template>
<ui-card>
<div slot="title"><fa icon="cloud"/> {{ $t('@.drive') }}</div>
<template #title><fa icon="cloud"/> {{ $t('@.drive') }}</template>
<section v-if="!fetching" class="juakhbxthdewydyreaphkepoxgxvfogn">
<div class="meter"><div :style="meterStyle"></div></div>
@@ -18,7 +18,7 @@
import Vue from 'vue';
import i18n from '../../../i18n';
import * as tinycolor from 'tinycolor2';
import * as ApexCharts from 'apexcharts';
import ApexCharts from 'apexcharts';
export default Vue.extend({
i18n: i18n('common/views/components/drive-settings.vue'),

View File

@@ -0,0 +1,11 @@
<template>
<div>
<slot></slot>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
});
</script>

View File

@@ -9,6 +9,7 @@
import Vue from 'vue';
// スクリプトサイズがデカい
//import { lib } from 'emojilib';
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
export default Vue.extend({
props: {
@@ -54,7 +55,9 @@ export default Vue.extend({
const customEmoji = this.customEmojis.find(x => x.name == this.name);
if (customEmoji) {
this.customEmoji = customEmoji;
this.url = customEmoji.url;
this.url = this.$store.state.device.disableShowingAnimatedImages
? getStaticImageUrl(customEmoji.url)
: customEmoji.url;
} else {
//const emoji = lib[this.name];
//if (emoji) {

View File

@@ -1,8 +1,9 @@
<template>
<button class="wfliddvnhxvyusikowhxozkyxyenqxqr"
:class="{ wait, block, mini, active: isFollowing || hasPendingFollowRequestFromYou }"
:class="{ wait, block, inline, mini, transparent, active: isFollowing || hasPendingFollowRequestFromYou }"
@click="onClick"
:disabled="wait"
:inline="inline"
>
<template v-if="!wait">
<fa :icon="iconAndText[0]"/> <template v-if="!mini">{{ iconAndText[1] }}</template>
@@ -28,11 +29,21 @@ export default Vue.extend({
required: false,
default: false
},
inline: {
type: Boolean,
required: false,
default: false
},
mini: {
type: Boolean,
required: false,
default: false
}
},
transparent: {
type: Boolean,
required: false,
default: true
},
},
data() {
@@ -128,6 +139,12 @@ export default Vue.extend({
border solid 1px var(--primary)
border-radius 36px
&:not(.transparent)
background #fff
&.inline
display inline-block
&.mini
padding 0
min-width 0

View File

@@ -1,5 +1,6 @@
import Vue from 'vue';
import dummy from './dummy.vue';
import userName from './user-name.vue';
import followButton from './follow-button.vue';
import error from './error.vue';
@@ -32,6 +33,7 @@ import urlPreview from './url-preview.vue';
import fileTypeIcon from './file-type-icon.vue';
import emoji from './emoji.vue';
import welcomeTimeline from './welcome-timeline.vue';
import userList from './user-list.vue';
import uiInput from './ui/input.vue';
import uiButton from './ui/button.vue';
import uiHorizonGroup from './ui/horizon-group.vue';
@@ -46,6 +48,7 @@ import formButton from './ui/form/button.vue';
import formRadio from './ui/form/radio.vue';
Vue.component('mfm', misskeyFlavoredMarkdown);
Vue.component('mk-dummy', dummy);
Vue.component('mk-user-name', userName);
Vue.component('mk-follow-button', followButton);
Vue.component('mk-error', error);
@@ -77,6 +80,7 @@ Vue.component('mk-url-preview', urlPreview);
Vue.component('mk-file-type-icon', fileTypeIcon);
Vue.component('mk-emoji', emoji);
Vue.component('mk-welcome-timeline', welcomeTimeline);
Vue.component('mk-user-list', userList);
Vue.component('ui-input', uiInput);
Vue.component('ui-button', uiButton);
Vue.component('ui-horizon-group', uiHorizonGroup);

View File

@@ -1,6 +1,6 @@
<template>
<ui-card v-if="enableTwitterIntegration || enableDiscordIntegration || enableGithubIntegration">
<div slot="title"><fa icon="share-alt"/> {{ $t('title') }}</div>
<template #title><fa icon="share-alt"/> {{ $t('title') }}</template>
<section v-if="enableTwitterIntegration">
<header><fa :icon="['fab', 'twitter']"/> Twitter</header>

View File

@@ -0,0 +1,44 @@
<template>
<a class="zxrjzpcj" :href="url" :class="service" target="_blank">
<fa :icon="icon" size="lg" fixed-width /><span>{{ text }}</span>
</a>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: ['url', 'text', 'icon', 'service']
});
</script>
<style lang="stylus" scoped>
.zxrjzpcj
padding 6px 8px 6px 6px
border-radius 32px
&:hover
text-decoration none
&.twitter
color #fff
background #1da1f3
&:hover
background #0c87cf
&.github
color #fff
background #171515
&:hover
background #000
&.discord
color #fff
background #7289da
&:hover
background #4968ce
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="usertwitxxxgithxxdiscxxxintegrat" :v-if="user.twitter || user.github || user.discord">
<div class="nbogcrmo" :v-if="user.twitter || user.github || user.discord">
<x-integration v-if="user.twitter" service="twitter" :url="`https://twitter.com/${user.twitter.screenName}`" :text="user.twitter.screenName" :icon="['fab', 'twitter']"/>
<x-integration v-if="user.github" service="github" :url="`https://github.com/${user.github.login}`" :text="user.github.login" :icon="['fab', 'github']"/>
<x-integration v-if="user.discord" service="discord" :url="`https://discordapp.com/users/${user.discord.id}`" :text="`${user.discord.username}#${user.discord.discriminator}`" :icon="['fab', 'discord']"/>
@@ -8,7 +8,7 @@
<script lang="ts">
import Vue from 'vue';
import XIntegration from './user.integrations.integration.vue';
import XIntegration from './integrations.integration.vue';
export default Vue.extend({
components: {
@@ -19,45 +19,8 @@ export default Vue.extend({
</script>
<style lang="stylus" scoped>
.usertwitxxxgithxxdiscxxxintegrat
> a
display flex
align-items center
padding 32px 38px
box-shadow var(--shadow)
border-radius var(--round)
&:not(:last-child)
margin-bottom 16px
&:hover
text-decoration none
> div
padding-left .2em
line-height 1.3em
flex 1 0
word-wrap anywhere
&.twitter
color #fff
background #1da1f3
&:hover
background #0c87cf
&.github
color #fff
background #171515
&:hover
background #000
&.discord
color #fff
background #7289da
&:hover
background #4968ce
.nbogcrmo
> *
margin-right 10px
</style>

View File

@@ -1,6 +1,6 @@
<template>
<ui-card>
<div slot="title"><fa icon="language"/> {{ $t('title') }}</div>
<template #title><fa icon="language"/> {{ $t('title') }}</template>
<section class="fit-top">
<ui-select v-model="lang" :placeholder="$t('pick-language')">

View File

@@ -5,12 +5,13 @@
<b>{{ $t('sensitive') }}</b>
<span>{{ $t('click-to-show') }}</span>
</div>
<div class="audio" v-else-if="media.type.startsWith('audio')">
<div class="audio" v-else-if="media.type.startsWith('audio') && media.type !== 'audio/midi'">
<audio class="audio"
:src="media.url"
:title="media.name"
controls
ref="audio"
@volumechange="volumechange"
preload="metadata" />
</div>
<a class="download" v-else
@@ -40,7 +41,17 @@ export default Vue.extend({
return {
hide: true
};
}
},
mounted() {
const audioTag = this.$refs.audio as HTMLAudioElement;
audioTag.volume = this.$store.state.device.mediaVolume;
},
methods: {
volumechange() {
const audioTag = this.$refs.audio as HTMLAudioElement;
this.$store.commit('device/set', { key: 'mediaVolume', value: audioTag.volume });
},
},
})
</script>

View File

@@ -10,13 +10,16 @@
:style="style"
:title="image.name"
@click.prevent="onClick"
></a>
>
<div v-if="image.type === 'image/gif'">GIF</div>
</a>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import ImageViewer from './image-viewer.vue';
import { getStaticImageUrl } from '../../../common/scripts/get-static-image-url';
export default Vue.extend({
i18n: i18n('common/views/components/media-image.vue'),
@@ -36,7 +39,11 @@ export default Vue.extend({
}
computed: {
style(): any {
let url = `url(${this.image.thumbnailUrl})`;
let url = `url(${
this.$store.state.device.disableShowingAnimatedImages
? getStaticImageUrl(this.image.thumbnailUrl)
: this.image.thumbnailUrl
})`;
if (this.$store.state.device.loadRemoteMedia || this.$store.state.device.lightmode) {
url = null;
@@ -71,6 +78,20 @@ export default Vue.extend({
background-size contain
background-repeat no-repeat
> div
background-color var(--text)
border-radius var(--round)
color var(--secondary)
display inline-block
font-size 14px
font-weight bold
left 12px
opacity .5
padding 0 6px
text-align center
top 12px
pointer-events none
.qjewsnkgzzxlxtzncydssfbgjibiehcy
display flex
justify-content center

View File

@@ -34,7 +34,7 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import parse from '../../../../../mfm/parse';
import { parse } from '../../../../../mfm/parse';
import { unique } from '../../../../../prelude/array';
export default Vue.extend({

View File

@@ -420,7 +420,7 @@ export default Vue.extend({
margin 0
padding 16px
text-align center
color #aaa
color var(--text)
> [data-icon]
margin-right 4px

View File

@@ -1,7 +1,7 @@
import Vue, { VNode } from 'vue';
import { length } from 'stringz';
import { MfmForest } from '../../../../../mfm/parser';
import parse from '../../../../../mfm/parse';
import { MfmForest } from '../../../../../mfm/types';
import { parse, parsePlain } from '../../../../../mfm/parse';
import MkUrl from './url.vue';
import MkMention from './mention.vue';
import { concat, sum } from '../../../../../prelude/array';
@@ -40,13 +40,17 @@ export default Vue.component('misskey-flavored-markdown', {
},
customEmojis: {
required: false,
}
},
isNote: {
type: Boolean,
default: true
},
},
render(createElement) {
if (this.text == null || this.text == '') return;
const ast = parse(this.text, this.plainText);
const ast = (this.plainText ? parsePlain : parse)(this.text);
let bigCount = 0;
let motionCount = 0;
@@ -98,7 +102,11 @@ export default Vue.component('misskey-flavored-markdown', {
}
case 'small': {
return [createElement('small', genEl(token.children))];
return [createElement('small', {
attrs: {
style: 'opacity: 0.7;'
},
}, genEl(token.children))];
}
case 'center': {
@@ -126,7 +134,7 @@ export default Vue.component('misskey-flavored-markdown', {
case 'spin': {
motionCount++;
const isLong = sumTextsLength(token.children) > 5 || countNodesF(token.children) > 3;
const isLong = sumTextsLength(token.children) > 10 || countNodesF(token.children) > 5;
const isMany = motionCount > 5;
const direction =
token.node.props.attr == 'left' ? 'reverse' :
@@ -144,7 +152,7 @@ export default Vue.component('misskey-flavored-markdown', {
case 'jump': {
motionCount++;
const isLong = sumTextsLength(token.children) > 5 || countNodesF(token.children) > 3;
const isLong = sumTextsLength(token.children) > 30 || countNodesF(token.children) > 5;
const isMany = motionCount > 5;
return (createElement as any)('span', {
attrs: {
@@ -200,7 +208,7 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement('router-link', {
key: Math.random(),
attrs: {
to: `/tags/${encodeURIComponent(token.node.props.hashtag)}`,
to: this.isNote ? `/tags/${encodeURIComponent(token.node.props.hashtag)}` : `/explore/tags/${encodeURIComponent(token.node.props.hashtag)}`,
style: 'color:var(--mfmHashtag);'
}
}, `#${token.node.props.hashtag}`)];

View File

@@ -1,6 +1,6 @@
<template>
<ui-card>
<div slot="title"><fa icon="ban"/> {{ $t('mute-and-block') }}</div>
<template #title><fa icon="ban"/> {{ $t('mute-and-block') }}</template>
<section>
<header>{{ $t('mute') }}</header>
@@ -25,7 +25,7 @@
<section>
<header>{{ $t('word-mute') }}</header>
<ui-textarea v-model="mutedWords">
{{ $t('muted-words') }}<span slot="desc">{{ $t('muted-words-description') }}</span>
{{ $t('muted-words') }}<template #desc>{{ $t('muted-words-description') }}</template>
</ui-textarea>
<ui-button @click="save">{{ $t('save') }}</ui-button>
</section>

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