Compare commits

..

808 Commits

Author SHA1 Message Date
syuilo
d5871b408b 10.64.0 2018-12-16 11:36:44 +09:00
syuilo
7b3338e373 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-16 11:32:30 +09:00
syuilo
d18ee12d2f [Client] Add some animations 🎨 2018-12-16 11:32:20 +09:00
dependabot[bot]
ca9cc97940 Update minio requirement from 7.0.1 to 7.0.2 (#3606)
Updates the requirements on [minio](https://github.com/minio/minio-js) to permit the latest version.
- [Release notes](https://github.com/minio/minio-js/releases)
- [Commits](https://github.com/minio/minio-js/commits/7.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-16 10:30:33 +09:00
syuilo
a70070ac7d Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-16 10:30:06 +09:00
syuilo
069d99b320 Update dependency 🚀 2018-12-16 10:29:55 +09:00
syuilo
37d350dcad Merge pull request #3601 from syuilo/l10n_develop
New Crowdin translations
2018-12-16 10:24:04 +09:00
syuilo
8653e09b59 [Client] Add particle effect 2018-12-16 10:20:46 +09:00
syuilo
7cd2d59576 [Client] Fix bug 2018-12-16 09:03:07 +09:00
Acid Chicken (硫酸鶏)
a0839de38f Add 'twitter:creator' meta data in user pages (#3618)
* Update user.pug

* Update user.pug

* Update note.pug

* Update user.pug

* Update note.pug

* Update note.pug
2018-12-16 08:49:38 +09:00
syuilo
b7c5c71c6f [Client] Resolve #2951
あと検索フォームでサジェストを有効に
2018-12-16 08:45:10 +09:00
syuilo
adab0adbdd New translations ja-JP.yml (English) 2018-12-16 07:31:43 +09:00
MeiMei
2faa58928f Format uptimes (#3629)
* Format uptime

* 逆だわ

* ザ

* 1個多い

* Fix comment
2018-12-16 07:06:43 +09:00
MeiMei
ffb80efe21 Return 404 for invalid Object ID (#3627)
* Update activitypub.ts

* Update activitypub.ts

* Update featured.ts

* Update followers.ts

* Update following.ts

* Update outbox.ts

* Fix following, outbox
2018-12-16 01:44:59 +09:00
syuilo
6f959218ef Update analog-clock.vue 2018-12-15 23:34:46 +09:00
syuilo
be1125dcb9 OGP向けにインスタンスのバナー画像を提供するように 2018-12-15 23:19:04 +09:00
Acid Chicken (硫酸鶏)
9ab34c2301 Update index.ts (#3624) 2018-12-15 20:54:34 +09:00
syuilo
0166d81d9e New translations ja-JP.yml (Polish) 2018-12-15 18:31:49 +09:00
syuilo
0b26efbd2f New translations ja-JP.yml (French) 2018-12-15 18:01:50 +09:00
syuilo
2cbaedf946 New translations ja-JP.yml (Norwegian) 2018-12-15 17:13:24 +09:00
syuilo
b66924fbe8 New translations ja-JP.yml (Dutch) 2018-12-15 17:13:19 +09:00
syuilo
8c91148954 New translations ja-JP.yml (Japanese, Kansai) 2018-12-15 17:13:13 +09:00
syuilo
be0eff3dda New translations ja-JP.yml (Spanish) 2018-12-15 17:13:08 +09:00
syuilo
85903ac9c6 New translations ja-JP.yml (Russian) 2018-12-15 17:13:04 +09:00
syuilo
dbdd778dc7 New translations ja-JP.yml (Portuguese) 2018-12-15 17:12:59 +09:00
syuilo
fc50dfd8d5 New translations ja-JP.yml (Polish) 2018-12-15 17:12:54 +09:00
syuilo
f444e132ee New translations ja-JP.yml (Korean) 2018-12-15 17:12:50 +09:00
syuilo
68f562c323 New translations ja-JP.yml (Italian) 2018-12-15 17:12:44 +09:00
syuilo
820ea69613 New translations ja-JP.yml (German) 2018-12-15 17:12:40 +09:00
syuilo
6f4b3853a1 New translations ja-JP.yml (French) 2018-12-15 17:12:33 +09:00
syuilo
a706ad0e80 New translations ja-JP.yml (English) 2018-12-15 17:12:26 +09:00
syuilo
820116affc New translations ja-JP.yml (Chinese Simplified) 2018-12-15 17:12:22 +09:00
syuilo
52650342be New translations ja-JP.yml (Catalan) 2018-12-15 17:12:16 +09:00
syuilo
85ddabdc65 Update ja-JP.yml 2018-12-15 17:09:05 +09:00
syuilo
0730cc4fa4 🎨 2018-12-15 17:01:19 +09:00
syuilo
17b6ab0ef0 🎨 2018-12-15 16:48:28 +09:00
syuilo
4e208b85bb New translations ja-JP.yml (Polish) 2018-12-15 08:51:47 +09:00
syuilo
00f8b29f6d New translations ja-JP.yml (Polish) 2018-12-15 08:41:45 +09:00
syuilo
9cf0fcadb1 New translations ja-JP.yml (Polish) 2018-12-15 08:31:50 +09:00
syuilo
c595efeead New translations ja-JP.yml (Polish) 2018-12-15 08:21:59 +09:00
syuilo
b56c6793a1 New translations ja-JP.yml (Polish) 2018-12-15 08:12:15 +09:00
syuilo
ebceffba1e Resolve #2165 2018-12-15 00:09:04 +09:00
syuilo
3ae42d9b85 🎨 2018-12-14 23:35:07 +09:00
syuilo
796237b3c6 Implement admin drive page 2018-12-14 19:09:11 +09:00
syuilo
cb7a97ee4c New translations ja-JP.yml (Korean) 2018-12-14 07:32:03 +09:00
syuilo
0cf758b6d1 New translations ja-JP.yml (French) 2018-12-14 02:03:02 +09:00
syuilo
d28fca320e New translations ja-JP.yml (French) 2018-12-14 01:42:26 +09:00
MeiMei
8bd17703c3 Fix reversi settings bot switch (#3609) 2018-12-13 13:40:10 +09:00
和風ドレッシング
a78eebc43f ていねい (#3608)
「古い」という表現でキレる方もいるので、丁寧な言葉づかいに変更
2018-12-13 09:42:14 +09:00
syuilo
79fb5246df New translations ja-JP.yml (English) 2018-12-13 08:01:55 +09:00
syuilo
458b8c78dc New translations ja-JP.yml (French) 2018-12-13 04:12:31 +09:00
syuilo
64e0cbd6fc New translations ja-JP.yml (French) 2018-12-13 04:04:32 +09:00
Acid Chicken (硫酸鶏)
7fe937026b Update html.ts (#3603) 2018-12-13 01:33:18 +09:00
syuilo
656cec65b9 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-13 01:18:29 +09:00
syuilo
8045bbff1c 🎨 2018-12-13 01:18:17 +09:00
MeiMei
c1a7a21746 Hide unavailable integration settings (#3604) 2018-12-12 23:21:02 +09:00
Acid Chicken (硫酸鶏)
f3ee63fcbe Update url-preview.vue (#3602) 2018-12-12 21:19:52 +09:00
MeiMei
7645c212a3 No @ for account name (#3586)
* No @ for account name

* Use @ for GitHub
2018-12-12 17:33:08 +09:00
syuilo
8b38e2ea58 New translations ja-JP.yml (Norwegian) 2018-12-12 13:12:57 +09:00
syuilo
c9eb6a8919 New translations ja-JP.yml (Dutch) 2018-12-12 13:12:53 +09:00
syuilo
9a41fd4734 New translations ja-JP.yml (Japanese, Kansai) 2018-12-12 13:12:47 +09:00
syuilo
70d96ee076 New translations ja-JP.yml (Spanish) 2018-12-12 13:12:43 +09:00
syuilo
3b6fb3959b New translations ja-JP.yml (Russian) 2018-12-12 13:12:36 +09:00
syuilo
484d705320 New translations ja-JP.yml (Portuguese) 2018-12-12 13:12:30 +09:00
syuilo
786031be66 New translations ja-JP.yml (Polish) 2018-12-12 13:12:25 +09:00
syuilo
bc0027ce43 New translations ja-JP.yml (Korean) 2018-12-12 13:12:21 +09:00
syuilo
3e7c6d9bdc New translations ja-JP.yml (Italian) 2018-12-12 13:12:15 +09:00
syuilo
5463e3e55e New translations ja-JP.yml (German) 2018-12-12 13:12:11 +09:00
syuilo
84a880086e New translations ja-JP.yml (French) 2018-12-12 13:12:06 +09:00
syuilo
89419b7136 New translations ja-JP.yml (English) 2018-12-12 13:12:01 +09:00
syuilo
9106ec74f7 New translations ja-JP.yml (Chinese Simplified) 2018-12-12 13:11:57 +09:00
syuilo
ebf9a0921d New translations ja-JP.yml (Catalan) 2018-12-12 13:11:53 +09:00
syuilo
c237f49016 10.63.1 2018-12-12 13:07:16 +09:00
syuilo
709290d2da Improve mention display 2018-12-12 13:06:05 +09:00
syuilo
eb3180f3b6 Fix bug 2018-12-12 13:05:37 +09:00
syuilo
681997509c Merge pull request #3599 from syuilo/l10n_develop
New Crowdin translations
2018-12-12 12:22:59 +09:00
MeiMei
79ff5888fd Fix htmlToMfm (#3600) 2018-12-12 11:47:07 +09:00
MeiMei
9ee9cf8d81 Fix URL after deleting remote file (#3597)
* Fix URL after deleting remote file

* expired only

* delete space
2018-12-12 11:46:35 +09:00
Acid Chicken (硫酸鶏)
ee3c0f6f18 Update settings.2fa.vue (#3593) 2018-12-12 10:07:30 +09:00
syuilo
9dd463bff4 New translations ja-JP.yml (Korean) 2018-12-12 07:53:00 +09:00
MeiMei
df297d0031 Fix fields (#3596) 2018-12-12 02:46:40 +09:00
Acid Chicken (硫酸鶏)
d18d1cb958 Update settings.2fa.vue (#3595) 2018-12-11 23:41:27 +09:00
syuilo
5bc0570888 Update CHANGELOG.md 2018-12-11 21:31:58 +09:00
syuilo
8b43d75eaf 10.63.0 2018-12-11 21:20:26 +09:00
syuilo
89b37bd73d Merge pull request #3571 from syuilo/l10n_develop
New Crowdin translations
2018-12-11 21:19:57 +09:00
syuilo
69f246ce7f Fix bug 2018-12-11 21:17:57 +09:00
syuilo
6a97f0b7f6 [Client] Fix bug 2018-12-11 20:59:25 +09:00
syuilo
d885b872f3 Fix bug 2018-12-11 20:47:07 +09:00
Aya Morisawa
125849673a Use for-of instead of forEach (#3583)
Co-authored-by: syuilo <syuilotan@yahoo.co.jp>
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-11 20:36:55 +09:00
syuilo
30c53e9ee0 Fix error 2018-12-11 20:33:52 +09:00
syuilo
981fb9e8f3 New translations ja-JP.yml (English) 2018-12-11 20:32:25 +09:00
syuilo
9fac22d880 New translations ja-JP.yml (Norwegian) 2018-12-11 20:23:11 +09:00
syuilo
b8f034064a New translations ja-JP.yml (Dutch) 2018-12-11 20:23:07 +09:00
syuilo
6068227434 New translations ja-JP.yml (Japanese, Kansai) 2018-12-11 20:23:02 +09:00
syuilo
69cda49c88 New translations ja-JP.yml (Spanish) 2018-12-11 20:22:58 +09:00
syuilo
039d821d20 New translations ja-JP.yml (Russian) 2018-12-11 20:22:53 +09:00
syuilo
44d93bc408 New translations ja-JP.yml (Portuguese) 2018-12-11 20:22:48 +09:00
syuilo
cfa76ac6f9 New translations ja-JP.yml (Polish) 2018-12-11 20:22:44 +09:00
syuilo
0ec2d16522 New translations ja-JP.yml (Korean) 2018-12-11 20:22:39 +09:00
syuilo
6bcac1fe14 New translations ja-JP.yml (Italian) 2018-12-11 20:22:35 +09:00
syuilo
bc9427d000 New translations ja-JP.yml (German) 2018-12-11 20:22:30 +09:00
syuilo
07c043361e New translations ja-JP.yml (French) 2018-12-11 20:22:26 +09:00
syuilo
e676a9a501 New translations ja-JP.yml (English) 2018-12-11 20:22:22 +09:00
syuilo
09e654c6d2 New translations ja-JP.yml (Chinese Simplified) 2018-12-11 20:22:17 +09:00
syuilo
549cb1ba87 New translations ja-JP.yml (Catalan) 2018-12-11 20:22:13 +09:00
dependabot[bot]
c633827e5e Update typescript requirement from 3.1.6 to 3.2.2 (#3585)
Updates the requirements on [typescript](https://github.com/Microsoft/TypeScript) to permit the latest version.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/commits/v3.2.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-11 20:21:03 +09:00
Acid Chicken (硫酸鶏)
08142ead67 Resolve #3581 (#3589)
* Update ja-JP.yml

* Create 404.vue

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update script.ts

* Update 404.vue

* Update meta.ts

* Update instance.vue

* Update update-meta.ts
2018-12-11 20:19:13 +09:00
MeiMei
638d81b66e Show user fields (#3590) 2018-12-11 20:18:12 +09:00
syuilo
4c83c2f64d New translations ja-JP.yml (Norwegian) 2018-12-11 18:25:19 +09:00
syuilo
bf56f90fdc New translations ja-JP.yml (Dutch) 2018-12-11 18:25:14 +09:00
syuilo
d8412aad7a New translations ja-JP.yml (Japanese, Kansai) 2018-12-11 18:25:09 +09:00
syuilo
c136741710 New translations ja-JP.yml (Spanish) 2018-12-11 18:25:05 +09:00
syuilo
4fe8454da0 New translations ja-JP.yml (Russian) 2018-12-11 18:25:00 +09:00
syuilo
3f2161dadd New translations ja-JP.yml (Portuguese) 2018-12-11 18:24:55 +09:00
syuilo
3db516aa1a New translations ja-JP.yml (Polish) 2018-12-11 18:24:50 +09:00
syuilo
367bbbe605 New translations ja-JP.yml (Korean) 2018-12-11 18:24:45 +09:00
syuilo
5b70ff561c New translations ja-JP.yml (Italian) 2018-12-11 18:24:40 +09:00
syuilo
4486527e5d New translations ja-JP.yml (German) 2018-12-11 18:24:36 +09:00
syuilo
147e23d332 New translations ja-JP.yml (French) 2018-12-11 18:24:31 +09:00
syuilo
ee20e6950e New translations ja-JP.yml (English) 2018-12-11 18:24:26 +09:00
syuilo
1d217154ef New translations ja-JP.yml (Chinese Simplified) 2018-12-11 18:24:22 +09:00
syuilo
27d304a1ab New translations ja-JP.yml (Catalan) 2018-12-11 18:24:17 +09:00
Acid Chicken (硫酸鶏)
1d1a373ca8 Update ja-JP.yml 2018-12-11 18:12:18 +09:00
syuilo
bca3c6f8bf 🎨 2018-12-11 04:29:47 +09:00
syuilo
d83d661535 New translations ja-JP.yml (French) 2018-12-11 00:02:10 +09:00
Acid Chicken (硫酸鶏)
e16906afc3 Refactor /.autogen (#3551)
* Create patreon.jq

* Create check_pr.jq

* Rename check_pr.jq to .autogen/check_pr.jq

* Create next_url.jq

* Update autogen.sh

* Rename autogen.sh to update_readme_patreon.sh
2018-12-10 23:22:52 +09:00
syuilo
a6dc0f3684 Fix #3325 2018-12-10 23:13:50 +09:00
Aya Morisawa
6120474548 Use && and || to eliminate if-statement (#3559)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-10 17:08:48 +09:00
syuilo
121dd86299 [Client] Fix #3396 2018-12-10 12:31:04 +09:00
syuilo
5251d9f668 New translations ja-JP.yml (Korean) 2018-12-10 07:32:10 +09:00
syuilo
7ae3f569de New translations ja-JP.yml (Polish) 2018-12-10 04:42:02 +09:00
syuilo
142ebead59 New translations ja-JP.yml (Polish) 2018-12-10 04:31:59 +09:00
syuilo
e196086c64 New translations ja-JP.yml (Polish) 2018-12-10 04:11:59 +09:00
syuilo
8c6ed98505 New translations ja-JP.yml (English) 2018-12-10 03:51:43 +09:00
syuilo
98a2953c9c Fix bug 2018-12-10 01:44:43 +09:00
syuilo
61d224695b New translations ja-JP.yml (Polish) 2018-12-10 01:02:02 +09:00
Aya Morisawa
6967def6c8 Use primitive type string instead of String (#3578) 2018-12-09 23:26:32 +09:00
syuilo
393c6aa79a 10.62.2 2018-12-09 23:15:06 +09:00
syuilo
fc05540404 Fix bug? 2018-12-09 23:12:08 +09:00
syuilo
1c589c7c18 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-09 23:10:06 +09:00
syuilo
284df27435 Use camelCase 2018-12-09 23:10:02 +09:00
syuilo
68c0600a5c New translations ja-JP.yml (Polish) 2018-12-09 22:12:14 +09:00
syuilo
b8163bd0e1 New translations ja-JP.yml (Polish) 2018-12-09 22:02:27 +09:00
syuilo
8c25b9dfad New translations ja-JP.yml (Polish) 2018-12-09 21:51:59 +09:00
syuilo
bf34f67583 New translations ja-JP.yml (Polish) 2018-12-09 21:42:34 +09:00
syuilo
0c63f410d6 New translations ja-JP.yml (Polish) 2018-12-09 21:32:06 +09:00
syuilo
069077ace4 New translations ja-JP.yml (Polish) 2018-12-09 21:22:17 +09:00
syuilo
5be947ea4d New translations ja-JP.yml (Polish) 2018-12-09 21:12:01 +09:00
syuilo
b41ffa75b7 New translations ja-JP.yml (Polish) 2018-12-09 21:02:34 +09:00
Acid Chicken (硫酸鶏)
cd80e02ebf Re: #3556 (#3568)
* Update index.ts

* Update index.ts
2018-12-09 18:39:13 +09:00
MeiMei
dffcefb81f Fix mobile following/followed list (#3574) 2018-12-09 16:00:32 +09:00
syuilo
48df08d4dc New translations ja-JP.yml (Norwegian) 2018-12-09 14:32:46 +09:00
syuilo
4de9a08e55 New translations ja-JP.yml (Dutch) 2018-12-09 14:32:41 +09:00
syuilo
3f46b5259b New translations ja-JP.yml (Japanese, Kansai) 2018-12-09 14:32:35 +09:00
syuilo
2faa8ea97c New translations ja-JP.yml (Spanish) 2018-12-09 14:32:30 +09:00
syuilo
514690cf18 New translations ja-JP.yml (Russian) 2018-12-09 14:32:26 +09:00
syuilo
f4f78c1898 New translations ja-JP.yml (Portuguese) 2018-12-09 14:32:22 +09:00
syuilo
2d24befb15 New translations ja-JP.yml (Polish) 2018-12-09 14:32:17 +09:00
syuilo
184d88838c New translations ja-JP.yml (Korean) 2018-12-09 14:32:11 +09:00
syuilo
4490503d59 New translations ja-JP.yml (Italian) 2018-12-09 14:32:06 +09:00
syuilo
99750435ae New translations ja-JP.yml (German) 2018-12-09 14:32:02 +09:00
syuilo
fae920e578 New translations ja-JP.yml (French) 2018-12-09 14:31:56 +09:00
syuilo
0243b6d13b New translations ja-JP.yml (English) 2018-12-09 14:31:51 +09:00
syuilo
12bc725d68 New translations ja-JP.yml (Chinese Simplified) 2018-12-09 14:31:46 +09:00
syuilo
b1a7b781ec New translations ja-JP.yml (Catalan) 2018-12-09 14:31:40 +09:00
MeiMei
7e1cad3e12 Improve tags settings (#3569) 2018-12-09 14:24:24 +09:00
syuilo
fd3f4c37a0 Merge pull request #3565 from syuilo/l10n_develop
New Crowdin translations
2018-12-09 13:28:48 +09:00
syuilo
3acd2e0f0c 🎨 2018-12-09 13:25:46 +09:00
syuilo
b1b5a795c8 Revert "Eliminate if-statement (#3556)"
This reverts commit fb8b0c291d.
2018-12-09 13:21:42 +09:00
tamaina
197e2c8377 #2501 (#3567)
* refactor mfm/html

* fix

* fix

* https://github.com/syuilo/misskey/pull/3567#discussion_r240023301
2018-12-09 13:15:32 +09:00
Aya Morisawa
fb8b0c291d Eliminate if-statement (#3556) 2018-12-09 13:13:00 +09:00
Aya Morisawa
706d47ec32 #2501 (#3560)
* #2501

* Update stream.ts
2018-12-09 13:09:31 +09:00
syuilo
4eab2b3654 New translations ja-JP.yml (Korean) 2018-12-09 10:55:30 +09:00
syuilo
0a78f560e0 New translations ja-JP.yml (Polish) 2018-12-09 09:52:03 +09:00
Aya Morisawa
f6f79fb388 Refactor getChildrenCount (#3554)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-09 09:44:51 +09:00
Aya Morisawa
34235d4d44 Refactor getTextCount (#3553)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-09 09:44:24 +09:00
syuilo
21842ec190 New translations ja-JP.yml (Polish) 2018-12-09 09:42:15 +09:00
syuilo
026e1cc7e7 New translations ja-JP.yml (Polish) 2018-12-09 09:32:08 +09:00
syuilo
c65f4eebaf New translations ja-JP.yml (Polish) 2018-12-09 09:21:57 +09:00
Aya Morisawa
17baf8770a Eliminate if-statement (#3564) 2018-12-09 03:45:47 +09:00
Aya Morisawa
01f60edb17 Eliminate duplicated condition on if-statement (#3563) 2018-12-09 03:45:07 +09:00
Aya Morisawa
15b11e59f4 Eliminate if-statement (#3562) 2018-12-09 03:44:37 +09:00
Aya Morisawa
a2db4db963 Eliminate if-statement (#3561)
Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2018-12-09 03:43:58 +09:00
Aya Morisawa
e87b9cc019 Use && to eliminate if-statement (#3558) 2018-12-09 03:41:18 +09:00
Aya Morisawa
54cb94db1d Eliminate if-statement (#3555) 2018-12-09 03:40:40 +09:00
Aya Morisawa
1de8e1eeb1 #2501 2018-12-09 01:05:55 +09:00
MeiMei
1d8fb65959 Fix follow duplicate (#3548)
* フォローとリクエスト両方存在しても解除する

* 既にフォローしてても承認できるように
2018-12-08 18:55:00 +09:00
tamaina
28482627f7 improve user-integration display in the user page (#3541)
* improve user-integration display in the user page

* delete unnecessary comma
2018-12-08 16:59:29 +09:00
syuilo
4ee7df887d 10.62.1 2018-12-08 10:58:13 +09:00
syuilo
b040571fa8 Merge pull request #3481 from syuilo/l10n_develop
New Crowdin translations
2018-12-08 10:56:26 +09:00
syuilo
fbd5e4bab8 New translations ja-JP.yml (English) 2018-12-08 10:55:59 +09:00
syuilo
498bdd1cd0 New translations ja-JP.yml (Norwegian) 2018-12-08 10:42:58 +09:00
syuilo
102cca8971 New translations ja-JP.yml (Dutch) 2018-12-08 10:42:53 +09:00
syuilo
e710ad4c5f New translations ja-JP.yml (Japanese, Kansai) 2018-12-08 10:42:49 +09:00
syuilo
f64f6fd603 New translations ja-JP.yml (Spanish) 2018-12-08 10:42:45 +09:00
syuilo
5995020c64 New translations ja-JP.yml (Russian) 2018-12-08 10:42:38 +09:00
syuilo
2dc86ec1ac New translations ja-JP.yml (Portuguese) 2018-12-08 10:42:32 +09:00
syuilo
d50bcbdb23 New translations ja-JP.yml (Polish) 2018-12-08 10:42:27 +09:00
syuilo
19afd0ba61 New translations ja-JP.yml (Korean) 2018-12-08 10:42:21 +09:00
syuilo
7a787fa95c New translations ja-JP.yml (Italian) 2018-12-08 10:42:15 +09:00
syuilo
4e85eb90cb New translations ja-JP.yml (German) 2018-12-08 10:42:09 +09:00
dependabot[bot]
d4474b953e Update diskusage requirement from 0.2.5 to 1.0.0 (#3498)
Updates the requirements on [diskusage](https://github.com/jduncanator/node-diskusage) to permit the latest version.
- [Release notes](https://github.com/jduncanator/node-diskusage/releases)
- [Commits](https://github.com/jduncanator/node-diskusage/commits/1.0.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-08 10:42:07 +09:00
syuilo
0aaf3d7bd7 New translations ja-JP.yml (French) 2018-12-08 10:42:03 +09:00
syuilo
02bb2423af New translations ja-JP.yml (English) 2018-12-08 10:41:58 +09:00
dependabot[bot]
e9b25f17af Update autobind-decorator requirement from 2.3.1 to 2.4.0 (#3533)
Updates the requirements on [autobind-decorator](https://github.com/andreypopp/autobind-decorator) to permit the latest version.
- [Release notes](https://github.com/andreypopp/autobind-decorator/releases)
- [Changelog](https://github.com/andreypopp/autobind-decorator/blob/master/CHANGELOG.md)
- [Commits](https://github.com/andreypopp/autobind-decorator/commits/v2.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-08 10:41:53 +09:00
syuilo
96671c5c7e New translations ja-JP.yml (Chinese Simplified) 2018-12-08 10:41:53 +09:00
syuilo
4fc786f062 New translations ja-JP.yml (Catalan) 2018-12-08 10:41:49 +09:00
dependabot[bot]
51c0cca4ff Update @types/koa-bodyparser requirement from 5.0.1 to 5.0.2 (#3531)
Updates the requirements on [@types/koa-bodyparser](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>
2018-12-08 10:41:42 +09:00
dependabot[bot]
bd344628f6 Update @types/webpack requirement from 4.4.19 to 4.4.20 (#3515)
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>
2018-12-08 10:41:00 +09:00
Acid Chicken (硫酸鶏)
48deb35d4b Update server-stats.ts (#3512) 2018-12-08 10:40:45 +09:00
dependabot[bot]
f9792f0d5c Update v-animate-css requirement from 0.0.2 to 0.0.3 (#3532)
Updates the requirements on [v-animate-css](https://github.com/jofftiquez/v-animate-css) to permit the latest version.
- [Release notes](https://github.com/jofftiquez/v-animate-css/releases)
- [Commits](https://github.com/jofftiquez/v-animate-css/commits/v0.0.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-08 10:40:15 +09:00
dependabot[bot]
0157033104 Update file-type requirement from 10.4.0 to 10.6.0 (#3538)
Updates the requirements on [file-type](https://github.com/sindresorhus/file-type) to permit the latest version.
- [Release notes](https://github.com/sindresorhus/file-type/releases)
- [Commits](https://github.com/sindresorhus/file-type/commits/v10.6.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-08 10:39:17 +09:00
syuilo
596f92cfcc [Client] Improve cw-button 2018-12-08 10:36:26 +09:00
syuilo
b2dedf7f98 Add comment 2018-12-08 10:20:43 +09:00
MeiMei
34393ef89f Improve custom emoji parsing (#3539)
* Use MFM parser for extracting emoji in name

* Fix custom emoji regex

* Revert "Fix custom emoji regex"

This reverts commit 4c21caf597.
2018-12-08 06:39:15 +09:00
syuilo
7e11cd3b99 New translations ja-JP.yml (Norwegian) 2018-12-08 06:22:51 +09:00
syuilo
dd1622296d New translations ja-JP.yml (Dutch) 2018-12-08 06:22:46 +09:00
syuilo
77cb59a6ac New translations ja-JP.yml (Japanese, Kansai) 2018-12-08 06:22:41 +09:00
syuilo
a2b60e38a3 New translations ja-JP.yml (Spanish) 2018-12-08 06:22:37 +09:00
syuilo
f0570bf111 New translations ja-JP.yml (Russian) 2018-12-08 06:22:33 +09:00
syuilo
b980164318 New translations ja-JP.yml (Portuguese) 2018-12-08 06:22:27 +09:00
syuilo
3e7ff586a5 New translations ja-JP.yml (Polish) 2018-12-08 06:22:23 +09:00
syuilo
923bbcbf6b New translations ja-JP.yml (Korean) 2018-12-08 06:22:19 +09:00
syuilo
8cc85931d6 New translations ja-JP.yml (Italian) 2018-12-08 06:22:14 +09:00
syuilo
b25522a091 New translations ja-JP.yml (German) 2018-12-08 06:22:10 +09:00
syuilo
97ae7e9ef4 New translations ja-JP.yml (French) 2018-12-08 06:22:04 +09:00
syuilo
d25bd65722 New translations ja-JP.yml (English) 2018-12-08 06:21:58 +09:00
syuilo
f4f98c25f7 New translations ja-JP.yml (Chinese Simplified) 2018-12-08 06:21:55 +09:00
syuilo
336607568f New translations ja-JP.yml (Catalan) 2018-12-08 06:21:50 +09:00
MeiMei
e2843a5ce4 Resolve #3537 (#3540)
* Resolve #3537

* tune
2018-12-08 06:18:37 +09:00
MeiMei
702875a78e Apply tag length limit from AP (#3536) 2018-12-07 21:01:43 +09:00
syuilo
0fa8c6afd2 New translations ja-JP.yml (French) 2018-12-07 20:22:26 +09:00
Aya Morisawa
96571866a3 #2593 (mobile) (#3521) 2018-12-07 18:33:09 +09:00
syuilo
f72b00bec7 Update parser.ts 2018-12-07 18:26:54 +09:00
syuilo
1e7b5a0a98 Resolve #3529 2018-12-07 17:54:35 +09:00
Acid Chicken (硫酸鶏)
9f09afc824 Fix bug caused by Chrome 71 (#3535)
* Update emoji.vue

* Update autocomplete.vue

* Update emoji.vue

* Update autocomplete.vue

* Update emoji.vue
2018-12-07 17:21:34 +09:00
MeiMei
93b599dc8e Add user name conversions (#3534)
* Add user name conversions

* add conversion
2018-12-07 11:29:49 +09:00
Acid Chicken (硫酸鶏)
1c722494de Update README.md [AUTOGEN] (#3527) 2018-12-07 11:27:52 +09:00
syuilo
a464c8d1d0 New translations ja-JP.yml (Korean) 2018-12-07 07:22:36 +09:00
syuilo
51362e9a52 New translations ja-JP.yml (Polish) 2018-12-07 07:12:33 +09:00
syuilo
3c086fe8c7 New translations ja-JP.yml (Polish) 2018-12-07 07:04:28 +09:00
syuilo
f3b1248bd8 New translations ja-JP.yml (Polish) 2018-12-07 07:02:30 +09:00
syuilo
4e529ee7d0 New translations ja-JP.yml (Polish) 2018-12-07 06:42:25 +09:00
syuilo
a2b975a493 New translations ja-JP.yml (Polish) 2018-12-07 06:31:54 +09:00
syuilo
13055d1496 New translations ja-JP.yml (English) 2018-12-07 00:12:25 +09:00
syuilo
78b5af4e4f New translations ja-JP.yml (English) 2018-12-07 00:03:51 +09:00
MeiMei
008432e156 lint fix (#3522) 2018-12-06 19:15:09 +09:00
Aya Morisawa
d3d50b2f79 Add missing comma 2018-12-06 17:02:44 +09:00
Aya Morisawa
eefeb4c268 #2593 (desktop) (#3518) 2018-12-06 16:56:24 +09:00
syuilo
86d4f1981c 10.62.0 2018-12-06 16:35:06 +09:00
syuilo
7a8e97972c ✌️ 2018-12-06 16:33:35 +09:00
syuilo
3555213155 Resolve #3519 2018-12-06 16:30:28 +09:00
syuilo
5d3d8dffd6 Update photo-stream.vue 2018-12-06 16:19:12 +09:00
syuilo
dea8688c9d Refactor
Use mk-user-name
2018-12-06 16:09:33 +09:00
syuilo
a235869cfa Refactor
Make mk-user-name component
2018-12-06 11:18:13 +09:00
syuilo
a8434b3bc5 New translations ja-JP.yml (Norwegian) 2018-12-06 11:14:30 +09:00
syuilo
f110b2b320 New translations ja-JP.yml (Dutch) 2018-12-06 11:14:26 +09:00
syuilo
0543cffe00 New translations ja-JP.yml (Japanese, Kansai) 2018-12-06 11:14:19 +09:00
syuilo
0383cbe43f New translations ja-JP.yml (Spanish) 2018-12-06 11:14:15 +09:00
syuilo
9dd1203583 New translations ja-JP.yml (Russian) 2018-12-06 11:14:10 +09:00
syuilo
4eeeaffdee New translations ja-JP.yml (Portuguese) 2018-12-06 11:14:05 +09:00
syuilo
6f73f3d7a1 New translations ja-JP.yml (Polish) 2018-12-06 11:14:01 +09:00
syuilo
aa9cd211dd New translations ja-JP.yml (Korean) 2018-12-06 11:13:56 +09:00
syuilo
3cdf4f01f8 New translations ja-JP.yml (Italian) 2018-12-06 11:13:51 +09:00
syuilo
d0f84643d8 New translations ja-JP.yml (German) 2018-12-06 11:13:47 +09:00
syuilo
89707ad436 New translations ja-JP.yml (French) 2018-12-06 11:13:40 +09:00
syuilo
163d81c1b0 New translations ja-JP.yml (English) 2018-12-06 11:13:36 +09:00
syuilo
81a7213583 New translations ja-JP.yml (Chinese Simplified) 2018-12-06 11:13:32 +09:00
syuilo
8f92a07d68 New translations ja-JP.yml (Catalan) 2018-12-06 11:13:27 +09:00
tamaina
31b30e3dd2 Resolve #3347 , #3349 (#3513)
* Resolve  #3347 , #3349
Make deck columns' width be selectable and flexible

* deckColumnMinwidth --> deckColumnMinWidth

* w-default --> normal

* ✌️
2018-12-06 11:11:46 +09:00
syuilo
0a1ac12d97 New translations ja-JP.yml (Norwegian) 2018-12-06 10:23:42 +09:00
syuilo
e800104ac4 New translations ja-JP.yml (Dutch) 2018-12-06 10:23:38 +09:00
syuilo
05cb94eb77 New translations ja-JP.yml (Japanese, Kansai) 2018-12-06 10:23:33 +09:00
syuilo
51499e04e0 New translations ja-JP.yml (Spanish) 2018-12-06 10:23:29 +09:00
syuilo
0c993ef851 New translations ja-JP.yml (Russian) 2018-12-06 10:23:22 +09:00
syuilo
b27fced30d New translations ja-JP.yml (Portuguese) 2018-12-06 10:23:18 +09:00
syuilo
2b7da9d98c New translations ja-JP.yml (Polish) 2018-12-06 10:23:14 +09:00
syuilo
cd66f86f08 New translations ja-JP.yml (Korean) 2018-12-06 10:23:10 +09:00
syuilo
a2e7cab573 New translations ja-JP.yml (Italian) 2018-12-06 10:23:05 +09:00
syuilo
f81f7d51c5 New translations ja-JP.yml (German) 2018-12-06 10:23:00 +09:00
syuilo
7fb640e38f New translations ja-JP.yml (French) 2018-12-06 10:22:54 +09:00
syuilo
c7561be15f New translations ja-JP.yml (English) 2018-12-06 10:22:50 +09:00
syuilo
741c81bca9 New translations ja-JP.yml (Chinese Simplified) 2018-12-06 10:22:45 +09:00
syuilo
1e38528716 New translations ja-JP.yml (Catalan) 2018-12-06 10:22:41 +09:00
Aya Morisawa
58b3be438a Resolve #1872 (#3516) 2018-12-06 10:21:41 +09:00
MeiMei
4522568749 Emoji support in profile (#3514)
* Emoji in profile

* Add emojis to fields
2018-12-06 10:02:04 +09:00
syuilo
719f9c8c02 New translations ja-JP.yml (Korean) 2018-12-06 08:21:50 +09:00
Acid Chicken (硫酸鶏)
fe891da886 外部サービス連携情報をPersonのfieldsに乗せて配信する (#3499)
* Update person.ts

* Update person.ts

refs: https://github.com/syuilo/misskey/pull/3499#issuecomment-444484557

* Update person.ts

refs: https://github.com/syuilo/misskey/pull/3499#pullrequestreview-181755475
2018-12-06 00:37:59 +09:00
syuilo
95b6684cfd New translations ja-JP.yml (English) 2018-12-05 23:02:24 +09:00
Aya Morisawa
66836836ab Add small syntax (#3506) 2018-12-05 20:11:54 +09:00
syuilo
0db48c778f New translations ja-JP.yml (Norwegian) 2018-12-05 18:59:25 +09:00
syuilo
13a2f9373c New translations ja-JP.yml (Dutch) 2018-12-05 18:59:19 +09:00
syuilo
ae4d504392 New translations ja-JP.yml (Japanese, Kansai) 2018-12-05 18:59:15 +09:00
syuilo
85d240625d New translations ja-JP.yml (Spanish) 2018-12-05 18:59:09 +09:00
syuilo
db646b0ad9 New translations ja-JP.yml (Russian) 2018-12-05 18:59:04 +09:00
syuilo
2570d50957 New translations ja-JP.yml (Portuguese) 2018-12-05 18:58:58 +09:00
syuilo
7faecaadcf New translations ja-JP.yml (Polish) 2018-12-05 18:58:53 +09:00
syuilo
dcbcb18081 New translations ja-JP.yml (Korean) 2018-12-05 18:58:49 +09:00
syuilo
f1a61a268e New translations ja-JP.yml (Italian) 2018-12-05 18:58:44 +09:00
syuilo
d7636355a1 New translations ja-JP.yml (German) 2018-12-05 18:58:37 +09:00
syuilo
ed2993b3f2 New translations ja-JP.yml (French) 2018-12-05 18:58:30 +09:00
syuilo
1368c9d182 New translations ja-JP.yml (English) 2018-12-05 18:58:25 +09:00
syuilo
c5e3c07c16 New translations ja-JP.yml (Chinese Simplified) 2018-12-05 18:58:21 +09:00
syuilo
f8395166af New translations ja-JP.yml (Catalan) 2018-12-05 18:58:14 +09:00
Aya Morisawa
dc8f4c8d6a Fix #3341 (#3502) 2018-12-05 18:44:57 +09:00
syuilo
ed4860dfd9 [MFM] Add italic syntax
Resolve #3486
2018-12-05 17:39:26 +09:00
syuilo
5b0bf98b3c New translations ja-JP.yml (Norwegian) 2018-12-05 17:38:57 +09:00
syuilo
adffac1000 New translations ja-JP.yml (Dutch) 2018-12-05 17:38:53 +09:00
syuilo
3a1672b061 New translations ja-JP.yml (Japanese, Kansai) 2018-12-05 17:38:48 +09:00
syuilo
e7658be6cd New translations ja-JP.yml (Spanish) 2018-12-05 17:38:42 +09:00
syuilo
63533ad9c8 New translations ja-JP.yml (Russian) 2018-12-05 17:38:37 +09:00
syuilo
34b431fa1d New translations ja-JP.yml (Portuguese) 2018-12-05 17:38:32 +09:00
syuilo
958802dbe0 New translations ja-JP.yml (Polish) 2018-12-05 17:38:28 +09:00
syuilo
8681259597 New translations ja-JP.yml (Korean) 2018-12-05 17:38:21 +09:00
syuilo
f3d76c06db New translations ja-JP.yml (Italian) 2018-12-05 17:38:17 +09:00
syuilo
3f32a9bfff New translations ja-JP.yml (German) 2018-12-05 17:38:12 +09:00
syuilo
c497149765 New translations ja-JP.yml (French) 2018-12-05 17:38:08 +09:00
syuilo
9159613f2f New translations ja-JP.yml (English) 2018-12-05 17:38:02 +09:00
syuilo
70e95a5cdb New translations ja-JP.yml (Chinese Simplified) 2018-12-05 17:37:58 +09:00
syuilo
b0f82749aa New translations ja-JP.yml (Catalan) 2018-12-05 17:37:52 +09:00
syuilo
20c0690352 [Client] Resolve #3500 2018-12-05 17:27:27 +09:00
syuilo
006ecec443 New translations ja-JP.yml (French) 2018-12-05 17:12:08 +09:00
syuilo
effcf0a609 New translations ja-JP.yml (French) 2018-12-05 17:03:30 +09:00
syuilo
3852d0b2c3 New translations ja-JP.yml (English) 2018-12-05 14:19:33 +09:00
syuilo
ec67590dbe New translations ja-JP.yml (English) 2018-12-05 14:02:11 +09:00
dependabot[bot]
65d0dbb7d8 Update apexcharts requirement from 2.2.3 to 2.2.4 (#3497)
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/v2.2.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-05 08:33:54 +09:00
syuilo
f8af57dffb New translations ja-JP.yml (Polish) 2018-12-05 05:49:15 +09:00
syuilo
2b058be3aa New translations ja-JP.yml (Polish) 2018-12-05 05:32:20 +09:00
syuilo
67efd30553 New translations ja-JP.yml (Polish) 2018-12-05 05:28:00 +09:00
syuilo
8d1fdc5aa4 New translations ja-JP.yml (Polish) 2018-12-05 05:12:28 +09:00
syuilo
d033103163 New translations ja-JP.yml (Polish) 2018-12-05 05:02:39 +09:00
syuilo
53dff28a21 New translations ja-JP.yml (Korean) 2018-12-05 03:32:18 +09:00
syuilo
53c37036ee New translations ja-JP.yml (Korean) 2018-12-05 03:27:30 +09:00
syuilo
133c879a3a New translations ja-JP.yml (Korean) 2018-12-05 03:22:27 +09:00
syuilo
a105faeaae Update home.photos.vue 2018-12-04 11:02:51 +09:00
syuilo
13404310a7 Revert "Update switch.vue"
This reverts commit 40520f3997.
2018-12-04 09:42:55 +09:00
dependabot[bot]
2373b114bf Update vue-svg-inline-loader requirement from 1.2.2 to 1.2.4 (#3493)
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.4)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-04 08:29:09 +09:00
dependabot[bot]
5bfc6b6547 Update typescript-eslint-parser requirement from 21.0.1 to 21.0.2 (#3492)
Updates the requirements on [typescript-eslint-parser](https://github.com/eslint/typescript-eslint-parser) to permit the latest version.
- [Release notes](https://github.com/eslint/typescript-eslint-parser/releases)
- [Changelog](https://github.com/eslint/typescript-eslint-parser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/eslint/typescript-eslint-parser/commits/v21.0.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-04 08:29:00 +09:00
dependabot[bot]
8026a609bb Update vuedraggable requirement from 2.16.0 to 2.17.0 (#3491)
Updates the requirements on [vuedraggable](https://github.com/David-Desmaisons/Vue.Draggable) to permit the latest version.
- [Release notes](https://github.com/David-Desmaisons/Vue.Draggable/releases)
- [Commits](https://github.com/David-Desmaisons/Vue.Draggable/commits/v2.17.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-04 08:28:52 +09:00
dependabot[bot]
10db61a0d2 Update @types/elasticsearch requirement from 5.0.28 to 5.0.29 (#3490)
Updates the requirements on [@types/elasticsearch](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>
2018-12-04 08:28:42 +09:00
syuilo
40520f3997 Update switch.vue 2018-12-04 03:50:07 +09:00
MeiMei
c1d59716d1 Remove unnecessary Renote check code (#3489) 2018-12-04 03:22:41 +09:00
MeiMei
d8698743a1 Do not show Renote button when inhibited (#3488) 2018-12-04 03:22:08 +09:00
syuilo
ade5055bc3 10.61.0 2018-12-04 01:37:05 +09:00
syuilo
6e343d50f1 [MFM] Implement strike syntax
Resolve #3485
2018-12-04 01:28:21 +09:00
syuilo
ce3f735654 Fix bug 2018-12-04 01:07:26 +09:00
syuilo
9b5e623130 🎨 2018-12-04 01:04:53 +09:00
syuilo
f0b0c5b540 🎨
Add ripple effect
2018-12-04 01:02:19 +09:00
syuilo
dd2207d430 New translations ja-JP.yml (Japanese, Kansai) 2018-12-04 00:22:34 +09:00
syuilo
ffd6ac2434 New translations ja-JP.yml (Japanese, Kansai) 2018-12-04 00:12:59 +09:00
syuilo
27f93cc112 New translations ja-JP.yml (Japanese, Kansai) 2018-12-04 00:02:37 +09:00
syuilo
7ee88a69ec New translations ja-JP.yml (Japanese, Kansai) 2018-12-03 23:53:23 +09:00
MeiMei
227798300f Improve widget paging looks (#3482)
* Improve widget paging looks

* rewind when error
2018-12-03 23:14:10 +09:00
syuilo
2ab8a5bc0a 10.60.4 2018-12-03 20:27:47 +09:00
syuilo
c222b9ae94 Update init.ts 2018-12-03 20:26:46 +09:00
syuilo
53a0f3c794 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-03 20:26:38 +09:00
syuilo
9ff349c548 Update post-form.vue 2018-12-03 20:21:05 +09:00
syuilo
37a360efd9 New translations ja-JP.yml (Norwegian) 2018-12-03 20:14:07 +09:00
syuilo
3a850823a9 New translations ja-JP.yml (Dutch) 2018-12-03 20:14:02 +09:00
syuilo
4da53b7382 New translations ja-JP.yml (Japanese, Kansai) 2018-12-03 20:13:55 +09:00
syuilo
cb6f94735f New translations ja-JP.yml (Spanish) 2018-12-03 20:13:51 +09:00
syuilo
c073a20969 New translations ja-JP.yml (Russian) 2018-12-03 20:13:45 +09:00
syuilo
6dc8a385ee New translations ja-JP.yml (Portuguese) 2018-12-03 20:13:39 +09:00
syuilo
f299c050b8 New translations ja-JP.yml (Polish) 2018-12-03 20:13:35 +09:00
syuilo
eed540a51c New translations ja-JP.yml (Korean) 2018-12-03 20:13:30 +09:00
syuilo
5db72c4d71 New translations ja-JP.yml (Italian) 2018-12-03 20:13:25 +09:00
syuilo
fc0bbfa759 New translations ja-JP.yml (German) 2018-12-03 20:13:20 +09:00
syuilo
6d63c81dd5 New translations ja-JP.yml (French) 2018-12-03 20:13:15 +09:00
syuilo
bea42924cb New translations ja-JP.yml (English) 2018-12-03 20:13:10 +09:00
syuilo
b48ef68c12 New translations ja-JP.yml (Chinese Simplified) 2018-12-03 20:13:05 +09:00
syuilo
65109d140b New translations ja-JP.yml (Catalan) 2018-12-03 20:12:57 +09:00
Aya Morisawa
0935bd4bd4 Resolve #3281 (#3479) 2018-12-03 20:11:18 +09:00
syuilo
45bee7cc2f Resolve #327 2018-12-03 20:08:18 +09:00
syuilo
1c86a4bc26 Refactor 2018-12-03 19:44:03 +09:00
syuilo
b385cf2a9f 10.60.3 2018-12-03 09:54:14 +09:00
syuilo
40d3dc454d Merge pull request #3480 from syuilo/l10n_develop
New Crowdin translations
2018-12-03 09:53:40 +09:00
syuilo
8e92848495 New translations ja-JP.yml (Korean) 2018-12-03 09:52:19 +09:00
syuilo
2d94a22a30 New translations ja-JP.yml (French) 2018-12-03 09:52:15 +09:00
syuilo
7a5a091c25 New translations ja-JP.yml (English) 2018-12-03 09:52:08 +09:00
syuilo
2baf810c71 New translations ja-JP.yml (Chinese Simplified) 2018-12-03 09:52:01 +09:00
syuilo
d1ecef13ef New translations ja-JP.yml (Norwegian) 2018-12-03 09:43:22 +09:00
syuilo
495fa553ad New translations ja-JP.yml (Dutch) 2018-12-03 09:43:16 +09:00
syuilo
854e649ea6 New translations ja-JP.yml (Japanese, Kansai) 2018-12-03 09:43:11 +09:00
syuilo
c047324b42 🎨 2018-12-03 09:43:07 +09:00
syuilo
daac865c72 New translations ja-JP.yml (Spanish) 2018-12-03 09:43:07 +09:00
syuilo
63d059b8d1 New translations ja-JP.yml (Russian) 2018-12-03 09:43:01 +09:00
syuilo
e3075a0dc7 New translations ja-JP.yml (Portuguese) 2018-12-03 09:42:57 +09:00
syuilo
6b6e597b95 New translations ja-JP.yml (Polish) 2018-12-03 09:42:51 +09:00
syuilo
eb0eadad5e New translations ja-JP.yml (Korean) 2018-12-03 09:42:46 +09:00
syuilo
f600fee16d New translations ja-JP.yml (Italian) 2018-12-03 09:42:40 +09:00
syuilo
7b88c54aa6 New translations ja-JP.yml (German) 2018-12-03 09:42:34 +09:00
syuilo
623dd57cc3 New translations ja-JP.yml (French) 2018-12-03 09:42:27 +09:00
syuilo
f6edd33adb New translations ja-JP.yml (English) 2018-12-03 09:42:23 +09:00
syuilo
ac20d73222 New translations ja-JP.yml (Chinese Simplified) 2018-12-03 09:42:19 +09:00
syuilo
c59374d79d New translations ja-JP.yml (Catalan) 2018-12-03 09:42:13 +09:00
syuilo
0d478046de Improve usability 2018-12-03 09:41:22 +09:00
syuilo
f3479d1b98 Refactor 2018-12-03 09:38:43 +09:00
syuilo
2fdecb8a38 🎨 2018-12-03 09:14:17 +09:00
syuilo
a95c3ee557 New translations ja-JP.yml (Korean) 2018-12-03 08:12:01 +09:00
syuilo
67c439c70a New translations ja-JP.yml (French) 2018-12-03 03:01:46 +09:00
syuilo
b96037cffa New translations ja-JP.yml (Chinese Simplified) 2018-12-03 00:23:03 +09:00
syuilo
ebd8d34552 New translations ja-JP.yml (Chinese Simplified) 2018-12-03 00:13:13 +09:00
syuilo
a653d9a83e New translations ja-JP.yml (Chinese Simplified) 2018-12-03 00:11:54 +09:00
syuilo
07d6894c42 Clean up 2018-12-02 23:00:06 +09:00
Aya Morisawa
03588b3fd6 Merge if-statements (#3478) 2018-12-02 22:32:09 +09:00
syuilo
2e83440e70 10.60.2 2018-12-02 21:20:36 +09:00
nico
2633873fcc Fix syntax error (#3477)
src/remote/activitypub/models/person.ts(326,4): error TS1005: ',' expected.
2018-12-02 21:19:28 +09:00
syuilo
5f33713f53 10.60.1 2018-12-02 21:08:20 +09:00
syuilo
fe84c5010c Merge pull request #3458 from syuilo/l10n_develop
New Crowdin translations
2018-12-02 20:43:52 +09:00
syuilo
7f39df0713 New translations ja-JP.yml (English) 2018-12-02 20:43:12 +09:00
Aya Morisawa
928d359dd2 Use takeWhile instead of some (#3475) 2018-12-02 20:28:22 +09:00
Aya Morisawa
184eb00133 Remove self-assignment (#3476) 2018-12-02 20:26:15 +09:00
syuilo
e264a49b08 [Client] Resolve #2596 2018-12-02 20:24:38 +09:00
syuilo
8caf853c80 Merge branches 'develop', 'develop' and 'develop' of https://github.com/syuilo/misskey into develop 2018-12-02 20:11:03 +09:00
Aya Morisawa
b451c04787 Use primitive type boolean (#3474) 2018-12-02 20:10:56 +09:00
syuilo
1653977392 Improve input dialog 2018-12-02 20:10:53 +09:00
Aya Morisawa
a0d9def98a Simplify expressions (#3473) 2018-12-02 19:35:41 +09:00
Aya Morisawa
92701e5cec Fix #3445 (#3471) 2018-12-02 19:24:57 +09:00
Aya Morisawa
0b6b6a4f2f Remove unneccesary casts 2018-12-02 19:05:08 +09:00
MeiMei
3a2dc95850 No MFM parsing when remote note (#3470)
* Use tag for hashtag detection of remote note

* No MFM parsing when remote note
2018-12-02 18:05:33 +09:00
syuilo
163cf49f16 10.60.0 2018-12-02 15:39:46 +09:00
syuilo
37fc3103f6 New translations ja-JP.yml (Norwegian) 2018-12-02 15:33:32 +09:00
syuilo
b7bd1ff69f New translations ja-JP.yml (Dutch) 2018-12-02 15:33:28 +09:00
syuilo
dc36134f10 New translations ja-JP.yml (Japanese, Kansai) 2018-12-02 15:33:22 +09:00
syuilo
fea8821091 New translations ja-JP.yml (Spanish) 2018-12-02 15:33:17 +09:00
syuilo
33faf40aca New translations ja-JP.yml (Russian) 2018-12-02 15:33:12 +09:00
syuilo
4410f8d7f7 New translations ja-JP.yml (Portuguese) 2018-12-02 15:33:08 +09:00
syuilo
3e6029e69d New translations ja-JP.yml (Polish) 2018-12-02 15:33:04 +09:00
syuilo
96c7707e6c New translations ja-JP.yml (Korean) 2018-12-02 15:32:59 +09:00
syuilo
d8e545db3c New translations ja-JP.yml (Italian) 2018-12-02 15:32:54 +09:00
syuilo
a9a6ba0aed New translations ja-JP.yml (German) 2018-12-02 15:32:50 +09:00
syuilo
a898c6ceab New translations ja-JP.yml (French) 2018-12-02 15:32:44 +09:00
syuilo
0205c5c2d7 New translations ja-JP.yml (English) 2018-12-02 15:32:38 +09:00
syuilo
f8074ab74b New translations ja-JP.yml (Chinese Simplified) 2018-12-02 15:32:34 +09:00
syuilo
f15c491d5f New translations ja-JP.yml (Catalan) 2018-12-02 15:32:29 +09:00
syuilo
c38a32dee9 🎨 2018-12-02 15:31:24 +09:00
syuilo
4f5abed70d Fix 2018-12-02 15:30:48 +09:00
syuilo
c9ac9923df Refactor: rename alert to dialog 2018-12-02 15:28:52 +09:00
syuilo
bb14895fd8 [Client] Resolve #2225 2018-12-02 15:26:56 +09:00
syuilo
6f92d601ec 🎨 2018-12-02 14:26:30 +09:00
MeiMei
345143b0c1 Suggest in CW (#3467) 2018-12-02 07:33:03 +09:00
syuilo
dc80d5d376 10.59.4 2018-12-02 07:08:26 +09:00
Acid Chicken (硫酸鶏)
d3544f9637 Update README.md [AUTOGEN] (#3466) 2018-12-02 07:05:22 +09:00
syuilo
864b6ad1bd Resolve #1826 2018-12-02 07:02:08 +09:00
syuilo
c58027e521 [MFM] Better hashtag detection 2018-12-02 06:53:57 +09:00
syuilo
10fb399588 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-12-02 06:44:25 +09:00
syuilo
10f466c895 Improve performance 2018-12-02 06:44:18 +09:00
Acid Chicken (硫酸鶏)
32068b4bcc Update README.md [AUTOGEN] (#3465) 2018-12-02 06:16:24 +09:00
syuilo
381f2b7fdf New translations ja-JP.yml (French) 2018-12-02 05:12:02 +09:00
syuilo
1c3c733c6b New translations ja-JP.yml (French) 2018-12-02 05:02:46 +09:00
MeiMei
8bc5febe66 [Client] Add missing icon (#3464) 2018-12-02 03:43:05 +09:00
MeiMei
20335e23f9 Resolve external recommended users (#3462)
* Resolve external recommended users

* Skip unresolvable users

* Fix indent

* Use original for unresolvable users
2018-12-02 03:42:45 +09:00
syuilo
9dbc9115c9 New translations ja-JP.yml (English) 2018-12-01 12:51:44 +09:00
syuilo
fe707f88a4 [MFM] Better MFM parsing 2018-12-01 10:40:09 +09:00
syuilo
9b23ebd4a3 🎨 2018-12-01 09:45:48 +09:00
syuilo
bea450cc2c 10.59.3 2018-12-01 08:00:25 +09:00
syuilo
e80709f7aa Disable update notification 2018-12-01 07:59:15 +09:00
imgbot[bot]
cb71f92f42 [ImgBot] Optimize images (#3455)
*Total -- 1,383.25kb -> 1,231.27kb (10.99%)

/assets/apple-touch-icon.png -- 4.72kb -> 2.51kb (46.79%)
/assets/icons/256.png -- 4.72kb -> 2.51kb (46.79%)
/assets/title.png -- 6.63kb -> 3.80kb (42.73%)
/assets/favicon/favicon.png -- 6.83kb -> 3.93kb (42.45%)
/assets/icons/192.png -- 3.49kb -> 2.02kb (42.08%)
/assets/icons/128.png -- 2.29kb -> 1.50kb (34.81%)
/assets/about/ui.png -- 125.21kb -> 94.85kb (24.25%)
/assets/ai-orig.png -- 255.55kb -> 199.67kb (21.86%)
/assets/icons/64.png -- 1.21kb -> 0.99kb (18.34%)
/assets/about/drive.png -- 110.33kb -> 94.20kb (14.62%)
/assets/about/post.png -- 344.52kb -> 316.57kb (8.11%)
/assets/ai.png -- 243.43kb -> 234.93kb (3.49%)
/src/client/assets/pointer.png -- 274.33kb -> 273.80kb (0.19%)
2018-12-01 07:55:34 +09:00
tamaina
2ca5348560 Fix "Mi"/"Misskey" logos (#3400)
* Fix mi.svg

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload

* Add files via upload
2018-12-01 07:52:15 +09:00
dependabot[bot]
c8e98fdf8e Update vue-js-modal requirement from 1.3.26 to 1.3.27 (#3425)
Updates the requirements on [vue-js-modal](https://github.com/euvl/vue-js-modal) to permit the latest version.
- [Release notes](https://github.com/euvl/vue-js-modal/releases)
- [Commits](https://github.com/euvl/vue-js-modal/commits)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-01 07:44:30 +09:00
syuilo
0bfa041026 Merge pull request #3435 from syuilo/l10n_develop
New Crowdin translations
2018-12-01 07:20:03 +09:00
dependabot[bot]
33bf474a1e Update @types/file-type requirement from 5.2.1 to 5.2.2 (#3450)
Updates the requirements on [@types/file-type](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>
2018-12-01 07:19:39 +09:00
Acid Chicken (硫酸鶏)
53c559c001 Allow hyphens in the middle of remote usernames (#3440)
* Allow hyphens in the middle of remote usernames

refs: d797c29db462de4a3d69a5077a1ae4d03195b6f2

* Make options fallback better

* Make options flat
2018-12-01 07:19:17 +09:00
dependabot[bot]
1c99ef454b Update webpack requirement from 4.26.0 to 4.26.1 (#3453)
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.26.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-12-01 07:16:53 +09:00
MeiMei
cf4cecd4df Fix media video (#3452)
* Fix: Always show nsfw

* [Client] Add missing video play icon
2018-12-01 07:16:28 +09:00
MeiMei
6a8835b923 Exclude remote user or myself from talk user suggestions (#3449) 2018-12-01 07:15:55 +09:00
MeiMei
f2b1cf92e1 AP CW (#3448) 2018-12-01 07:15:10 +09:00
syuilo
6b79618e74 New translations ja-JP.yml (Polish) 2018-12-01 02:22:34 +09:00
Aya Morisawa
3db414add4 Use for-of instead of map
return values are not being used
2018-11-30 23:30:28 +09:00
Aya Morisawa
9ef641b403 Remove consecutive blank line 2018-11-30 23:07:21 +09:00
MeiMei
6fa7819a44 Fix #3442 (#3443) 2018-11-30 18:13:55 +09:00
MeiMei
59a1b9adbe Trim notifications text (#3438)
* Trim notifications

* Remove needless colons

* Use single quote

* 🎨
2018-11-30 09:34:37 +09:00
syuilo
3fbc7094f6 New translations ja-JP.yml (Korean) 2018-11-30 07:52:03 +09:00
syuilo
56c6227bc2 New translations ja-JP.yml (English) 2018-11-30 05:02:18 +09:00
syuilo
ee82f99f5a Better limit 2018-11-30 00:45:02 +09:00
syuilo
72d9a46156 10.59.2 2018-11-30 00:36:02 +09:00
MeiMei
683a85ecc0 Fix SMTP (#3436) 2018-11-30 00:35:17 +09:00
syuilo
89047fd66d 10.59.1 2018-11-30 00:15:02 +09:00
syuilo
789de130a2 New translations ja-JP.yml (Norwegian) 2018-11-30 00:14:31 +09:00
syuilo
46c026ce70 New translations ja-JP.yml (Dutch) 2018-11-30 00:14:24 +09:00
syuilo
82290f6e4e New translations ja-JP.yml (Japanese, Kansai) 2018-11-30 00:14:17 +09:00
syuilo
8729525f95 New translations ja-JP.yml (Spanish) 2018-11-30 00:14:09 +09:00
syuilo
df0115ffe8 New translations ja-JP.yml (Russian) 2018-11-30 00:14:04 +09:00
syuilo
0275b4fc9e New translations ja-JP.yml (Portuguese) 2018-11-30 00:13:57 +09:00
syuilo
9982fd71ba New translations ja-JP.yml (Polish) 2018-11-30 00:13:49 +09:00
syuilo
081060b7db New translations ja-JP.yml (Korean) 2018-11-30 00:13:45 +09:00
syuilo
0de64f1fc7 New translations ja-JP.yml (Italian) 2018-11-30 00:13:37 +09:00
syuilo
f0508c0a90 New translations ja-JP.yml (German) 2018-11-30 00:13:32 +09:00
syuilo
b51ae1dfaa New translations ja-JP.yml (French) 2018-11-30 00:13:24 +09:00
syuilo
6e7233d41b New translations ja-JP.yml (English) 2018-11-30 00:13:19 +09:00
syuilo
8ca27a4480 Fix #3432 2018-11-30 00:13:13 +09:00
syuilo
418041a56e New translations ja-JP.yml (Chinese Simplified) 2018-11-30 00:13:13 +09:00
syuilo
17d20f5a18 New translations ja-JP.yml (Catalan) 2018-11-30 00:13:07 +09:00
syuilo
77d2d84e05 Fix #3434 2018-11-30 00:04:28 +09:00
MeiMei
3bde4285eb Fix SMTP (#3433)
* Fix: SMTP local relay

* Fix SMTP SSL description

* ✌️
2018-11-30 00:03:28 +09:00
syuilo
15efbfb244 Fix #3430 2018-11-29 22:05:11 +09:00
MeiMei
55a57db958 Show current selected language (#3429) 2018-11-29 21:56:53 +09:00
syuilo
91f624c900 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-29 20:40:03 +09:00
syuilo
d753489e49 10.59.0 2018-11-29 20:39:56 +09:00
syuilo
36dd7c82db Merge pull request #3394 from syuilo/l10n_develop
New Crowdin translations
2018-11-29 20:38:43 +09:00
syuilo
b00db74216 Add korean 2018-11-29 20:38:19 +09:00
syuilo
cf9f85eb2a メールサーバーの設定がオフの場合はメール設定を表示しないように 2018-11-29 20:33:31 +09:00
syuilo
bfa8414289 New translations ja-JP.yml (English) 2018-11-29 20:32:43 +09:00
syuilo
58dc9c9544 New translations ja-JP.yml (Norwegian) 2018-11-29 20:24:05 +09:00
syuilo
ba95ce18a8 New translations ja-JP.yml (Dutch) 2018-11-29 20:23:58 +09:00
syuilo
ac10c40f31 New translations ja-JP.yml (Japanese, Kansai) 2018-11-29 20:23:51 +09:00
syuilo
de8b40c80f New translations ja-JP.yml (Spanish) 2018-11-29 20:23:45 +09:00
syuilo
60fe69728d New translations ja-JP.yml (Russian) 2018-11-29 20:23:39 +09:00
syuilo
557607e842 New translations ja-JP.yml (Portuguese) 2018-11-29 20:23:34 +09:00
syuilo
40ac9de728 New translations ja-JP.yml (Polish) 2018-11-29 20:23:26 +09:00
syuilo
a725cd1946 New translations ja-JP.yml (Korean) 2018-11-29 20:23:21 +09:00
syuilo
b648706756 New translations ja-JP.yml (Italian) 2018-11-29 20:23:15 +09:00
syuilo
20f2e9fc6d New translations ja-JP.yml (German) 2018-11-29 20:23:10 +09:00
syuilo
858ced0a53 New translations ja-JP.yml (French) 2018-11-29 20:23:04 +09:00
syuilo
c9ca8f777f New translations ja-JP.yml (English) 2018-11-29 20:22:57 +09:00
syuilo
0d0be31527 New translations ja-JP.yml (Chinese Simplified) 2018-11-29 20:22:52 +09:00
syuilo
96305a088c New translations ja-JP.yml (Catalan) 2018-11-29 20:22:47 +09:00
syuilo
22e30b44b9 Make require password to update email 2018-11-29 20:19:02 +09:00
syuilo
48d0e2fa5f [MFM] Improve hashtag detection 2018-11-29 20:12:37 +09:00
syuilo
0489291815 Refactor 2018-11-29 20:09:41 +09:00
syuilo
7a412500e1 [Client] Fix #3427 2018-11-29 20:07:31 +09:00
syuilo
dffaa72a88 New translations ja-JP.yml (Norwegian) 2018-11-29 16:34:41 +09:00
syuilo
152d61f906 New translations ja-JP.yml (Dutch) 2018-11-29 16:34:29 +09:00
syuilo
b44ded5fc9 New translations ja-JP.yml (Japanese, Kansai) 2018-11-29 16:34:21 +09:00
syuilo
99d77cc843 New translations ja-JP.yml (Spanish) 2018-11-29 16:34:11 +09:00
syuilo
bc385eec2d New translations ja-JP.yml (Russian) 2018-11-29 16:33:58 +09:00
syuilo
2c6b9403b3 New translations ja-JP.yml (Portuguese) 2018-11-29 16:33:46 +09:00
syuilo
89cdc59fe5 New translations ja-JP.yml (Polish) 2018-11-29 16:33:35 +09:00
syuilo
3e04e1ccea New translations ja-JP.yml (Korean) 2018-11-29 16:33:27 +09:00
syuilo
25f491a65f New translations ja-JP.yml (Italian) 2018-11-29 16:33:17 +09:00
syuilo
7fdde157e0 New translations ja-JP.yml (German) 2018-11-29 16:33:10 +09:00
syuilo
27f30a449a New translations ja-JP.yml (French) 2018-11-29 16:33:02 +09:00
syuilo
dc66a0cd66 New translations ja-JP.yml (English) 2018-11-29 16:32:54 +09:00
syuilo
f302ecd1e2 New translations ja-JP.yml (Chinese Simplified) 2018-11-29 16:32:46 +09:00
syuilo
1afc2a227a New translations ja-JP.yml (Catalan) 2018-11-29 16:32:38 +09:00
syuilo
ab594d1dfe Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-29 16:24:05 +09:00
syuilo
647d32f506 🎨 2018-11-29 16:24:02 +09:00
syuilo
1bc109b42c Implement email config 2018-11-29 16:23:45 +09:00
syuilo
6e02e2a6b3 New translations ja-JP.yml (Norwegian) 2018-11-29 11:14:35 +09:00
syuilo
3372baad6c New translations ja-JP.yml (Dutch) 2018-11-29 11:14:26 +09:00
syuilo
e9b3e3877a New translations ja-JP.yml (Japanese, Kansai) 2018-11-29 11:14:16 +09:00
syuilo
c84c5fbae7 New translations ja-JP.yml (Spanish) 2018-11-29 11:14:08 +09:00
syuilo
2e7ab91f48 New translations ja-JP.yml (Russian) 2018-11-29 11:13:59 +09:00
syuilo
92c41c003a New translations ja-JP.yml (Portuguese) 2018-11-29 11:13:51 +09:00
syuilo
53688cdcdc New translations ja-JP.yml (Polish) 2018-11-29 11:13:44 +09:00
syuilo
70f864ea8b New translations ja-JP.yml (Korean) 2018-11-29 11:13:34 +09:00
syuilo
5dd94e551a New translations ja-JP.yml (Italian) 2018-11-29 11:13:26 +09:00
syuilo
afc1ed9897 New translations ja-JP.yml (German) 2018-11-29 11:13:19 +09:00
syuilo
df7562f98d New translations ja-JP.yml (French) 2018-11-29 11:13:10 +09:00
syuilo
1c7e799164 New translations ja-JP.yml (English) 2018-11-29 11:13:02 +09:00
syuilo
107a3f99f4 New translations ja-JP.yml (Chinese Simplified) 2018-11-29 11:12:54 +09:00
syuilo
7e3cf4b4ad New translations ja-JP.yml (Catalan) 2018-11-29 11:12:45 +09:00
Hakaba Hitoyo
afdb23ff57 Feature / Configurable web search engine (#3406)
* configurable web search engine

* add webSearchEngine config in mobile ui

* add webSearchEngine config in desktop ui

* add webSearchEngine config

* add messages for web search engine config

* correct locale
2018-11-29 11:05:17 +09:00
syuilo
0ce64f8c33 10.58.2 2018-11-29 06:34:07 +09:00
syuilo
2cd6ccb85c Fix test 2018-11-29 06:33:23 +09:00
syuilo
3dcf5374c2 Mark chart apis as stable 2018-11-29 06:06:07 +09:00
dependabot[bot]
1c7d5f3f64 Update ts-loader requirement from 5.3.0 to 5.3.1 (#3426)
Updates the requirements on [ts-loader](https://github.com/TypeStrong/ts-loader) to permit the latest version.
- [Release notes](https://github.com/TypeStrong/ts-loader/releases)
- [Changelog](https://github.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/ts-loader/commits/v5.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-29 05:31:41 +09:00
Ivan
bb0cb0a866 Fix bad style in deck column options and other things (#3412)
* Fix wrong text color in empty timeline (#3268)

* Whoops

* Fix wrong text color in deck options (#3268)

* Some padding to make it look less ugly

* Fix wrong text color in user lists menu (#3268)

* Fix wrong text color of footer on welcome screen (mobile) (#3268)

* Fix misalignment of icons and text in menu (mobile) (#3289)

* Fix wrong text color in empty timeline (mobile) (#3268)
2018-11-29 05:02:35 +09:00
Acid Chicken (硫酸鶏)
362dc29057 Update profile-editor.vue (#3424) 2018-11-29 04:54:36 +09:00
syuilo
8af0218e4c ✌️🤔✌️ 2018-11-28 18:57:22 +09:00
syuilo
09af9968b5 🎨 2018-11-28 16:29:18 +09:00
syuilo
7d0b819c5a Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-28 16:19:09 +09:00
syuilo
4bbb7eded3 Cookieを使わないように 2018-11-28 16:19:02 +09:00
dependabot[bot]
72ea9e5522 Update systeminformation requirement from 3.49.3 to 3.51.3 (#3419)
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>
2018-11-28 16:01:16 +09:00
dependabot[bot]
743e5d947d Update autobind-decorator requirement from 2.2.1 to 2.3.1 (#3418)
Updates the requirements on [autobind-decorator](https://github.com/andreypopp/autobind-decorator) to permit the latest version.
- [Release notes](https://github.com/andreypopp/autobind-decorator/releases)
- [Changelog](https://github.com/andreypopp/autobind-decorator/blob/master/CHANGELOG.md)
- [Commits](https://github.com/andreypopp/autobind-decorator/commits/v2.3.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-28 16:00:58 +09:00
syuilo
f257853906 Update signin.ts 2018-11-28 05:27:34 +09:00
syuilo
32983d3829 New translations ja-JP.yml (Polish) 2018-11-28 04:42:11 +09:00
nico
bdef33e88d Add theme_color and 512x512 icon to app manifest (#3417)
As per Chrome Lighthouse PWA suggestions.
2018-11-28 04:38:50 +09:00
syuilo
a4a4194586 New translations ja-JP.yml (Polish) 2018-11-28 04:32:18 +09:00
syuilo
e36c538dc0 New translations ja-JP.yml (Polish) 2018-11-28 04:22:13 +09:00
syuilo
982a218bf2 New translations ja-JP.yml (Chinese Simplified) 2018-11-27 21:04:16 +09:00
syuilo
f7aeca4c7c New translations ja-JP.yml (Korean) 2018-11-27 20:08:23 +09:00
syuilo
4b81bc864f New translations ja-JP.yml (Korean) 2018-11-27 19:59:43 +09:00
syuilo
a52cc62c04 New translations ja-JP.yml (Korean) 2018-11-27 19:42:47 +09:00
syuilo
81f69bff9e New translations ja-JP.yml (Korean) 2018-11-27 19:33:25 +09:00
syuilo
d9b2aa1880 New translations ja-JP.yml (Korean) 2018-11-27 19:13:03 +09:00
syuilo
3bddd986a0 New translations ja-JP.yml (Korean) 2018-11-27 18:57:30 +09:00
syuilo
d00712d817 New translations ja-JP.yml (Korean) 2018-11-27 18:43:54 +09:00
syuilo
d756fdbebf New translations ja-JP.yml (Russian) 2018-11-27 17:00:13 +09:00
syuilo
b2f2c74605 New translations ja-JP.yml (Russian) 2018-11-27 16:53:36 +09:00
syuilo
1407cd71b5 New translations ja-JP.yml (Russian) 2018-11-27 16:32:45 +09:00
syuilo
3dd3a7238d New translations ja-JP.yml (Russian) 2018-11-27 16:22:11 +09:00
syuilo
afc834ae4b New translations ja-JP.yml (Russian) 2018-11-27 16:12:28 +09:00
syuilo
357f190ce3 New translations ja-JP.yml (Russian) 2018-11-27 16:02:30 +09:00
dependabot[bot]
ab92762320 Update webfinger.js requirement from 2.6.6 to 2.7.0 (#3414)
Updates the requirements on [webfinger.js](https://github.com/silverbucket/webfinger.js) to permit the latest version.
- [Release notes](https://github.com/silverbucket/webfinger.js/releases)
- [Changelog](https://github.com/silverbucket/webfinger.js/blob/master/RELEASE_CHECKLIST)
- [Commits](https://github.com/silverbucket/webfinger.js/commits/v2.7.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-27 15:49:50 +09:00
Acid Chicken (硫酸鶏)
04942c8477 Update README.md [AUTOGEN] (#3415) 2018-11-27 15:49:39 +09:00
syuilo
9c60f51e0d New translations ja-JP.yml (Russian) 2018-11-27 15:42:01 +09:00
syuilo
956ae2ac46 New translations ja-JP.yml (Korean) 2018-11-27 13:01:57 +09:00
syuilo
f2ed813337 New translations ja-JP.yml (Korean) 2018-11-27 12:52:16 +09:00
syuilo
7d9a7d1a3c New translations ja-JP.yml (Korean) 2018-11-27 12:42:09 +09:00
syuilo
2f67b6fb47 New translations ja-JP.yml (Korean) 2018-11-27 12:31:55 +09:00
syuilo
7444dde93e New translations ja-JP.yml (Korean) 2018-11-27 12:22:14 +09:00
Acid Chicken (硫酸鶏)
e62fad7bc6 Update README.md [AUTOGEN] (#3413) 2018-11-27 03:08:08 +09:00
syuilo
2c6bad2501 [MFM] Improve hashtag detection 2018-11-27 02:08:51 +09:00
syuilo
6952bb2eca New translations ja-JP.yml (Norwegian) 2018-11-27 01:26:59 +09:00
syuilo
610972dbde New translations ja-JP.yml (Dutch) 2018-11-27 01:26:54 +09:00
syuilo
926049055a New translations ja-JP.yml (Japanese, Kansai) 2018-11-27 01:26:49 +09:00
syuilo
db5f6b60df New translations ja-JP.yml (Spanish) 2018-11-27 01:26:44 +09:00
syuilo
7be7b9d9fd New translations ja-JP.yml (Russian) 2018-11-27 01:26:39 +09:00
syuilo
366855c4cc New translations ja-JP.yml (Portuguese) 2018-11-27 01:26:35 +09:00
syuilo
e950beeeab New translations ja-JP.yml (Polish) 2018-11-27 01:26:28 +09:00
syuilo
5515b39f6c New translations ja-JP.yml (Korean) 2018-11-27 01:26:23 +09:00
syuilo
f5d0599e4d New translations ja-JP.yml (Italian) 2018-11-27 01:26:17 +09:00
syuilo
8fd7914f0f New translations ja-JP.yml (German) 2018-11-27 01:26:13 +09:00
syuilo
24ef98eb01 10.58.1 2018-11-27 01:26:07 +09:00
syuilo
b3dd6cf001 New translations ja-JP.yml (French) 2018-11-27 01:26:07 +09:00
syuilo
6d4b474cb1 New translations ja-JP.yml (English) 2018-11-27 01:26:03 +09:00
syuilo
0a8876a3ae New translations ja-JP.yml (Chinese Simplified) 2018-11-27 01:25:59 +09:00
syuilo
9a83a48331 New translations ja-JP.yml (Catalan) 2018-11-27 01:25:54 +09:00
syuilo
7ed50b90bd [Client] Resolve #3323 2018-11-27 01:21:16 +09:00
MeiMei
b6fd5d7282 No caching /api/ (#3411) 2018-11-27 01:16:25 +09:00
Acid Chicken (硫酸鶏)
33243e7176 Fix #3409 (#3410)
* Update Dockerfile

* Update Dockerfile
2018-11-27 00:32:56 +09:00
Aya Morisawa
e8439679a5 Add yarn.lock to .gitignore (#3408) 2018-11-26 21:55:16 +09:00
MeiMei
06124dbbd5 Return 404 for undefined .well-known (#3404) 2018-11-26 04:49:24 +09:00
syuilo
857940f402 10.58.0 2018-11-26 04:33:39 +09:00
MeiMei
bcb04924ff Image for web publish (#3402)
* Image for Web

* Add comment

* Make main to original
2018-11-26 04:25:48 +09:00
syuilo
2b6aeb9ebc New translations ja-JP.yml (Korean) 2018-11-25 18:55:39 +09:00
syuilo
648e4538fb New translations ja-JP.yml (Korean) 2018-11-25 18:41:57 +09:00
syuilo
cd4b3777da New translations ja-JP.yml (Korean) 2018-11-25 18:31:44 +09:00
syuilo
4acf506b7e New translations ja-JP.yml (Korean) 2018-11-25 18:22:00 +09:00
syuilo
543ca348bc New translations ja-JP.yml (Korean) 2018-11-25 18:11:50 +09:00
syuilo
03375412f1 New translations ja-JP.yml (Korean) 2018-11-25 18:01:59 +09:00
syuilo
0c7a9b6827 New translations ja-JP.yml (Korean) 2018-11-25 17:52:07 +09:00
syuilo
c54bc3c176 New translations ja-JP.yml (Korean) 2018-11-25 17:42:22 +09:00
syuilo
90973bedf4 New translations ja-JP.yml (Korean) 2018-11-25 17:32:03 +09:00
syuilo
757f70162e New translations ja-JP.yml (Korean) 2018-11-25 17:21:56 +09:00
syuilo
3047410b35 New translations ja-JP.yml (Korean) 2018-11-25 17:11:58 +09:00
syuilo
9d0d4c5eae New translations ja-JP.yml (Korean) 2018-11-25 16:41:50 +09:00
syuilo
cab5b4d601 New translations ja-JP.yml (Korean) 2018-11-25 16:31:55 +09:00
syuilo
517b6e25d9 New translations ja-JP.yml (Korean) 2018-11-25 16:21:57 +09:00
syuilo
94d394c29e New translations ja-JP.yml (Korean) 2018-11-25 16:11:51 +09:00
syuilo
a52099d175 New translations ja-JP.yml (Korean) 2018-11-25 16:01:56 +09:00
syuilo
f1cb7b862d New translations ja-JP.yml (Korean) 2018-11-25 15:51:50 +09:00
syuilo
0863e5d379 🎨 2018-11-25 13:47:42 +09:00
syuilo
55dcd25df1 Improve MFM 2018-11-25 13:36:52 +09:00
syuilo
f3155ea180 [MFM] Add center syntax
Resolve #1775
2018-11-25 13:36:40 +09:00
syuilo
2c5162671c Improve MFM 2018-11-25 13:23:18 +09:00
syuilo
fc8aeb5a66 [Client] Fix bug 2018-11-25 13:21:47 +09:00
syuilo
995cf503eb Add MFM test 2018-11-25 13:21:39 +09:00
syuilo
0e49c11a4c Refactoring 2018-11-25 13:19:33 +09:00
syuilo
0367c37b0a 10.57.3 2018-11-25 05:17:45 +09:00
syuilo
e0b9fe5e5d 🎨 2018-11-25 05:16:39 +09:00
syuilo
a4726e683b 🎨 2018-11-25 05:10:48 +09:00
syuilo
3b10e93efe [MFM] Better hashtag parsing 2018-11-25 04:44:42 +09:00
syuilo
02b07c1b5b Update note-mixin.ts 2018-11-25 04:30:32 +09:00
syuilo
5e54751bd4 Refactor 2018-11-25 04:26:07 +09:00
syuilo
34f1dc238d New translations ja-JP.yml (Korean) 2018-11-25 02:21:48 +09:00
syuilo
3c0f4bdf35 New translations ja-JP.yml (Korean) 2018-11-25 02:11:52 +09:00
syuilo
a68d370ad0 New translations ja-JP.yml (Korean) 2018-11-25 02:01:52 +09:00
syuilo
debb27ed30 New translations ja-JP.yml (Korean) 2018-11-25 01:52:36 +09:00
syuilo
97fbb857fb New translations ja-JP.yml (Korean) 2018-11-25 01:41:56 +09:00
MeiMei
93f13ffc8e Fix: url-preview (#3397) 2018-11-25 01:39:22 +09:00
syuilo
4d9dc93d46 New translations ja-JP.yml (Korean) 2018-11-25 01:32:05 +09:00
syuilo
22cd4c5d16 New translations ja-JP.yml (Korean) 2018-11-25 01:22:01 +09:00
syuilo
6883994b22 New translations ja-JP.yml (Korean) 2018-11-25 00:42:19 +09:00
syuilo
852a312753 New translations ja-JP.yml (Korean) 2018-11-25 00:32:57 +09:00
syuilo
afea0baaa8 New translations ja-JP.yml (Korean) 2018-11-25 00:22:08 +09:00
syuilo
2c477660a0 New translations ja-JP.yml (Korean) 2018-11-25 00:12:06 +09:00
syuilo
16a1cd3c9d New translations ja-JP.yml (Korean) 2018-11-25 00:02:20 +09:00
syuilo
db23dd2e01 New translations ja-JP.yml (Korean) 2018-11-24 23:51:44 +09:00
syuilo
eaa1ded5ba New translations ja-JP.yml (Korean) 2018-11-24 23:48:03 +09:00
syuilo
393e14196a New translations ja-JP.yml (Korean) 2018-11-24 23:41:59 +09:00
syuilo
8b005307ea New translations ja-JP.yml (Korean) 2018-11-24 23:32:15 +09:00
syuilo
c915ac0e72 New translations ja-JP.yml (Korean) 2018-11-24 23:22:10 +09:00
syuilo
1752bb896e New translations ja-JP.yml (Korean) 2018-11-24 23:13:01 +09:00
syuilo
9c8fa026f3 New translations ja-JP.yml (English) 2018-11-24 23:12:56 +09:00
syuilo
e93db6324a New translations ja-JP.yml (Korean) 2018-11-24 23:03:31 +09:00
syuilo
a10708bffa New translations ja-JP.yml (English) 2018-11-24 23:03:26 +09:00
syuilo
e65a7a142f New translations ja-JP.yml (Korean) 2018-11-24 22:52:16 +09:00
syuilo
72e0b2d470 New translations ja-JP.yml (English) 2018-11-24 22:52:12 +09:00
syuilo
43fb0f36a7 New translations ja-JP.yml (Korean) 2018-11-24 22:43:27 +09:00
syuilo
cf3533221b New translations ja-JP.yml (Korean) 2018-11-24 22:32:16 +09:00
syuilo
de522ebe14 New translations ja-JP.yml (Korean) 2018-11-24 22:22:02 +09:00
syuilo
2ace891dde New translations ja-JP.yml (Korean) 2018-11-24 22:11:52 +09:00
syuilo
e212d9f991 New translations ja-JP.yml (Korean) 2018-11-24 19:32:05 +09:00
syuilo
739f3f84d0 New translations ja-JP.yml (Korean) 2018-11-24 19:22:14 +09:00
syuilo
5e206c86be New translations ja-JP.yml (French) 2018-11-24 19:22:08 +09:00
syuilo
1ab37011ea New translations ja-JP.yml (French) 2018-11-24 19:12:20 +09:00
syuilo
b6e02f63cd New translations ja-JP.yml (French) 2018-11-24 19:02:11 +09:00
syuilo
60e10d4efa 10.57.2 2018-11-24 17:31:08 +09:00
syuilo
95ba7e43b1 Fix bug: リモートユーザーのアイコンとバナーの色が取得されていない問題を修正 2018-11-24 17:29:32 +09:00
syuilo
9e5a2e5b17 Fix lint 2018-11-24 17:19:51 +09:00
syuilo
dbbc416095 [MFM] Fix hashtag detection 2018-11-24 17:18:11 +09:00
syuilo
a479ad357c Update dependency 🚀 2018-11-24 17:13:25 +09:00
syuilo
b1c12abb7c Refactor 2018-11-24 17:10:12 +09:00
syuilo
17d1a1d7bd New translations ja-JP.yml (Korean) 2018-11-24 12:12:00 +09:00
syuilo
ba50156a83 10.57.1 2018-11-24 07:35:29 +09:00
syuilo
eb83ab41c0 Revert "10.57.1"
This reverts commit 8c4f0d4589.
2018-11-24 07:34:51 +09:00
syuilo
4e6a917dab Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-24 07:34:23 +09:00
syuilo
8c4f0d4589 10.57.1 2018-11-24 07:33:53 +09:00
syuilo
3f7738204e Merge pull request #3391 from syuilo/l10n_develop
New Crowdin translations
2018-11-24 07:31:36 +09:00
syuilo
e251a9b9fe New translations ja-JP.yml (English) 2018-11-24 07:22:10 +09:00
syuilo
01d43b9683 New translations ja-JP.yml (Norwegian) 2018-11-24 07:13:03 +09:00
syuilo
4d4a0c89a8 New translations ja-JP.yml (Dutch) 2018-11-24 07:12:58 +09:00
syuilo
0a5524e9c8 New translations ja-JP.yml (Japanese, Kansai) 2018-11-24 07:12:53 +09:00
syuilo
c8fb5746b3 New translations ja-JP.yml (Spanish) 2018-11-24 07:12:49 +09:00
syuilo
bbcc132978 New translations ja-JP.yml (Russian) 2018-11-24 07:12:44 +09:00
syuilo
d3e4f84285 New translations ja-JP.yml (Portuguese) 2018-11-24 07:12:38 +09:00
syuilo
62c470cf75 New translations ja-JP.yml (Polish) 2018-11-24 07:12:34 +09:00
syuilo
8ab31d3765 New translations ja-JP.yml (Korean) 2018-11-24 07:12:28 +09:00
syuilo
55fe1cf0a8 New translations ja-JP.yml (Italian) 2018-11-24 07:12:23 +09:00
syuilo
00cff51ff7 New translations ja-JP.yml (German) 2018-11-24 07:12:18 +09:00
syuilo
d6bc4a7aa1 New translations ja-JP.yml (French) 2018-11-24 07:12:14 +09:00
syuilo
4e57d12aea New translations ja-JP.yml (English) 2018-11-24 07:12:09 +09:00
syuilo
4a2d99c43f New translations ja-JP.yml (Chinese Simplified) 2018-11-24 07:12:03 +09:00
syuilo
217c27df86 New translations ja-JP.yml (Catalan) 2018-11-24 07:11:59 +09:00
syuilo
e6dcd438b4 Update ja-JP.yml 2018-11-24 07:05:41 +09:00
syuilo
de2b0224d6 Resolve #3158 2018-11-24 07:04:29 +09:00
syuilo
3f8a72eb88 🎨 2018-11-24 07:03:03 +09:00
syuilo
0387176e8c 🎨 2018-11-24 07:01:40 +09:00
syuilo
aa34e332f4 Update reversi.room.vue 2018-11-24 07:01:12 +09:00
syuilo
d13999d689 🎨 2018-11-24 06:56:30 +09:00
syuilo
22c4e92728 Resolve #3389 2018-11-24 06:47:51 +09:00
syuilo
df8128c0b1 Update url-preview.ts 2018-11-24 06:41:22 +09:00
syuilo
ec534a3704 New translations ja-JP.yml (Korean) 2018-11-24 00:53:34 +09:00
syuilo
366d4cd3e2 New translations ja-JP.yml (Korean) 2018-11-24 00:43:26 +09:00
Acid Chicken (硫酸鶏)
4841926df1 Update README.md [AUTOGEN] (#3393) 2018-11-23 23:12:54 +09:00
MeiMei
f2f7bdc5a9 Do not use _replyIds (#3392) 2018-11-23 23:12:28 +09:00
syuilo
fd811eb325 New translations ja-JP.yml (English) 2018-11-23 19:44:09 +09:00
syuilo
915d352505 Resolve #3366 2018-11-23 16:39:51 +09:00
syuilo
1d1024c57a [MFM] Improve hashtag detection
Resolve #3387
2018-11-23 16:02:17 +09:00
syuilo
73df6e0347 Update manage.ja.md 2018-11-23 09:26:14 +09:00
syuilo
e6d62c5a7b Update manage.en.md 2018-11-23 09:25:32 +09:00
syuilo
470e48c0a5 Delete suspend.js 2018-11-23 09:24:00 +09:00
syuilo
9235f72a2e Update manage.ja.md 2018-11-23 09:23:40 +09:00
syuilo
9fe6da79b2 Update manage.en.md 2018-11-23 09:23:19 +09:00
syuilo
1858437eb1 Delete reset-password.js 2018-11-23 09:22:45 +09:00
dependabot[bot]
c3ba0dcd32 Update @types/systeminformation requirement from 3.23.0 to 3.23.1 (#3370)
Updates the requirements on [@types/systeminformation](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>
2018-11-23 09:12:36 +09:00
dependabot[bot]
70f4b13089 Update @types/node requirement from 10.12.2 to 10.12.10 (#3369)
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>
2018-11-23 09:12:29 +09:00
dependabot[bot]
cc57a4b671 Update @types/koa requirement from 2.0.46 to 2.0.47 (#3354)
Updates the requirements on [@types/koa](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>
2018-11-23 09:12:21 +09:00
dependabot[bot]
6902700458 Update @types/redis requirement from 2.8.7 to 2.8.8 (#3353)
Updates the requirements on [@types/redis](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>
2018-11-23 09:12:13 +09:00
dependabot[bot]
b772041547 Update @types/koa-router requirement from 7.0.33 to 7.0.35 (#3352)
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>
2018-11-23 09:12:01 +09:00
syuilo
79174c1a19 10.57.0 2018-11-23 08:20:12 +09:00
syuilo
898850027a Merge pull request #3335 from syuilo/l10n_develop
New Crowdin translations
2018-11-23 08:19:32 +09:00
syuilo
0d272b1fb0 Resolve #3376 2018-11-23 08:13:17 +09:00
syuilo
7993a9eb90 New translations ja-JP.yml (English) 2018-11-23 08:12:53 +09:00
syuilo
42d419970d New translations ja-JP.yml (Norwegian) 2018-11-23 08:05:03 +09:00
syuilo
ad49268d8b New translations ja-JP.yml (Dutch) 2018-11-23 08:04:53 +09:00
syuilo
76c345396a New translations ja-JP.yml (Japanese, Kansai) 2018-11-23 08:04:44 +09:00
syuilo
5690ef1ebc New translations ja-JP.yml (Spanish) 2018-11-23 08:04:35 +09:00
syuilo
5616404b4d New translations ja-JP.yml (Russian) 2018-11-23 08:04:31 +09:00
syuilo
f92137f6c2 New translations ja-JP.yml (Portuguese) 2018-11-23 08:04:21 +09:00
syuilo
ca3373ba4e New translations ja-JP.yml (Polish) 2018-11-23 08:04:12 +09:00
syuilo
4e6115b414 New translations ja-JP.yml (Korean) 2018-11-23 08:04:03 +09:00
syuilo
ddf47051c9 New translations ja-JP.yml (Italian) 2018-11-23 08:03:54 +09:00
syuilo
d45478510c New translations ja-JP.yml (German) 2018-11-23 08:03:45 +09:00
syuilo
2641f89349 New translations ja-JP.yml (French) 2018-11-23 08:03:35 +09:00
syuilo
9d46d03c37 New translations ja-JP.yml (English) 2018-11-23 08:03:26 +09:00
syuilo
25b6de88a9 New translations ja-JP.yml (Chinese Simplified) 2018-11-23 08:03:18 +09:00
syuilo
a24046e46a New translations ja-JP.yml (Catalan) 2018-11-23 08:03:09 +09:00
syuilo
7e803ff9a9 Merge branch 'develop' of https://github.com/syuilo/misskey into develop 2018-11-23 08:01:29 +09:00
syuilo
246cead2b1 Improve user operations
Resolve #2197
Resolve #3367
2018-11-23 08:01:14 +09:00
dependabot[bot]
214f7f06bb Update koa requirement from 2.6.1 to 2.6.2 (#3386)
Updates the requirements on [koa](https://github.com/koajs/koa) to permit the latest version.
- [Release notes](https://github.com/koajs/koa/releases)
- [Changelog](https://github.com/koajs/koa/blob/master/History.md)
- [Commits](https://github.com/koajs/koa/commits/2.6.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-23 06:06:03 +09:00
dependabot[bot]
6878f73a9f Update ws requirement from 6.1.0 to 6.1.2 (#3385)
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.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-23 05:23:05 +09:00
MeiMei
336b45b6f7 AP quote (#3384) 2018-11-23 02:10:07 +09:00
nico
2a0b62d26d Fix #3343 (#3383)
Setting "X-Forwarded-Proto: https" in the SSL proxy is the correct way to do this
2018-11-23 02:09:04 +09:00
MeiMei
653ec0cbb0 No cache /notes/:note (#3382) 2018-11-22 23:17:58 +09:00
syuilo
120ab3f0a3 New translations ja-JP.yml (French) 2018-11-22 18:53:16 +09:00
syuilo
8bcbbbc1a3 New translations ja-JP.yml (English) 2018-11-22 09:22:41 +09:00
dependabot[bot]
13a75abc91 Update systeminformation requirement from 3.47.0 to 3.49.3 (#3374)
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>
2018-11-22 05:31:46 +09:00
dependabot[bot]
eace740c63 Update emojilib requirement from 2.3.0 to 2.4.0 (#3375)
Updates the requirements on [emojilib](https://github.com/muan/emojilib) to permit the latest version.
- [Release notes](https://github.com/muan/emojilib/releases)
- [Commits](https://github.com/muan/emojilib/commits/v2.4.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-22 05:31:09 +09:00
dependabot[bot]
cb3a54de00 Update apexcharts requirement from 2.2.2 to 2.2.3 (#3373)
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/v2.2.3)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-22 05:29:47 +09:00
dependabot[bot]
5fbc77795d Update webpack requirement from 4.25.1 to 4.26.0 (#3371)
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.26.0)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-22 05:29:02 +09:00
dependabot[bot]
ce4feae731 Update vue-i18n requirement from 8.3.1 to 8.3.2 (#3372)
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.3.2)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-22 05:28:39 +09:00
Aya Morisawa
08f00d4990 Remove unneccesary cast (#3355) 2018-11-22 05:07:25 +09:00
Acid Chicken (硫酸鶏)
6951f7e74a Fix #3361 (#3362)
* Update create.ts

* Update api.ts
2018-11-22 05:06:51 +09:00
syuilo
2b4d63b1bb Add some tests 2018-11-22 05:04:45 +09:00
syuilo
8cbb961493 [MFM] Improve URL parsing
Fix #3368
2018-11-22 05:02:38 +09:00
syuilo
64c795938d New translations ja-JP.yml (French) 2018-11-22 02:03:40 +09:00
syuilo
67df681a48 Refactoring 2018-11-22 01:51:26 +09:00
syuilo
9285bcf8bb New translations ja-JP.yml (Norwegian) 2018-11-21 23:55:53 +09:00
syuilo
b9b23a4b54 New translations ja-JP.yml (Dutch) 2018-11-21 23:55:48 +09:00
syuilo
2f6371b085 New translations ja-JP.yml (Japanese, Kansai) 2018-11-21 23:55:38 +09:00
syuilo
2a5c3475a7 New translations ja-JP.yml (Spanish) 2018-11-21 23:55:29 +09:00
syuilo
8a2698a5db New translations ja-JP.yml (Russian) 2018-11-21 23:55:19 +09:00
syuilo
f6919a171a New translations ja-JP.yml (Portuguese) 2018-11-21 23:55:09 +09:00
syuilo
82ebf67456 New translations ja-JP.yml (Polish) 2018-11-21 23:55:02 +09:00
syuilo
a60c8b2ee8 New translations ja-JP.yml (Korean) 2018-11-21 23:54:58 +09:00
syuilo
0a2b8ccfb6 New translations ja-JP.yml (Italian) 2018-11-21 23:54:53 +09:00
syuilo
698094b787 New translations ja-JP.yml (German) 2018-11-21 23:54:48 +09:00
syuilo
b57e111ea8 New translations ja-JP.yml (French) 2018-11-21 23:54:41 +09:00
syuilo
aa6bf2b54e New translations ja-JP.yml (English) 2018-11-21 23:54:31 +09:00
syuilo
454910d295 New translations ja-JP.yml (Chinese Simplified) 2018-11-21 23:54:21 +09:00
syuilo
d44e620769 New translations ja-JP.yml (Catalan) 2018-11-21 23:54:12 +09:00
Hakaba Hitoyo
ac14adfd3e Feature / user recommendation config in admin ui (#3357)
* add config for external user recommendation into admin ui

* debug

* correct admin ui

* switch external user recommendation to admin ui config

* debug

* debug

* debug

* Revert "debug"

This reverts commit f4a0460e5b.

* explicit parseInt radix

* add Japanese message

* change default engine to https

* remove unused settings

* debug

* nullable externalUserRecommendationTimeout
2018-11-21 23:44:59 +09:00
syuilo
928d30ee1e New translations ja-JP.yml (Norwegian) 2018-11-21 14:53:16 +09:00
syuilo
3dd9b0f347 New translations ja-JP.yml (Dutch) 2018-11-21 14:53:10 +09:00
syuilo
c57dd083c5 New translations ja-JP.yml (Japanese, Kansai) 2018-11-21 14:53:06 +09:00
syuilo
2a1d6c5406 New translations ja-JP.yml (Spanish) 2018-11-21 14:52:59 +09:00
syuilo
112e9f69bd New translations ja-JP.yml (Russian) 2018-11-21 14:52:55 +09:00
syuilo
d50e537888 New translations ja-JP.yml (Portuguese) 2018-11-21 14:52:50 +09:00
syuilo
86d14d30fa New translations ja-JP.yml (Polish) 2018-11-21 14:52:46 +09:00
syuilo
710d3689d3 New translations ja-JP.yml (Korean) 2018-11-21 14:52:39 +09:00
syuilo
3fee011369 New translations ja-JP.yml (Italian) 2018-11-21 14:52:33 +09:00
syuilo
7cd4b8ba4f New translations ja-JP.yml (German) 2018-11-21 14:52:28 +09:00
syuilo
31132de18b New translations ja-JP.yml (French) 2018-11-21 14:52:23 +09:00
syuilo
c6cb271f6f New translations ja-JP.yml (English) 2018-11-21 14:52:18 +09:00
syuilo
b7c4afd20c New translations ja-JP.yml (Chinese Simplified) 2018-11-21 14:52:14 +09:00
syuilo
70395d200a New translations ja-JP.yml (Catalan) 2018-11-21 14:52:07 +09:00
syuilo
562a5f66fc Improve usability 2018-11-21 14:44:49 +09:00
syuilo
b2f8003602 [MFM] Better inline code parse 2018-11-21 12:55:15 +09:00
MeiMei
b7b36973f7 Fix: stop in DB check (#3356) 2018-11-21 12:45:40 +09:00
syuilo
f7d5f597f3 10.56.2 2018-11-21 08:33:02 +09:00
syuilo
79c7712241 Improve MFM 2018-11-21 08:32:40 +09:00
syuilo
8f5f3985f4 [MFM] Fix hashtag parsing 2018-11-21 08:30:29 +09:00
syuilo
af00464f5b New translations ja-JP.yml (French) 2018-11-20 17:38:45 +09:00
syuilo
f522b3df91 New translations ja-JP.yml (French) 2018-11-20 17:22:49 +09:00
syuilo
e9ec4a3b84 New translations ja-JP.yml (English) 2018-11-20 06:51:54 +09:00
357 changed files with 7832 additions and 5126 deletions

3
.autogen/check_pr.jq Normal file
View File

@@ -0,0 +1,3 @@
.[]
.head
.label

2
.autogen/next_url.jq Normal file
View File

@@ -0,0 +1,2 @@
.links
.next

39
.autogen/patreon.jq Normal file
View File

@@ -0,0 +1,39 @@
(
.data |
map(
select(
.relationships
.currently_entitled_tiers
.data[]
)
) |
map(
.relationships
.user
.data
.id
)
) as $data |
.included |
map(
select(
.id as $id |
$data |
contains(
[
$id
]
)
)
) |
map(
.attributes |
[
.full_name,
.thumb_url,
.url
] |
@tsv
) |
.[] |
@text

View File

@@ -5,7 +5,7 @@
# __MISSKEY_HEAD=acid-chicken:patch-autogen
# __MISSKEY_REPO=syuilo/misskey
# __MISSKEY_BRANCH=develop
test "$(curl -LSs -w '\n' -- "https://api.github.com/repos/$REPO/pulls?access_token=$__MISSKEY_GITHUB_TOKEN" | jq -r '.[].head.label' | grep $__MISSKEY_HEAD)" && exit 1
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
cd "$(dirname $0)/.." && \
touch null.cache && \
rm *.cache && \
@@ -30,7 +30,7 @@ while :
touch patreon.cache && \
rm patreon.cache && \
cat patreon.raw.cache | \
jq -r '(.data|map(select(.relationships.currently_entitled_tiers.data[]))|map(.relationships.user.data.id))as$data|.included|map(select(.id as$id|$data|contains([$id])))|map(.attributes|[.full_name,.thumb_url,.url]|@tsv)|.[]|@text' >> patreon.cache && \
jq -r -f patreon.jq >> patreon.cache && \
echo '<table><tr>' >> patreon.md.cache && \
cat patreon.cache | \
awk -F'\t' '{print $2,$1}' | \
@@ -43,7 +43,7 @@ while :
xargs -I% echo '<td><a href="%</a></td>' >> patreon.md.cache && \
echo '</tr></table>' >> patreon.md.cache || \
exit 1
new_url="$(cat patreon.raw.cache | jq -r '.links.next')"
new_url="$(cat patreon.raw.cache | jq -r -f next_url.jq)"
test "$new_url" = 'null' && \
break || \
URL="$url"

View File

@@ -118,12 +118,3 @@ autoAdmin: true
# Clustering
#clusterLimit: 1
# Summaly proxy
#summalyProxy: "http://example.com"
# User recommendation
#user_recommendation:
# external: true
# engine: http://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}
# timeout: 300000

1
.gitignore vendored
View File

@@ -17,3 +17,4 @@ api-docs.json
/mongo
/elasticsearch
*.code-workspace
yarn.lock

View File

@@ -1,9 +1,30 @@
ChangeLog
=========
破壊的変更のみ記載。
10.64.0
-------
* いくつかのアニメーションを追加
* OGP向けにインスタンスのバナー画像を提供するように
* 管理者ページでドライブのファイルを表示できるように
* ユーザビリティの強化
* バグ修正
This document describes breaking changes only.
10.63.1
-------
* メンションの表示を改善
* バグ修正
10.63.0
-------
* ActivityPubのユーザーフィールドをユーザーページに表示
* 404ページの実装
* パフォーマンスの向上
* バグ修正
10.62.2
-------
* バグ修正
* ユーザビリティの向上
10.0.0
------

View File

@@ -8,18 +8,20 @@ WORKDIR /misskey
FROM base AS builder
RUN unlink /usr/bin/free
RUN apk add --no-cache \
gcc \
g++ \
libc-dev \
python \
autoconf \
automake \
file \
g++ \
gcc \
libc-dev \
libtool \
make \
nasm \
pkgconfig \
libtool \
procps \
python \
zlib-dev
RUN npm i -g node-gyp

View File

@@ -73,46 +73,52 @@ Please see [Contribution guide](./CONTRIBUTING.md).
----------------------------------------------------------------
<!-- PATREON_START -->
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/1?token-time=2145916800&token-hash=Zeh1u6l_Vmgoy8A1eT1Sltea-_SZSq8t8uOWDRZRh94%3D" alt="weep"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13376668/71f3cf87ec6c4393a44b1b9df5ee3d12/1?token-time=2145916800&token-hash=7pSmWqgMfMSJHVIEcNsuuQoKeU3TRluew5p0EGTzWA4%3D" alt="Arctic"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12731202/0995c46cdcb54153ab5f073f5869b70a/1?token-time=2145916800&token-hash=Yd60FK_SWfQO56SeiJpy1tDHOnCV4xdEywQe8gn5_Wo%3D" alt="negao"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/2?token-time=2145916800&token-hash=mgPdX9TqZxEg4TTPuc477dxhIgYk9246qafjWZEqZ7g%3D" alt="Melilot"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12999811/5f349fafcce44dd1824a8b1ebbec4564/2?token-time=2145916800&token-hash=rwZ8qvbm_kpA4ib3kc07tVKupXeySpY5ATQFGxfL9v0%3D" alt="Xeltica"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/3384329/8b713330cb27404ea6e9fac50ff96efe/1?token-time=2145916800&token-hash=0eu4-m1gTWA9PhptVZt6rdKcusqcD7RB87rJT23VVFI%3D" alt="べすれい"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1?token-time=2145916800&token-hash=GgJ_NmUB6_nnRNLVGUWjV-WX91On7BOu59LKncYV9fE%3D" alt="gutfuckllc"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1?token-time=2145916800&token-hash=I8lJVM8LeW6TSo5W6uIIRZ42cw83zp1wK_FsbzY0mcQ%3D" alt="mydarkstar"></td>
<td><img src="https://c8.patreon.com/2/100/12718187" alt="Peter G."></td>
</tr><tr>
<td><a href="https://www.patreon.com/weepjp">weep</a></td>
<td><a href="https://www.patreon.com/user?u=13376668">Arctic</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/AxellaMC">Xeltica</a></td>
<td><a href="https://www.patreon.com/user?u=3384329">べすれい</a></td>
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
</tr></table>
<table><tr>
<td><img src="https://c8.patreon.com/2/100/12718187" alt="Peter G."></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1?token-time=2145916800&token-hash=zwSu01tOtn5xTUucDZHuPsCxF2HBEMVs9ROJKTlEV_o%3D" alt="nemu"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3?token-time=2145916800&token-hash=qsdn0-e6yLaLI6hUX9JAkyTR6a5UdnSp7T1foniBvGQ%3D" alt="YUKIMOCHI"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/8241184/39e18850e87a449e9c9a71acb3310ebd/2?token-time=2145916800&token-hash=iUXOQzRyJDv3PJxwS7Mjwg1459dzh2trOq6NFtXu_OM%3D" alt="Acid Chicken"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1?token-time=2145916800&token-hash=UERBN4OyP7Nh5XwwdDg0N0IE5cD6_qUQMO81Z5Wizso%3D" alt="Hiratake"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/10789744/97175095d8f04c0f86225ff47cb98d40/1?token-time=2145916800&token-hash=P4BIzCX2I1CkEP66ottfhsC8Wr6BUSamjA-vq3pLqFI%3D" alt="Naoki Hirayama"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1?token-time=2145916800&token-hash=S1zP0QyLU52Dqq6dtc9qNYyWfW86XrYHiR4NMbeOrnA%3D" alt="dansup"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1?token-time=2145916800&token-hash=tB1e_r8RlZ5sFL0KV_e8dugapxatNBRK1Z3h67TO1g8%3D" alt="Gargron"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1?token-time=2145916800&token-hash=VZUtwrjQa8Jml4twCjHYQQZ64wHEY4oIlGl7Kc-VYUQ%3D" alt="Nokotaro Takeda"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1?token-time=2145916800&token-hash=tMosUojzUYJCH_3t--tvYA-SMCyrS__hzSndyaRSnbo%3D" alt="Takashi Shibuya"></td>
</tr><tr>
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</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/acid_chicken">Acid Chicken</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>
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
</tr></table>
<table><tr>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1?token-time=2145916800&token-hash=tB1e_r8RlZ5sFL0KV_e8dugapxatNBRK1Z3h67TO1g8%3D" alt="Gargron"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1?token-time=2145916800&token-hash=VZUtwrjQa8Jml4twCjHYQQZ64wHEY4oIlGl7Kc-VYUQ%3D" alt="Nokotaro Takeda"></td>
<td><img src="https://c10.patreonusercontent.com/3/eyJoIjoxMDAsInciOjEwMH0%3D/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1?token-time=2145916800&token-hash=tMosUojzUYJCH_3t--tvYA-SMCyrS__hzSndyaRSnbo%3D" alt="Takashi Shibuya"></td>
</tr><tr>
<td><a href="https://www.patreon.com/mastodon">Gargron</a></td>
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
</tr></table>
<table><tr>
</tr><tr>
</tr></table>
**Last updated:** Wed, 31 Oct 2018 23:21:06 UTC
**Last updated:** Thu, 06 Dec 2018 14:22:05 UTC
<!-- PATREON_END -->
:four_leaf_clover: Copyright

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

After

Width:  |  Height:  |  Size: 94 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 317 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 125 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 256 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 243 KiB

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@@ -1,108 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="favicon.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\16.png"
inkscape:export-xdpi="3"
inkscape:export-ydpi="3">
version="1.1"
viewBox="0 0 135.46667 135.46667"
height="512"
width="512">
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect5115"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5111"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5104"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="15.466544"
inkscape:cy="235.92965"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
objecttolerance="1"
guidetolerance="1"
inkscape:snap-nodes="false"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid4504"
spacingx="4.2333334"
spacingy="4.2333334"
empcolor="#ff3fff"
empopacity="0.25098039"
empspacing="4" />
</sodipodi:namedview>
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
@@ -116,32 +25,27 @@
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-111.78601)">
style="fill:#2fa3bc;fill-opacity:1"
transform="translate(-30.809093,-111.78601)"
id="layer1">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
style="fill:#2fa3bc;fill-opacity:1"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)"
id="g4502">
<g
style="fill:#2fa1bb;fill-opacity:1"
id="g5125">
id="g5125"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
style="fill:#2fa3bc;fill-opacity:1">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
aria-label="Mi"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa3bc;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
id="text4489"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa1bb;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)">
<path
sodipodi:nodetypes="zccssscssccscczzzccsccsscscsccz"
inkscape:connector-curvature="0"
id="path5210"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
d="m 75.196381,231.17126 c -5.855419,0.0202 -10.885068,-3.50766 -13.2572,-7.61584 -1.266603,-1.79454 -3.772419,-2.43291 -3.807919,0 v 11.2332 c 0,4.51309 -1.645397,8.41504 -4.936191,11.70583 -3.196772,3.19677 -7.098714,4.79516 -11.705826,4.79516 -4.513089,0 -8.415031,-1.59839 -11.705825,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -61.7729 c 0,-3.47884 0.987238,-6.6286 2.961715,-9.44928 2.068499,-2.91471 4.701135,-4.9362 7.897906,-6.06447 1.786431,-0.65816 3.666885,-0.98724 5.641362,-0.98724 5.077225,0 9.308247,1.97448 12.693064,5.92343 1.786431,1.97448 2.820681,3.00873 3.102749,3.10275 0,0 13.408119,16.21319 13.78421,16.49526 0.376091,0.28206 1.480789,2.43848 4.127113,2.43848 2.646324,0 3.89218,-2.15642 4.26827,-2.43848 0.376091,-0.28207 13.784088,-16.49526 13.784088,-16.49526 0.09402,0.094 1.081261,-0.94022 2.961715,-3.10275 3.478837,-3.94895 7.756866,-5.92343 12.834096,-5.92343 1.88045,0 3.76091,0.32908 5.64136,0.98724 3.19677,1.12827 5.7824,3.14976 7.75688,6.06447 2.06849,2.82068 3.10274,5.97044 3.10274,9.44928 v 61.7729 c 0,4.51309 -1.6454,8.41504 -4.93619,11.70583 -3.19677,3.19677 -7.09871,4.79516 -11.70582,4.79516 -4.51309,0 -8.41504,-1.59839 -11.705828,-4.79516 -3.196772,-3.29079 -4.795158,-7.19274 -4.795158,-11.70583 v -11.2332 c -0.277898,-3.06563 -2.987588,-1.13379 -3.948953,0 -2.538613,4.70114 -7.401781,7.59567 -13.2572,7.61584 z" />
<path
inkscape:connector-curvature="0"
id="path5212"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa1bb;fill-opacity:1;stroke-width:0.28950602px"
d="m 145.83461,185.00361 q -5.92343,0 -10.15445,-4.08999 -4.08999,-4.23102 -4.08999,-10.15445 0,-5.92343 4.08999,-10.01342 4.23102,-4.23102 10.15445,-4.23102 5.92343,0 10.15445,4.23102 4.23102,4.08999 4.23102,10.01342 0,5.92343 -4.23102,10.15445 -4.23102,4.08999 -10.15445,4.08999 z m 0.14103,2.82068 q 5.92343,0 10.01342,4.23102 4.23102,4.23102 4.23102,10.15445 v 34.83541 q 0,5.92343 -4.23102,10.15445 -4.08999,4.08999 -10.01342,4.08999 -5.92343,0 -10.15445,-4.08999 -4.23102,-4.23102 -4.23102,-10.15445 v -34.83541 q 0,-5.92343 4.23102,-10.15445 4.23102,-4.23102 10.15445,-4.23102 z" />
transform="matrix(0.26412464,0,0,0.26412464,24.988264,136.28626)"
d="m 62.474609,76.585938 c -7.47555,0 -14.595784,1.246427 -21.359375,3.738281 C 29.011968,84.595952 19.044417,92.249798 11.212891,103.28516 3.7373405,113.96451 0,125.88934 0,139.06055 v 233.8789 c 0,17.08697 6.0510264,31.85913 18.154297,44.31836 12.459246,12.10327 27.233346,18.15625 44.320312,18.15625 17.442947,0 32.215089,-6.05298 44.318361,-18.15625 12.45925,-12.45923 18.68945,-27.23139 18.68945,-44.31836 V 330.4082 c 0.13441,-9.21122 9.6225,-6.79429 14.41797,0 8.98111,15.55395 28.02226,28.91242 50.19141,28.83594 22.16915,-0.0764 40.58194,-11.03699 50.19336,-28.83594 3.63981,-4.29263 13.89902,-11.60675 14.95117,0 v 42.53125 c 0,17.08697 6.05102,31.85913 18.15429,44.31836 12.45923,12.10327 27.23335,18.15625 44.32032,18.15625 17.44294,0 32.21509,-6.05298 44.31836,-18.15625 12.45923,-12.45923 18.68945,-27.23139 18.68945,-44.31836 v -233.8789 c 0,-13.17121 -3.9146,-25.09604 -11.74609,-35.77539 -7.47557,-11.035362 -17.26588,-18.689208 -29.36914,-22.960941 -7.11956,-2.491854 -14.23982,-3.738281 -21.35938,-3.738281 -19.22286,0 -35.41865,7.476649 -48.58984,22.427734 l -63.40235,74.199218 c -1.42391,1.06791 -6.14093,9.23242 -16.16015,9.23242 -10.01923,0 -14.20109,-8.16451 -15.625,-9.23242 L 110.53125,99.013672 C 97.716024,84.062587 81.697447,76.585938 62.474609,76.585938 Z m 395.060551,0 c -14.9511,-10e-7 -27.76596,5.340179 -38.44532,16.019531 -10.32338,10.323381 -15.48437,22.961011 -15.48437,37.912111 0,14.9511 5.16099,27.76596 15.48437,38.44531 10.67936,10.32338 23.49422,15.48633 38.44532,15.48633 14.95109,0 27.76596,-5.16295 38.44531,-15.48633 C 506.65982,158.28354 512,145.46868 512,130.51758 512,115.56648 506.65982,102.92885 495.98047,92.605469 485.30112,81.926117 472.48625,76.585938 457.53516,76.585938 Z m 0.5332,118.541012 c -14.9511,0 -27.76596,5.34018 -38.44531,16.01953 -10.67936,10.67936 -16.01758,23.49422 -16.01758,38.44532 v 131.89062 c 0,14.9511 5.33822,27.76596 16.01758,38.44531 10.67935,10.32339 23.49421,15.48633 38.44531,15.48633 14.9511,0 27.58873,-5.16294 37.91211,-15.48633 C 506.65982,409.24838 512,396.43352 512,381.48242 V 249.5918 c 0,-14.9511 -5.34018,-27.76596 -16.01953,-38.44532 -10.32338,-10.67935 -22.96101,-16.01953 -37.91211,-16.01953 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa3bc;fill-opacity:1;stroke-width:1.09609616px" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 446 B

After

Width:  |  Height:  |  Size: 430 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 774 B

After

Width:  |  Height:  |  Size: 671 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1015 B

View File

@@ -1,108 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="512"
height="512"
viewBox="0 0 135.46667 135.46667"
version="1.1"
id="svg8"
inkscape:version="0.92.1 r15371"
sodipodi:docname="mi.svg"
inkscape:export-filename="C:\Users\syuilo\projects\misskey\assets\favicon\32.png"
inkscape:export-xdpi="6"
inkscape:export-ydpi="6">
version="1.1"
viewBox="0 0 135.46667 135.46667"
height="512"
width="512">
<defs
id="defs2">
<inkscape:path-effect
effect="simplify"
id="path-effect5115"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5111"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
<inkscape:path-effect
effect="simplify"
id="path-effect5104"
is_visible="true"
steps="1"
threshold="0.000408163"
smooth_angles="360"
helper_size="0"
simplify_individual_paths="false"
simplify_just_coalesce="false"
simplifyindividualpaths="false"
simplifyJustCoalesce="false" />
</defs>
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4142136"
inkscape:cx="232.39583"
inkscape:cy="251.50613"
inkscape:document-units="px"
inkscape:current-layer="g4502"
showgrid="true"
units="px"
inkscape:snap-bbox="true"
inkscape:bbox-nodes="true"
inkscape:snap-bbox-edge-midpoints="false"
inkscape:snap-smooth-nodes="true"
inkscape:snap-center="true"
inkscape:snap-page="true"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="1072"
inkscape:window-maximized="1"
inkscape:snap-object-midpoints="true"
inkscape:snap-midpoints="true"
inkscape:object-paths="true"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
objecttolerance="1"
guidetolerance="1"
inkscape:snap-nodes="false"
inkscape:snap-others="false">
<inkscape:grid
type="xygrid"
id="grid4504"
spacingx="4.2333334"
spacingy="4.2333334"
empcolor="#ff3fff"
empopacity="0.25098039"
empspacing="4" />
</sodipodi:namedview>
id="defs2" />
<metadata
id="metadata5">
<rdf:RDF>
@@ -111,32 +20,30 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="レイヤー 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-30.809093,-111.78601)">
transform="translate(-30.809093,-111.78601)"
id="layer1">
<g
id="g4502"
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)">
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)"
id="g4502">
<g
style="fill:#000000;fill-opacity:1"
id="g5125"
transform="translate(-1.3333333e-6,-1.3439941e-6)"
id="g5125">
style="fill:#000000;fill-opacity:1">
<g
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)"
id="text4489"
aria-label="Mi"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
aria-label="Mi">
id="text4489"
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)">
<path
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:1.09609616px"
d="M 62.474609 76.585938 C 54.999059 76.585938 47.878825 77.832365 41.115234 80.324219 C 29.011968 84.595952 19.044417 92.249798 11.212891 103.28516 C 3.7373405 113.96451 0 125.88934 0 139.06055 L 0 372.93945 C 0 390.02642 6.0510264 404.79858 18.154297 417.25781 C 30.613543 429.36108 45.387643 435.41406 62.474609 435.41406 C 79.917556 435.41406 94.689698 429.36108 106.79297 417.25781 C 119.25222 404.79858 125.48242 390.02642 125.48242 372.93945 L 125.48242 330.4082 C 125.61683 321.19698 135.10492 323.61391 139.90039 330.4082 C 148.8815 345.96215 167.92265 359.32062 190.0918 359.24414 C 212.26095 359.16778 230.67374 348.20715 240.28516 330.4082 C 243.92497 326.11557 254.18418 318.80145 255.23633 330.4082 L 255.23633 372.93945 C 255.23633 390.02642 261.28735 404.79858 273.39062 417.25781 C 285.84985 429.36108 300.62397 435.41406 317.71094 435.41406 C 335.15388 435.41406 349.92603 429.36108 362.0293 417.25781 C 374.48853 404.79858 380.71875 390.02642 380.71875 372.93945 L 380.71875 139.06055 C 380.71875 125.88934 376.80415 113.96451 368.97266 103.28516 C 361.49709 92.249798 351.70678 84.595952 339.60352 80.324219 C 332.48396 77.832365 325.3637 76.585938 318.24414 76.585938 C 299.02128 76.585938 282.82549 84.062587 269.6543 99.013672 C 262.53473 107.20121 258.79542 111.11761 258.43945 110.76172 C 258.43945 110.76172 207.67587 172.14495 206.25195 173.21289 C 204.82804 174.2808 200.11102 182.44531 190.0918 182.44531 C 180.07257 182.44531 175.89071 174.2808 174.4668 173.21289 C 173.04288 172.14495 122.2793 110.76172 122.2793 110.76172 C 121.21136 110.40575 117.29484 106.48923 110.53125 99.013672 C 97.716024 84.062587 81.697447 76.585938 62.474609 76.585938 z M 457.53516 76.585938 C 442.58406 76.585937 429.7692 81.926117 419.08984 92.605469 C 408.76646 102.92885 403.60547 115.56648 403.60547 130.51758 C 403.60547 145.46868 408.76646 158.28354 419.08984 168.96289 C 429.7692 179.28627 442.58406 184.44922 457.53516 184.44922 C 472.48625 184.44922 485.30112 179.28627 495.98047 168.96289 C 506.65982 158.28354 512 145.46868 512 130.51758 C 512 115.56648 506.65982 102.92885 495.98047 92.605469 C 485.30112 81.926117 472.48625 76.585938 457.53516 76.585938 z M 458.06836 195.12695 C 443.11726 195.12695 430.3024 200.46713 419.62305 211.14648 C 408.94369 221.82584 403.60547 234.6407 403.60547 249.5918 L 403.60547 381.48242 C 403.60547 396.43352 408.94369 409.24838 419.62305 419.92773 C 430.3024 430.25112 443.11726 435.41406 458.06836 435.41406 C 473.01946 435.41406 485.65709 430.25112 495.98047 419.92773 C 506.65982 409.24838 512 396.43352 512 381.48242 L 512 249.5918 C 512 234.6407 506.65982 221.82584 495.98047 211.14648 C 485.65709 200.46713 473.01946 195.12695 458.06836 195.12695 z "
id="path5210"
transform="matrix(0.26412464,0,0,0.26412464,24.988264,136.28626)"
id="path5210" />
d="m 62.474609,76.585938 c -7.47555,0 -14.595784,1.246427 -21.359375,3.738281 C 29.011968,84.595952 19.044417,92.249798 11.212891,103.28516 3.7373405,113.96451 0,125.88934 0,139.06055 v 233.8789 c 0,17.08697 6.0510264,31.85913 18.154297,44.31836 12.459246,12.10327 27.233346,18.15625 44.320312,18.15625 17.442947,0 32.215089,-6.05298 44.318361,-18.15625 12.45925,-12.45923 18.68945,-27.23139 18.68945,-44.31836 V 330.4082 c 0.13441,-9.21122 9.6225,-6.79429 14.41797,0 8.98111,15.55395 28.02226,28.91242 50.19141,28.83594 22.16915,-0.0764 40.58194,-11.03699 50.19336,-28.83594 3.63981,-4.29263 13.89902,-11.60675 14.95117,0 v 42.53125 c 0,17.08697 6.05102,31.85913 18.15429,44.31836 12.45923,12.10327 27.23335,18.15625 44.32032,18.15625 17.44294,0 32.21509,-6.05298 44.31836,-18.15625 12.45923,-12.45923 18.68945,-27.23139 18.68945,-44.31836 v -233.8789 c 0,-13.17121 -3.9146,-25.09604 -11.74609,-35.77539 -7.47557,-11.035362 -17.26588,-18.689208 -29.36914,-22.960941 -7.11956,-2.491854 -14.23982,-3.738281 -21.35938,-3.738281 -19.22286,0 -35.41865,7.476649 -48.58984,22.427734 l -63.40235,74.199218 c -1.42391,1.06791 -6.14093,9.23242 -16.16015,9.23242 -10.01923,0 -14.20109,-8.16451 -15.625,-9.23242 L 110.53125,99.013672 C 97.716024,84.062587 81.697447,76.585938 62.474609,76.585938 Z m 395.060551,0 c -14.9511,-10e-7 -27.76596,5.340179 -38.44532,16.019531 -10.32338,10.323381 -15.48437,22.961011 -15.48437,37.912111 0,14.9511 5.16099,27.76596 15.48437,38.44531 10.67936,10.32338 23.49422,15.48633 38.44532,15.48633 14.95109,0 27.76596,-5.16295 38.44531,-15.48633 C 506.65982,158.28354 512,145.46868 512,130.51758 512,115.56648 506.65982,102.92885 495.98047,92.605469 485.30112,81.926117 472.48625,76.585938 457.53516,76.585938 Z m 0.5332,118.541012 c -14.9511,0 -27.76596,5.34018 -38.44531,16.01953 -10.67936,10.67936 -16.01758,23.49422 -16.01758,38.44532 v 131.89062 c 0,14.9511 5.33822,27.76596 16.01758,38.44531 10.67935,10.32339 23.49421,15.48633 38.44531,15.48633 14.9511,0 27.58873,-5.16294 37.91211,-15.48633 C 506.65982,409.24838 512,396.43352 512,381.48242 V 249.5918 c 0,-14.9511 -5.34018,-27.76596 -16.01953,-38.44532 -10.32338,-10.67935 -22.96101,-16.01953 -37.91211,-16.01953 z"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:1.09609616px" />
</g>
</g>
</g>

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

View File

@@ -1,29 +0,0 @@
const mongo = require('mongodb');
const bcrypt = require('bcryptjs');
const User = require('../built/models/user').default;
const args = process.argv.slice(2);
const user = args[0];
const q = user.startsWith('@') ? {
username: user.split('@')[1],
host: user.split('@')[2] || null
} : { _id: new mongo.ObjectID(user) };
console.log(`Resetting password for ${user}...`);
const passwd = 'yo';
// Generate hash of password
const hash = bcrypt.hashSync(passwd);
User.update(q, {
$set: {
password: hash
}
}).then(() => {
console.log(`Password of ${user} is now '${passwd}'`);
}, e => {
console.error(e);
});

View File

@@ -1,23 +0,0 @@
const mongo = require('mongodb');
const User = require('../built/models/user').default;
const args = process.argv.slice(2);
const user = args[0];
const q = user.startsWith('@') ? {
username: user.split('@')[1],
host: user.split('@')[2] || null
} : { _id: new mongo.ObjectID(user) };
console.log(`Suspending ${user}...`);
User.update(q, {
$set: {
isSuspended: true
}
}).then(() => {
console.log(`Suspended ${user}`);
}, e => {
console.error(e);
});

View File

@@ -8,28 +8,11 @@ coming soon
node cli/mark-admin (User-ID or Username)
```
## Mark as 'verified' user
``` shell
node cli/mark-verified (User-ID or Username)
```
## Suspend users
``` shell
node cli/suspend (User-ID or Username)
```
e.g.
``` shell
# Use id
node cli/suspend 57d01a501fdf2d07be417afe
# By id
node cli/mark-admin 57d01a501fdf2d07be417afe
# Use username
# By username
node cli/suspend @syuilo
# Use username (remote)
node cli/suspend @syuilo@misskey.xyz
```
## Reset password
``` shell
node cli/reset-password (User-ID or Username)
```

View File

@@ -8,28 +8,11 @@ coming soon
node cli/mark-admin (ユーザーID または ユーザー名)
```
## 'verified'ユーザーを設定する
``` shell
node cli/mark-verified (ユーザーID または ユーザー名)
```
## ユーザーを凍結する
``` shell
node cli/suspend (ユーザーID または ユーザー名)
```
例:
``` shell
# ユーザーID
node cli/suspend 57d01a501fdf2d07be417afe
node cli/mark-admin 57d01a501fdf2d07be417afe
# ユーザー名
node cli/suspend @syuilo
# ユーザー名 (リモート)
node cli/suspend @syuilo@misskey.xyz
```
## ユーザーのパスワードをリセットする
``` shell
node cli/reset-password (ユーザーID または ユーザー名)
node cli/mark-admin @syuilo
```

View File

@@ -11,14 +11,12 @@ import tslint from 'gulp-tslint';
const cssnano = require('gulp-cssnano');
const stylus = require('gulp-stylus');
import * as uglifyComposer from 'gulp-uglify/composer';
import pug = require('gulp-pug');
import * as rimraf from 'rimraf';
import chalk from 'chalk';
const imagemin = require('gulp-imagemin');
import * as rename from 'gulp-rename';
import * as mocha from 'gulp-mocha';
import * as replace from 'gulp-replace';
import * as htmlmin from 'gulp-htmlmin';
const uglifyes = require('uglify-es');
const locales = require('./locales');
@@ -34,8 +32,6 @@ if (isDebug) {
console.warn(chalk.yellow.bold(' built script will not be compressed.'));
}
const constants = require('./src/const.json');
gulp.task('build', [
'build:ts',
'build:copy',
@@ -109,7 +105,7 @@ gulp.task('default', ['build']);
gulp.task('build:client', [
'build:ts',
'build:client:script',
'build:client:pug',
'build:client:styles',
'copy:client'
]);
@@ -148,52 +144,6 @@ gulp.task('copy:client', [
.pipe(gulp.dest('./built/client/assets/'))
);
gulp.task('build:client:pug', [
'copy:client',
'build:client:script',
'build:client:styles'
], () =>
gulp.src('./src/client/app/base.pug')
.pipe(pug({
locals: {
themeColor: constants.themeColor
}
}))
.pipe(htmlmin({
// 真理値属性の簡略化 e.g.
// <input value="foo" readonly="readonly"> to
// <input value="foo" readonly>
collapseBooleanAttributes: true,
// テキストの一部かもしれない空白も削除する e.g.
// <div> <p> foo </p> </div> to
// <div><p>foo</p></div>
collapseWhitespace: true,
// タグ間の改行を保持する
preserveLineBreaks: true,
// (できる場合は)属性のクォーテーション削除する e.g.
// <p class="foo-bar" id="moo" title="blah blah">foo</p> to
// <p class=foo-bar id=moo title="blah blah">foo</p>
removeAttributeQuotes: true,
// 省略可能なタグを省略する e.g.
// <html><p>yo</p></html> ro
// <p>yo</p>
removeOptionalTags: true,
// 属性の値がデフォルトと同じなら省略する e.g.
// <input type="text"> to
// <input>
removeRedundantAttributes: true,
// CSSも圧縮する
minifyCSS: true
}))
.pipe(gulp.dest('./built/client/app/'))
);
gulp.task('locales', () =>
gulp.src('./locales/*.yml')
.pipe(yaml({ schema: 'DEFAULT_SAFE_SCHEMA' }))

View File

@@ -26,6 +26,7 @@ common:
close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"

View File

@@ -26,6 +26,7 @@ common:
close: "Schließen"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "Verstanden!"
customization-tips:
title: "Anpassung-Tipps"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Dein Token wurde generiert. Du wirst jetzt abgemeldet."
i-like-sushi: "Ich bevorzuge Sushi anstelle von Pudding"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "Verifizierter Benutzer"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "Umfrage"
post-form: "Beitragsform"
server: "Server-Info"
donation: "Spenden"
nav: "Navigation"
tips: "Tipps"
hashtags: "Hashtags"
dev: "Fehler beim Erstellen der Applikation. Bitte versuche es erneut."
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "Einen Nutzer suchen"
you: "Du"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Verbindung wird hergestellt"
reconnecting: "Erneut verbinden"
connected: "Verbindung hergestellt"
common/views/components/twitter-setting.vue:
description: "Wenn du deinen Twitter-Account mit deinem Misskey-Account verbindest, siehst du deine Twitter Account-Informationen auf deinem Profil und du kannst dich mit Twitter einloggen."
connected-to: "Du bist mit diesem Twitter-Account verbunden"
detail: "Mehr..."
reconnect: "Erneut verbinden"
connect: "Mit Twitter verbinden"
disconnect: "Trennen"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "Laden"
no-broadcasts: "Keine Broadcasts"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "Spende"
text: "Um Misskey am Laufen zu halten geben wir Geld für Domain, Server usw. aus. Wir bekommen dafür kein Geld und würden uns freuen, wenn du spenden würdest. Wenn du interessiert bist, dann kontaktiere {}. Danke für deine Unterstützung!"
common/views/widgets/photo-stream.vue:
title: "Fotostream"
no-photos: "Keine Fotos"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
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."
advanced: "Erweiterte Einstellungen"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "Kreisförmige Icons"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "Zeige Antworten"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "Karte anzeigen"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "Ton"
enable-sounds: "Ton aktivieren"
enable-sounds-desc: "Spiel einen Ton ab beim Erhalten eines Beitrags bzw. einer Nachricht. Diese Einstellung wird im Browser gespeichert."
volume: "Lautstärke"
test: "Test"
language: "Sprache"
pick-language: "Sprache auswählen"
recommended: "Empfohlen"
auto: "Automatisch"
specify-language: "Sprache auswählen"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "Der Cache deines Benutzerkontos (Info, Beiträge, Antworten, Direktnachrichten, Einstellungen), die lokal im Browser gespeichert sind werden gelöscht.\nDu musst die Seite aktualisieren nachdem du aufgeräumt hast."
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "Taskmanager"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "Sprache auswählen"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "Neuste Version:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"

View File

@@ -26,6 +26,7 @@ common:
close: "Close"
do-not-copy-paste: "Please do not enter or paste the code here. Account may be compromised."
load-more: "Load more"
enter-password: "Please enter the Password"
got-it: "Got it!"
customization-tips:
title: "Customization tips"
@@ -90,9 +91,9 @@ common:
specified: "Direct"
specified-desc: "Post to specified users only"
private: "Private"
local-public: "Local (Public)"
local-home: "Local (Home)"
local-followers: "Local (Followers)"
local-public: "Public (Only local)"
local-home: "Home (Only local)"
local-followers: "Followers (Only local)"
note-placeholders:
a: "What are you doing?"
b: "What's happening?"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Your token has been regenerated, so you will be signed out."
i-like-sushi: "I prefer sushi rather than pudding"
show-reversi-board-labels: "Show row and column labels in Reversi"
use-white-black-reversi-stones: "Use white-black stone in reversi"
use-contrast-reversi-stones: "Make the stone color clear in reversi"
verified-user: "Verified account"
disable-animated-mfm: "Disable animated texts in a post"
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"
show-full-acct: "Do not omit the hostname from the username"
@@ -119,7 +122,7 @@ common:
reduce-motion: "Reduce motion in UI"
this-setting-is-this-device-only: "Only for this device"
use-os-default-emojis: "Use the OS default Emojis"
do-not-use-in-production: 'As this is for development, do not use this in production.'
do-not-use-in-production: 'This is a development build. Do not use in production.'
is-remote-user: "This user information is copied."
is-remote-post: "This post information is a copy."
view-on-remote: "View it on remote"
@@ -157,12 +160,12 @@ common:
polls: "Polls"
post-form: "Post form"
server: "Server info"
donation: "Request for donations"
nav: "Navigation"
tips: "Tips"
hashtags: "Hashtags"
dev: "Failed to create the application. Please try again."
ai-chan-kawaii: "Ai-chan kawaii!"
you: "You"
auth/views/form.vue:
share-access: "Would you allow <i>{name}</i> to access your account?"
permission-ask: "This application requires the following permissions:"
@@ -208,7 +211,7 @@ common/views/components/games/reversi/reversi.index.vue:
invitations: "Youve got an invitation!"
my-games: "My game"
all-games: "All games"
enter-username: "Enter a username"
enter-username: "Please enter username"
game-state:
ended: "Finished"
playing: "In Progress"
@@ -219,7 +222,7 @@ common/views/components/games/reversi/reversi.room.vue:
black-or-white: "Black/White"
black-is: "Black is {}"
rules: "Rules"
is-llotheo: "The lesser side wins"
is-llotheo: "The lesser one wins(Llotheo)"
looped-map: "Looped map"
can-put-everywhere: "Can put everywhere"
settings-of-the-bot: "Bot settings"
@@ -267,7 +270,7 @@ common/views/components/theme.vue:
install: "Install"
installed: "\"{}\" has been installed"
create-a-theme: "Create a theme"
save-created-theme: "Save a theme"
save-created-theme: "Save theme"
primary-color: "Primary color"
secondary-color: "Secondary color"
text-color: "Text color"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "Hide"
show: "See more"
chars: "{count} chars"
files: "{count} files"
common/views/components/messaging.vue:
search-user: "Find a user"
you: "You"
@@ -366,8 +371,8 @@ common/views/components/signin.vue:
signin: "Sign in"
or: "Or"
signin-with-twitter: "Log in with Twitter"
signin-with-github: "Log in with GitHub"
signin-with-discord: "Login with Discord"
signin-with-github: "Sign in with GitHub"
signin-with-discord: "Sign in with Discord"
login-failed: "Log in failed. Make sure you have entered your correct username and password."
common/views/components/signup.vue:
invitation-code: "Invitation code"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Connecting"
reconnecting: "Reconnecting"
connected: "Connected"
common/views/components/twitter-setting.vue:
description: "Once you connect your Twitter account to your Misskey account, you will be able to see information about your Twitter account on your profile, and you will be able to sign-in using Twitter."
connected-to: "You are connected to this Twitter account"
detail: "Details..."
reconnect: "Reconnect"
connect: "Link your Twitter account"
common/views/components/integration-settings.vue:
title: "Service cooperation"
connect: "Connect"
disconnect: "Disconnect"
connected-to: "You are connected to next account"
common/views/components/github-setting.vue:
description: "Once you connect your GitHub account to your Misskey account, you will be able to see information about your GitHub account on your profile, and you will be able to sign-in via GitHub."
connected-to: "You are connected to this GitHub account"
@@ -433,32 +436,44 @@ common/views/components/visibility-chooser.vue:
private: "Private"
local-public: "Local (Public)"
local-public-desc: "Do not publish to remote"
local-home: "Local (Home)"
local-followers: "Local (Followers)"
local-home: "Home (Only local)"
local-followers: "Followers (Only local)"
common/views/components/trends.vue:
count: "{} users mentioned"
empty: "No popular hashtag trends"
common/views/components/language-settings.vue:
title: "Display Language"
pick-language: "Select a language"
recommended: "Recommended"
auto: "Auto"
specify-language: "Specify language"
info: "You need to reload the page for the changes to take effect."
common/views/components/profile-editor.vue:
title: "Profile"
name: "Name"
account: "Account"
location: "Location"
description: "About me"
language: "Language"
birthday: "Birthday"
avatar: "Avatar"
avatar: "Icon"
banner: "Banner"
is-cat: "This account is a Cat"
is-bot: "This account is a Bot"
is-locked: "Follower requests require approval"
careful-bot: "Follower requests from bots require approval"
advanced: "Advanced"
advanced: "Other"
privacy: "Privacy"
save: "Update profile"
save: "Save"
saved: "Profile updated successfully"
uploading: "Uploading"
upload-failed: "Failed to upload"
email: "Email settings"
email-address: "Email Address"
email-verified: "Your email has been verified."
email-not-verified: "Email address is not confirmed. Please check your inbox."
common/views/widgets/broadcast.vue:
fetching: "Fetching"
fetching: "Checking"
no-broadcasts: "No announcements"
have-a-nice-day: "Have a nice day!"
next: "Next"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "Today: "
this-month: "This month: "
this-year: "This year: "
common/views/widgets/donation.vue:
title: "Request for donations"
text: "To keep Misskey up and running, there have to happen some expense for the domain name, the server and so on. Since our policy is not to display any advertisements, we count on your donations. If you're interested in helping, contact {}. Thank you for your contribution!"
common/views/widgets/photo-stream.vue:
title: "Photo stream"
no-photos: "No photos"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "Mayu is so cute with its eyebrows."
tips-line24: "Misskey has been running since 2014."
tips-line25: "In a browser compatible with notification features, you can receive notifications in case Misskey is not open"
common/views/pages/404.vue:
page-not-found: "Page not found"
common/views/pages/follow.vue:
signed-in-as: "Signed in as {}"
following: "Following"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "Post visibility"
default-note-visibility: "Default visibility"
remember-note-visibility: "Remember post visibility"
web-search-engine: "Web search engine"
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."
advanced: "Advanced settings"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "Use circle icons"
contrasted-acct: "Add contrast to username"
post-form-on-timeline: "Display post form at the top of the timeline"
suggest-recent-hashtags: "Show recent popular hashtags on the post form"
show-clock-on-header: "Show clock on upper-right"
show-reply-target: "Display reply target"
timeline: "Timeline"
@@ -762,17 +777,18 @@ desktop/views/components/settings.vue:
deck-column-align: "Deck column alignment"
deck-column-align-center: "Center"
deck-column-align-left: "Left"
deck-column-align-flexible: "Flexible"
deck-column-width: "Column width of the deck"
deck-column-width-narrow: "narrow"
deck-column-width-narrower: "somewhat narrow"
deck-column-width-normal: "Normal"
deck-column-width-wider: "somewhat wide"
deck-column-width-wide: "wide"
sound: "Sound"
enable-sounds: "Enable sound"
enable-sounds-desc: "Play a sound when you receive a post/message. This setting is stored in the browser."
volume: "Volume"
test: "Test"
language: "Language"
pick-language: "Select a language"
recommended: "Recommended"
auto: "Automatic"
specify-language: "Specify language"
language-desc: "You need to reload the page for the changes to take effect."
cache: "Cache"
clean-cache: "Clear cache"
cache-warn: "The cache of account info/posts/replies/messages/settings stored in the browser will be deleted. You need to reload the page after cleaning up."
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "Enter the new password again"
not-match: "The new passwords do not match"
changed: "Password changed"
failed: "Failed to change password"
desktop/views/components/sub-note-content.vue:
private: "This post is private"
deleted: "This post has been deleted"
media-count: "{} media attached"
poll: "Poll"
desktop/views/components/settings.tags.vue:
title: "Tags"
query: "Query (optional)"
add: "Add"
save: "Save"
desktop/views/components/taskmanager.vue:
title: "Task Manager"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "Instance description"
host: "Host"
banner-url: "Banner image URL"
error-image-url: "Error image URL"
languages: "Language of this instance"
languages-desc: "You can add more than one, separated by spaces."
maintainer-config: "Administrator information"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Settings of connecting to Twitter"
twitter-integration-info: "The callback URL is set on /api/tw/cb."
twitter-integration-info: "The callback URL is set on {url}."
enable-twitter-integration: "Enable connection to Twitter"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer Secret"
github-integration-config: "Setting of connecting to GitHub"
github-integration-info: "The callback URL is set on /api/gh/cb."
github-integration-info: "The callback URL is set on {url}."
enable-github-integration: "Enable connection to GitHub"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Setting of Discord Integration"
discord-integration-info: "The callback URL is set on /api/dc/cb."
discord-integration-info: "The callback URL is set on {url}."
enable-discord-integration: "Enable Discord connection"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "Invite"
save: "Save"
saved: "Saved"
user-recommendation-config: "Recommended users"
enable-external-user-recommendation: "Enable to external user recommendation"
external-user-recommendation-engine: "Engine"
external-user-recommendation-engine-desc: "Example: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "Timeout"
external-user-recommendation-timeout-desc: "Number of milliseconds (ex. 300,000)"
email-config: "Email server settings"
email-config-info: "Used to confirm email and password reset etc."
enable-email: "Enable email delivery"
email: "Email Address"
smtp-secure: "Use implicit SSL/TLS in the SMTP connection"
smtp-secure-info: "Turn off STARTTLS when used that."
smtp-host: "SMTP Host"
smtp-port: "SMTP Port"
smtp-user: "SMTP User"
smtp-pass: "SMTP Password"
admin/views/charts.vue:
title: "Chart"
per-day: "per Day"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "Requests"
network-time: "Response time"
network-usage: "Traffic"
admin/views/drive.vue:
sort:
title: "Sort"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "Origin"
combined: "Local + Remote"
local: "Local"
remote: "Remote"
delete: "Delete"
deleted: "Deleted successfully"
admin/views/users.vue:
suspend-user: "Suspend a user"
operation: "Operations"
username-or-userid: "Username or user ID"
user-not-found: "User not found"
lookup: "Look up"
reset-password: "Reset password"
password-updated: "The password is now \"{password}\""
suspend: "Suspend"
suspended: "Successfully suspended."
unsuspend-user: "Unsuspend users"
unsuspend: "Unsuspend"
unsuspended: "The user has successfully unsuspended."
verify-user: "User account verification settings"
verify: "Verify account"
verified: "The account is now being verified"
unverify-user: "User account unverification settings"
unverify: "Unverify account"
unverified: "The account is now being unverified"
users:
title: "Users"
sort:
title: "Sort"
createdAtAsc: "Date Registered (Ascending)"
createdAtDesc: "Date Registered (Descending)"
updatedAtAsc: "Last Updated (Ascending)"
updatedAtDesc: "Last Updated (Descending)"
origin:
title: "Origin"
combined: "Local + Remote"
local: "Local"
remote: "Remote"
createdAt: "Created at"
updatedAt: "Updated at"
admin/views/moderators.vue:
add-moderator:
title: "Register Moderator"
@@ -1051,7 +1121,7 @@ admin/views/emoji.vue:
remove: "Remove"
updated: "Updated"
remove-emoji:
are-you-sure: "Delete \"%1$s\"?"
are-you-sure: "Delete \"$1\"?"
removed: "Deleted"
admin/views/announcements.vue:
announcements: "Announcements"
@@ -1062,7 +1132,7 @@ admin/views/announcements.vue:
text: "Content"
saved: "Saved"
_remove:
are-you-sure: "Delete \"%1$s\"?"
are-you-sure: "Delete \"$1\"?"
removed: "Deleted"
admin/views/hashtags.vue:
hided-tags: "Hidden Tags"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "Choose files"
mobile/views/pages/settings.vue:
signed-in-as: "Signed in as {}"
lang: "Language"
lang-tip: "You will need to reload the page for the changes to take effect."
recommended: "Recommended"
auto: "Auto"
specify-language: "Select your language"
design: "Design and display"
dark-mode: "Dark Mode"
i-am-under-limited-internet: "I'm in limited bandwidth"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "Post visibility"
default-note-visibility: "Default visibility"
remember-note-visibility: "Remember post visibility"
web-search-engine: "Web search engine"
web-search-engine-desc: "Example: https://www.google.com/?#q={{query}}"
disable-via-mobile: "Don't mark the post as 'from mobile'"
load-raw-images: "Show attached images in original quality"
load-remote-media: "Show media from a remote server"
twitter: "Twitter integration"
twitter-connect: "Connect to your Twitter account"
twitter-reconnect: "Reconnect"
twitter-disconnect: "Disconnect"
github: "GitHub Integration"
github-connect: "Connect to your GitHub account"
github-reconnect: "Reconnect"
github-disconnect: "Disconnect"
discord: "Discord Integration"
discord-connect: "Connect to your Discord account"
discord-reconnect: "Reconnect"
discord-disconnect: "Disconnect"
update: "Misskey Update"
version: "Current version:"
latest-version: "Latest version:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "Block"
unblock: "Unblock"
years-old: "{age} years old"
push-to-list: "Add to list"
select-list: "Select a list"
list-pushed: "Successfully added {user} to {list}."
mobile/views/pages/user/home.vue:
recent-notes: "Recent notes"
images: "Images"

View File

@@ -26,6 +26,7 @@ common:
close: "Cerrar"
do-not-copy-paste: "Por favor no copies código aquí. Tu cuenta puede resultar comprometida."
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "¡Listo!"
customization-tips:
title: "Consejos de personalización"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Tu token se ha regenerado vas a ser desconectado."
i-like-sushi: "Prefiero sushi a pudín"
show-reversi-board-labels: "Mostrar etiquetas de filas y columnas en Reversi"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "Hacer el color de la piedra claro en Reversi"
verified-user: "Cuenta verificada"
disable-animated-mfm: "Desactivar texto animado en una publicación"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "Encuestas"
post-form: "Formulario"
server: "Información del servidor"
donation: "Donaciones"
nav: "Navegación"
tips: "Consejos"
hashtags: "Etiquetas"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "La aplicación requiere los siguientes permisos:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "Encuentra un usuario"
you: "Tu"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Conectando"
reconnecting: "Reconectando"
connected: "Conectado"
common/views/components/twitter-setting.vue:
description: "Si comectas tu cuenta de Twitter con tu cuenta de Misskey podrás ver la información de tu cuemta de Twitter en tu perfil y además podrás entrar usando Twitter."
connected-to: "Estas comectado con las siguientes cuentas de Twitter"
detail: "Detalles..."
reconnect: "Conectar de nuevo"
connect: "Conectate usando Twitter"
disconnect: "Desconectado"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "Recuperando"
no-broadcasts: "Sin emisión"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "Hoy:"
this-month: "Este mes:"
this-year: "Este año:"
common/views/widgets/donation.vue:
title: "Donaciones"
text: "Para mantener Misskey funcionando tenemos que pagar por el dominio, los costos de hospedaje y otros costos. Como no recibimos dinero de publicidad, contamos con el apoyo de todos ustedes. Si estás interesado en ayudar, contacta a {}. ¡Muchas gracias por tu contribución!"
common/views/widgets/photo-stream.vue:
title: "Galería de fotos"
no-photos: "No hay fotos."
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "Mayu is tan bonito con sus cejas."
tips-line24: "Misskey inició en 2014."
tips-line25: "Puedes recibir notificaciones incluso si Misskey no está abierto en un navegador compatible."
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "Autenticado como {}"
following: "Siguiendo"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
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."
advanced: "Configuración avanzada"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "Usar iconos circulares"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "Mostrar el formulario de las entradas encima de la línea de tiempo"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"

View File

@@ -18,7 +18,7 @@ common:
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
drive: "Drive"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんかもしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんかMisskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
outro: "Découvrez vous-même les fonctionnalités de Misskey. Étant donné que Misskey est un réseaux social fédéré, vous pouvez essayer dautres instances afin de trouver vos ami·e·s si la présente instance ne vous correspond pas. Bonne chance et amusez-vous bien!"
adblock:
detected: "Veuillez désactiver votre bloqueur de publicités"
warning: "<strong>Misskey nutilise pas de publicités</strong>, mais quelques options peuvent être non disponibles ou fonctionneraient mal si un bloqueur de publicités est activé."
@@ -26,6 +26,7 @@ common:
close: "Fermer"
do-not-copy-paste: "Veuillez ne pas entrer ou coller le code ici. Le compte peut être compromis."
load-more: "Charger plus"
enter-password: "Veuillez entrer le mot de passe"
got-it: "Jai compris !"
customization-tips:
title: "Conseils de personnalisation"
@@ -46,11 +47,11 @@ common:
seconds_ago: "Il y a {} seconde·s"
minutes_ago: "Il y a {} min"
hours_ago: "Il y a {} h"
days_ago: "Il y a {} jours"
weeks_ago: "Il y a {} semaines·s"
days_ago: "Il y a {} j"
weeks_ago: "Il y a {} semaines"
months_ago: "Il y a {} mois"
years_ago: "Il y a {} an·s"
month-and-day: "{day}/{month}"
month-and-day: "{day}-{month}"
trash: "Corbeille"
drive: "Drive"
messaging: "Conversations"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Votre jeton vient dêtre généré, vous allez maintenant être déconnecté."
i-like-sushi: "Je préfère les sushis plutôt que le pudding"
show-reversi-board-labels: "Afficher les étiquettes des lignes et colonnes dans Reversi"
use-white-black-reversi-stones: "Jouer avec des pions noirs et blancs sur Reversi"
use-contrast-reversi-stones: "Icône avec contraste sur Reversi"
verified-user: "Compte vérifié"
disable-animated-mfm: "Désactiver les textes animés dans les publications"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "Toujours afficher les contenus sensibles"
always-mark-nsfw: "Toujours marquer les notes ayant des attachements comme sensibles"
show-full-acct: "Afficher ladresse complète de lutilisateur"
@@ -123,7 +126,7 @@ common:
is-remote-user: "Ces informations appartiennent à un·e utilisateur·rice distant·e."
is-remote-post: "Ceci est une publication distante."
view-on-remote: " Consulter le profil complet"
renoted-by: "{user}がRenote"
renoted-by: "Renoté par {user}"
error:
title: 'Une erreur est survenue'
retry: 'Réessayer'
@@ -157,12 +160,12 @@ common:
polls: "Sondages"
post-form: "Champs de publication"
server: "Info sur le serveur"
donation: "Dons"
nav: "Navigation"
tips: "Conseils"
hashtags: "Hashtags"
dev: "Échec lors de la création de lapplication. Veuillez réessayer."
ai-chan-kawaii: "Ai-Chan est mignonne !"
you: "Vous"
auth/views/form.vue:
share-access: "Désirez-vous autoriser <i>{name}</i> à avoir accès à votre compte?"
permission-ask: "Cette application nécessite les autorisations suivantes :"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "Masquer"
show: "Voir plus"
chars: "{count} caractères"
files: "{count} fichiers"
common/views/components/messaging.vue:
search-user: "Trouver un·e utilisateur·trice"
you: "Vous"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Connexion en cours"
reconnecting: "Reconnexion en cours"
connected: "Connecté"
common/views/components/twitter-setting.vue:
description: "Si vous liez votre compte Twitter à votre compte Misskey, vous verrez ensuite votre compte Twitter s'afficher sur votre profil, vous aurez aussi la possibilité de vous connecter à Misskey en utilisant votre compte Twitter."
connected-to: "Vous êtes connecté à ce compte Twitter"
detail: "Détails…"
reconnect: "Reconnexion"
connect: "Lier votre compte Twitter"
disconnect: "Déconnexion"
common/views/components/integration-settings.vue:
title: "Intégrations"
connect: "Connecter"
disconnect: "Déconnecter"
connected-to: "Vous êtes connectés aux services suivants"
common/views/components/github-setting.vue:
description: "Si vous liez votre compte GitHub à votre compte Misskey, vous verrez votre compte GitHub safficher sur votre profil, vous aurez également la possibilité de vous connecter à Misskey en utilisant ce dernier."
connected-to: "Vous êtes connecté à votre compte GitHub"
@@ -432,18 +435,26 @@ common/views/components/visibility-chooser.vue:
specified-desc: "Publier uniquement aux utilisateurs·rices mentionné·e·s"
private: "Privé"
local-public: "Local (Public)"
local-public-desc: "リモートへは公開しない"
local-public-desc: "Ne pas publier pour les distants"
local-home: "Accueil (local uniquement)"
local-followers: "Local (Abonnés)"
common/views/components/trends.vue:
count: "{} utilisateurs·rices mentionnés·es"
empty: "Aucune tendance"
common/views/components/language-settings.vue:
title: "Langue "
pick-language: "Sélectionner une langue"
recommended: "Recommandé"
auto: "Automatique"
specify-language: "Spécifier la langue"
info: "Le rechargement de la page est requis afin d'appliquer les modifications."
common/views/components/profile-editor.vue:
title: "Profil"
name: "Nom"
account: "Compte"
location: "Lieu"
description: "À propos de moi"
language: "Langue"
birthday: "Date de naissance"
avatar: "Avatar"
banner: "Bannière"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "Profil mis à jour avec succès"
uploading: "En cours d'envoi …"
upload-failed: "Échec de l'envoi"
email: "Paramètres de messagerie"
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."
common/views/widgets/broadcast.vue:
fetching: "Récupération"
no-broadcasts: "Aucune annonce"
@@ -464,14 +479,11 @@ common/views/widgets/broadcast.vue:
next: "Suivant"
common/views/widgets/calendar.vue:
year: "Année {}"
month: "Mois {}"
month: "{},"
day: "{}"
today: "Aujourdhui:"
this-month: "Ce mois-ci :"
this-year: "Cette année :"
common/views/widgets/donation.vue:
title: "Faire un don"
text: "Les frais pour faire fonctionner Misskey sortent directement de notre poche. Nous ne recevons pas d'argent issu de la publicité, si vous pouvez nous faire des dons, on vous serait éternellement reconnaissants. Si vous êtes intéressé·es veuillez contacter {}. Merci pour votre contribution !"
common/views/widgets/photo-stream.vue:
title: "Flux de photos"
no-photos: "Pas de photo"
@@ -504,7 +516,7 @@ common/views/widgets/tips.vue:
tips-line10: "タイムマシンウィジェットを利用すると、簡単に過去のタイムラインに遡れます"
tips-line11: "Vous pouvez épingler des notes sur votre page en cliquant sur « … »"
tips-line13: "Tous les fichiers attachés à cette publication sont sauvegardés dans le Drive"
tips-line14: "ホームのカスタマイズ中、ウィジェットを右クリックしてデザインを変更できます"
tips-line14: "Lorsque vous personnalisez la disposition de votre page daccueil, vous pouvez effectuer un clique droit sur un widget pour changer son apparence."
tips-line17: "Vous pouvez mettre un texte en surbrillance en le mettant entre ** **"
tips-line19: "Plusieurs fenêtres peuvent être détachées en dehors du navigateur."
tips-line20: "Pourcentage sur le widget calendrier qui indique le pourcentage de temps passé"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "Mayu est mignonne avec ses sourcils."
tips-line24: "Misskey est fonctionnel depuis 2014"
tips-line25: "Vous pouvez recevoir les notifications de Misskey dans un navigateur web compatible"
common/views/pages/404.vue:
page-not-found: "La page demandée est introuvable !"
common/views/pages/follow.vue:
signed-in-as: "Connecté·e en tant que {}"
following: "Suit"
@@ -540,7 +554,7 @@ desktop/views/components/activity.vue:
title: "Activité"
toggle: "Afficher les vues"
desktop/views/components/calendar.vue:
title: "{month} / {year}"
title: "{month} - {year}"
prev: "Mois précédent"
next: "Mois suivant"
go: "Cliquez pour naviguer"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
web-search-engine: "Moteur de recherche Web"
web-search-engine-desc: "Exemple: https://www.google.com/?#q={{query}}"
auto-popout: "Fenêtre contextuelle automatique"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "Paramètres avancés"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "Utiliser des icônes circulaires"
contrasted-acct: "Nom dutilisateur contrasté"
post-form-on-timeline: "Afficher le formulaire en haut du fil"
suggest-recent-hashtags: "Afficher les hashtags populaires dans le champs de saisie"
show-clock-on-header: "Afficher l'horloge à droite sur le coté supérieur"
show-reply-target: "Afficher les réponses"
timeline: "Chronologie"
@@ -762,17 +777,18 @@ desktop/views/components/settings.vue:
deck-column-align: "Alignement des colonnes du Deck"
deck-column-align-center: "Centrer"
deck-column-align-left: "À gauche"
deck-column-align-flexible: "Flexibles"
deck-column-width: "Largeur des colonnes du Deck"
deck-column-width-narrow: "Étroite"
deck-column-width-narrower: "Légèrement étroite"
deck-column-width-normal: "Normale"
deck-column-width-wider: "Légèrement large"
deck-column-width-wide: "Large"
sound: "Son"
enable-sounds: "Activer le son"
enable-sounds-desc: "Jouer un son lorsque vous recevez un message. Ce paramètre est sauvegardé dans le navigateur."
volume: "Volume"
test: "Test"
language: "Langue"
pick-language: "Sélectionner une langue"
recommended: "Recommandé"
auto: "Automatique"
specify-language: "Spécifier la langue"
language-desc: "Le rechargement de la page est requis afin d'appliquer les modifications."
cache: "Cache"
clean-cache: "Nettoyage"
cache-warn: "Le nettoyage du cache du compte supprime les informations stockées dans le navigateur comme les messages, les réponses ainsi que dautres données (y compris les paramètres de configuration). Après le nettoyage, vous devez recharger la page."
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "Entrez à nouveau le nouveau mot de passe"
not-match: "Les nouveaux mots de passe ne sont pas identiques"
changed: "Mot de passe modifié avec succès"
failed: "Échec lors de la modification du mot de passe"
desktop/views/components/sub-note-content.vue:
private: "cette publication est privée"
deleted: "cette publication a été supprimée"
media-count: "{} médias attachés"
poll: "Sondage"
desktop/views/components/settings.tags.vue:
title: "Étiquettes"
query: "Requête (optionnelle)"
add: "Ajouter"
save: "Enregistrer"
desktop/views/components/taskmanager.vue:
title: "Gestionnaire de tâches"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "Description de linstance"
host: "Hôte"
banner-url: "Url de limage de la bannière"
error-image-url: "URL de limage derreur"
languages: "Langue de linstance"
languages-desc: "Vous pouvez en définir plus dune, séparées par des espaces."
maintainer-config: "Informations de ladministrateur"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "Clé reCAPTCHA du site"
recaptcha-secret-key: "Clé secrète reCAPTCHA"
twitter-integration-config: "Paramètres de connexion à Twitter"
twitter-integration-info: "LURL callback est définit sur /api/tw/cb"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Activer la connection à Twitter"
twitter-integration-consumer-key: "Clé du consommateur"
twitter-integration-consumer-secret: "Secret du consommateur"
github-integration-config: "Paramètres dauthentification GitHub"
github-integration-info: "LURL callback est définit sur /api/gh/cb"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "Activer lauthentification avec Github"
github-integration-client-id: "ID client"
github-integration-client-secret: "Secret client"
discord-integration-config: "Paramètres dauthentification Discord"
discord-integration-info: "LURL callback est définit sur /api/dc/cb"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Activer lauthentification avec Discord"
discord-integration-client-id: "ID client"
discord-integration-client-secret: "Secret client"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "Inviter"
save: "Sauvegarder"
saved: "Enregistré"
user-recommendation-config: "Utilisateur·rice·s"
enable-external-user-recommendation: "Activer la recommandation des utilisateur·trice·s distant·e·s"
external-user-recommendation-engine: "Moteur"
external-user-recommendation-engine-desc: "Exemple: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "Délai dexpiration"
external-user-recommendation-timeout-desc: "En millisecondes (par exemple : 300000)"
email-config: "Paramètres du serveur de messagerie"
email-config-info: "Utilisé pour confirmer votre adresse de courrier électronique et la réinitialisation de votre mot de passe."
enable-email: "Activation de la distribution du courrier"
email: "Adresse de courrier électronique"
smtp-secure: "Utiliser SSL/TLS implicitement dans la connexion SMTP"
smtp-secure-info: "Désactiver STARTTLS lorsque celui-ci est utilisé."
smtp-host: "Hôte SMTP"
smtp-port: "Port SMTP"
smtp-user: "Utilisateur SMTP"
smtp-pass: "Mot de passe SMTP"
admin/views/charts.vue:
title: "Graph"
per-day: "par jour"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "Requêtes"
network-time: "Temps de réponse"
network-usage: "Traffic"
admin/views/drive.vue:
sort:
title: "Tri"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "Taille - Ascendant"
sizeDesc: "Taille - Volumineux en premier"
origin:
title: "Origine"
combined: "Locaux et distants combinés"
local: "Local"
remote: "Distant"
delete: "Supprimer"
deleted: "Supprimé"
admin/views/users.vue:
suspend-user: "Suspendre un·e utilisateur·rice"
operation: "Actions"
username-or-userid: "Nom dutilisateur·rice ou ID utilisateur"
user-not-found: "Utilisateur·rice non trouvé·e"
lookup: "Recherche"
reset-password: "Réinitialiser mot de passe"
password-updated: "Le mot de passe est « {password} »"
suspend: "Suspendre"
suspended: "Suspendu·e avec succès."
unsuspend-user: "Lever la suspension dutilisateur·rice·s"
unsuspend: "Suspension levée"
unsuspended: "La suspension de lutilisateur·rice a été levée avec succès"
verify-user: "Paramètres de vérification du compte utilisateur"
verify: "Vérification du compte"
verified: "Le compte a été vérifié"
unverify-user: "Paramètres de non-vérification du compte utilisateur"
unverify: "Ôter la vérification du compte"
unverified: "Ce compte n'est plus vérifié"
users:
title: "Utilisateur·rice·s"
sort:
title: "Trier par"
createdAtAsc: "Date dinscription (Ascendant)"
createdAtDesc: "Date dinscription (Descendant)"
updatedAtAsc: "Mis à jour récemment (Ascendant)"
updatedAtDesc: "Mis à jour récemment (descendant)"
origin:
title: "Origine"
combined: "Locaux + distants"
local: "Locaux"
remote: "Distants"
createdAt: "Créé le"
updatedAt: "Mis à jour le"
admin/views/moderators.vue:
add-moderator:
title: "Ajout dun modérateur"
@@ -1134,7 +1204,7 @@ desktop/views/pages/user/user.header.vue:
years-old: "{age} ans"
year: "/"
month: "/"
day: "/"
day: "-"
desktop/views/pages/user/user.timeline.vue:
default: "Publications"
with-replies: "Publications et réponses"
@@ -1265,7 +1335,7 @@ mobile/views/components/ui.nav.vue:
admin: "Admin"
about: "À propos de Misskey"
mobile/views/components/user-timeline.vue:
no-notes: "Cette utilisateur semble n'avoir rien poster pour le moment"
no-notes: "Il semble que cet·te utilisateur·rice na rien publié pour le moment."
no-notes-with-media: "Aucune notes avec des médias"
mobile/views/components/users-list.vue:
all: "Tout"
@@ -1294,7 +1364,7 @@ mobile/views/pages/welcome.vue:
signup: "S'enregistrer"
mobile/views/pages/widgets.vue:
dashboard: "Tableau de bord"
widgets-hints: "ウィジェットを追加/削除したり並べ替えたりできます。ウィジェットを移動するには「三」をドラッグします。ウィジェットを削除するには「x」をタップします。いくつかのウィジェットはタップすることで表示を変更できます。"
widgets-hints: "Vous pouvez ajouter, supprimer et réaranger les widgets. Faites glisser « 三 » pour déplacer le widget. Appuyez sur « x » pour supprimer le widget. Certains widgets peuvent changer dapparence en cliquant dessus."
add-widget: "Ajouter"
customization-tips: "Conseils de personnalisation"
mobile/views/pages/widgets/activity.vue:
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "Choisissez un fichier"
mobile/views/pages/settings.vue:
signed-in-as: "Connecté·e en tant que {}"
lang: "Langue"
lang-tip: "Le rechargement de la page est requis afin d'appliquer les modifications."
recommended: "Recommandé"
auto: "Automatique"
specify-language: "Sélectionnez votre langue"
design: "Affichage et design"
dark-mode: "Mode nuit"
i-am-under-limited-internet: "J'ai un accès Internet limité"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "Visibilité de la publication"
default-note-visibility: "Visibilité par défaut"
remember-note-visibility: "Se souvenir du mode de visibilité de la publication"
web-search-engine: "Moteur de recherche Web"
web-search-engine-desc: "Exemple: https://www.google.com/?#q={{query}}"
disable-via-mobile: "Ne pas mentionner que ma publication provient d'un 'périphérique mobile'"
load-raw-images: "Afficher les photos jointes en haute qualité"
load-remote-media: "Afficher les médias sur le serveur distant"
twitter: "Intégration à Twitter"
twitter-connect: "Se connecter à votre compte Twitter"
twitter-reconnect: "Reconnecter"
twitter-disconnect: "Déconnexion"
github: "Avec GitHub"
github-connect: "Se connecter à votre compte GitHub"
github-reconnect: "Reconnecter"
github-disconnect: "Déconnecter"
discord: "Intégration avec Discord"
discord-connect: "Connecter votre compte Discord"
discord-reconnect: "Reconnecter"
discord-disconnect: "Déconnecter"
update: "Mise à jour de Misskey"
version: "Version :"
latest-version: "Dernière version :"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "Bloquer"
unblock: "Débloquer"
years-old: "{age} ans"
push-to-list: "Ajouter à la liste"
select-list: "Sélectionnez une liste"
list-pushed: "Vous avez ajouté {user} à la liste {list} avec succès."
mobile/views/pages/user/home.vue:
recent-notes: "Notes récentes"
images: "Images"

View File

@@ -5,7 +5,7 @@
const fs = require('fs');
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'];
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) }));

View File

@@ -26,6 +26,7 @@ common:
close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"

View File

@@ -26,6 +26,7 @@ common:
close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "わかった"
customization-tips:
@@ -117,9 +118,11 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -170,13 +173,13 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
@@ -320,6 +323,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
@@ -439,13 +444,11 @@ common/views/components/stream-indicator.vue:
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
@@ -484,12 +487,21 @@ common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -503,6 +515,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "確認中"
@@ -518,10 +534,6 @@ common/views/widgets/calendar.vue:
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -569,6 +581,9 @@ common/views/widgets/tips.vue:
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -824,6 +839,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@@ -844,7 +861,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -853,9 +869,16 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
@@ -863,13 +886,6 @@ desktop/views/components/settings.vue:
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -970,6 +986,7 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
@@ -977,6 +994,12 @@ desktop/views/components/sub-note-content.vue:
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
@@ -1075,6 +1098,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -1092,17 +1116,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -1117,6 +1141,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
@@ -1144,19 +1184,51 @@ admin/views/charts.vue:
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
@@ -1514,11 +1586,6 @@ mobile/views/pages/selectdrive.vue:
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1541,21 +1608,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1586,6 +1643,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"

View File

@@ -25,11 +25,12 @@ common:
application-authorization: "アプリの連携"
close: "さいなら"
do-not-copy-paste: "ここにコードを入力したり張り付けたりせんといてください。アカウントが不正利用されるかも分からん。知らんけど。"
load-more: "もっと読み込む"
load-more: "もっとあらへんのか!"
enter-password: "パスワードを入れてや"
got-it: "ほい"
customization-tips:
title: "カスタマイズのヒント"
paragraph: "<p>ホームのカスタマイズは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並替えたりすることができます。</p><p>一部ウィジェットは<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。</p><p>ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。</p><p>カスタマイズを終了するには、右上の「完了」をクリックします。</p>"
paragraph: "<p>ホームのカスタマイズは、ウィジェットを増やしたりほかしたり、ドラッグドロップして並替えたりしていじれるで。</p><p>一部ウィジェットは<strong><strong>右</strong>クリック</strong>で表示もいじれるんや。</p><p>ほかしたいときはヘッダーの<strong>「ゴミ箱」</strong>にほうりこんでら。</p><p>「完了」押したらお終いやで。</p>"
gotit: "Got it!"
notification:
file-uploaded: "ファイルがアップロードされたで"
@@ -90,9 +91,9 @@ common:
specified: "ダイレクト"
specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
local-public: "公開 (ローカルだけ)"
local-home: "ホーム (ローカルだけ)"
local-followers: "フォロワー (ローカルだけ)"
note-placeholders:
a: "今なにしてん?"
b: "何かあったんか?"
@@ -109,16 +110,18 @@ common:
my-token-regenerated: "あんさんのトークンが更新されたらしいわ。すまんがとりあえずサインアウトすんで。"
i-like-sushi: "寿司(のほうがプリンよりむしろ)ウマい、タコ焼きはあらへんけど。"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示や!"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストをつけんで!"
verified-user: "アメちゃん付きアカウント"
disable-animated-mfm: "投稿内のちょろちょろ動いてんのを止める"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "閲覧注意?見せたらあかん?そんなん知らんわ、見せろや!"
always-mark-nsfw: "わからんからとりあえずメディアは見せたらあかん"
show-full-acct: "ユーザー名のホストも出したる"
show-via: "viaを表示する"
show-via: "viaを見せる"
reduce-motion: "UI、動き過ぎや、静かにしてや"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
use-os-default-emojis: "OSにもとから入っとる絵文字使う"
do-not-use-in-production: '開発ビルドや。本番環境で使わんといて!知らんで!'
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
@@ -131,9 +134,9 @@ common:
drawn: "おあいこ"
my-turn: "あんさんのターンや"
opponent-turn: "相手のターンや"
turn-of: "{name}のターンです"
turn-of: "{name}のターン"
past-turn-of: "{name}のターン"
won: "{name}の勝ち"
won: "{name}の勝ちやで!"
black: "黒"
white: "白"
total: "合計"
@@ -157,14 +160,14 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成あかんかったわ。もっぺんやってみて。"
ai-chan-kawaii: "藍ちゃめっさべっぴんさんや"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
share-access: "あんたのアカウントに<i>{name}</i>がアクセスしようとしてるで?ええか?"
permission-ask: "このアプリは次の権限を要求してんで:"
account-read: "アカウントの情報を見させてもらうで。"
account-write: "アカウントの情報を操作させてもらうで。"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "もうええわ"
show: "見たいやろ?"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あんさん"
@@ -352,7 +357,7 @@ common/views/components/emoji-picker.vue:
custom-emoji: "カスタム絵文字"
people: "人"
animals-and-nature: "動物&自然"
food-and-drink: "食べ物&飲み"
food-and-drink: "食いもん&飲みもん"
activity: "アクティビティ"
travel-and-places: "場所"
objects: "物"
@@ -399,27 +404,25 @@ common/views/components/stream-indicator.vue:
connecting: "つないどるで"
reconnecting: "つなぎ直すで"
connected: "つないだわ"
common/views/components/twitter-setting.vue:
description: "あんさんがつことるTwitterアカウントをMisskeyアカウントに接続しとくと、あんさんのプロフィールにTwitterアカウント情報が表示されるようになったり、Twitterをつこた便利なサインインが使えるようになったりすんで。"
connected-to: "次のTwitterアカウントに接続されとるで"
detail: "詳細..."
reconnect: "つなぎ直す"
connect: "Twitterと接続する"
disconnect: "さいならする"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "つなげる"
disconnect: "接続をほかす"
connected-to: "このアカウントと繋がっとるで"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
description: "あんたがつことるTwitterアカウントをMisskeyアカウントに接続しくと、あんさんのプロフィールにTwitterアカウント情報が表示されるようになったり、Twitterを使うた便利なサインインが使えるようになったりすんで。"
connected-to: "次のGitHubアカウントに接続されとるで"
detail: "くわしく..."
reconnect: "つなぎ直す"
connect: "GitHubと接続する"
disconnect: "切断する"
disconnect: "接続をほかす"
common/views/components/discord-setting.vue:
description: "お使いのDiscordアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールDiscordアカウント情報が表示されるようになったり、Discordを用いた便利なサインインを利用できるようになります。"
connected-to: "次のDiscordアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
description: "あんたがつことるDiscordアカウントをMisskeyアカウントに接続しくと、あんさんのプロフィールDiscordアカウント情報が表示されるようになったり、Discordを使うた便利なサインインが使えるようになったりすんで。"
connected-to: "次のDiscordアカウントに接続されとるで"
detail: "くわしく..."
reconnect: "つなぎ直す"
connect: "Discordと接続する"
disconnect: "切断する"
disconnect: "接続をほかす"
common/views/components/uploader.vue:
waiting: "待っとる"
common/views/components/visibility-chooser.vue:
@@ -431,19 +434,27 @@ common/views/components/visibility-chooser.vue:
specified: "ダイレクト"
specified-desc: "今から言うユーザー以外に見せんとってや"
private: "非公開"
local-public: "公開 (ローカルのみ)"
local-public-desc: "リモートへは公開しない"
local-home: "ホーム (ローカルのみ)"
local-followers: "フォロワー (ローカルのみ)"
local-public: "公開 (ローカルだけ)"
local-public-desc: "リモートには見せへん"
local-home: "ホーム (ローカルだけ)"
local-followers: "フォロワー (ローカルだけ)"
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "流行は自分で作るんや"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語選んでや"
recommended: "これええで"
auto: "勝手にやる"
specify-language: "言語選びや"
info: "ページもっぺん読み込んだら反映したるで。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存したで"
uploading: "アップロードしとります"
upload-failed: "これアップロードでけへんわ"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "このメールアドレスOKや"
email-not-verified: "メールアドレスが確認されとらん。メールボックスもっぺん見てくれへん?"
common/views/widgets/broadcast.vue:
fetching: "見てみるわ…"
no-broadcasts: "お知らせはあらへんで"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かるんや。Misskeyは広告を掲載したりせんから、収入を皆様からの寄付に頼ってますねん。もし興味があるなら、{}までご連絡よろしゅう頼んます。ご協力おおきに。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はあらへんで"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "ウチのタコちゃんかわええやろ…今の突っ込むところや!"
tips-line24: "Misskeyは2014年にサービスを開始したんよ"
tips-line25: "対応ブラウザやったらMisskeyを開いとらんでも通知を受け取れんで"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォローしとる"
@@ -540,7 +554,7 @@ desktop/views/components/activity.vue:
title: "アクティビティ"
toggle: "表示変える"
desktop/views/components/calendar.vue:
title: "{year}年 {month}月"
title: "{year}年 {month} 月"
prev: "前の月"
next: "次の月"
go: "クリックしてタイムリープ"
@@ -682,7 +696,7 @@ desktop/views/components/post-form.vue:
create-poll: "アンケートを作成"
text-remain: "残り{}文字"
recent-tags: "最近のタグ"
local-only-message: "この投稿はローカルにのみ公開されます"
local-only-message: "この投稿はローカルだけ公開されるで"
click-to-tagging: "クリックでタグ付け"
visibility: "公開範囲"
geolocation-alert: "あんさんのつことる端末は位置情報に対応しとらんみたいやわ、知らんけど。"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "もとからの公開範囲"
remember-note-visibility: "投稿の公開範囲おぼえといて"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q?{{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトすんで。この設定はブラウザに記憶されんで。"
advanced: "もっと設定"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "アイコンもタコ焼きも丸いやんな?"
contrasted-acct: "ユーザー名ようわからんし見やすしといて"
post-form-on-timeline: "タイムラインの上の方で投稿できるようにせえへん?"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示すんで"
show-clock-on-header: "右上をカリヨン広場にする(時計表示)"
show-reply-target: "どこにリプライするんや見せて"
timeline: "タイムライン"
@@ -758,21 +773,22 @@ desktop/views/components/settings.vue:
show-renoted-my-notes: "わしのRenoteもタイムライン載せてくれや"
show-local-renotes: "ローカル投稿のRenoteも見たいんや"
show-maps: "地図勝手にバァーって開いてくれ"
remain-deleted-note: "削除された投稿表示し続ける"
deck-column-align: "デッキのカラムの置"
remain-deleted-note: "削除された投稿表示しっぱなしにする"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "真ん中"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンド鳴らす"
enable-sounds-desc: "投稿やメッセージもろたとき、音鳴らしたるわ。大丈夫や、この設定はブラウザが覚えてくれとる。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語選んでや"
recommended: "おすすめ"
auto: "自動"
specify-language: "言語選んでくれ"
language-desc: "変更はページの再度読み込み後に反映されんで。"
cache: "キャッシュ"
clean-cache: "お掃除"
cache-warn: "お掃除するとな、ブラウザが覚えてくれとるアカウントのあれこれや書きかけの投稿・返信・メッセージや設定情報なんかのデータが全部飛んでいくんや。これやったらページ再読込しといてな。"
@@ -835,7 +851,7 @@ common/views/components/api-settings.vue:
title: 'APIコンソール'
endpoint: 'エンドポイント'
parameter: 'パラメータ'
credential-info: "「i」パラメータは自動で付与されます。"
credential-info: "「i」パラメータは勝手に付くで。"
send: '送る'
sending: '応答待っとる'
response: 'こんなん返ってきたわ'
@@ -852,8 +868,8 @@ common/views/components/mute-and-block.vue:
no-muted-users: "ミュートしとるユーザーはおらんで"
no-blocked-users: "ブロックしとるユーザーはおらんで"
word-mute: "ワードミュート"
muted-words: "ミュートされたキーワード"
muted-words-description: "スペースで区切るとAND指定になり、改行で区切るとOR指定になります"
muted-words: "ミュートしとるキーワード"
muted-words-description: "スペースで区切るとAND指定、改行で区切るとOR指定"
save: "保存"
common/views/components/password-settings.vue:
reset: "パスワード変える"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もっぺん入れてや"
not-match: "パスワードがおうとらん"
changed: "パスワード変えたわ"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は見せられへんわ"
deleted: "この投稿なんか無くなってもうたわ"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,48 +971,65 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
languages-desc: "スペースで区切って複数設定できるで。"
maintainer-config: "管理者情報"
maintainer-name: "管理者名"
maintainer-email: "管理者の連絡先"
drive-config: "ドライブの設定"
cache-remote-files: "リモートのファイルをキャッシュする"
cache-remote-files-desc: "この設定を無効にすると、リモートファイルをキャッシュせず直リンクるようになります。そのためサーバーのストレージを節約できますが、プライバシー設定で直リンクを無効にしているユーザーはファイルが見えなくなったり、サムネイルが生成されないので通信量が増加します。通常はこの設定をオンにしておくことをおすすめします。"
cache-remote-files-desc: "この設定を無効にすると、リモートファイルをこっちで保管せずに直接リンクるようになるで。サーバーのストレージは軽くやろうけど、プライバシー設定で直リンクを向こうにしとるユーザーはファイルが見れへんし、サムネイルが無いから通信量が増えたりするから、普通はオンにしといてな。"
local-drive-capacity-mb: "ローカルユーザーひとりあたりのドライブ容量"
remote-drive-capacity-mb: "リモートユーザーひとりあたりのドライブ容量"
mb: "メガバイト単位"
recaptcha-config: "reCAPTCHAの設定"
recaptcha-info: "reCAPTCHAを有効にする場合、reCAPTCHAトークンを取得する必要があります。https://www.google.com/recaptcha/intro/ にアクセスしてトークンを取得してください。"
recaptcha-info: "reCAPTCHAを有効にするにはreCAPTCHAトークンが要るで。https://www.google.com/recaptcha/intro/ にアクセスしてトークンを取得して。"
enable-recaptcha: "reCAPTCHAを有効にする"
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定してや。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-info: "コールバックURLは {url} に設定してや。"
enable-github-integration: "GitHub連携を使えるようにする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定してや。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
proxy-account-config: "プロキシアカウントの設定"
proxy-account-info: "プロキシアカウントは、特定の条件下でユーザーのリモートフォローを代行するアカウントです。例えば、ユーザーがリモートユーザーをリストに入れたとき、リストに入れられたユーザーを誰もフォローしていないとアクティビティがサーバーに配達されないため、代わりにプロキシアカウントがフォローするようにします。"
proxy-account-info: "プロキシアカウントは、代わりにフォローしてくれるアカウント。例えば、551に豚まんが無いときやったり、ユーザーがリモートユーザーをアカウントに入れたとき、リストに入れられたユーザーが誰からもフォローされてないと寂しいやん。寂しいし、アクティビティも配達されへんから、プロキシアカウントがフォローしてくれるで。ええやつやん…"
proxy-account-username: "プロキシアカウントのユーザー名"
proxy-account-username-desc: "プロキシとして使用するアカウントのユーザー名を指定してください。"
proxy-account-warn: "アカウントは自動で作られないため、そのユーザー名のアカウントを予め作成しておく必要があります。"
proxy-account-username-desc: "プロキシとして使用するアカウントのユーザー名を指定して"
proxy-account-warn: "アカウント作るんはあんたがやってや。あんたのおかんもMisskeyもやってくれへんで。"
max-note-text-length: "投稿の最大文字数"
disable-registration: "ユーザー登録の受付を停止する"
disable-local-timeline: "ローカルタイムラインを無効にする"
invite: "招待"
disable-registration: "ユーザー登録の受付を止める"
disable-local-timeline: "ローカルタイムラインを使えんようにする"
invite: "来てや"
save: "保存"
saved: "保存しました"
saved: "保存したで!"
user-recommendation-config: "このユーザーええで"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを使えるようにする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使うで。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つからへん!"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password} 」やで"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1122,8 +1192,8 @@ desktop/views/pages/user/user.profile.vue:
muted: "ミュートしとるで"
unmute: "ミュート解除"
block: "ブロックする"
unblock: "ブロック解除"
block-confirm: "このユーザーをブロックしますか?"
unblock: "ブロックやめたる"
block-confirm: "このユーザーをブロックしてええか?"
push-to-a-list: "リストに追加"
list-pushed: "{user}を{list}に追加したで。"
desktop/views/pages/user/user.header.vue:
@@ -1199,11 +1269,11 @@ mobile/views/components/media-video.vue:
sensitive: "ちょっと見せられへんわ"
click-to-show: "押してみ、見せたるわ"
common/views/components/follow-button.vue:
following: "フォロー"
following: "フォローしとる"
follow: "フォロー"
request-pending: "フォロー許可待ち"
follow-processing: "フォロー処理"
follow-request: "フォロー申請"
request-pending: "フォロー許してくれるん待っとる"
follow-processing: "フォロー処理やっとる‥"
follow-request: "フォローさせてや!言うてみる"
mobile/views/components/friends-maker.vue:
title: "おもろそうやな"
empty: "おすすめのユーザーはおらん。"
@@ -1289,7 +1359,7 @@ mobile/views/pages/home.vue:
mentions: "あんた宛て"
messages: "メッセージ"
mobile/views/pages/tag.vue:
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿は見つかりませんでした。"
no-posts-found: "ハッシュタグ「{q}」が付けられた投稿はあらへんかった。"
mobile/views/pages/welcome.vue:
signup: "新規登録"
mobile/views/pages/widgets.vue:
@@ -1316,16 +1386,11 @@ mobile/views/pages/games/reversi.vue:
reversi: "リバーシ"
mobile/views/pages/search.vue:
search: "探す"
not-found: "「{q}」に関する投稿は見つかりませんでした。"
not-found: "ワイは「{q}」なんて投稿知らんわ、無いんちゃう?知らんけど。"
mobile/views/pages/selectdrive.vue:
select-file: "ファイル選んでや"
mobile/views/pages/settings.vue:
signed-in-as: "あんたは橋の下で拾った{}や!"
lang: "言語"
lang-tip: "ページもっぺん読み込んだら反映したるで。"
recommended: "これええで"
auto: "勝手にやる"
specify-language: "言語選びや"
design: "見た感じ"
dark-mode: "ナイトゲームや!"
i-am-under-limited-internet: "電波と阪神がザコいんや"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "もとからの公開範囲"
remember-note-visibility: "投稿の公開範囲おぼえといて"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q?{{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグなんて要らんわ"
load-raw-images: "添付された画像もべっぴんさんのままにしといてな"
load-remote-media: "東京とか、リモートサーバーのメディアも見せてや"
twitter: "鳥さんとも連携や!"
twitter-connect: "鳥さん邪魔すんで"
twitter-reconnect: "もっぺん繋ぎ直すで"
twitter-disconnect: "邪魔するんやったら帰って"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "あんたのMisskeyいつのや"
version: "バージョン:"
latest-version: "いっちゃん新しいやつ:"
@@ -1388,10 +1443,13 @@ mobile/views/pages/user.vue:
media: "メディア"
is-suspended: "このユーザーはあかんわ。凍結されとる。"
mute: "ミュート"
unmute: "ミュート解除"
unmute: "ミュートやめたる"
block: "ブロック"
unblock: "ブロックやめたる"
years-old: "{age}歳"
push-to-list: "リストに入れたる"
select-list: "リスト選んでや"
list-pushed: "{user}を{list}に追加したで"
mobile/views/pages/user/home.vue:
recent-notes: "最近儲かりまっか?"
images: "画像"
@@ -1416,21 +1474,21 @@ deck:
hybrid: "ソーシャル"
hashtag: "ハッシュタグ"
global: "グローバル"
mentions: "あた宛て"
mentions: "あた宛て"
direct: "ダイレクト投稿"
notifications: "通知"
list: "リスト"
swap-left: "左に移動"
swap-right: "右に移動"
swap-up: "上に移動"
swap-down: "下に移動"
remove: "カラムを削除"
add-column: "カラムを追加"
rename: "名前を変"
stack-left: "左に重ね"
pop-right: "右に出す"
swap-left: "左に移動や!"
swap-right: "右に移動や!"
swap-up: "上に移動や!"
swap-down: "下に移動や!"
remove: "カラムにさいなら"
add-column: "カラム増やす"
rename: "名前を変えるで"
stack-left: "左に重ねんで!"
pop-right: "右に出すで!"
deck/deck.tl-column.vue:
is-media-only: "メディア投稿のみ"
is-media-only: "メディア投稿だけや"
is-media-view: "メディアビュー"
edit: "オプション"
deck/deck.user-column.vue:
@@ -1440,8 +1498,8 @@ deck/deck.user-column.vue:
images: "画像"
activity: "アクティビティ"
timeline: "タイムライン"
pinned-notes: "ピン留めされた投稿"
push-to-a-list: "リストに追加"
pinned-notes: "ピン留めしはった投稿"
push-to-a-list: "リストに入れたる"
docs:
edit-this-page-on-github: "間違いや改善点を見つけましたか?"
edit-this-page-on-github-link: "このページをGitHubで編集"

File diff suppressed because it is too large Load Diff

View File

@@ -26,6 +26,7 @@ common:
close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Je sleutel is gegenereerd; je wordt nu uitgelogd."
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "Gebruiker zoeken"
you: "Jij"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Bezig met verbinden"
reconnecting: "Bezig met herverbinden"
connected: "Verbonden"
common/views/components/twitter-setting.vue:
description: "Als je je Twitter-account verbindt met je Misskey-account, dan kun je je Twitter-accountinformatie terugzien op je profiel en kun je inloggen met Twitter."
connected-to: "Je bent verbonden met dit Twitter-account"
detail: "Details..."
reconnect: "Opnieuw verbinden"
connect: "Koppel je Twitter-account"
disconnect: "Verbinding verbreken"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "Bezig met ophalen"
no-broadcasts: "Geen uitzendingen"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "Donatie"
text: "Om Misskey draaiende te houden, geven we geld uit aan onze domeinnaam, servers, enz. We maken hier geen winst op, dus we zouden het fijn vinden als je een donatie wilt doen. Neem in dat geval contact op via {}. Bedankt voor je bijdrage!"
common/views/widgets/photo-stream.vue:
title: "Fotostream"
no-photos: "Geen foto's"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
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."
advanced: "Geavanceerde instellingen"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "Ronde pictogrammen gebruiken"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "Berichtformulier boven de tijdlijn tonen"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "Antwoord-knop tonen"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "Kaart tonen"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "Geluid"
enable-sounds: "Geluid inschakelen"
enable-sounds-desc: "Een geluid afspelen bij het ontvangen van een bericht. Deze instelling wordt opgeslagen in je browser."
volume: "Volume"
test: "Testen"
language: "Taal"
pick-language: "Selecteer een taal"
recommended: "Aanbevolen"
auto: "Automatisch"
specify-language: "Taal opgeven"
language-desc: "Je moet de pagina herladen om de wijzigingen toe te passen."
cache: "Cache"
clean-cache: "Opschonen"
cache-warn: "De cache van je accountinformatie/berichten/antwoorden/instellingen wordt verwijderd. Je moet de pagina herladen na het opschonen."
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "Peilingen"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "Taakbeheer"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "Kies een bestand"
mobile/views/pages/settings.vue:
signed-in-as: "Ingelogd als {}"
lang: "Taal"
lang-tip: "Je moet de pagina herladen om de wijzigingen toe te passen."
recommended: "Aanbevolen"
auto: "Automatisch"
specify-language: "Taal opgeven"
design: "Ontwerp en weergave"
dark-mode: "Donkere modus"
i-am-under-limited-internet: "Ik heb beperkt internet"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "Zonder 'mobiele berichten'"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter-integratie"
twitter-connect: "Mijn Twitter-account verbinden"
twitter-reconnect: "Opnieuw verbinden"
twitter-disconnect: "Verbinding verbreken"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey-update"
version: "Huidige versie:"
latest-version: "Nieuwste versie:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "Recente notities"
images: "Afbeeldingen"

View File

@@ -26,6 +26,7 @@ common:
close: "Lukk"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "Skjønner!"
customization-tips:
title: "カスタマイズのヒント"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Ditt synbol har blitt generert. Du vil nå bli utlogget."
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "アンケート"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
nav: "ナビゲーション"
tips: "Tips"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "このアプリは次の権限を要求しています:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "Skjul"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "Du"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "Tilkobler"
reconnecting: "Kobler til på nytt"
connected: "Tilkoblet"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "Detaljer..."
reconnect: "Koble til på nytt"
connect: "Twitterと接続する"
disconnect: "Koble fra"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "Henter"
no-broadcasts: "お知らせはありません"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "I dag:"
this-month: "Denne måneden:"
this-year: "Dette året:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "Avanserte innstillinger"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "Lyd"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "Volum"
test: "Test"
language: "Språk"
pick-language: "Velg språk"
recommended: "Anbefalt"
auto: "Automatisk"
specify-language: "Angi språk"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "Hurtiglager"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "Språk"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "Anbefalt"
auto: "Automatisk"
specify-language: "Angi språk"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "Koble til på nytt"
twitter-disconnect: "Koble fra"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "Nylige innlegg"
images: "Bilder"

File diff suppressed because it is too large Load Diff

View File

@@ -26,6 +26,7 @@ common:
close: "Fechar"
do-not-copy-paste: "Por favor, não digite ou copie o código aqui. A conta pode ser comprometida."
load-more: "もっと読み込む"
enter-password: "パスワードを入力してください"
got-it: "Entendi!"
customization-tips:
title: "Dicas de personalização"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "Seu token foi recriado, portanto você foi deslogado."
i-like-sushi: "Eu prefiro sushi a pudim"
show-reversi-board-labels: "Mostrar etiquetas de colunas e linhas no Reversi"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "Conta verificada"
disable-animated-mfm: "Desativar texto animado nas publicações"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
show-full-acct: "ユーザー名のホストを省略しない"
@@ -157,12 +160,12 @@ common:
polls: "Enquetes"
post-form: "Formulário de publicação"
server: "Informações do servidor"
donation: "Doações"
nav: "Navegação"
tips: "Dicas"
hashtags: "Hashtags"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
permission-ask: "Este aplicativo precisa das seguintes permissões:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "Você"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Conectar à sua conta no Twitter"
twitter-reconnect: "Reconectar"
twitter-disconnect: "Desconectar"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Atualizar Misskey"
version: "Versão atual;"
latest-version: "Última versão:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "Notas recentes"
images: "Imagens"

View File

@@ -7,61 +7,62 @@ common:
about-title: "Мы — ⭐ fediverse"
about: "Спасибо, что нашли Misskey. Misskey — это <b>децентрализованная платформа для микроблоггинга</b> родом с планеты Земля. Поскольку она существует внутри Fediverse (вселенной различных социальных платформ), она связана с другими платформами. Отдохните от шума большого города — и познакомьтесь с новым интернетом."
intro:
title: "Misskeyって?"
about: "Misskeyはオープンソースの<b>分散型マイクロブログSNS</b>です。リッチで高度にカスタマイズできるUI、投稿へのリアクション、ファイルを一元管理できるドライブなど、先進的な機能を揃えています。また、Fediverseと呼ばれるネットワークに接続できるため、他のSNSともやり取りできます。例えば、あなたが何か投稿すると、その投稿はMisskeyだけでなく他のSNSにも伝わります。ちょうどある惑星から他の惑星に電波を発信している様子をイメージしてください。"
features: "特徴"
rich-contents: "投稿"
rich-contents-desc: "自分の考え、話題の出来事、皆と共有したいことについて発信してください。必要であれば、様々な構文を使って投稿を装飾したり、好きな画像、動画などのファイルやアンケートを添付することもできます。"
reaction: "リアクション"
reaction-desc: "あなたの気持ちを伝える最も簡単な方法です。Misskeyは、他のユーザーの投稿に様々なリアクションを付けることができます。いちどMisskeyのリアクション機能を体験してしまうと、もう「いいね」の概念しか存在しないSNSには戻れなくなるかもしれません。"
ui: "インターフェース"
ui-desc: "どのようなUIが使いやすいかは人それぞれです。だから、Misskeyは自由度の高いUIを持っています。レイアウトやデザインを調整したり、カスタマイズ可能な様々なウィジェットを配置したりして、自分だけのホームを作ってください。"
drive: "ドライブ"
drive-desc: "以前投稿したことのある画像をまた投稿したくなったことはありませんかもしくは、アップロードしたファイルをフォルダ分けして整理したくなったことはありませんかMisskeyの根幹に組み込まれたドライブ機能によってそれらが解決します。ファイルの共有も簡単です。"
outro: "他にもMisskeyにしかない機能はまだまだあるので、ぜひあなた自身の目で確かめてください。Misskeyは分散型SNSなので、このインスタンスが気に入らなければ他のインスタンスを試すこともできます。それでは、GLHF!"
title: "Что такое Misskey?"
about: "Misskey - это <b>децентрализованный сервис микроблогинга</b> с открытым исходным кодом. Он имеет такие функции, как: навороченный, полностью настраиваемый пользовательский интерфейс, множество реакций на посты, бесплатное хранилище файлов с интегрированной системой управления и ещё куча передовых фишек. А ещё сетевая система под названием “Fediverse” позволяет нам общаться с пользователями других социальных сетей. Например, если ты что-нибудь запостишь, то твой пост будет отослан не только в Misskey, но ещё и mastodon. Просто представь, что планета посылает микроволны на другую планету для коммуникации."
features: "Особенности"
rich-contents: "Посты"
rich-contents-desc: "Просто выложи свою идею, актуальные темы и всё, что тебе хочется показать миру. Ты можешь декорировать свои слова, прикреплять свои любимые картинки, отправлять файлы с фильмами и создать голосование - это те вещи, которые ты можешь сделать с помощью Misskey!"
reaction: "Реакции"
reaction-desc: "Самый лёгкий способ выразить свои эмоции. Misskey позволяет добавлять различные виды реакций к постам других людей. Эмоциональный опыт из Misskey никогда не появится в других социальных сетях, позволяющих только жать “лайки”."
ui: "Интерфейс"
ui-desc: "Нет такого интерфейса, понравившегося всем. Поэтому у Misskey имеется пользовательский интерфейс, широко настраиваемый под ваши вкусы. Создай себе уникальную домашнюю страницу редактируя, подстраивая оформление ленты и размещая виджеты, которые тоже можно кастомизировать."
drive: "Хранилище файлов"
drive-desc: "Хотите запостить картинку, которую уже отправляли ранее? Хочется сортировать, переименовать и создать папку для ваших выложенных файлов? Тогда Misskey Drive - это лучшее решение для вас. Очень лёгкий способ делиться своими файлами онлайн."
outro: "Попробуйте будущие, уникальные для Misskey функции своими глазами! Если чувствуете, что это не в вашем вкусе, то попробуйте другие инстанции, ведь Misskey - это децентрализованная социальная сеть, так что ты можешь с лёгкостью найти себе товарищей. И наконец, GLHF!"
adblock:
detected: "広告ブロッカーを無効にしてください"
warning: "<strong>Misskeyは広告を掲載していません</strong>が、広告をブロックする機能が有効だと一部の機能が利用できなかったり、不具合が発生する場合があります。"
application-authorization: "アプリの連携"
close: "閉じる"
do-not-copy-paste: "ここにコードを入力したり張り付けたりしないでください。アカウントが不正利用される可能性があります。"
load-more: "もっと読み込む"
detected: "Пожалуйста, отключите блокировщик рекламы."
warning: "Некоторые функции перестанут быть доступными или будут работать неправильно, если включена блокировка рекламы. <strong>В Misskey нет рекламы</strong>."
application-authorization: "Авторизация приложений"
close: "Закрыть"
do-not-copy-paste: "Пожалуйста, не вводите и не вставляйте сюда код. Аккаунту может угрожать опасность."
load-more: "Загрузить больше"
enter-password: "パスワードを入力してください"
got-it: "わかった"
customization-tips:
title: "カスタマイズのヒント"
paragraph: "<p>ホームのカスタマイズでは、ウィジェットを追加/削除したり、ドラッグ&ドロップして並べ替えたりすることができます。</p><p>一部のウィジェットは、<strong><strong>右</strong>クリック</strong>することで表示を変更することができます。</p><p>ウィジェットを削除するには、ヘッダーの<strong>「ゴミ箱」</strong>と書かれたエリアにウィジェットをドラッグ&ドロップします。</p><p>カスタマイズを終了するには、右上の「完了」をクリックします。</p>"
gotit: "Got it!"
notification:
file-uploaded: "ファイルがアップロードされました"
message-from: "{}さんからメッセージ:"
reversi-invited: "対局への招待があります"
reversi-invited-by: "{}さんから"
file-uploaded: "Файл отправлен!"
message-from: "Сообщение от {}:"
reversi-invited: "Приглашён в игру"
reversi-invited-by: "Был приглашён {}:"
notified-by: "{}さんから"
reply-from: "{}さんから返信:"
quoted-by: "{}さんが引用:"
reply-from: "Ответ от {}:"
quoted-by: "Цитировано {}:"
time:
unknown: "なぞのじかん"
future: "未来"
just_now: "たった今"
seconds_ago: "{}秒前"
minutes_ago: "{}分前"
hours_ago: "{}時間前"
days_ago: "{}日前"
weeks_ago: "{}週間前"
months_ago: "{}ヶ月前"
years_ago: "{}年前"
month-and-day: "{month}月 {day}日"
trash: "ゴミ箱"
drive: "ドライブ"
messaging: "トーク"
unknown: "неизвестно"
future: "сейчас"
just_now: "сейчас"
seconds_ago: "{} секунд назад"
minutes_ago: "{} минут назад"
hours_ago: "{} часов назад"
days_ago: "{} дней назад"
weeks_ago: "{} недель назад"
months_ago: "{} месяцев назад"
years_ago: "{} лет назад"
month-and-day: "{day}.{month}"
trash: "Мусорное ведро"
drive: "Drive"
messaging: "Чат"
weekday-short:
sunday: ""
monday: ""
tuesday: ""
wednesday: ""
thursday: ""
friday: ""
saturday: ""
sunday: "Вс"
monday: "Пн"
tuesday: "Вт"
wednesday: "Ср"
thursday: "Чт"
friday: "Пт"
saturday: "Сб"
weekday:
sunday: "日曜日"
monday: "月曜日"
@@ -109,62 +110,64 @@ common:
my-token-regenerated: "あなたのトークンが更新されたのでサインアウトします。"
i-like-sushi: "私は(プリンよりむしろ)寿司が好き"
show-reversi-board-labels: "リバーシのボードの行と列のラベルを表示"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "リバーシのアイコンにコントラストを付ける"
verified-user: "公式アカウント"
disable-animated-mfm: "投稿内の動きのあるテキストを無効にする"
always-show-nsfw: "常に閲覧注意のメディアを表示する"
always-mark-nsfw: "常にメディアを閲覧注意として投稿"
disable-animated-mfm: "Отключить анимированный текст в постах"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "Всегда показывать NSFW контент"
always-mark-nsfw: "Всегда помечать посты с медиафайлами как NSFW"
show-full-acct: "ユーザー名のホストを省略しない"
show-via: "viaを表示する"
reduce-motion: "UIの動きを減らす"
this-setting-is-this-device-only: "このデバイスのみ"
use-os-default-emojis: "OS標準の絵文字を使用"
do-not-use-in-production: 'これは開発ビルドです。本番環境で使用しないでください。'
show-via: "показать через"
reduce-motion: "Уменьшить движение в интерфейсе"
this-setting-is-this-device-only: "Только для этого устройства"
use-os-default-emojis: "Использовать стандартные Emoji из ОС"
do-not-use-in-production: 'Эта сборка для разработчиков. Не используйте в продакшне.'
is-remote-user: "このユーザー情報はコピーです。"
is-remote-post: "この投稿情報はコピーです。"
view-on-remote: "正確な情報を見る"
renoted-by: "{user}がRenote"
error:
title: '問題が発生しました'
retry: 'やり直す'
title: 'Что-то пошло не так :('
retry: 'Повторить'
reversi:
drawn: "引き分け"
my-turn: "あなたのターンです"
opponent-turn: "相手のターンです"
turn-of: "{name}のターンです"
past-turn-of: "{name}のターン"
won: "{name}の勝ち"
black: ""
white: ""
total: "合計"
this-turn: "{count}ターン目"
drawn: "Ничья"
my-turn: "Ваш ход"
opponent-turn: "Ход оппонента"
turn-of: "Ход {name}"
past-turn-of: "Ход {name}"
won: "{name} победил"
black: "Чёрный"
white: "Белый"
total: "Всего"
this-turn: "Ход {count}"
widgets:
analog-clock: "アナログ時計"
profile: "プロフィール"
calendar: "カレンダー"
timemachine: "カレンダー(タイムマシン)"
activity: "アクティビティ"
rss: "RSSリーダー"
memo: "付箋"
trends: "トレンド"
photo-stream: "フォトストリーム"
analog-clock: "Аналоговые часы"
profile: "Профиль"
calendar: "Календарь"
timemachine: "Календарь (машина времени)"
activity: "Активность"
rss: "Ридер RSS"
memo: "Заметка"
trends: "Популярное"
photo-stream: "Фотопоток"
posts-monitor: "投稿チャート"
slideshow: "スライドショー"
version: "バージョン"
slideshow: "Слайдшоу"
version: "Версия"
broadcast: "ブロードキャスト"
notifications: "通知"
users: "おすすめユーザー"
polls: "アンケート"
notifications: "Уведомления"
users: "Рекомендованные пользователи"
polls: "Голосования"
post-form: "投稿フォーム"
server: "サーバー情報"
donation: "寄付のお願い"
server: "Информация о сервере"
nav: "ナビゲーション"
tips: "ヒント"
hashtags: "ハッシュタグ"
dev: "アプリの作成に失敗しました。再度お試しください。"
ai-chan-kawaii: "藍ちゃかわいい"
hashtags: "Хэштеги"
dev: "Не удалось создать приложение. Пожалуйста, попробуйте ещё раз."
ai-chan-kawaii: "Ai-chan kawaii!"
you: "あなた"
auth/views/form.vue:
share-access: "<i>{name}</i>があなたのアカウントにアクセスすることを許可しますか?"
share-access: "Вы разрешаете <i>{name}</i> получить доступ к вашему аккаунту?"
permission-ask: "このアプリは次の権限を要求しています:"
account-read: "アカウントの情報を見る。"
account-write: "アカウントの情報を操作する。"
@@ -210,28 +213,28 @@ common/views/components/games/reversi/reversi.index.vue:
all-games: "みんなの対局"
enter-username: "ユーザー名を入力してください"
game-state:
ended: "終了"
playing: "進行中"
ended: "Завершено"
playing: "В процессе"
common/views/components/games/reversi/reversi.room.vue:
settings-of-the-game: "ゲームの設定"
settings-of-the-game: "Настройки игры"
choose-map: "マップを選択"
random: "ランダム"
black-or-white: "先手/後手"
black-is: "{}が黒"
rules: "ルール"
random: "Случайно"
black-or-white: "Чёрные/Белые"
black-is: "{} ходит чёрными"
rules: "Правила"
is-llotheo: "石の少ない方が勝ち(ロセオ)"
looped-map: "ループマップ"
can-put-everywhere: "どこでも置けるモード"
settings-of-the-bot: "Botの設定"
this-game-is-started-soon: "ゲームは数秒後に開始されます"
waiting-for-other: "相手の準備が完了するのを待っています"
settings-of-the-bot: "Настройки бота"
this-game-is-started-soon: "Игра вот-вот начнётся"
waiting-for-other: "Ожидание оппонента"
waiting-for-me: "あなたの準備が完了するのを待っています"
waiting-for-both: "準備中"
cancel: "キャンセル"
ready: "準備完了"
cancel: "Отмена"
ready: "Готов"
cancel-ready: "準備続行"
common/views/components/connect-failed.vue:
title: "サーバーに接続できません"
title: "Невозможно подключиться к серверу"
description: "インターネット回線に問題があるか、サーバーがダウンまたはメンテナンスしている可能性があります。しばらくしてから{再度お試し}ください。"
thanks: "いつもMisskeyをご利用いただきありがとうございます。"
troubleshoot: "トラブルシュート"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隠す"
show: "もっと見る"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "ユーザーを探す"
you: "あなた"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "接続中"
reconnecting: "再接続中"
connected: "接続完了"
common/views/components/twitter-setting.vue:
description: "お使いのTwitterアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでTwitterアカウント情報が表示されるようになったり、Twitterを用いた便利なサインインを利用できるようになります。"
connected-to: "次のTwitterアカウントに接続されています"
detail: "詳細..."
reconnect: "再接続する"
connect: "Twitterと接続する"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "お使いのGitHubアカウントをお使いのMisskeyアカウントに接続しておくと、プロフィールでGitHubアカウント情報が表示されるようになったり、GitHubを用いた便利なサインインを利用できるようになります。"
connected-to: "次のGitHubアカウントに接続されています"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{}人が投稿"
empty: "トレンドなし"
common/views/components/language-settings.vue:
title: "表示言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
info: "変更はページの再度読み込み後に反映されます。"
common/views/components/profile-editor.vue:
title: "プロフィール"
name: "名前"
account: "アカウント"
location: "場所"
description: "自己紹介"
language: "言語"
birthday: "誕生日"
avatar: "アイコン"
banner: "バナー"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "プロフィールを保存しました"
uploading: "アップロード中"
upload-failed: "アップロードに失敗しました"
email: "メール設定"
email-address: "メールアドレス"
email-verified: "メールアドレスが確認されました"
email-not-verified: "メールアドレスが確認されていません。メールボックスをご確認ください。"
common/views/widgets/broadcast.vue:
fetching: "確認中"
no-broadcasts: "お知らせはありません"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今日:"
this-month: "今月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "寄付のお願い"
text: "Misskeyの運営にはドメイン、サーバー等のコストが掛かります。Misskeyは広告を掲載したりしないため、収入を皆様からの寄付に頼っています。もしご興味があれば、{}までご連絡ください。ご協力ありがとうございます。"
common/views/widgets/photo-stream.vue:
title: "フォトストリーム"
no-photos: "写真はありません"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "まゆかわいいよまゆ"
tips-line24: "Misskeyは2014年にサービスを開始しました"
tips-line25: "対応ブラウザではMisskeyを開いていなくても通知を受け取れます"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "{}としてサインイン中"
following: "フォロー中"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
auto-popout: "ウィンドウの自動ポップアウト"
auto-popout-desc: "ウィンドウが開かれるとき、ポップアウト(ブラウザ外に切り離す)可能なら自動でポップアウトします。この設定はブラウザに記憶されます。"
advanced: "詳細設定"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "円形のアイコンを使用"
contrasted-acct: "ユーザー名にコントラストを付ける"
post-form-on-timeline: "タイムライン上部に投稿フォームを表示する"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
show-clock-on-header: "右上に時計を表示する"
show-reply-target: "リプライ先を表示する"
timeline: "タイムライン"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "ローカルの投稿のRenoteをタイムラインに表示する"
show-maps: "マップの自動展開"
remain-deleted-note: "削除された投稿を表示し続ける"
deck-column-align: "デッキのカラムの置"
deck-column-align: "デッキのカラムの置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "サウンド"
enable-sounds: "サウンドを有効にする"
enable-sounds-desc: "投稿やメッセージを送受信したときなどにサウンドを再生します。この設定はブラウザに記憶されます。"
volume: "ボリューム"
test: "テスト"
language: "言語"
pick-language: "言語を選択"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
language-desc: "変更はページの再度読み込み後に反映されます。"
cache: "キャッシュ"
clean-cache: "クリーンアップ"
cache-warn: "クリーンアップを行うと、ブラウザに記憶されたアカウント情報のキャッシュ、書きかけの投稿・返信・メッセージ、およびその他のデータ(設定情報含む)が削除されます。クリーンアップを行った後はページを再度読み込みする必要があります。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "もう一度新しいパスワードを入力してください"
not-match: "新しいパスワードが一致しません"
changed: "パスワードを変更しました"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "この投稿は非公開です"
deleted: "この投稿は削除されました"
media-count: "{}つのメディア"
poll: "アンケート"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "タスクマネージャ"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "インスタンスの紹介"
host: "ホスト"
banner-url: "バナー画像URL"
error-image-url: "エラー画像URL"
languages: "インスタンスの対象言語"
languages-desc: "スペースで区切って複数設定できます。"
maintainer-config: "管理者情報"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "Twitter連携の設定"
twitter-integration-info: "コールバックURLは /api/tw/cb に設定します。"
twitter-integration-info: "コールバックURLは {url} に設定します。"
enable-twitter-integration: "Twitter連携を有効にする"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer secret"
github-integration-config: "GitHub連携の設定"
github-integration-info: "コールバックURLは /api/gh/cb に設定します。"
github-integration-info: "コールバックURLは {url} に設定します。"
enable-github-integration: "GitHub連携を有効にする"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "Discord連携の設定"
discord-integration-info: "コールバックURLは /api/dc/cb に設定します。"
discord-integration-info: "コールバックURLは {url} に設定します。"
enable-discord-integration: "Discord連携を有効にする"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "招待"
save: "保存"
saved: "保存しました"
user-recommendation-config: "おすすめユーザー"
enable-external-user-recommendation: "外部ユーザーレコメンデーションを有効にする"
external-user-recommendation-engine: "エンジン"
external-user-recommendation-engine-desc: "例: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "タイムアウト"
external-user-recommendation-timeout-desc: "ミリ秒単位 (例: 300000)"
email-config: "メールサーバーの設定"
email-config-info: "メールアドレス確認やパスワードリセットの際に使われます。"
enable-email: "メール配信を有効にする"
email: "メールアドレス"
smtp-secure: "SMTP接続に暗黙的なSSL/TLSを使用する"
smtp-secure-info: "STARTTLS使用時はオフにします。"
smtp-host: "SMTPホスト"
smtp-port: "SMTPポート"
smtp-user: "SMTPユーザー"
smtp-pass: "SMTPパスワード"
admin/views/charts.vue:
title: "チャート"
per-day: "1日ごと"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "リクエスト"
network-time: "応答時間"
network-usage: "通信量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "ユーザーの凍結"
operation: "操作"
username-or-userid: "ユーザー名またはユーザーID"
user-not-found: "ユーザーが見つかりません"
lookup: "照会"
reset-password: "パスワードをリセット"
password-updated: "パスワードは現在「{password}」です"
suspend: "凍結"
suspended: "凍結しました"
unsuspend-user: "ユーザーの凍結の解除"
unsuspend: "凍結の解除"
unsuspended: "凍結を解除しました"
verify-user: "ユーザーの公式アカウント設定"
verify: "公式アカウントにする"
verified: "公式アカウントにしました"
unverify-user: "ユーザーの公式アカウント解除"
unverify: "公式アカウントを解除する"
unverified: "公式アカウントを解除しました"
users:
title: "ユーザー"
sort:
title: "ソート"
createdAtAsc: "登録日時が古い順"
createdAtDesc: "登録日時が新しい順"
updatedAtAsc: "更新日時が古い順"
updatedAtDesc: "更新日時が新しい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
createdAt: "登録日時"
updatedAt: "更新日時"
admin/views/moderators.vue:
add-moderator:
title: "モデレーターの登録"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "ファイルを選択"
mobile/views/pages/settings.vue:
signed-in-as: "{}としてサインイン中"
lang: "言語"
lang-tip: "変更はページの再読み込み後に反映されます。"
recommended: "推奨"
auto: "自動"
specify-language: "言語を指定"
design: "デザインと表示"
dark-mode: "ダークモード"
i-am-under-limited-internet: "私は通信を制限されている"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "投稿の公開範囲"
default-note-visibility: "デフォルトの公開範囲"
remember-note-visibility: "投稿の公開範囲を記憶する"
web-search-engine: "ウェブ検索エンジン"
web-search-engine-desc: "例: https://www.google.com/?#q={{query}}"
disable-via-mobile: "「モバイルからの投稿」フラグを付けない"
load-raw-images: "添付された画像を高画質で表示する"
load-remote-media: "リモートサーバーのメディアを表示する"
twitter: "Twitter連携"
twitter-connect: "Twitterアカウントに接続する"
twitter-reconnect: "再接続する"
twitter-disconnect: "切断する"
github: "GitHub連携"
github-connect: "GitHubアカウントに接続する"
github-reconnect: "再接続する"
github-disconnect: "切断する"
discord: "Discord連携"
discord-connect: "Discordアカウントに接続する"
discord-reconnect: "再接続する"
discord-disconnect: "切断する"
update: "Misskey Update"
version: "バージョン:"
latest-version: "最新のバージョン:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "ブロック"
unblock: "ブロック解除"
years-old: "{age}歳"
push-to-list: "リストに追加"
select-list: "リストを選択してください"
list-pushed: "{user}を{list}に追加しました"
mobile/views/pages/user/home.vue:
recent-notes: "最近の投稿"
images: "画像"

View File

@@ -26,6 +26,7 @@ common:
close: "关闭"
do-not-copy-paste: "请不要在这里输入或粘贴代码。您帐户可能会受到损害。"
load-more: "加载更多"
enter-password: "请输入您的密码"
got-it: "没问题"
customization-tips:
title: "客制化提示"
@@ -109,9 +110,11 @@ common:
my-token-regenerated: "您的 Token 已被重置, 您将自动登出。"
i-like-sushi: "相比于布丁来说, 我更喜欢寿司。"
show-reversi-board-labels: "在 Reversi 中显示行和列表签"
use-white-black-reversi-stones: "リバーシに白黒の石を使う"
use-contrast-reversi-stones: "Make the stone color clear in Reversi"
verified-user: "认证用户"
disable-animated-mfm: "在帖子中禁用动画文本"
suggest-recent-hashtags: "最近のハッシュタグを投稿フォームに表示する"
always-show-nsfw: "总是显示 NSFW 的内容"
always-mark-nsfw: "总是用 NSFW 来标记附件"
show-full-acct: "不要从用户名中忽略主机名"
@@ -157,12 +160,12 @@ common:
polls: "投票"
post-form: "投稿形式"
server: "服务器信息"
donation: "捐助"
nav: "导航"
tips: "提示"
hashtags: "标签"
dev: "构建应用程序失败,请再试一次。"
ai-chan-kawaii: "Ai-chan kawaii!"
you: "あなた"
auth/views/form.vue:
share-access: "您要允许<i>{name}</i>来访问您的账户吗?"
permission-ask: "这个应用程序需要以下权限:"
@@ -295,6 +298,8 @@ common/views/components/theme.vue:
common/views/components/cw-button.vue:
hide: "隐藏"
show: "查看更多"
chars: "{count}文字"
files: "{count}ファイル"
common/views/components/messaging.vue:
search-user: "查找用户"
you: "您"
@@ -399,13 +404,11 @@ common/views/components/stream-indicator.vue:
connecting: "连接中"
reconnecting: "重新连接中"
connected: "已连接"
common/views/components/twitter-setting.vue:
description: "当您用Twitter连接Misskey账户后您将能够看到有关您自己的信息并且您将能够使用Twitter登录。"
connected-to: "此账户已连接Twitter"
detail: "详细信息..."
reconnect: "重新连接"
connect: "连接您的推特账户"
disconnect: "未连接"
common/views/components/integration-settings.vue:
title: "サービス連携"
connect: "接続する"
disconnect: "切断する"
connected-to: "次のアカウントに接続されています"
common/views/components/github-setting.vue:
description: "当您用GitHub连接Misskey账户后您将能够看到有关您自己的信息并且您将能够使用GitHub登录。"
connected-to: "此账户已连接GitHub"
@@ -438,12 +441,20 @@ common/views/components/visibility-chooser.vue:
common/views/components/trends.vue:
count: "{} 被提到"
empty: "没有流行的标签"
common/views/components/language-settings.vue:
title: "显示语言"
pick-language: "选择一个语言"
recommended: "推荐"
auto: "自动"
specify-language: "指定语言"
info: "你需要刷新这个页面来应用更改。"
common/views/components/profile-editor.vue:
title: "简况"
name: "名称"
account: "账户"
location: "位置"
description: "关于我"
language: "言語"
birthday: "生日"
avatar: "头像"
banner: "背景"
@@ -457,6 +468,10 @@ common/views/components/profile-editor.vue:
saved: "更新配置文件成功"
uploading: "正在上传"
upload-failed: "上传失败"
email: "邮件设置"
email-address: "电子邮件地址"
email-verified: "电子邮件地址已验证"
email-not-verified: "电子邮件地址还没有验证哦, 请检查一下收信箱吧~"
common/views/widgets/broadcast.vue:
fetching: "确认中"
no-broadcasts: "没有公告"
@@ -469,9 +484,6 @@ common/views/widgets/calendar.vue:
today: "今天:"
this-month: "本月:"
this-year: "今年:"
common/views/widgets/donation.vue:
title: "请求捐助"
text: "为了保持 Misskey 持续运行, 这会对域名,服务器等产生一些费用。 如果您有兴趣提供捐助,请联系{}。感谢您的贡献!"
common/views/widgets/photo-stream.vue:
title: "图片轮播"
no-photos: "没有图片"
@@ -512,6 +524,8 @@ common/views/widgets/tips.vue:
tips-line23: "Mayu的眉毛非常可爱。"
tips-line24: "Misskey自2014年开始运营。"
tips-line25: "在与通知功能兼容的浏览器中您可以在Misskey未打开的情况下接收通知"
common/views/pages/404.vue:
page-not-found: "ページが見つかりませんでした"
common/views/pages/follow.vue:
signed-in-as: "用 {}登录"
following: "正在关注"
@@ -731,6 +745,8 @@ desktop/views/components/settings.vue:
note-visibility: "帖子可见性"
default-note-visibility: "默认可见性"
remember-note-visibility: "记住帖子可见性"
web-search-engine: "搜索引擎"
web-search-engine-desc: "例如: https://www.google.com/?#q={{query}}"
auto-popout: "自动弹出窗口"
auto-popout-desc: "如果可用,将使用弹出显示而不是打开新窗口。 此设置存储在浏览器中。"
advanced: "更多设置"
@@ -750,7 +766,6 @@ desktop/views/components/settings.vue:
circle-icons: "使用圆形图标"
contrasted-acct: "增加用户名的对比度"
post-form-on-timeline: "在时间线顶部显示帖子表单"
suggest-recent-hashtags: "在帖子表单上显示最近流行的主题标签"
show-clock-on-header: "在右上角显示时钟"
show-reply-target: "显示回复目标"
timeline: "时间线"
@@ -759,20 +774,21 @@ desktop/views/components/settings.vue:
show-local-renotes: "在时间线中显示Local Renote(s)"
show-maps: "显示地图以显示位置"
remain-deleted-note: "继续显示已删除的帖子"
deck-column-align: "甲板柱的位置"
deck-column-align: "デッキのカラムの配置"
deck-column-align-center: "中央"
deck-column-align-left: "左"
deck-column-align-flexible: "フレキシブル"
deck-column-width: "デッキのカラムの幅"
deck-column-width-narrow: "狭"
deck-column-width-narrower: "やや狭"
deck-column-width-normal: "普通"
deck-column-width-wider: "やや広"
deck-column-width-wide: "広"
sound: "声音"
enable-sounds: "开启声音"
enable-sounds-desc: "收到帖子/留言时播放声音。 此设置将被存储在浏览器中。"
volume: "音量"
test: "测试"
language: "语言"
pick-language: "选择一个语言"
recommended: "推荐"
auto: "自动"
specify-language: "指定语言"
language-desc: "你需要刷新这个页面来应用更改。"
cache: "缓存"
clean-cache: "清除缓存"
cache-warn: "将删除存储在浏览器中的帐户信息/帖子/回复/消息/设置的缓存。 清理完毕后需要刷新页面。"
@@ -862,11 +878,17 @@ common/views/components/password-settings.vue:
enter-new-password-again: "请再次输入新密码"
not-match: "新密码不匹配"
changed: "密码已更改"
failed: "パスワード変更に失敗しました"
desktop/views/components/sub-note-content.vue:
private: "这个帖子是私密的"
deleted: "帖子已删除"
media-count: "附加{}媒体"
poll: "投票"
desktop/views/components/settings.tags.vue:
title: "タグ"
query: "クエリ (省略可)"
add: "追加"
save: "保存"
desktop/views/components/taskmanager.vue:
title: "任务管理器"
desktop/views/components/timeline.vue:
@@ -949,6 +971,7 @@ admin/views/instance.vue:
instance-description: "实例介绍"
host: "主机名"
banner-url: "背景图片地址"
error-image-url: "エラー画像URL"
languages: "实例语言"
languages-desc: "您可以添加多个,以空格分隔。"
maintainer-config: "管理员信息"
@@ -966,17 +989,17 @@ admin/views/instance.vue:
recaptcha-site-key: "reCAPTCHA site key"
recaptcha-secret-key: "reCAPTCHA secret key"
twitter-integration-config: "连接到Twitter的设置"
twitter-integration-info: "回调 URL 设置为 /api/tw/cb"
twitter-integration-info: "设置返回的URL{url}。"
enable-twitter-integration: "启用连接到Twitter"
twitter-integration-consumer-key: "Consumer key"
twitter-integration-consumer-secret: "Consumer Secret"
github-integration-config: "连接到GitHub设置"
github-integration-info: "回调 URL 设置为 /api/gh/cb"
github-integration-info: "设置返回的URL{url}。"
enable-github-integration: "启用连接到GitHub"
github-integration-client-id: "Client ID"
github-integration-client-secret: "Client Secret"
discord-integration-config: "设置 Discord Integration"
discord-integration-info: "回调 URL 设置为 /api/dc/cb"
discord-integration-info: "设置返回的URL{url}。"
enable-discord-integration: "启用 Discord 连接"
discord-integration-client-id: "Client ID"
discord-integration-client-secret: "Client Secret"
@@ -991,6 +1014,22 @@ admin/views/instance.vue:
invite: "邀请"
save: "保存"
saved: "保存完毕"
user-recommendation-config: "推荐用户"
enable-external-user-recommendation: "启用外部用户推荐"
external-user-recommendation-engine: "引擎"
external-user-recommendation-engine-desc: "例如: https://vinayaka.distsn.org/cgi-bin/vinayaka-user-match-misskey-api.cgi?{{host}}+{{user}}+{{limit}}+{{offset}}"
external-user-recommendation-timeout: "超时"
external-user-recommendation-timeout-desc: "单位为毫秒 (例如300000)"
email-config: "电子邮件服务器设置"
email-config-info: "用于确认电子邮件和密码重置等。"
enable-email: "启用电子邮件送递"
email: "电子邮件地址"
smtp-secure: "在 SMTP 连接中使用隐式 SSL / TLS"
smtp-secure-info: "使用时关闭 STARTTLS。"
smtp-host: "SMTP 服务器地址 (主机名)"
smtp-port: "SMTP 端口"
smtp-user: "SMTP 用户名"
smtp-pass: "SMTP 密码"
admin/views/charts.vue:
title: "历史记录"
per-day: "每天"
@@ -1016,19 +1055,50 @@ admin/views/charts.vue:
network-requests: "请求"
network-time: "响应时间"
network-usage: "网络流量"
admin/views/drive.vue:
sort:
title: "ソート"
createdAtAsc: "アップロード日時が古い順"
createdAtDesc: "アップロード日時が新しい順"
sizeAsc: "サイズが小さい順"
sizeDesc: "サイズが大きい順"
origin:
title: "オリジン"
combined: "ローカル+リモート"
local: "ローカル"
remote: "リモート"
delete: "削除"
deleted: "削除しました"
admin/views/users.vue:
suspend-user: "冻结用户"
operation: "操作"
username-or-userid: "用户名或用户ID"
user-not-found: "用户不存在"
lookup: "订阅"
reset-password: "密码重置"
password-updated: "密码为「{password}」"
suspend: "被冻结"
suspended: "成功冻结用户"
unsuspend-user: "解除用户冻结"
unsuspend: "已解除冻结"
unsuspended: "已成功解除用户冻结"
verify-user: "用户账户认证设置"
verify: "认证用户"
verified: "此账户已被认证"
unverify-user: "用户账号解除认证设置"
unverify: "解除账户认证"
unverified: "该帐户未经认证"
users:
title: "用户"
sort:
title: "排序"
createdAtAsc: "注册时间从旧到新"
createdAtDesc: "注册时间从新到旧"
updatedAtAsc: "更新时间从旧到新"
updatedAtDesc: "更新时间从新到旧"
origin:
title: "源自"
combined: "本地+远程"
local: "本地"
remote: "远程"
createdAt: "注册日期"
updatedAt: "最后更新"
admin/views/moderators.vue:
add-moderator:
title: "注册版主"
@@ -1321,11 +1391,6 @@ mobile/views/pages/selectdrive.vue:
select-file: "选择文件"
mobile/views/pages/settings.vue:
signed-in-as: "以{}登录"
lang: "语言"
lang-tip: "你需要刷新这个页面来应用更改。"
recommended: "推荐"
auto: "自动"
specify-language: "选择语言"
design: "设计与展示"
dark-mode: "夜间模式"
i-am-under-limited-internet: "我的带宽有限"
@@ -1348,21 +1413,11 @@ mobile/views/pages/settings.vue:
note-visibility: "帖子可见性"
default-note-visibility: "默认可见性"
remember-note-visibility: "记住帖子可见性"
web-search-engine: "搜索引擎"
web-search-engine-desc: "例如: https://www.google.com/?#q={{query}}"
disable-via-mobile: "不要将帖子标记为“来自手机”"
load-raw-images: "以原始质量显示附加图像"
load-remote-media: "显示来自远程服务器的媒体"
twitter: "Twitter integration"
twitter-connect: "连接到您的 Twitter"
twitter-reconnect: "重新连接"
twitter-disconnect: "未连接"
github: "GitHub Integration"
github-connect: "连接到您的 GitHub"
github-reconnect: "重新连接"
github-disconnect: "未连接"
discord: "Discord Integration"
discord-connect: "连接到您的 Discord"
discord-reconnect: "重新连接"
discord-disconnect: "未连接"
update: "更新 Misskey"
version: "当前版本:"
latest-version: "最新版本:"
@@ -1392,6 +1447,9 @@ mobile/views/pages/user.vue:
block: "屏蔽"
unblock: "取消屏蔽"
years-old: "{age}岁"
push-to-list: "添加至列表"
select-list: "选择一个列表"
list-pushed: "成功添加{user}到{list}"
mobile/views/pages/user/home.vue:
recent-notes: "最近的帖子"
images: "图片"

View File

@@ -1,8 +1,8 @@
{
"name": "misskey",
"author": "syuilo <i@syuilo.com>",
"version": "10.56.1",
"clientVersion": "2.0.11960",
"version": "10.64.0",
"clientVersion": "2.0.12768",
"codename": "nighthike",
"main": "./built/index.js",
"private": true,
@@ -34,10 +34,9 @@
"@types/debug": "0.0.31",
"@types/deep-equal": "1.0.1",
"@types/double-ended-queue": "2.1.0",
"@types/elasticsearch": "5.0.28",
"@types/file-type": "5.2.1",
"@types/elasticsearch": "5.0.29",
"@types/file-type": "5.2.2",
"@types/gulp": "3.8.36",
"@types/gulp-htmlmin": "1.3.32",
"@types/gulp-mocha": "0.0.32",
"@types/gulp-rename": "0.0.33",
"@types/gulp-replace": "0.0.31",
@@ -47,14 +46,14 @@
"@types/is-url": "1.2.28",
"@types/js-yaml": "3.11.2",
"@types/katex": "0.5.0",
"@types/koa": "2.0.46",
"@types/koa-bodyparser": "5.0.1",
"@types/koa": "2.0.47",
"@types/koa-bodyparser": "5.0.2",
"@types/koa-compress": "2.0.8",
"@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.33",
"@types/koa-router": "7.0.35",
"@types/koa-send": "4.1.1",
"@types/koa-views": "2.0.3",
"@types/koa__cors": "2.2.3",
@@ -63,14 +62,15 @@
"@types/mocha": "5.2.5",
"@types/mongodb": "3.1.14",
"@types/ms": "0.7.30",
"@types/node": "10.12.2",
"@types/node": "10.12.10",
"@types/nodemailer": "4.6.5",
"@types/oauth": "0.9.1",
"@types/parsimmon": "1.10.0",
"@types/portscanner": "2.1.0",
"@types/pug": "2.0.4",
"@types/qrcode": "1.3.0",
"@types/ratelimiter": "2.1.28",
"@types/redis": "2.8.7",
"@types/redis": "2.8.8",
"@types/request": "2.48.1",
"@types/request-promise-native": "1.0.15",
"@types/rimraf": "2.0.2",
@@ -78,17 +78,17 @@
"@types/sharp": "0.21.0",
"@types/showdown": "1.7.5",
"@types/speakeasy": "2.0.3",
"@types/systeminformation": "3.23.0",
"@types/systeminformation": "3.23.1",
"@types/tinycolor2": "1.4.1",
"@types/tmp": "0.0.33",
"@types/uuid": "3.4.4",
"@types/webpack": "4.4.19",
"@types/webpack": "4.4.20",
"@types/webpack-stream": "3.2.10",
"@types/websocket": "0.0.40",
"@types/ws": "6.0.1",
"animejs": "2.2.0",
"apexcharts": "2.2.2",
"autobind-decorator": "2.2.1",
"apexcharts": "2.4.2",
"autobind-decorator": "2.4.0",
"autosize": "4.0.2",
"autwh": "0.1.0",
"bcryptjs": "2.4.3",
@@ -106,23 +106,21 @@
"debug": "4.1.0",
"deep-equal": "1.0.1",
"deepcopy": "0.6.3",
"diskusage": "0.2.5",
"diskusage": "1.0.0",
"double-ended-queue": "2.1.0-0",
"elasticsearch": "15.2.0",
"emojilib": "2.3.0",
"emojilib": "2.4.0",
"escape-regexp": "0.0.1",
"eslint": "5.8.0",
"eslint-plugin-vue": "4.7.1",
"eventemitter3": "3.1.0",
"file-loader": "2.0.0",
"file-type": "10.4.0",
"file-type": "10.6.0",
"fuckadblock": "3.2.1",
"gulp": "3.9.1",
"gulp-cssnano": "2.1.3",
"gulp-htmlmin": "5.0.1",
"gulp-imagemin": "4.1.0",
"gulp-mocha": "6.0.0",
"gulp-pug": "4.0.1",
"gulp-rename": "1.4.0",
"gulp-replace": "1.0.0",
"gulp-sourcemaps": "2.6.4",
@@ -143,7 +141,7 @@
"json5": "2.1.0",
"json5-loader": "1.0.1",
"katex": "0.10.0",
"koa": "2.6.1",
"koa": "2.6.2",
"koa-bodyparser": "4.2.1",
"koa-compress": "3.0.0",
"koa-favicon": "2.0.1",
@@ -155,8 +153,9 @@
"koa-send": "5.0.0",
"koa-slow": "2.1.0",
"koa-views": "6.1.4",
"langmap": "0.0.16",
"loader-utils": "1.1.0",
"minio": "7.0.1",
"minio": "7.0.2",
"mkdirp": "0.5.1",
"mocha": "5.2.0",
"moji": "0.5.1",
@@ -166,6 +165,7 @@
"ms": "2.1.1",
"nan": "2.11.1",
"nested-property": "0.0.7",
"nodemailer": "4.7.0",
"nprogress": "0.2.0",
"object-assign-deep": "0.4.0",
"on-build-webpack": "0.1.0",
@@ -201,43 +201,44 @@
"stylus": "0.54.5",
"stylus-loader": "3.0.2",
"summaly": "2.2.0",
"systeminformation": "3.47.0",
"systeminformation": "3.51.3",
"syuilo-password-strength": "0.0.1",
"terser-webpack-plugin": "1.1.0",
"textarea-caret": "3.1.0",
"tinycolor2": "1.4.1",
"tmp": "0.0.33",
"ts-loader": "5.3.0",
"ts-loader": "5.3.1",
"ts-node": "7.0.1",
"tslint": "5.10.0",
"typescript": "3.1.6",
"typescript-eslint-parser": "21.0.1",
"typescript": "3.2.2",
"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.2",
"v-animate-css": "0.0.3",
"vue": "2.5.17",
"vue-color": "2.7.0",
"vue-content-loading": "1.5.3",
"vue-cropperjs": "2.2.2",
"vue-i18n": "8.3.1",
"vue-js-modal": "1.3.26",
"vue-i18n": "8.3.2",
"vue-js-modal": "1.3.27",
"vue-loader": "15.4.2",
"vue-marquee-text-component": "1.1.0",
"vue-router": "3.0.1",
"vue-router": "3.0.2",
"vue-sequential-entrance": "1.1.3",
"vue-style-loader": "4.1.2",
"vue-svg-inline-loader": "1.2.2",
"vue-svg-inline-loader": "1.2.4",
"vue-template-compiler": "2.5.17",
"vuedraggable": "2.16.0",
"vuedraggable": "2.17.0",
"vuewordcloud": "18.7.11",
"vuex": "3.0.1",
"vuex-persistedstate": "2.5.4",
"web-push": "3.3.3",
"webfinger.js": "2.6.6",
"webpack": "4.25.1",
"webfinger.js": "2.7.0",
"webpack": "4.26.1",
"webpack-cli": "3.1.2",
"websocket": "1.0.28",
"ws": "6.1.0",
"ws": "6.1.2",
"xev": "2.0.1"
}
}

View File

@@ -61,11 +61,12 @@ export default abstract class Chart<T> {
constructor(name: string, grouped = false) {
this.collection = db.get<Log<T>>(`chart.${name}`);
if (grouped) {
this.collection.createIndex({ span: -1, date: -1, group: -1 }, { unique: true });
} else {
this.collection.createIndex({ span: -1, date: -1 }, { unique: true });
}
const keys = {
span: -1,
date: -1
} as { [key: string]: 1 | -1; };
if (grouped) keys.group = -1;
this.collection.createIndex(keys, { unique: true });
}
@autobind
@@ -73,14 +74,14 @@ export default abstract class Chart<T> {
const query: Obj = {};
const dive = (x: Obj, path: string) => {
Object.entries(x).forEach(([k, v]) => {
for (const [k, v] of Object.entries(x)) {
const p = path ? `${path}.${k}` : k;
if (typeof v === 'number') {
query[p] = v;
} else {
dive(v, p);
}
});
}
};
dive(x, path);
@@ -333,14 +334,14 @@ export default abstract class Chart<T> {
* にする
*/
const dive = (x: Obj, path?: string) => {
Object.entries(x).forEach(([k, v]) => {
for (const [k, v] of Object.entries(x)) {
const p = path ? `${path}.${k}` : k;
if (typeof v == 'object') {
dive(v, p);
} else {
nestedProperty.set(res, p, chart.map(s => nestedProperty.get(s, p)));
}
});
}
};
dive(chart[0]);

View File

@@ -9,6 +9,7 @@ import './style.styl';
import init from '../init';
import Index from './views/index.vue';
import NotFound from '../common/views/pages/404.vue';
init(launch => {
document.title = 'Admin';
@@ -19,6 +20,7 @@ init(launch => {
base: '/admin/',
routes: [
{ path: '/', component: Index },
{ path: '*', component: NotFound }
]
});

View File

@@ -9,7 +9,7 @@
<ui-textarea v-model="announcement.text">
<span>{{ $t('text') }}</span>
</ui-textarea>
<ui-horizon-group>
<ui-horizon-group class="fit-bottom">
<ui-button @click="save()"><fa :icon="['far', 'save']"/> {{ $t('save') }}</ui-button>
<ui-button @click="remove(i)"><fa :icon="['far', 'trash-alt']"/> {{ $t('remove') }}</ui-button>
</ui-horizon-group>
@@ -48,15 +48,15 @@ export default Vue.extend({
},
remove(i) {
this.$root.alert({
this.$root.dialog({
type: 'warning',
text: this.$t('_remove.are-you-sure').replace('$1', this.announcements.find((_, j) => j == i).title),
showCancelButton: true
}).then(res => {
if (!res) return;
}).then(({ canceled }) => {
if (canceled) return;
this.announcements = this.announcements.filter((_, j) => j !== i);
this.save(true);
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('_remove.removed')
});
@@ -68,13 +68,13 @@ export default Vue.extend({
broadcasts: this.announcements
}).then(() => {
if (!silent) {
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('saved')
});
}
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});

View File

@@ -56,7 +56,9 @@ export default Vue.extend({
},
onLogs(logs) {
logs.reverse().forEach(log => this.onLog(log));
for (const log of logs.reverse()) {
this.onLog(log)
}
}
}
});

View File

@@ -132,7 +132,9 @@ export default Vue.extend({
},
onStatsLog(statsLog) {
statsLog.reverse().forEach(stats => this.onStats(stats));
for (const stats of statsLog.reverse()) {
this.onStats(stats);
}
}
}
});

View File

@@ -127,12 +127,12 @@ export default Vue.extend({
this.$root.api('instances', {
sort: '+notes'
}).then(instances => {
instances.forEach(i => {
for (const i of instances) {
i.bg = randomColor({
seed: i.host,
luminosity: 'dark'
});
});
}
this.instances = instances;
});
},

View File

@@ -0,0 +1,175 @@
<template>
<div class="pwnqwyet">
<ui-card>
<div slot="title"><fa :icon="faCloud"/> {{ $t('@.drive') }}</div>
<section class="fit-top">
<ui-horizon-group inputs>
<ui-select v-model="sort">
<span slot="label">{{ $t('sort.title') }}</span>
<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>
<option value="combined">{{ $t('origin.combined') }}</option>
<option value="local">{{ $t('origin.local') }}</option>
<option value="remote">{{ $t('origin.remote') }}</option>
</ui-select>
</ui-horizon-group>
<sequential-entrance animation="entranceFromTop" delay="25">
<div class="kidvdlkg" v-for="file in files">
<div @click="file._open = !file._open">
<div>
<div class="thumbnail" :style="thumbnail(file)"></div>
</div>
<div>
<header>
<b>{{ file.name }}</b>
<span class="username">@{{ file.user | acct }}</span>
</header>
<div>
<div>
<span style="margin-right:16px;">{{ file.type }}</span>
<span>{{ file.datasize | bytes }}</span>
</div>
<div><mk-time :time="file.createdAt" mode="detail"/></div>
</div>
</div>
</div>
<div v-show="file._open">
<ui-button @click="del(file)"><fa :icon="faTrashAlt"/> {{ $t('delete') }}</ui-button>
</div>
</div>
</sequential-entrance>
<ui-button v-if="existMore" @click="fetch">{{ $t('@.load-more') }}</ui-button>
</section>
</ui-card>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
import { faCloud } from '@fortawesome/free-solid-svg-icons';
import { faTrashAlt } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/drive.vue'),
data() {
return {
sort: '+createdAt',
origin: 'combined',
limit: 10,
offset: 0,
files: [],
existMore: false,
faCloud, faTrashAlt
};
},
watch: {
sort() {
this.files = [];
this.offset = 0;
this.fetch();
},
origin() {
this.files = [];
this.offset = 0;
this.fetch();
}
},
mounted() {
this.fetch();
},
methods: {
fetch() {
this.$root.api('admin/drive/files', {
origin: this.origin,
sort: this.sort,
offset: this.offset,
limit: this.limit + 1
}).then(files => {
if (files.length == this.limit + 1) {
files.pop();
this.existMore = true;
} else {
this.existMore = false;
}
for (const x of files) {
x._open = false;
}
this.files = this.files.concat(files);
this.offset += this.limit;
});
},
thumbnail(file: any): any {
return {
'background-color': file.properties.avgColor && file.properties.avgColor.length == 3 ? `rgb(${file.properties.avgColor.join(',')})` : 'transparent',
'background-image': `url(${file.thumbnailUrl})`
};
},
async del(file: any) {
const process = async () => {
await this.$root.api('drive/files/delete', { fileId: file.id });
this.$root.dialog({
type: 'success',
text: this.$t('deleted')
});
};
await process().catch(e => {
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
}
}
});
</script>
<style lang="stylus" scoped>
.pwnqwyet
@media (min-width 500px)
padding 16px
.kidvdlkg
padding 16px 0
border-top solid 1px var(--faceDivider)
> div:first-child
display flex
cursor pointer
> div:nth-child(1)
> .thumbnail
display block
width 64px
height 64px
background-size cover
background-position center center
> div:nth-child(2)
flex 1
padding-left 16px
@media (max-width 500px)
font-size 14px
> header
word-break break-word
> .username
margin-left 8px
opacity 0.7
</style>

View File

@@ -24,24 +24,28 @@
<ui-card>
<div slot="title"><fa :icon="faGrin"/> {{ $t('emojis.title') }}</div>
<section v-for="emoji in emojis">
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
<ui-horizon-group inputs>
<ui-input v-model="emoji.name">
<span>{{ $t('add-emoji.name') }}</span>
<section v-for="emoji in emojis" class="oryfrbft">
<div>
<img :src="emoji.url" :alt="emoji.name" style="width: 64px;"/>
</div>
<div>
<ui-horizon-group>
<ui-input v-model="emoji.name">
<span>{{ $t('add-emoji.name') }}</span>
</ui-input>
<ui-input v-model="emoji.aliases">
<span>{{ $t('add-emoji.aliases') }}</span>
</ui-input>
</ui-horizon-group>
<ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-input v-model="emoji.aliases">
<span>{{ $t('add-emoji.aliases') }}</span>
</ui-input>
</ui-horizon-group>
<ui-input v-model="emoji.url">
<i slot="icon"><fa icon="link"/></i>
<span>{{ $t('add-emoji.url') }}</span>
</ui-input>
<ui-horizon-group>
<ui-button @click="updateEmoji(emoji)"><fa :icon="['far', 'save']"/> {{ $t('emojis.update') }}</ui-button>
<ui-button @click="removeEmoji(emoji)"><fa :icon="['far', 'trash-alt']"/> {{ $t('emojis.remove') }}</ui-button>
</ui-horizon-group>
<ui-horizon-group class="fit-bottom">
<ui-button @click="updateEmoji(emoji)"><fa :icon="['far', 'save']"/> {{ $t('emojis.update') }}</ui-button>
<ui-button @click="removeEmoji(emoji)"><fa :icon="['far', 'trash-alt']"/> {{ $t('emojis.remove') }}</ui-button>
</ui-horizon-group>
</div>
</section>
</ui-card>
</div>
@@ -75,13 +79,13 @@ export default Vue.extend({
url: this.url,
aliases: this.aliases.split(' ').filter(x => x.length > 0)
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('add-emoji.added')
});
this.fetchEmojis();
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});
@@ -91,7 +95,9 @@ export default Vue.extend({
fetchEmojis() {
this.$root.api('admin/emoji/list').then(emojis => {
emojis.reverse();
emojis.forEach(e => e.aliases = (e.aliases || []).join(' '));
for (const e of emojis) {
e.aliases = (e.aliases || []).join(' ');
}
this.emojis = emojis;
});
},
@@ -103,12 +109,12 @@ export default Vue.extend({
url: emoji.url,
aliases: emoji.aliases.split(' ').filter(x => x.length > 0)
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('updated')
});
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});
@@ -116,23 +122,23 @@ export default Vue.extend({
},
removeEmoji(emoji) {
this.$root.alert({
this.$root.dialog({
type: 'warning',
text: this.$t('remove-emoji.are-you-sure').replace('$1', emoji.name),
showCancelButton: true
}).then(res => {
if (!res) return;
}).then(({ canceled }) => {
if (canceled) return;
this.$root.api('admin/emoji/remove', {
id: emoji.id
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('remove-emoji.removed')
});
this.fetchEmojis();
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});
@@ -148,4 +154,21 @@ export default Vue.extend({
@media (min-width 500px)
padding 16px
.oryfrbft
@media (min-width 500px)
display flex
> div:first-child
@media (max-width 500px)
padding-bottom 16px
> img
vertical-align bottom
> div:last-child
flex 1
@media (min-width 500px)
padding-left 16px
</style>

View File

@@ -15,19 +15,18 @@
</div>
<div class="me">
<img class="avatar" :src="$store.state.i.avatarUrl" alt="avatar"/>
<p class="name">{{ $store.state.i | userName }}</p>
<p class="name"><mk-user-name :user="$store.state.i"/></p>
</div>
<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('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('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>
<!-- <li @click="nav('drive')" :class="{ active: page == 'drive' }"><fa icon="cloud" fixed-width/>{{ $t('@.drive') }}</li> -->
</ul>
<div class="back-to-misskey">
<a href="/"><fa :icon="faArrowLeft"/> {{ $t('back-to-misskey') }}</a>
@@ -45,7 +44,7 @@
<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'"></div>
<div v-if="page == 'drive'"><x-drive/></div>
<div v-if="page == 'update'"></div>
</div>
</main>
@@ -63,6 +62,7 @@ import XEmoji from "./emoji.vue";
import XAnnouncements from "./announcements.vue";
import XHashtags from "./hashtags.vue";
import XUsers from "./users.vue";
import XDrive from "./drive.vue";
import { faHeadset, faArrowLeft, faShareAlt } from '@fortawesome/free-solid-svg-icons';
import { faGrin } from '@fortawesome/free-regular-svg-icons';
@@ -79,7 +79,8 @@ export default Vue.extend({
XEmoji,
XAnnouncements,
XHashtags,
XUsers
XUsers,
XDrive,
},
provide: {
isMobile

View File

@@ -7,16 +7,21 @@
<ui-input v-model="name">{{ $t('instance-name') }}</ui-input>
<ui-textarea v-model="description">{{ $t('instance-description') }}</ui-textarea>
<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>
</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="['far', 'envelope']"/></i>{{ $t('maintainer-email') }}</ui-input>
<ui-input v-model="maintainerEmail" type="email"><i slot="icon"><fa :icon="farEnvelope"/></i>{{ $t('maintainer-email') }}</ui-input>
</section>
<section class="fit-top fit-bottom">
<ui-input v-model="maxNoteTextLength">{{ $t('max-note-text-length') }}</ui-input>
</section>
<section>
<ui-switch v-model="disableRegistration">{{ $t('disable-registration') }}</ui-switch>
<ui-switch v-model="disableLocalTimeline">{{ $t('disable-local-timeline') }}</ui-switch>
</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>
@@ -27,8 +32,10 @@
<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-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-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-horizon-group>
</section>
<section>
<header><fa :icon="faGhost"/> {{ $t('proxy-account-config') }}</header>
@@ -37,10 +44,28 @@
<ui-info warn>{{ $t('proxy-account-warn') }}</ui-info>
</section>
<section>
<ui-switch v-model="disableRegistration">{{ $t('disable-registration') }}</ui-switch>
<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-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-horizon-group inputs>
<ui-input v-model="smtpUser" :disabled="!enableEmail">{{ $t('smtp-user') }}</ui-input>
<ui-input v-model="smtpPass" :disabled="!enableEmail">{{ $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>
</section>
<section>
<ui-switch v-model="disableLocalTimeline">{{ $t('disable-local-timeline') }}</ui-switch>
<header>summaly Proxy</header>
<ui-input v-model="summalyProxy">URL</ui-input>
</section>
<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>
</section>
<section>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
@@ -59,9 +84,11 @@
<div slot="title"><fa :icon="['fab', 'twitter']"/> {{ $t('twitter-integration-config') }}</div>
<section>
<ui-switch v-model="enableTwitterIntegration">{{ $t('enable-twitter-integration') }}</ui-switch>
<ui-info>{{ $t('twitter-integration-info') }}</ui-info>
<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-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-horizon-group>
<ui-info>{{ $t('twitter-integration-info', { url: `${url}/api/tw/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -70,9 +97,11 @@
<div slot="title"><fa :icon="['fab', 'github']"/> {{ $t('github-integration-config') }}</div>
<section>
<ui-switch v-model="enableGithubIntegration">{{ $t('enable-github-integration') }}</ui-switch>
<ui-info>{{ $t('github-integration-info') }}</ui-info>
<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-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-horizon-group>
<ui-info>{{ $t('github-integration-info', { url: `${url}/api/gh/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -81,9 +110,11 @@
<div slot="title"><fa :icon="['fab', 'discord']"/> {{ $t('discord-integration-config') }}</div>
<section>
<ui-switch v-model="enableDiscordIntegration">{{ $t('enable-discord-integration') }}</ui-switch>
<ui-info>{{ $t('discord-integration-info') }}</ui-info>
<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-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-horizon-group>
<ui-info>{{ $t('discord-integration-info', { url: `${url}/api/dc/cb` }) }}</ui-info>
<ui-button @click="updateMeta">{{ $t('save') }}</ui-button>
</section>
</ui-card>
@@ -93,21 +124,24 @@
<script lang="ts">
import Vue from 'vue';
import i18n from '../../i18n';
import { host } from '../../config';
import { url, host } from '../../config';
import { toUnicode } from 'punycode';
import { faHeadset, faShieldAlt, faGhost } from '@fortawesome/free-solid-svg-icons';
import { faHeadset, faShieldAlt, faGhost, faUserPlus } from '@fortawesome/free-solid-svg-icons';
import { faEnvelope as farEnvelope } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/instance.vue'),
data() {
return {
url,
host: toUnicode(host),
maintainerName: null,
maintainerEmail: null,
disableRegistration: false,
disableLocalTimeline: false,
bannerUrl: null,
errorImageUrl: null,
name: null,
description: null,
languages: null,
@@ -129,7 +163,18 @@ export default Vue.extend({
discordClientSecret: null,
proxyAccount: null,
inviteCode: null,
faHeadset, faShieldAlt, faGhost
enableExternalUserRecommendation: false,
externalUserRecommendationEngine: null,
externalUserRecommendationTimeout: null,
summalyProxy: null,
enableEmail: false,
email: null,
smtpSecure: false,
smtpHost: null,
smtpPort: null,
smtpUser: null,
smtpPass: null,
faHeadset, faShieldAlt, faGhost, faUserPlus, farEnvelope
};
},
@@ -137,7 +182,10 @@ export default Vue.extend({
this.$root.getMeta().then(meta => {
this.maintainerName = meta.maintainer.name;
this.maintainerEmail = meta.maintainer.email;
this.disableRegistration = meta.disableRegistration;
this.disableLocalTimeline = meta.disableLocalTimeline;
this.bannerUrl = meta.bannerUrl;
this.errorImageUrl = meta.errorImageUrl;
this.name = meta.name;
this.description = meta.description;
this.languages = meta.langs.join(' ');
@@ -158,6 +206,17 @@ export default Vue.extend({
this.enableDiscordIntegration = meta.enableDiscordIntegration;
this.discordClientId = meta.discordClientId;
this.discordClientSecret = meta.discordClientSecret;
this.enableExternalUserRecommendation = meta.enableExternalUserRecommendation;
this.externalUserRecommendationEngine = meta.externalUserRecommendationEngine;
this.externalUserRecommendationTimeout = meta.externalUserRecommendationTimeout;
this.summalyProxy = meta.summalyProxy;
this.enableEmail = meta.enableEmail;
this.email = meta.email;
this.smtpSecure = meta.smtpSecure;
this.smtpHost = meta.smtpHost;
this.smtpPort = meta.smtpPort;
this.smtpUser = meta.smtpUser;
this.smtpPass = meta.smtpPass;
});
},
@@ -166,7 +225,7 @@ export default Vue.extend({
this.$root.api('admin/invite').then(x => {
this.inviteCode = x.code;
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});
@@ -180,6 +239,7 @@ export default Vue.extend({
disableRegistration: this.disableRegistration,
disableLocalTimeline: this.disableLocalTimeline,
bannerUrl: this.bannerUrl,
errorImageUrl: this.errorImageUrl,
name: this.name,
description: this.description,
langs: this.languages.split(' '),
@@ -199,14 +259,25 @@ export default Vue.extend({
githubClientSecret: this.githubClientSecret,
enableDiscordIntegration: this.enableDiscordIntegration,
discordClientId: this.discordClientId,
discordClientSecret: this.discordClientSecret
discordClientSecret: this.discordClientSecret,
enableExternalUserRecommendation: this.enableExternalUserRecommendation,
externalUserRecommendationEngine: this.externalUserRecommendationEngine,
externalUserRecommendationTimeout: parseInt(this.externalUserRecommendationTimeout, 10),
summalyProxy: this.summalyProxy,
enableEmail: this.enableEmail,
email: this.email,
smtpSecure: this.smtpSecure,
smtpHost: this.smtpHost,
smtpPort: parseInt(this.smtpPort, 10),
smtpUser: this.smtpUser,
smtpPass: this.smtpPass
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('saved')
});
}).catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e
});

View File

@@ -34,14 +34,14 @@ export default Vue.extend({
const process = async () => {
const user = await this.$root.api('users/show', parseAcct(this.username));
await this.$root.api('admin/moderators/add', { userId: user.id });
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('add-moderator.added')
});
};
await process().catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e.toString()
});

View File

@@ -1,42 +1,65 @@
<template>
<div class="ucnffhbtogqgscfmqcymwmmupoknpfsw">
<ui-card>
<div slot="title">{{ $t('verify-user') }}</div>
<div slot="title"><fa :icon="faTerminal"/> {{ $t('operation') }}</div>
<section class="fit-top">
<ui-input v-model="verifyUsername" type="text">
<span slot="prefix">@</span>
<ui-input v-model="target" type="text">
<span>{{ $t('username-or-userid') }}</span>
</ui-input>
<ui-button @click="verifyUser" :disabled="verifying">{{ $t('verify') }}</ui-button>
<ui-button @click="resetPassword"><fa :icon="faKey"/> {{ $t('reset-password') }}</ui-button>
<ui-horizon-group>
<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="suspendUser" :disabled="suspending"><fa :icon="faSnowflake"/> {{ $t('suspend') }}</ui-button>
<ui-button @click="unsuspendUser" :disabled="unsuspending">{{ $t('unsuspend') }}</ui-button>
</ui-horizon-group>
<ui-button @click="showUser"><fa :icon="faSearch"/> {{ $t('lookup') }}</ui-button>
<ui-textarea v-if="user" :value="user | json5" readonly tall style="margin-top:16px;"></ui-textarea>
</section>
</ui-card>
<ui-card>
<div slot="title">{{ $t('unverify-user') }}</div>
<div slot="title"><fa :icon="faUsers"/> {{ $t('users.title') }}</div>
<section class="fit-top">
<ui-input v-model="unverifyUsername" type="text">
<span slot="prefix">@</span>
</ui-input>
<ui-button @click="unverifyUser" :disabled="unverifying">{{ $t('unverify') }}</ui-button>
</section>
</ui-card>
<ui-card>
<div slot="title">{{ $t('suspend-user') }}</div>
<section class="fit-top">
<ui-input v-model="suspendUsername" type="text">
<span slot="prefix">@</span>
</ui-input>
<ui-button @click="suspendUser" :disabled="suspending">{{ $t('suspend') }}</ui-button>
</section>
</ui-card>
<ui-card>
<div slot="title">{{ $t('unsuspend-user') }}</div>
<section class="fit-top">
<ui-input v-model="unsuspendUsername" type="text">
<span slot="prefix">@</span>
</ui-input>
<ui-button @click="unsuspendUser" :disabled="unsuspending">{{ $t('unsuspend') }}</ui-button>
<ui-horizon-group inputs>
<ui-select v-model="sort">
<span slot="label">{{ $t('users.sort.title') }}</span>
<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="origin">
<span slot="label">{{ $t('users.origin.title') }}</span>
<option value="combined">{{ $t('users.origin.combined') }}</option>
<option value="local">{{ $t('users.origin.local') }}</option>
<option value="remote">{{ $t('users.origin.remote') }}</option>
</ui-select>
</ui-horizon-group>
<sequential-entrance animation="entranceFromTop" delay="25">
<div class="kofvwchc" v-for="user in users">
<div>
<a :href="user | userPage(null, true)">
<mk-avatar class="avatar" :user="user" :disable-link="true"/>
</a>
</div>
<div>
<header>
<b><mk-user-name :user="user"/></b>
<span class="username">@{{ user | acct }}</span>
</header>
<div>
<span>{{ $t('users.updatedAt') }}: <mk-time :time="user.updatedAt" mode="detail"/></span>
</div>
<div>
<span>{{ $t('users.createdAt') }}: <mk-time :time="user.createdAt" mode="detail"/></span>
</div>
</div>
</div>
</sequential-entrance>
<ui-button v-if="existMore" @click="fetchUsers">{{ $t('@.load-more') }}</ui-button>
</section>
</ui-card>
</div>
@@ -46,38 +69,98 @@
import Vue from 'vue';
import i18n from '../../i18n';
import parseAcct from "../../../../misc/acct/parse";
import { faCertificate, faUsers, faTerminal, faSearch, faKey } from '@fortawesome/free-solid-svg-icons';
import { faSnowflake } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('admin/views/users.vue'),
data() {
return {
verifyUsername: null,
user: null,
target: null,
verifying: false,
unverifyUsername: null,
unverifying: false,
suspendUsername: null,
suspending: false,
unsuspendUsername: null,
unsuspending: false
unsuspending: false,
sort: '+createdAt',
origin: 'combined',
limit: 10,
offset: 0,
users: [],
existMore: false,
faTerminal, faCertificate, faUsers, faSnowflake, faSearch, faKey
};
},
watch: {
sort() {
this.users = [];
this.offset = 0;
this.fetchUsers();
},
origin() {
this.users = [];
this.offset = 0;
this.fetchUsers();
}
},
mounted() {
this.fetchUsers();
},
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()
});
}
}
},
async showUser() {
const user = await this.fetchUser();
this.$root.api('admin/show-user', { userId: user.id }).then(info => {
this.user = info;
});
},
async resetPassword() {
const user = await this.fetchUser();
this.$root.api('admin/reset-password', { userId: user.id }).then(res => {
this.$root.dialog({
type: 'success',
text: this.$t('password-updated', { password: res.password })
});
});
},
async verifyUser() {
this.verifying = true;
const process = async () => {
const user = await this.$root.api('users/show', parseAcct(this.verifyUsername));
const user = await this.fetchUser();
await this.$root.api('admin/verify-user', { userId: user.id });
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('verified')
});
};
await process().catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e.toString()
});
@@ -90,16 +173,16 @@ export default Vue.extend({
this.unverifying = true;
const process = async () => {
const user = await this.$root.api('users/show', parseAcct(this.unverifyUsername));
const user = await this.fetchUser();
await this.$root.api('admin/unverify-user', { userId: user.id });
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('unverified')
});
};
await process().catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e.toString()
});
@@ -112,16 +195,16 @@ export default Vue.extend({
this.suspending = true;
const process = async () => {
const user = await this.$root.api('users/show', parseAcct(this.suspendUsername));
const user = await this.fetchUser();
await this.$root.api('admin/suspend-user', { userId: user.id });
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('suspended')
});
};
await process().catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e.toString()
});
@@ -134,22 +217,40 @@ export default Vue.extend({
this.unsuspending = true;
const process = async () => {
const user = await this.$root.api('users/show', parseAcct(this.unsuspendUsername));
const user = await this.fetchUser();
await this.$root.api('admin/unsuspend-user', { userId: user.id });
this.$root.alert({
this.$root.dialog({
type: 'success',
text: this.$t('unsuspended')
});
};
await process().catch(e => {
this.$root.alert({
this.$root.dialog({
type: 'error',
text: e.toString()
});
});
this.unsuspending = false;
},
fetchUsers() {
this.$root.api('users', {
origin: this.origin,
sort: this.sort,
offset: this.offset,
limit: this.limit + 1
}).then(users => {
if (users.length == this.limit + 1) {
users.pop();
this.existMore = true;
} else {
this.existMore = false;
}
this.users = this.users.concat(users);
this.offset += this.limit;
});
}
}
});
@@ -160,4 +261,27 @@ export default Vue.extend({
@media (min-width 500px)
padding 16px
.kofvwchc
display flex
padding 16px 0
border-top solid 1px var(--faceDivider)
> div:first-child
> a
> .avatar
width 64px
height 64px
> div:last-child
flex 1
padding-left 16px
@media (max-width 500px)
font-size 14px
> header
> .username
margin-left 8px
opacity 0.7
</style>

View File

@@ -10,3 +10,19 @@
opacity: 0;
transform: scaleY(0);
}
.entranceFromTop {
animation-duration: 0.5s;
animation-name: entranceFromTop;
}
@keyframes entranceFromTop {
from {
opacity: 0;
transform: translateY(-64px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

View File

@@ -9,6 +9,7 @@ import './style.styl';
import init from '../init';
import Index from './views/index.vue';
import NotFound from '../common/views/pages/404.vue';
/**
* init
@@ -20,6 +21,7 @@ init(launch => {
base: '/auth/',
routes: [
{ path: '/:token', component: Index },
{ path: '*', component: NotFound }
]
});

View File

@@ -17,9 +17,9 @@
//#region Apply theme
const theme = localStorage.getItem('theme');
if (theme) {
Object.entries(JSON.parse(theme)).forEach(([k, v]) => {
for (const [k, v] of Object.entries(JSON.parse(theme))) {
document.documentElement.style.setProperty(`--${k}`, v.toString());
});
}
}
//#endregion
@@ -160,7 +160,7 @@
navigator.serviceWorker.controller.postMessage('clear');
navigator.serviceWorker.getRegistrations().then(registrations => {
registrations.forEach(registration => registration.unregister());
for (const registration of registrations) registration.unregister();
});
} catch (e) {
console.error(e);

View File

@@ -1,6 +1,6 @@
import Vue from 'vue';
export default function<T extends object>(data: {
export default function <T extends object>(data: {
name: string;
props?: () => T;
}) {
@@ -53,11 +53,10 @@ export default function<T extends object>(data: {
mergeProps() {
if (data.props) {
const defaultProps = data.props();
Object.keys(defaultProps).forEach(prop => {
if (!this.props.hasOwnProperty(prop)) {
Vue.set(this.props, prop, defaultProps[prop]);
}
});
for (const prop of Object.keys(defaultProps)) {
if (this.props.hasOwnProperty(prop)) continue;
Vue.set(this.props, prop, defaultProps[prop]);
}
}
},

View File

@@ -28,15 +28,15 @@ const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): a
shift: false
} as pattern;
part.trim().split('+').forEach(key => {
key = key.trim().toLowerCase();
const keys = part.trim().split('+').map(x => x.trim().toLowerCase());
for (const key of keys) {
switch (key) {
case 'ctrl': pattern.ctrl = true; break;
case 'alt': pattern.alt = true; break;
case 'shift': pattern.shift = true; break;
default: pattern.which = keyCode(key).map(k => k.toLowerCase());
}
});
}
return pattern;
});
@@ -77,11 +77,7 @@ export default {
const matched = match(e, action.patterns);
if (matched) {
if (el._hotkey_global) {
if (match(e, targetReservedKeys)) {
return;
}
}
if (el._hotkey_global && match(e, targetReservedKeys)) return;
e.preventDefault();
e.stopPropagation();

View File

@@ -14,19 +14,20 @@ export default async function($root: any, force = false, silent = false) {
navigator.serviceWorker.controller.postMessage('clear');
}
navigator.serviceWorker.getRegistrations().then(registrations => {
registrations.forEach(registration => registration.unregister());
});
const registrations = await navigator.serviceWorker.getRegistrations();
for (const registration of registrations) {
registration.unregister();
}
} catch (e) {
console.error(e);
}
if (!silent) {
$root.alert({
/*if (!silent) {
$root.dialog({
title: $root.$t('@.update-available-title'),
text: $root.$t('@.update-available', { newer, current })
});
}
}*/
return newer;
} else {

View File

@@ -0,0 +1,25 @@
/**
* Format like the uptime command
*/
export default function(sec) {
if (!sec) return sec;
const day = Math.floor(sec / 86400);
const tod = sec % 86400;
// Days part in string: 2 days, 1 day, null
const d = day >= 2 ? `${day} days` : day >= 1 ? `${day} day` : null;
// Time part in string: 1 sec, 1 min, 1:01
const t
= tod < 60 ? `${Math.floor(tod)} sec`
: tod < 3600 ? `${Math.floor(tod / 60)} min`
: `${Math.floor(tod / 60 / 60)}:${Math.floor((tod / 60) % 60).toString().padStart(2, "0")}`;
let str = '';
if (d) str += `${d}, `;
str += t;
return str;
}

View File

@@ -4,7 +4,7 @@ export default ($root: any) => {
require('fuckadblock');
function adBlockDetected() {
$root.alert({
$root.dialog({
title: $root.$t('@.adblock.detected'),
text: $root.$t('@.adblock.warning')
});

View File

@@ -2,7 +2,7 @@ const faces = [
'(=^・・^=)',
'v(\'ω\')v',
'🐡( \'-\' 🐡 )フグパンチ!!!!',
'🖕(´・_・`)🖕',
'✌️(´・_・`)✌️',
'(。><。)',
'(Δ・x・Δ)'
];

View File

@@ -78,9 +78,10 @@ export default (opts: Opts = {}) => ({
urls(): string[] {
if (this.appearNote.text) {
const ast = parse(this.appearNote.text);
// TODO: 再帰的にURL要素がないか調べる
return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
.map(t => t.url));
.filter(t => ((t.name == 'url' || t.name == 'link') && t.props.url && !t.props.silent))
.map(t => t.props.url));
} else {
return null;
}
@@ -141,7 +142,7 @@ export default (opts: Opts = {}) => ({
this.$root.api('notes/favorites/create', {
noteId: this.appearNote.id
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
splash: true
});

View File

@@ -2,27 +2,8 @@ export default function(me, settings, note) {
const isMyNote = note.userId == me.id;
const isPureRenote = note.renoteId != null && note.text == null && note.fileIds.length == 0 && note.poll == null;
if (settings.showMyRenotes === false) {
if (isMyNote && isPureRenote) {
return true;
}
}
if (settings.showRenotedMyNotes === false) {
if (isPureRenote && (note.renote.userId == me.id)) {
return true;
}
}
if (settings.showLocalRenotes === false) {
if (isPureRenote && (note.renote.user.host == null)) {
return true;
}
}
if (!isMyNote && note.text && settings.mutedWords.some(q => !q.some(word => !note.text.includes(word)))) {
return true;
}
return false;
return settings.showMyRenotes === false && isMyNote && isPureRenote ||
settings.showRenotedMyNotes === false && isPureRenote && note.renote.userId == me.id ||
settings.showLocalRenotes === false && isPureRenote && note.renote.user.host == null ||
!isMyNote && note.text && settings.mutedWords.some(q => q.length > 0 && !q.some(word => !note.text.includes(word)));
}

View File

@@ -75,12 +75,10 @@ export default class Stream extends EventEmitter {
// チャンネル再接続
if (isReconnect) {
this.sharedConnectionPools.forEach(p => {
for (const p of this.sharedConnectionPools)
p.connect();
});
this.nonSharedConnections.forEach(c => {
for (const c of this.nonSharedConnections)
c.connect();
});
}
}
@@ -113,9 +111,9 @@ export default class Stream extends EventEmitter {
connections = [this.nonSharedConnections.find(c => c.id === id)];
}
connections.filter(c => c != null).forEach(c => {
for (const c of connections.filter(c => c != null)) {
c.emit(body.type, body.body);
});
}
} else {
this.emit(type, body);
}

View File

@@ -32,7 +32,7 @@
<script lang="ts">
import Vue from 'vue';
import { themeColor } from '../../../config';
import * as tinycolor from 'tinycolor2';
export default Vue.extend({
props: {
@@ -75,7 +75,7 @@ export default Vue.extend({
return this.dark ? '#fff' : '#777';
},
hHandColor(): string {
return themeColor;
return tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--themeColor')).toHexString();
},
ms(): number {

View File

@@ -50,10 +50,13 @@ export default Vue.extend({
methods: {
regenerateToken() {
this.$input({
this.$root.dialog({
title: this.$t('enter-password'),
type: 'password'
}).then(password => {
input: {
type: 'password'
}
}).then(({ canceled, result: password }) => {
if (canceled) return;
this.$root.api('i/regenerate_token', {
password: password
});

View File

@@ -3,7 +3,9 @@
<ol class="users" ref="suggests" v-if="users.length > 0">
<li v-for="user in users" @click="complete(type, user)" @keydown="onKeydown" tabindex="-1">
<img class="avatar" :src="user.avatarUrl" alt=""/>
<span class="name">{{ user | userName }}</span>
<span class="name">
<mk-user-name :user="user"/>
</span>
<span class="username">@{{ user | acct }}</span>
</li>
</ol>
@@ -42,8 +44,9 @@ const lib = Object.entries(emojilib.lib).filter((x: any) => {
});
const char2file = (char: string) => {
let codes = [...char].map(x => x.codePointAt(0).toString(16));
let codes = Array.from(char).map(x => x.codePointAt(0).toString(16));
if (!codes.includes('200d')) codes = codes.filter(x => x != 'fe0f');
codes = codes.filter(x => x && x.length);
return codes.join('-');
};
@@ -54,18 +57,18 @@ const emjdb: EmojiDef[] = lib.map((x: any) => ({
url: `https://twemoji.maxcdn.com/2/svg/${char2file(x[1].char)}.svg`
}));
lib.forEach((x: any) => {
for (const x of lib as any) {
if (x[1].keywords) {
x[1].keywords.forEach(k => {
for (const k of x[1].keywords) {
emjdb.push({
emoji: x[1].char,
name: k,
aliasOf: x[0],
url: `https://twemoji.maxcdn.com/2/svg/${char2file(x[1].char)}.svg`
});
});
}
}
});
}
emjdb.sort((a, b) => a.name.length - b.name.length);
@@ -117,7 +120,7 @@ export default Vue.extend({
const customEmojis = (this.$root.getMetaSync() || { emojis: [] }).emojis || [];
const emojiDefinitions: EmojiDef[] = [];
customEmojis.forEach(x => {
for (const x of customEmojis) {
emojiDefinitions.push({
name: x.name,
emoji: `:${x.name}:`,
@@ -126,7 +129,7 @@ export default Vue.extend({
});
if (x.aliases) {
x.aliases.forEach(alias => {
for (const alias of x.aliases) {
emojiDefinitions.push({
name: alias,
aliasOf: x.name,
@@ -134,9 +137,9 @@ export default Vue.extend({
url: x.url,
isCustomEmoji: true
});
});
}
}
});
}
emojiDefinitions.sort((a, b) => a.name.length - b.name.length);
@@ -145,9 +148,9 @@ export default Vue.extend({
this.textarea.addEventListener('keydown', this.onKeydown);
Array.from(document.querySelectorAll('body *')).forEach(el => {
for (const el of Array.from(document.querySelectorAll('body *'))) {
el.addEventListener('mousedown', this.onMousedown);
});
}
this.$nextTick(() => {
this.exec();
@@ -163,18 +166,18 @@ export default Vue.extend({
beforeDestroy() {
this.textarea.removeEventListener('keydown', this.onKeydown);
Array.from(document.querySelectorAll('body *')).forEach(el => {
for (const el of Array.from(document.querySelectorAll('body *'))) {
el.removeEventListener('mousedown', this.onMousedown);
});
}
},
methods: {
exec() {
this.select = -1;
if (this.$refs.suggests) {
Array.from(this.items).forEach(el => {
for (const el of Array.from(this.items)) {
el.removeAttribute('data-selected');
});
}
}
if (this.type == 'user') {
@@ -187,7 +190,8 @@ export default Vue.extend({
} else {
this.$root.api('users/search', {
query: this.q,
limit: 30
limit: 10,
detail: false
}).then(users => {
this.users = users;
this.fetching = false;
@@ -312,9 +316,9 @@ export default Vue.extend({
},
applySelect() {
Array.from(this.items).forEach(el => {
for (const el of Array.from(this.items)) {
el.removeAttribute('data-selected');
});
}
this.items[this.select].setAttribute('data-selected', 'true');
(this.items[this.select] as any).focus();

View File

@@ -1,21 +1,36 @@
<template>
<button class="nrvgflfuaxwgkxoynpnumyookecqrrvh" @click="toggle">{{ value ? this.$t('hide') : this.$t('show') }}</button>
<button class="nrvgflfuaxwgkxoynpnumyookecqrrvh" @click="toggle">
<b>{{ value ? this.$t('hide') : this.$t('show') }}</b>
<span v-if="!value">
<span v-if="note.text">{{ this.$t('chars', { count: length(note.text) }) | number }}</span>
<span v-if="note.text && note.files && note.files.length > 0"> / </span>
<span v-if="note.files && note.files.length > 0">{{ this.$t('files', { count: note.files.length }) }}</span>
</span>
</button>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { length } from 'stringz';
export default Vue.extend({
i18n: i18n('common/views/components/cw-button.vue'),
props: {
value: {
type: Boolean,
required: true
},
note: {
type: Object,
required: true
}
},
methods: {
length,
toggle() {
this.$emit('input', !this.value);
}
@@ -37,4 +52,12 @@ export default Vue.extend({
&:hover
background var(--cwButtonHoverBg)
> span
margin-left 4px
&:before
content '('
&:after
content ')'
</style>

View File

@@ -2,12 +2,17 @@
<div class="felqjxyj" :class="{ splash }">
<div class="bg" ref="bg" @click="onBgClick"></div>
<div class="main" ref="main">
<div class="icon" :class="type"><fa :icon="icon"/></div>
<div class="icon" v-if="!input && !select && !user" :class="type"><fa :icon="icon"/></div>
<header v-if="title" v-html="title"></header>
<div class="body" v-if="text" v-html="text"></div>
<ui-horizon-group no-grow class="buttons" v-if="!splash">
<ui-button @click="ok" primary autofocus>OK</ui-button>
<ui-button @click="cancel" v-if="showCancelButton">Cancel</ui-button>
<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-select v-if="select" v-model="selectedValue">
<option v-for="item in select.items" :value="item.value">{{ item.text }}</option>
</ui-select>
<ui-horizon-group no-grow class="buttons fit-bottom" v-if="!splash">
<ui-button @click="ok" primary :autofocus="!input && !select && !user">OK</ui-button>
<ui-button @click="cancel" v-if="showCancelButton || input || select || user">Cancel</ui-button>
</ui-horizon-group>
</div>
</div>
@@ -17,6 +22,7 @@
import Vue from 'vue';
import * as anime from 'animejs';
import { faTimesCircle, faQuestionCircle } from '@fortawesome/free-regular-svg-icons';
import parseAcct from "../../../../../misc/acct/parse";
export default Vue.extend({
props: {
@@ -33,6 +39,15 @@ export default Vue.extend({
type: String,
required: false
},
input: {
required: false
},
select: {
required: false
},
user: {
required: false
},
showCancelButton: {
type: Boolean,
default: false
@@ -43,6 +58,14 @@ export default Vue.extend({
}
},
data() {
return {
inputValue: this.input && this.input.default ? this.input.default : null,
userInputValue: null,
selectedValue: null
};
},
computed: {
icon(): any {
switch (this.type) {
@@ -82,9 +105,21 @@ export default Vue.extend({
},
methods: {
ok() {
this.$emit('ok');
this.close();
async ok() {
if (this.user) {
const user = await this.$root.api('users/show', parseAcct(this.userInputValue));
if (user) {
this.$emit('ok', user);
this.close();
}
} else {
const result =
this.input ? this.inputValue :
this.select ? this.selectedValue :
true;
this.$emit('ok', result);
this.close();
}
},
cancel() {
@@ -114,6 +149,14 @@ export default Vue.extend({
onBgClick() {
this.cancel();
},
onInputKeydown(e) {
if (e.which == 13) { // Enter
e.preventDefault();
e.stopPropagation();
this.ok();
}
}
}
});
@@ -180,8 +223,11 @@ export default Vue.extend({
display block
margin 0 auto
& + header
margin-top 16px
> header
margin 16px 0 8px 0
margin 0 0 8px 0
font-weight bold
font-size 20px

View File

@@ -1,64 +0,0 @@
<template>
<div class="mk-discord-setting">
<p>{{ $t('description') }}</p>
<p class="account" v-if="$store.state.i.discord" :title="`Discord ID: ${$store.state.i.discord.id}`">{{ $t('connected-to') }}: <a :href="`https://discordapp.com/users/${$store.state.i.discord.id}`" target="_blank">@{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}</a></p>
<p>
<a :href="`${apiUrl}/connect/discord`" target="_blank" @click.prevent="connect">{{ $store.state.i.discord ? this.$t('reconnect') : this.$t('connect') }}</a>
<span v-if="$store.state.i.discord"> or </span>
<a :href="`${apiUrl}/disconnect/discord`" target="_blank" v-if="$store.state.i.discord" @click.prevent="disconnect">{{ $t('disconnect') }}</a>
</p>
<p class="id" v-if="$store.state.i.discord">Discord ID: {{ $store.state.i.discord.id }}</p>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { apiUrl } from '../../../config';
export default Vue.extend({
i18n: i18n('common/views/components/discord-setting.vue'),
data() {
return {
form: null,
apiUrl
};
},
mounted() {
this.$watch('$store.state.i', () => {
if (this.$store.state.i.discord && this.form)
this.form.close();
}, {
deep: true
});
},
methods: {
connect() {
this.form = window.open(apiUrl + '/connect/discord',
'discord_connect_window',
'height=570, width=520');
},
disconnect() {
window.open(apiUrl + '/disconnect/discord',
'discord_disconnect_window',
'height=570, width=520');
}
}
});
</script>
<style lang="stylus" scoped>
.mk-discord-setting
.account
border solid 1px #e1e8ed
border-radius 4px
padding 16px
a
font-weight bold
color inherit
.id
color #8899a6
</style>

View File

@@ -114,11 +114,11 @@ export default Vue.extend({
},
onScroll(e) {
const section = this.categories.forEach(x => {
for (const x of this.categories) {
const top = e.target.scrollTop;
const el = this.$refs[x.ref][0];
x.isActive = el.offsetTop <= top && el.offsetTop + el.offsetHeight > top;
});
}
},
chosen(emoji) {

View File

@@ -1,5 +1,5 @@
<template>
<img v-if="customEmoji" class="fvgwvorwhxigeolkkrcderjzcawqrscl custom" :src="url" :alt="alt" :title="alt"/>
<img v-if="customEmoji" class="fvgwvorwhxigeolkkrcderjzcawqrscl custom" :class="{ normal: normal }" :src="url" :alt="alt" :title="alt"/>
<img v-else-if="char && !useOsDefaultEmojis" class="fvgwvorwhxigeolkkrcderjzcawqrscl" :src="url" :alt="alt" :title="alt"/>
<span v-else-if="char && useOsDefaultEmojis">{{ char }}</span>
<span v-else>:{{ name }}:</span>
@@ -20,6 +20,11 @@ export default Vue.extend({
type: String,
required: false
},
normal: {
type: Boolean,
required: false,
default: false
},
customEmojis: {
required: false,
default: () => []
@@ -61,8 +66,9 @@ export default Vue.extend({
}
if (this.char) {
let codes = [...this.char].map(x => x.codePointAt(0).toString(16));
let codes = Array.from(this.char).map(x => x.codePointAt(0).toString(16));
if (!codes.includes('200d')) codes = codes.filter(x => x != 'fe0f');
codes = codes.filter(x => x && x.length);
this.url = `https://twemoji.maxcdn.com/2/svg/${codes.join('-')}.svg`;
}
@@ -83,4 +89,11 @@ export default Vue.extend({
&:hover
transform scale(1.2)
&.normal
height 1.25em
vertical-align -0.25em
&:hover
transform none
</style>

View File

@@ -1,7 +1,7 @@
<template>
<div class="xqnhankfuuilcwvhgsopeqncafzsquya">
<button class="go-index" v-if="selfNav" @click="goIndex"><fa icon="arrow-left"/></button>
<header><b><router-link :to="blackUser | userPage">{{ blackUser | userName }}</router-link></b>({{ $t('@.reversi.black') }}) vs <b><router-link :to="whiteUser | userPage">{{ whiteUser | userName }}</router-link></b>({{ $t('@.reversi.white') }})</header>
<header><b><router-link :to="blackUser | userPage"><mk-user-name :user="blackUser"/></router-link></b>({{ $t('@.reversi.black') }}) vs <b><router-link :to="whiteUser | userPage"><mk-user-name :user="whiteUser"/></router-link></b>({{ $t('@.reversi.white') }})</header>
<div style="overflow: hidden; line-height: 28px;">
<p class="turn" v-if="!iAmPlayer && !game.isEnded">{{ $t('@.reversi.turn-of', { name: $options.filters.userName(turnUser) }) }}<mk-ellipsis/></p>
@@ -10,7 +10,7 @@
<p class="turn2" v-if="iAmPlayer && !game.isEnded && isMyTurn" v-animate-css="{ classes: 'tada', iteration: 'infinite' }">{{ $t('@.reversi.my-turn') }}</p>
<p class="result" v-if="game.isEnded && logPos == logs.length">
<template v-if="game.winner">
<span>{{ $t('@.reversi.won', { name: $options.filters.userName(game.winner) }) }}</span>
<misskey-flavored-markdown :text="$t('@.reversi.won', { name: $options.filters.userName(game.winner) })" :shouldBreak="false" :plainText="true" :custom-emojis="game.winner.emojis"/>
<span v-if="game.surrendered != null"> ({{ $t('surrendered') }})</span>
</template>
<template v-else>{{ $t('@.reversi.drawn') }}</template>
@@ -30,8 +30,14 @@
:class="{ empty: stone == null, none: o.map[i] == 'null', isEnded: game.isEnded, myTurn: !game.isEnded && isMyTurn, can: turnUser ? o.canPut(turnUser.id == blackUser.id, i) : null, prev: o.prevPos == i }"
@click="set(i)"
:title="`${String.fromCharCode(65 + o.transformPosToXy(i)[0])}${o.transformPosToXy(i)[1] + 1}`">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<template v-if="!$store.state.settings.games.reversi.useWhiteBlackStones">
<img v-if="stone === true" :src="blackUser.avatarUrl" alt="black" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
<img v-if="stone === false" :src="whiteUser.avatarUrl" alt="white" :class="{ contrast: $store.state.settings.games.reversi.useContrastStones }">
</template>
<template v-if="$store.state.settings.games.reversi.useWhiteBlackStones">
<fa v-if="stone === true" :icon="fasCircle"/>
<fa v-if="stone === false" :icon="farCircle"/>
</template>
</div>
</div>
<div class="labels-y" v-if="this.$store.state.settings.games.reversi.showBoardLabels">
@@ -50,15 +56,13 @@
</div>
<div class="player" v-if="game.isEnded">
<div>
<button @click="logPos = 0" :disabled="logPos == 0"><fa icon="angle-double-left"/></button>
<button @click="logPos--" :disabled="logPos == 0"><fa icon="angle-left"/></button>
</div>
<span>{{ logPos }} / {{ logs.length }}</span>
<div>
<button @click="logPos++" :disabled="logPos == logs.length"><fa icon="angle-right"/></button>
<button @click="logPos = logs.length" :disabled="logPos == logs.length"><fa icon="angle-double-right"/></button>
</div>
<ui-horizon-group>
<ui-button @click="logPos = 0" :disabled="logPos == 0"><fa :icon="faAngleDoubleLeft"/></ui-button>
<ui-button @click="logPos--" :disabled="logPos == 0"><fa :icon="faAngleLeft"/></ui-button>
<ui-button @click="logPos++" :disabled="logPos == logs.length"><fa :icon="faAngleRight"/></ui-button>
<ui-button @click="logPos = logs.length" :disabled="logPos == logs.length"><fa :icon="faAngleDoubleRight"/></ui-button>
</ui-horizon-group>
</div>
<div class="info">
@@ -75,6 +79,9 @@ import i18n from '../../../../../i18n';
import * as CRC32 from 'crc-32';
import Reversi, { Color } from '../../../../../../../games/reversi/core';
import { url } from '../../../../../config';
import { faAngleDoubleLeft, faAngleLeft, faAngleRight, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons';
import { faCircle as fasCircle } from '@fortawesome/free-solid-svg-icons';
import { faCircle as farCircle } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('common/views/components/games/reversi/reversi.game.vue'),
@@ -99,7 +106,8 @@ export default Vue.extend({
o: null as Reversi,
logs: [],
logPos: 0,
pollingClock: null
pollingClock: null,
faAngleDoubleLeft, faAngleLeft, faAngleRight, faAngleDoubleRight, fasCircle, farCircle
};
},
@@ -177,9 +185,9 @@ export default Vue.extend({
loopedBoard: this.game.settings.loopedBoard
});
this.game.logs.forEach(log => {
for (const log of this.game.logs) {
this.o.put(log.color, log.pos);
});
}
this.logs = this.game.logs;
this.logPos = this.logs.length;
@@ -279,9 +287,9 @@ export default Vue.extend({
loopedBoard: this.game.settings.loopedBoard
});
this.game.logs.forEach(log => {
for (const log of this.game.logs) {
this.o.put(log.color, log.pos, true);
});
}
this.logs = this.game.logs;
this.logPos = this.logs.length;
@@ -412,6 +420,11 @@ export default Vue.extend({
&.none
border-color transparent !important
> svg
display block
width 100%
height 100%
> img
display block
width 100%
@@ -449,7 +462,9 @@ export default Vue.extend({
padding-bottom 16px
> .player
padding-bottom 32px
padding 0 16px 32px 16px
margin 0 auto
max-width 500px
> span
display inline-block

View File

@@ -19,7 +19,7 @@
<h2>{{ $t('invitations') }}</h2>
<div class="invitation" v-for="i in invitations" tabindex="-1" @click="accept(i)">
<mk-avatar class="avatar" :user="i.parent"/>
<span class="name"><b>{{ i.parent | userName }}</b></span>
<span class="name"><b><mk-user-name :user="i.parent"/></b></span>
<span class="username">@{{ i.parent.username }}</span>
<mk-time :time="i.createdAt"/>
</div>
@@ -29,7 +29,7 @@
<a class="game" v-for="g in myGames" tabindex="-1" @click.prevent="go(g)" :href="`/reversi/${g.id}`">
<mk-avatar class="avatar" :user="g.user1"/>
<mk-avatar class="avatar" :user="g.user2"/>
<span><b>{{ g.user1 | userName }}</b> vs <b>{{ g.user2 | userName }}</b></span>
<span><b><mk-user-name :user="g.user1"/></b> vs <b><mk-user-name :user="g.user2"/></b></span>
<span class="state">{{ g.isEnded ? $t('game-state.ended') : $t('game-state.playing') }}</span>
<mk-time :time="g.createdAt" />
</a>
@@ -39,7 +39,7 @@
<a class="game" v-for="g in games" tabindex="-1" @click.prevent="go(g)" :href="`/reversi/${g.id}`">
<mk-avatar class="avatar" :user="g.user1"/>
<mk-avatar class="avatar" :user="g.user2"/>
<span><b>{{ g.user1 | userName }}</b> vs <b>{{ g.user2 | userName }}</b></span>
<span><b><mk-user-name :user="g.user1"/></b> vs <b><mk-user-name :user="g.user2"/></b></span>
<span class="state">{{ g.isEnded ? $t('game-state.ended') : $t('game-state.playing') }}</span>
<mk-time :time="g.createdAt" />
</a>
@@ -99,23 +99,22 @@ export default Vue.extend({
this.$emit('go', game);
},
match() {
this.$input({
title: this.$t('enter-username')
}).then(username => {
this.$root.api('users/show', {
username
}).then(user => {
this.$root.api('games/reversi/match', {
userId: user.id
}).then(res => {
if (res == null) {
this.$emit('matching', user);
} else {
this.$emit('go', res);
}
});
});
async match() {
const { result: user } = await this.$root.dialog({
title: this.$t('enter-username'),
user: {
local: true
}
});
if (user == null) return;
this.$root.api('games/reversi/match', {
userId: user.id
}).then(res => {
if (res == null) {
this.$emit('matching', user);
} else {
this.$emit('go', res);
}
});
},

View File

@@ -1,6 +1,6 @@
<template>
<div class="urbixznjwwuukfsckrwzwsqzsxornqij">
<header><b>{{ game.user1 | userName }}</b> vs <b>{{ game.user2 | userName }}</b></header>
<header><b><mk-user-name :user="game.user1"/></b> vs <b><mk-user-name :user="game.user2"/></b></header>
<div>
<p>{{ $t('settings-of-the-game') }}</p>
@@ -22,8 +22,8 @@
<div v-for="(x, i) in game.settings.map.join('')"
:data-none="x == ' '"
@click="onPixelClick(i, x)">
<template v-if="x == 'b'"><template v-if="$store.state.device.darkmode"><fa :icon="['far', 'circle']"/></template><template v-else><fa icon="circle"/></template></template>
<template v-if="x == 'w'"><template v-if="$store.state.device.darkmode"><fa :icon="['far', 'circle']"/></template><template v-else><fa icon="circle"/></template></template>
<fa v-if="x == 'b'" :icon="fasCircle"/>
<fa v-if="x == 'w'" :icon="farCircle"/>
</div>
</div>
</div>
@@ -36,8 +36,8 @@
<div>
<form-radio v-model="game.settings.bw" value="random" @change="updateSettings">{{ $t('random') }}</form-radio>
<form-radio v-model="game.settings.bw" :value="1" @change="updateSettings">{{ this.$t('black-is').split('{}')[0] }}<b>{{ game.user1 | userName }}</b>{{ this.$t('black-is').split('{}')[1] }}</form-radio>
<form-radio v-model="game.settings.bw" :value="2" @change="updateSettings">{{ this.$t('black-is').split('{}')[0] }}<b>{{ game.user2 | userName }}</b>{{ this.$t('black-is').split('{}')[1] }}</form-radio>
<form-radio v-model="game.settings.bw" :value="1" @change="updateSettings">{{ this.$t('black-is').split('{}')[0] }}<b><mk-user-name :user="game.user1"/></b>{{ this.$t('black-is').split('{}')[1] }}</form-radio>
<form-radio v-model="game.settings.bw" :value="2" @change="updateSettings">{{ this.$t('black-is').split('{}')[0] }}<b><mk-user-name :user="game.user2"/></b>{{ this.$t('black-is').split('{}')[1] }}</form-radio>
</div>
</div>
@@ -60,7 +60,7 @@
<div>
<template v-for="item in form">
<ui-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" :text="item.label" @change="onChangeForm(item)">{{ item.desc || '' }}</ui-switch>
<ui-switch v-if="item.type == 'switch'" v-model="item.value" :key="item.id" @change="onChangeForm(item)">{{ item.label || item.desc || '' }}</ui-switch>
<div class="card" v-if="item.type == 'radio'" :key="item.id">
<header>
@@ -117,6 +117,8 @@
import Vue from 'vue';
import i18n from '../../../../../i18n';
import * as maps from '../../../../../../../games/reversi/maps';
import { faCircle as fasCircle } from '@fortawesome/free-solid-svg-icons';
import { faCircle as farCircle } from '@fortawesome/free-regular-svg-icons';
export default Vue.extend({
i18n: i18n('common/views/components/games/reversi/reversi.room.vue'),
@@ -129,7 +131,8 @@ export default Vue.extend({
mapName: maps.eighteight.name,
maps: maps,
form: null,
messages: []
messages: [],
fasCircle, farCircle
};
},

View File

@@ -4,7 +4,7 @@
<x-gameroom :game="game" :self-nav="selfNav" @go-index="goIndex"/>
</div>
<div class="matching" v-else-if="matching">
<h1>{{ this.$t('matching.waiting-for').split('{}')[0] }}<b>{{ matching | userName }}</b>{{ this.$t('matching.waiting-for').split('{}')[1] }}<mk-ellipsis/></h1>
<h1>{{ this.$t('matching.waiting-for').split('{}')[0] }}<b><mk-user-name :user="matching"/></b>{{ this.$t('matching.waiting-for').split('{}')[1] }}<mk-ellipsis/></h1>
<div class="cancel">
<form-button round @click="cancel">{{ $t('matching.cancel') }}</form-button>
</div>

View File

@@ -1,64 +0,0 @@
<template>
<div class="mk-github-setting">
<p>{{ $t('description') }}</p>
<p class="account" v-if="$store.state.i.github" :title="`GitHub ID: ${$store.state.i.github.id}`">{{ $t('connected-to') }}: <a :href="`https://github.com/${$store.state.i.github.login}`" target="_blank">@{{ $store.state.i.github.login }}</a></p>
<p>
<a :href="`${apiUrl}/connect/github`" target="_blank" @click.prevent="connect">{{ $store.state.i.github ? this.$t('reconnect') : this.$t('connect') }}</a>
<span v-if="$store.state.i.github"> or </span>
<a :href="`${apiUrl}/disconnect/github`" target="_blank" v-if="$store.state.i.github" @click.prevent="disconnect">{{ $t('disconnect') }}</a>
</p>
<p class="id" v-if="$store.state.i.github">GitHub ID: {{ $store.state.i.github.id }}</p>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { apiUrl } from '../../../config';
export default Vue.extend({
i18n: i18n('common/views/components/github-setting.vue'),
data() {
return {
form: null,
apiUrl
};
},
mounted() {
this.$watch('$store.state.i', () => {
if (this.$store.state.i.github && this.form)
this.form.close();
}, {
deep: true
});
},
methods: {
connect() {
this.form = window.open(apiUrl + '/connect/github',
'github_connect_window',
'height=570, width=520');
},
disconnect() {
window.open(apiUrl + '/disconnect/github',
'github_disconnect_window',
'height=570, width=520');
}
}
});
</script>
<style lang="stylus" scoped>
.mk-github-setting
.account
border solid 1px #e1e8ed
border-radius 4px
padding 16px
a
font-weight bold
color inherit
.id
color #8899a6
</style>

View File

@@ -22,7 +22,10 @@ export default Vue.extend({
},
methods: {
search() {
window.open(`https://www.google.com/?#q=${this.query}`, '_blank');
const engine = this.$store.state.settings.webSearchEngine ||
'https://www.google.com/?#q={{query}}';
const url = engine.replace('{{query}}', this.query)
window.open(url, '_blank');
}
}
});

View File

@@ -1,5 +1,6 @@
import Vue from 'vue';
import userName from './user-name.vue';
import followButton from './follow-button.vue';
import error from './error.vue';
import noteSkeleton from './note-skeleton.vue';
@@ -44,6 +45,7 @@ import uiInfo from './ui/info.vue';
import formButton from './ui/form/button.vue';
import formRadio from './ui/form/radio.vue';
Vue.component('mk-user-name', userName);
Vue.component('mk-follow-button', followButton);
Vue.component('mk-error', error);
Vue.component('mk-note-skeleton', noteSkeleton);

View File

@@ -0,0 +1,114 @@
<template>
<ui-card v-if="enableTwitterIntegration || enableDiscordIntegration || enableGithubIntegration">
<div slot="title"><fa icon="share-alt"/> {{ $t('title') }}</div>
<section v-if="enableTwitterIntegration">
<header><fa :icon="['fab', 'twitter']"/> Twitter</header>
<p v-if="$store.state.i.twitter">{{ $t('connected-to') }}: <a :href="`https://twitter.com/${$store.state.i.twitter.screenName}`" target="_blank">@{{ $store.state.i.twitter.screenName }}</a></p>
<ui-button v-if="$store.state.i.twitter" @click="disconnectTwitter">{{ $t('disconnect') }}</ui-button>
<ui-button v-else @click="connectTwitter">{{ $t('connect') }}</ui-button>
</section>
<section v-if="enableDiscordIntegration">
<header><fa :icon="['fab', 'discord']"/> Discord</header>
<p v-if="$store.state.i.discord">{{ $t('connected-to') }}: <a :href="`https://discordapp.com/users/${$store.state.i.discord.id}`" target="_blank">@{{ $store.state.i.discord.username }}#{{ $store.state.i.discord.discriminator }}</a></p>
<ui-button v-if="$store.state.i.discord" @click="disconnectDiscord">{{ $t('disconnect') }}</ui-button>
<ui-button v-else @click="connectDiscord">{{ $t('connect') }}</ui-button>
</section>
<section v-if="enableGithubIntegration">
<header><fa :icon="['fab', 'github']"/> GitHub</header>
<p v-if="$store.state.i.github">{{ $t('connected-to') }}: <a :href="`https://github.com/${$store.state.i.github.login}`" target="_blank">@{{ $store.state.i.github.login }}</a></p>
<ui-button v-if="$store.state.i.github" @click="disconnectGithub">{{ $t('disconnect') }}</ui-button>
<ui-button v-else @click="connectGithub">{{ $t('connect') }}</ui-button>
</section>
</ui-card>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { apiUrl } from '../../../config';
export default Vue.extend({
i18n: i18n('common/views/components/integration-settings.vue'),
data() {
return {
apiUrl,
twitterForm: null,
discordForm: null,
githubForm: null,
enableTwitterIntegration: false,
enableDiscordIntegration: false,
enableGithubIntegration: false,
};
},
created() {
this.$root.getMeta().then(meta => {
this.enableTwitterIntegration = meta.enableTwitterIntegration;
this.enableDiscordIntegration = meta.enableDiscordIntegration;
this.enableGithubIntegration = meta.enableGithubIntegration;
});
},
mounted() {
document.cookie = `i=${this.$store.state.i.token}`;
this.$watch('$store.state.i', () => {
if (this.$store.state.i.twitter) {
if (this.twitterForm) this.twitterForm.close();
}
if (this.$store.state.i.discord) {
if (this.discordForm) this.discordForm.close();
}
if (this.$store.state.i.github) {
if (this.githubForm) this.githubForm.close();
}
}, {
deep: true
});
},
methods: {
connectTwitter() {
this.twitterForm = window.open(apiUrl + '/connect/twitter',
'twitter_connect_window',
'height=570, width=520');
},
disconnectTwitter() {
window.open(apiUrl + '/disconnect/twitter',
'twitter_disconnect_window',
'height=570, width=520');
},
connectDiscord() {
this.discordForm = window.open(apiUrl + '/connect/discord',
'discord_connect_window',
'height=570, width=520');
},
disconnectDiscord() {
window.open(apiUrl + '/disconnect/discord',
'discord_disconnect_window',
'height=570, width=520');
},
connectGithub() {
this.githubForm = window.open(apiUrl + '/connect/github',
'github_connect_window',
'height=570, width=520');
},
disconnectGithub() {
window.open(apiUrl + '/disconnect/github',
'github_disconnect_window',
'height=570, width=520');
},
}
});
</script>
<style lang="stylus" scoped>
</style>

View File

@@ -0,0 +1,54 @@
<template>
<ui-card>
<div slot="title"><fa icon="language"/> {{ $t('title') }}</div>
<section class="fit-top">
<ui-select v-model="lang" :placeholder="$t('pick-language')">
<optgroup :label="$t('recommended')">
<option value="">{{ $t('auto') }}</option>
</optgroup>
<optgroup :label="$t('specify-language')">
<option v-for="x in langs" :value="x[0]" :key="x[0]">{{ x[1] }}</option>
</optgroup>
</ui-select>
<ui-info>Current: <i>{{ currentLanguage }}</i></ui-info>
<ui-info warn>{{ $t('info') }}</ui-info>
</section>
</ui-card>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { langs } from '../../../config';
export default Vue.extend({
i18n: i18n('common/views/components/language-settings.vue'),
data() {
return {
langs,
currentLanguage: 'Unknown',
};
},
computed: {
lang: {
get() { return this.$store.state.device.lang; },
set(value) { this.$store.commit('device/set', { key: 'lang', value }); }
},
},
created() {
try {
const locale = JSON.parse(localStorage.getItem('locale') || "{}");
const localeKey = localStorage.getItem('localeKey');
this.currentLanguage = `${locale.meta.lang} (${localeKey})`;
} catch { }
},
methods: {
}
});
</script>

View File

@@ -0,0 +1,70 @@
<template>
<router-link class="ldlomzub" :to="`/@${ canonical }`" v-user-preview="canonical">
<span class="me" v-if="isMe">{{ $t('@.you') }}</span>
<span class="main">
<span class="username">@{{ username }}</span>
<span class="host" :class="{ fade: $store.state.settings.contrastedAcct }" v-if="(host != localHost) || $store.state.settings.showFullAcct">@{{ toUnicode(host) }}</span>
</span>
</router-link>
</template>
<script lang="ts">
import Vue from 'vue';
import i18n from '../../../i18n';
import { toUnicode } from 'punycode';
import { host as localHost } from '../../../config';
export default Vue.extend({
i18n: i18n(),
props: {
username: {
type: String,
required: true
},
host: {
type: String,
required: true
}
},
data() {
return {
localHost
};
},
computed: {
canonical(): string {
return `@${this.username}@${toUnicode(this.host)}`;
},
isMe(): boolean {
return this.$store.getters.isSignedIn && this.canonical.toLowerCase() === `@${this.$store.state.i.username}@${toUnicode(localHost)}`.toLowerCase();
}
},
methods: {
toUnicode
}
});
</script>
<style lang="stylus" scoped>
.ldlomzub
color var(--mfmMention)
> .me
pointer-events none
user-select none
padding 0 4px
background var(--primary)
border solid 1px var(--primary)
border-radius 4px 0 0 4px
color var(--primaryForeground)
& + .main
padding 0 4px
border solid 1px var(--primary)
border-radius 0 4px 4px 0
> .main
> .host.fade
opacity 0.5
</style>

View File

@@ -1,5 +1,5 @@
<template>
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv">
<div class="onchrpzrvnoruiaenfcqvccjfuupzzwv" :class="{ big: $root.isMobile }">
<div class="backdrop" ref="backdrop" @click="close"></div>
<div class="popover" :class="{ hukidasi }" ref="popover">
<template v-for="item, i in items">
@@ -125,6 +125,11 @@ export default Vue.extend({
position initial
&.big
> .popover
> button
font-size 15px
> .backdrop
position fixed
top 0
@@ -180,6 +185,7 @@ export default Vue.extend({
padding 8px 16px
width 100%
color var(--popupFg)
white-space nowrap
&:hover
color var(--primaryForeground)

View File

@@ -9,7 +9,7 @@
@keypress="onKeypress"
@paste="onPaste"
:placeholder="$t('input-message-here')"
v-autocomplete="'text'"
v-autocomplete="{ model: 'text' }"
></textarea>
<div class="file" @click="file = null" v-if="file">{{ file.name }}</div>
<mk-uploader ref="uploader" @uploaded="onUploaded"/>

View File

@@ -10,7 +10,8 @@
<misskey-flavored-markdown class="text" v-if="message.text" ref="text" :text="message.text" :i="$store.state.i"/>
<div class="file" v-if="message.file">
<a :href="message.file.url" target="_blank" :title="message.file.name">
<img v-if="message.file.type.split('/')[0] == 'image'" :src="message.file.url" :alt="message.file.name"/>
<img v-if="message.file.type.split('/')[0] == 'image'" :src="message.file.url" :alt="message.file.name"
:style="{ backgroundColor: message.file.properties.avgColor && message.file.properties.avgColor.length == 3 ? `rgb(${message.file.properties.avgColor.join(',')})` : 'transparent' }"/>
<p v-else>{{ message.file.name }}</p>
</a>
</div>
@@ -51,8 +52,8 @@ export default Vue.extend({
if (this.message.text) {
const ast = parse(this.message.text);
return unique(ast
.filter(t => (t.type == 'url' || t.type == 'link') && !t.silent)
.map(t => t.url));
.filter(t => ((t.name == 'url' || t.name == 'link') && t.props.url && !t.silent))
.map(t => t.props.url));
} else {
return null;
}
@@ -150,7 +151,6 @@ export default Vue.extend({
> a
display block
max-width 100%
max-height 512px
border-radius 16px
overflow hidden
text-decoration none
@@ -165,7 +165,8 @@ export default Vue.extend({
display block
margin 0
width 100%
height 100%
max-height 512px
object-fit contain
> p
padding 30px

View File

@@ -196,12 +196,12 @@ export default Vue.extend({
onRead(ids) {
if (!Array.isArray(ids)) ids = [ids];
ids.forEach(id => {
for (const id of ids) {
if (this.messages.some(x => x.id == id)) {
const exist = this.messages.map(x => x.id).indexOf(id);
this.messages[exist].isRead = true;
}
});
}
},
isBottom() {
@@ -248,13 +248,13 @@ export default Vue.extend({
onVisibilitychange() {
if (document.hidden) return;
this.messages.forEach(message => {
for (const message of this.messages) {
if (message.userId !== this.$store.state.i.id && !message.isRead) {
this.connection.send('read', {
id: message.id
});
}
});
}
}
}
});

View File

@@ -14,7 +14,7 @@
tabindex="-1"
>
<mk-avatar class="avatar" :user="user"/>
<span class="name">{{ user | userName }}</span>
<span class="name"><mk-user-name :user="user"/></span>
<span class="username">@{{ user | acct }}</span>
</li>
</ol>
@@ -33,7 +33,7 @@
<div>
<mk-avatar class="avatar" :user="isMe(message) ? message.recipient : message.user"/>
<header>
<span class="name">{{ isMe(message) ? message.recipient : message.user | userName }}</span>
<span class="name"><mk-user-name :user="isMe(message) ? message.recipient : message.user"/></span>
<span class="username">@{{ isMe(message) ? message.recipient : message.user | acct }}</span>
<mk-time :time="message.createdAt"/>
</header>
@@ -103,10 +103,10 @@ export default Vue.extend({
this.messages.unshift(message);
},
onRead(ids) {
ids.forEach(id => {
for (const id of ids) {
const found = this.messages.find(m => m.id == id);
if (found) found.isRead = true;
});
}
},
search() {
if (this.q == '') {
@@ -115,9 +115,11 @@ export default Vue.extend({
}
this.$root.api('users/search', {
query: this.q,
max: 5
localOnly: true,
limit: 10,
detail: false
}).then(users => {
this.result = users;
this.result = users.filter(user => user.id != this.$store.state.i.id);
});
},
navigate(user) {

View File

@@ -3,36 +3,22 @@ import { length } from 'stringz';
import { Node } from '../../../../../mfm/parser';
import parse from '../../../../../mfm/parse';
import MkUrl from './url.vue';
import { concat } from '../../../../../prelude/array';
import MkMention from './mention.vue';
import { concat, sum } from '../../../../../prelude/array';
import MkFormula from './formula.vue';
import MkGoogle from './google.vue';
import { toUnicode } from 'punycode';
import syntaxHighlight from '../../../../../mfm/syntax-highlight';
import { host } from '../../../config';
function getText(tokens: Node[]): string {
let text = '';
const extract = (tokens: Node[]) => {
tokens.filter(x => x.name === 'text').forEach(x => {
text += x.props.text;
});
tokens.filter(x => x.children).forEach(x => {
extract(x.children);
});
};
extract(tokens);
return text;
function getTextCount(tokens: Node[]): number {
const rootCount = sum(tokens.filter(x => x.name === 'text').map(x => length(x.props.text)));
const childrenCount = sum(tokens.filter(x => x.children).map(x => getTextCount(x.children)));
return rootCount + childrenCount;
}
function getChildrenCount(tokens: Node[]): number {
let count = 0;
const extract = (tokens: Node[]) => {
tokens.filter(x => x.children).forEach(x => {
count++;
extract(x.children);
});
};
extract(tokens);
return count;
const countTree = tokens.filter(x => x.children).map(x => getChildrenCount(x.children));
return countTree.length + sum(countTree);
}
export default Vue.component('misskey-flavored-markdown', {
@@ -49,6 +35,10 @@ export default Vue.component('misskey-flavored-markdown', {
type: Boolean,
default: true
},
plainText: {
type: Boolean,
default: false
},
author: {
type: Object,
default: null
@@ -65,14 +55,9 @@ export default Vue.component('misskey-flavored-markdown', {
render(createElement) {
if (this.text == null || this.text == '') return;
let ast: Node[];
if (this.ast == null) {
// Parse text to ast
ast = parse(this.text);
} else {
ast = this.ast as Node[];
}
const ast = this.ast == null ?
parse(this.text, this.plainText) : // Parse text to ast
this.ast as Node[];
let bigCount = 0;
let motionCount = 0;
@@ -96,9 +81,21 @@ export default Vue.component('misskey-flavored-markdown', {
return [createElement('b', genEl(token.children))];
}
case 'strike': {
return [createElement('del', genEl(token.children))];
}
case 'italic': {
return (createElement as any)('i', {
attrs: {
style: 'font-style: oblique;'
},
}, genEl(token.children));
}
case 'big': {
bigCount++;
const isLong = length(getText(token.children)) > 10 || getChildrenCount(token.children) > 5;
const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
const isMany = bigCount > 3;
return (createElement as any)('strong', {
attrs: {
@@ -111,9 +108,21 @@ export default Vue.component('misskey-flavored-markdown', {
}, genEl(token.children));
}
case 'small': {
return [createElement('small', genEl(token.children))];
}
case 'center': {
return [createElement('div', {
attrs: {
style: 'text-align:center;'
}
}, genEl(token.children))];
}
case 'motion': {
motionCount++;
const isLong = length(getText(token.children)) > 10 || getChildrenCount(token.children) > 5;
const isLong = getTextCount(token.children) > 10 || getChildrenCount(token.children) > 5;
const isMany = motionCount > 3;
return (createElement as any)('span', {
attrs: {
@@ -150,21 +159,13 @@ export default Vue.component('misskey-flavored-markdown', {
}
case 'mention': {
const host = token.props.host == null && this.author && this.author.host != null ? this.author.host : token.props.host;
const canonical = host != null ? `@${token.props.username}@${toUnicode(host)}` : `@${token.props.username}`;
return (createElement as any)('router-link', {
return [createElement(MkMention, {
key: Math.random(),
attrs: {
to: `/${canonical}`,
// TODO
//dataIsMe: (this as any).i && getAcct((this as any).i) == getAcct(token),
style: 'color:var(--mfmMention);'
},
directives: [{
name: 'user-preview',
value: canonical
}]
}, canonical);
props: {
host: (token.props.host == null && this.author && this.author.host != null ? this.author.host : token.props.host) || host,
username: token.props.username
}
})];
}
case 'hashtag': {
@@ -230,7 +231,8 @@ export default Vue.component('misskey-flavored-markdown', {
name: token.props.name
},
props: {
customEmojis: this.customEmojis || customEmojis
customEmojis: this.customEmojis || customEmojis,
normal: this.plainText
}
})];
}

View File

@@ -29,7 +29,7 @@ export default Vue.extend({
>>> .quote
margin 8px
padding 6px 12px
padding 6px 0 6px 12px
color var(--mfmQuote)
border-left solid 3px var(--mfmQuoteLine)
@@ -38,7 +38,7 @@ export default Vue.extend({
margin 0 0.5em
font-size 80%
color #525252
background #f8f8f8
background rgba(0, 0, 0, 0.05)
border-radius 2px
>>> pre > code

View File

@@ -7,7 +7,7 @@
<ui-info v-if="!muteFetching && mute.length == 0">{{ $t('no-muted-users') }}</ui-info>
<div class="users" v-if="mute.length != 0">
<div v-for="user in mute" :key="user.id">
<p><b>{{ user | userName }}</b> @{{ user | acct }}</p>
<p><b><mk-user-name :user="user"/></b> @{{ user | acct }}</p>
</div>
</div>
</section>
@@ -17,7 +17,7 @@
<ui-info v-if="!blockFetching && block.length == 0">{{ $t('no-blocked-users') }}</ui-info>
<div class="users" v-if="block.length != 0">
<div v-for="user in block" :key="user.id">
<p><b>{{ user | userName }}</b> @{{ user | acct }}</p>
<p><b><mk-user-name :user="user"/></b> @{{ user | acct }}</p>
</div>
</div>
</section>
@@ -72,7 +72,7 @@ export default Vue.extend({
methods: {
save() {
this._mutedWords = this.mutedWords.split('\n').map(line => line.split(' '));
this._mutedWords = this.mutedWords.split('\n').map(line => line.split(' ').filter(x => x != ''));
}
}
});

View File

@@ -1,7 +1,9 @@
<template>
<header class="bvonvjxbwzaiskogyhbwgyxvcgserpmu">
<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle == 'smart'"/>
<router-link class="name" :to="note.user | userPage" v-user-preview="note.user.id">{{ note.user | userName }}</router-link>
<router-link class="name" :to="note.user | userPage" v-user-preview="note.user.id">
<mk-user-name :user="note.user"/>
</router-link>
<span class="is-admin" v-if="note.user.isAdmin">admin</span>
<span class="is-bot" v-if="note.user.isBot">bot</span>
<span class="is-cat" v-if="note.user.isCat">cat</span>

View File

@@ -78,7 +78,7 @@ export default Vue.extend({
this.$root.api('i/pin', {
noteId: this.note.id
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
splash: true
});
@@ -95,12 +95,12 @@ export default Vue.extend({
},
del() {
this.$root.alert({
this.$root.dialog({
type: 'warning',
text: this.$t('delete-confirm'),
showCancelButton: true
}).then(res => {
if (!res) return;
}).then(({ canceled }) => {
if (canceled) return;
this.$root.api('notes/delete', {
noteId: this.note.id
@@ -114,7 +114,7 @@ export default Vue.extend({
this.$root.api('notes/favorites/create', {
noteId: this.note.id
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
splash: true
});
@@ -126,7 +126,7 @@ export default Vue.extend({
this.$root.api('notes/favorites/delete', {
noteId: this.note.id
}).then(() => {
this.$root.alert({
this.$root.dialog({
type: 'success',
splash: true
});

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