Compare commits

...

595 Commits

Author SHA1 Message Date
4168addbb2 12.93.1 2021-10-23 02:46:34 +09:00
600394458c 🎨 2021-10-23 02:45:25 +09:00
f33785a09c Fix #7902 (#7903)
* Fix #7902

* Update notification.vue

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-10-23 02:44:52 +09:00
d70b8275b4 12.93.0 2021-10-23 01:08:34 +09:00
7253f83ca3 New Crowdin updates (#7872)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations glossary.md (French)

* New translations glossary.md (English)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (English)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mfm.md (Esperanto)

* New translations mfm.md (Esperanto)

* New translations ja-JP.yml (French)

* New translations aiscript.md (French)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Arabic)

* New translations share-page.md (French)

* New translations share-page.md (Spanish)

* New translations share-page.md (Arabic)

* New translations share-page.md (Czech)

* New translations share-page.md (Danish)

* New translations share-page.md (German)

* New translations share-page.md (Italian)

* New translations share-page.md (Korean)

* New translations share-page.md (English)

* New translations share-page.md (Indonesian)

* New translations share-page.md (Thai)

* New translations share-page.md (Esperanto)

* New translations share-page.md (Uyghur)

* New translations share-page.md (Lojban)

* New translations share-page.md (Kannada)

* New translations share-page.md (Chinese Traditional)

* New translations share-page.md (Dutch)

* New translations share-page.md (Norwegian)

* New translations share-page.md (Polish)

* New translations share-page.md (Portuguese)

* New translations share-page.md (Russian)

* New translations share-page.md (Ukrainian)

* New translations share-page.md (Chinese Simplified)

* New translations share-page.md (Haitian Creole)

* New translations share-page.md (Kabyle)

* New translations share-page.md (Japanese, Kansai)

* New translations timeline.md (Arabic)

* New translations share-page.md (Chinese Simplified)

* New translations share-page.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations faq.md (Esperanto)

* New translations troubleshooting.md (Esperanto)

* New translations mute-and-block.md (Esperanto)

* New translations mute-and-block.md (Esperanto)

* New translations mute-and-block.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mute-and-block.md (Esperanto)
2021-10-23 01:08:17 +09:00
6171f27f8d 🎨 2021-10-23 01:04:29 +09:00
96b5684fa0 12.93.0-beta.1 2021-10-23 00:04:30 +09:00
4df409f77b improve dashboard 2021-10-23 00:04:19 +09:00
0f122884cc fix chart rendering 2021-10-22 23:46:47 +09:00
f29c9fe22c Update CHANGELOG.md 2021-10-22 21:51:48 +09:00
93230815f5 モデレーターをブロックできない仕様を廃止
Resolve #7898
2021-10-22 21:01:36 +09:00
632af91878 データベースにログを保存するのを廃止
Close #7878
2021-10-22 20:41:15 +09:00
81a0ee4b2d client: change url /instance -> /admin 2021-10-22 17:37:51 +09:00
967c655de0 tweak ui 2021-10-22 17:15:12 +09:00
4bb19b9596 fix typo 2021-10-22 15:34:02 +09:00
d43b17519e Update number-diff.vue 2021-10-22 15:33:56 +09:00
76a881df39 🎨 2021-10-22 14:03:08 +09:00
f84ad3e1ea 🎨 2021-10-22 06:28:01 +09:00
9d11c29c3b 🎨 2021-10-22 06:23:23 +09:00
90b62a3e95 Update CHANGELOG.md 2021-10-22 06:17:29 +09:00
4e4c559db6 Migrate to Chart.js v3 (#7896)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* 定期的にresync

* Update overview.vue

* wip

* wip
2021-10-22 05:36:48 +09:00
e7660bc8db リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正 (#7889)
* 意図せずローカルカスタム絵文字が使われてしまうのを修正

* CHANGELOG

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-10-21 23:57:11 +09:00
cfcc626de2 ドキュメントをmisskey-hubに移管 2021-10-21 23:24:23 +09:00
b7a5602003 chore: delete unnecessary twemoji submodule dir 2021-10-21 20:39:18 +09:00
b3a4d1795b improve usability 2021-10-21 20:12:24 +09:00
23de94785d doc: recursive (#7893) 2021-10-21 19:56:30 +09:00
69b56f6658 refactor: publishHogeStreamとStreamのEventEmitterに型定義する (#7769)
* wip

* wip

* wip

* ✌️

* add main stream

* packedNotificationSchemaを更新

* read:gallery, write:gallery, read:gallery-likes, write:gallery-likesに翻訳を追加

* fix

* ok

* add header, choice, invitation

* add header, choice, invitation

* test

* fix

* fix

* yatta

* remove no longer needed "as PackedUser/PackedNote"

* clean up

* add simple-schema

* fix lint

* fix lint

* wip

* wip!

* wip

* fix

* wip

* wip

* ✌️

* 送信側に型エラーがないことを3回確認した

* ✌️

* wip

* update typescript

* define items in full Schema

* edit comment

* edit comment

* edit comment

* Update src/prelude/types.ts

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>

* https://github.com/misskey-dev/misskey/pull/7769#discussion_r703058458

* user packとnote packの型不整合を修正

* revert https://github.com/misskey-dev/misskey/pull/7772#discussion_r706627736

* revert https://github.com/misskey-dev/misskey/pull/7772#discussion_r706627736

* user packとnote packの型不整合を修正

* add prelude/types.ts

* emoji

* signin

* game

* matching

* clean up

* ev => data

* refactor

* clean up

* add type

* antenna

* channel

* fix

* add Packed type

* add PackedRef

* fix lint

* add emoji schema

* add reversiGame

* add reversiMatching

* remove signin schema (use Signin entity)

* add schemas refs, fix Packed type

* wip PackedHoge => Packed<'Hoge'>

* add Packed type

* note-reaction

* user

* user-group

* user-list

* note

* app, messaging-message

* notification

* drive-file

* drive-folder

* following

* muting

* blocking

* hashtag

* page

* app (with modifying schema)

* import user?

* channel

* antenna

* clip

* gallery-post

* emoji

* Packed

* reversi-matching

* update stream.ts

* https://github.com/misskey-dev/misskey/pull/7769#issuecomment-917542339

* fix lint

* clean up?

* add changelog

* add changelog

* add changelog

* fix: アンテナが既読にならないのを修正

* revert fix

* https://github.com/misskey-dev/misskey/pull/7769#discussion_r711474875

* spec => payload

* edit commetn

Co-authored-by: Acid Chicken (硫酸鶏) <root@acid-chicken.com>
2021-10-21 01:04:10 +09:00
5ca6e6b5df Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-10-21 00:28:30 +09:00
98c26dfff8 fix(activitypub): not reacted な Undo.Like がinboxに滞留するのを修正
https: //github.com/mei23/misskey/commit/1cfb5e09a44819b82333df26409ec9d9657bdcfc
Co-Authored-By: MeiMei <30769358+mei23@users.noreply.github.com>
2021-10-21 00:28:27 +09:00
a4e3136611 Update CHANGELOG.md 2021-10-20 03:12:20 +09:00
ea8e6d88ab enhance: shareページでより多くの情報を渡せるように (#7606)
* shareでより多くの情報を渡せるように

* from chat ui post-form, remove instant and add share

* fix await eating array, make document

* add changelog

* 3581bf9a06 (r692265037)

* reply, renoteにも型定義

* 🎨

* 閉じなければ100ms後タイムラインに
2021-10-20 03:10:36 +09:00
202cb38c40 lint 2021-10-20 01:15:14 +09:00
d3c7ddd2f4 typo 2021-10-20 01:12:19 +09:00
bc19cd77ad feat: ミュートとブロックのインポート
Resolve #7885
2021-10-20 01:11:13 +09:00
0005de6a98 refactor: use insert 2021-10-20 01:02:04 +09:00
386d3cd997 fix bug
#7874
2021-10-20 00:55:38 +09:00
2d196b6779 Update search-by-username-and-host.ts 2021-10-20 00:53:38 +09:00
0cc055de3a 🎨 2021-10-19 20:35:29 +09:00
a96e5277db fix(api): アプリケーション通知が取得できない問題を修正
Fix #6702
2021-10-19 20:25:47 +09:00
7413634734 リアクション一覧の公開をオプトインに 2021-10-18 01:16:59 +09:00
1bfb176667 🎨 2021-10-18 00:55:26 +09:00
4a90c7aef8 fix(client): テーマの管理が行えない問題を修正 2021-10-17 21:23:15 +09:00
b0992de59d 🎨 2021-10-17 21:04:34 +09:00
37e666817f 🎨 2021-10-17 18:47:33 +09:00
a607149b19 Update explore.vue 2021-10-17 18:39:58 +09:00
3a11dba24f #7880 2021-10-17 18:38:38 +09:00
c76a384b41 🎨 2021-10-17 18:15:50 +09:00
dec69cc67b enhance: ユーザー検索の精度を強化 2021-10-17 16:26:35 +09:00
0c21ae226b Update CONTRIBUTING.md 2021-10-17 05:21:36 +09:00
835aad44bb feat: ユーザーのリアクション一覧を見れるように 2021-10-17 01:33:15 +09:00
8b646822fc 12.92.0 2021-10-16 19:55:26 +09:00
6d3e2b9386 Update docker-develop.yml 2021-10-16 19:49:37 +09:00
73cdf5ca81 Update docker-develop.yml 2021-10-16 19:44:32 +09:00
133936652d 🎨 2021-10-16 19:38:51 +09:00
66470b4937 update deps 2021-10-16 19:38:47 +09:00
3f688a728b 🎨 2021-10-16 19:30:31 +09:00
0d306e9d41 New Crowdin updates (#7824)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Korean)

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

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

* New translations create-plugin.md (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations faq.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations stream.md (Esperanto)

* New translations favorite.md (Esperanto)

* New translations faq.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations api.md (English)

* New translations aiscript.md (English)

* New translations create-plugin.md (English)

* New translations stream.md (English)

* New translations create-plugin.md (English)

* New translations develop-bot.md (English)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

* New translations troubleshooting.md (Spanish)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mfm.md (Esperanto)

* New translations mfm.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations glossary.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations ja-JP.yml (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (English)

* New translations ja-JP.yml (Italian)

* New translations note.md (Esperanto)

* New translations glossary.md (French)

* New translations apps.md (French)

* New translations ja-JP.yml (French)

* New translations note.md (Esperanto)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations ja-JP.yml (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (English)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations glossary.md (French)

* New translations ja-JP.yml (French)

* New translations glossary.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations api.md (English)

* New translations create-plugin.md (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations stream.md (Chinese Simplified)

* New translations follow.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)
2021-10-16 19:27:06 +09:00
1e8132e610 🎨 2021-10-16 19:25:40 +09:00
d672fccef4 refactor 2021-10-16 19:20:49 +09:00
c194eddb1b chore: fix spacer component 2021-10-16 19:18:46 +09:00
4ba4062519 🎨 2021-10-16 18:18:41 +09:00
23753ec75a Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-10-16 17:42:21 +09:00
d184f73160 feat(api): add users/groups/leave
Resolve #7775
2021-10-16 17:42:17 +09:00
482081c41b Refactor request (#7814)
* status code

* Test ap-request.ts

4397fc5e70/test/ap-request.ts

* tune
2021-10-16 17:16:24 +09:00
03b04acb16 テスト用コンテナの調整 (#7838)
* Tune test container

* docs

* fix cp config

* doc

* a
2021-10-16 17:12:20 +09:00
345a9d3525 remove unnecessary imports (#7871) 2021-10-16 17:10:19 +09:00
aee816ced9 🎨 2021-10-16 15:00:55 +09:00
1e28081aa3 🎨 2021-10-16 13:02:21 +09:00
ff0521e3aa enhance(client): アニメーションを減らす設定の適用範囲を拡充 2021-10-16 13:02:14 +09:00
8cabc5953e Update CHANGELOG.md 2021-10-16 01:54:28 +09:00
4a766a19cf Update CHANGELOG.md 2021-10-16 01:35:16 +09:00
bd8052fedb refactor(client): ダミーコンポーネントを使ってノートプレビューするように 2021-10-16 01:34:23 +09:00
5fb4538315 refactor(client): コンポーネント名が紛らわしくなるのでpreview->simpleにリネーム 2021-10-16 01:28:34 +09:00
e78f16bcc4 feat: ノートプレビューを追加 (#7596)
* add note preview

* use if

* add draftedNote property

* custom emojis work

* Only show CW on preview when enabled

* move button to top

* fix css style
2021-10-16 01:19:49 +09:00
fe62f3508b 🎨 2021-10-16 01:15:22 +09:00
c11c22fc73 🎨 2021-10-15 23:35:28 +09:00
056ab675cf Revert "🎨"
This reverts commit b77167a4a1.
2021-10-15 23:33:27 +09:00
f00d543447 fix(client): Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正
Fix #7867
2021-10-15 02:42:10 +09:00
72b616a990 🎨 2021-10-14 23:14:14 +09:00
8ee4b180f9 🎨 2021-10-14 22:40:43 +09:00
46e4b07a87 🎨 2021-10-14 21:21:10 +09:00
3ec6101b16 🎨 2021-10-14 20:55:59 +09:00
955b3e313b 🎨 2021-10-14 18:51:15 +09:00
3dc70f9878 🎨 2021-10-14 02:00:34 +09:00
8e2be5e9a7 chore: ba6959b8c1 のリモート対応 2021-10-14 01:55:39 +09:00
46f3736f44 🎨 2021-10-14 01:27:45 +09:00
dc12b189de Update CHANGELOG.md 2021-10-14 01:26:44 +09:00
3f95bd53cd feat(client): add some theme functions 2021-10-14 01:25:50 +09:00
23de45cea5 feat(client): add new theme 2021-10-14 01:25:19 +09:00
ba6959b8c1 fix(api): 管理者およびモデレーターをブロックできてしまう問題を修正 2021-10-14 01:24:54 +09:00
91c9a6390c 🎨 2021-10-12 21:46:18 +09:00
a99478e2ea fix title 2021-10-12 21:41:27 +09:00
12635da473 🎨 2021-10-12 02:15:31 +09:00
36170c816a tweak ui 2021-10-12 01:04:50 +09:00
50bad84747 chore: fix bug 2021-10-12 00:44:52 +09:00
abd3efa318 chore: fix error 2021-10-11 02:47:23 +09:00
816493e01f 🎨 2021-10-11 00:36:47 +09:00
a0c9fd75d7 fix ui 2021-10-10 19:54:15 +09:00
94bf7101f8 🎨 2021-10-10 17:48:07 +09:00
46424f63f2 fix(client): ピン留めユーザーの設定項目がない問題を修正 2021-10-10 17:47:57 +09:00
c33e93c662 improve ui 2021-10-10 15:19:16 +09:00
49b43eb3c8 🎨 2021-10-09 14:47:52 +09:00
6b22b7a31f 🎨 2021-10-09 14:43:40 +09:00
b77167a4a1 🎨 2021-10-09 14:29:57 +09:00
79a591d72d Update ja-JP.yml 2021-10-09 14:29:49 +09:00
8006e7a34d feat(client): 通知ページで通知の種類によるフィルタ 2021-10-09 13:12:41 +09:00
abc45ded9b refactor: use path alias 2021-10-09 12:47:40 +09:00
ec05c07321 feat: 未読の通知のみ表示する機能 2021-10-09 12:44:19 +09:00
27c056cbbf tweak ui 2021-10-09 12:33:08 +09:00
b3779875d0 🎨 2021-10-09 00:46:52 +09:00
748a451e23 🎨 2021-10-08 22:03:06 +09:00
8b1999dc5b fix(api): (0 , ms_1.default) is not a function 2021-10-08 21:24:53 +09:00
a38e4b0b14 server: コマンドラインオプション廃止
Resolve #7863
Resolve #6337
2021-10-08 21:24:05 +09:00
129f652dc2 use commander 4.1.1 2021-10-08 19:34:31 +09:00
5bf69476f6 enhance(api): ap系のエンドポイントをログイン必須化+レートリミット追加
他のサーバーにリクエストを送信するという性質上、攻撃の踏み台にされることがあるため
2021-10-08 14:05:07 +09:00
597c9761cb Revert "Revert "Fix idb"" (#7860)
This reverts commit 67875e2afa.
2021-10-08 13:37:55 +09:00
b875cc9949 feat: アカウント作成にメールアドレス必須にするオプション (#7856)
* feat: アカウント作成にメールアドレス必須にするオプション

* ui

* fix bug

* fix bug

* fix bug

* 🎨
2021-10-08 13:37:02 +09:00
e568c3888f update dependencies 2021-10-08 13:34:57 +09:00
67875e2afa Revert "Fix idb"
This reverts commit dd17065129.
2021-10-07 14:28:22 +09:00
dd17065129 Fix idb 2021-10-07 14:26:16 +09:00
8d05ef3058 fix(api): fix file type regex 2021-10-05 20:28:07 +09:00
66369b4b1d 🎨 2021-10-03 23:51:54 +09:00
9a33495694 🎨 2021-10-03 15:39:39 +09:00
f0b2eaf70d fix bug 2021-10-03 12:27:29 +09:00
ef67f3eee6 fix bug 2021-10-03 12:25:59 +09:00
9cab659392 🎨 2021-10-03 02:46:58 +09:00
dcd216daff 🎨 2021-10-03 00:33:29 +09:00
8f673d80d4 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-10-02 23:11:23 +09:00
3e81ebf8e9 🎨 2021-10-02 23:11:21 +09:00
19d531922d enhance: ページロードエラーページにリロードボタンを追加 (#7835)
* wip

* modify page load error page

* add changelog

* サーバーが死んでるエラーを追加

* add MkLoading
2021-10-02 16:36:25 +09:00
9109ae02a7 chore: fix bug 2021-10-02 01:08:04 +09:00
8d3fe0c5c2 🎨 2021-10-02 00:51:37 +09:00
f9185f201a fix bug 2021-10-01 19:34:24 +09:00
027380c013 fix bug 2021-10-01 19:32:16 +09:00
a73a787753 Fix prelude/url (#7855) 2021-10-01 02:25:57 +09:00
bd9df789d1 refactor: prelude/urlでquerystringを使用しないように
Resolve #7854
2021-10-01 00:31:43 +09:00
4fd4132f5e Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-09-30 23:09:21 +09:00
68aa1312f5 dev: developブランチをDocker Hubにpushするように
Resolve #7845
2021-09-30 23:09:12 +09:00
7974dbf477 insert space for unknown MFM functions (#7851) 2021-09-30 22:47:07 +09:00
834fb3bebd fix(client): ユーザーページのタブが機能していない問題を修正
Fix #7853
2021-09-30 22:45:20 +09:00
18fa317ee7 fix bug 2021-09-30 03:07:47 +09:00
414f1d1158 fix: truncate image descriptions (#7699)
* move truncate function to separate file to reuse it

* truncate image descriptions

* show image description limit in UI

* correctly treat null

Co-authored-by: nullobsi <me@nullob.si>

* make truncate Unicode-aware

The strings that truncate returns should now be valid Unicode.

PostgreSQL also counts Unicode Code Points instead of bytes so this
should be correct.

* move truncate to internal, validate in API

Truncating could also be done in src/services/drive/add-file.ts or
src/services/drive/upload-from-url.ts but those would also affect
local images. But local images should result in a hard error if the
image comment is too long.

* avoid overwriting

Co-authored-by: nullobsi <me@nullob.si>
2021-09-30 01:44:22 +09:00
c5e5a9b8ef 🎨 2021-09-30 01:13:54 +09:00
1ac1a968b9 refactor components 2021-09-30 00:50:45 +09:00
0d3a36e519 add todo 2021-09-28 01:50:02 +09:00
ebce02c253 chore: clean up 2021-09-26 03:25:52 +09:00
78b400e8b0 fix(client): MFM関数構文のサジェストで括弧を無視するように 2021-09-26 03:25:00 +09:00
8d93f148be 重いというか邪魔 2021-09-26 03:17:16 +09:00
4b8a2d2a6b fix(client): 絵文字一覧ページのタグ一覧をとりあえず無効に
重いため
2021-09-26 03:16:30 +09:00
5fd549656b chore: clean up 2021-09-26 02:56:02 +09:00
a70dbb7e74 feat(client): MFM関数構文のサジェストを実装 2021-09-26 02:55:11 +09:00
a75f3fb87c refactor: fix types 2021-09-26 02:10:07 +09:00
67e2768c3e Update CHANGELOG.md 2021-09-26 01:58:20 +09:00
ece3ac967d Tune mfmToHtml (#7841)
* Tune mfmToHtml

* typo

* add
2021-09-26 01:57:38 +09:00
da71d8f4af fix(client): fix tabs of page header behaviour 2021-09-26 01:53:56 +09:00
ac93af8eb5 Update extensions.json 2021-09-25 10:53:55 +09:00
76cdbe74ba Update CHANGELOG.md 2021-09-24 22:28:17 +09:00
ce4ea5071f enhance(client): アニメーションを減らす設定をメニューのアニメーションにも適用するように
Resolve #7826
2021-09-23 23:01:32 +09:00
8a558eed36 Update index.ts (#7830) 2021-09-23 22:41:02 +09:00
ce32cd576b fix inboxQueue import (#7829) 2021-09-23 22:32:16 +09:00
78ac41a613 12.91.0 2021-09-22 22:53:20 +09:00
be23ccf23b New Crowdin updates (#7823)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations create-plugin.md (Esperanto)
2021-09-22 22:53:01 +09:00
1ba5e433e5 New Crowdin updates (#7822)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)
2021-09-22 22:46:45 +09:00
5bf4f569e4 enhance(client): アップデートが利用可能な場合エラー表示およびダイアログ表示しないように 2021-09-22 22:45:10 +09:00
5a11844eff Update CHANGELOG.md 2021-09-22 22:36:20 +09:00
14795b68f2 refactor: PackedHoge型をPacked<'Hoge'>型に書き換える (#7792)
* packedNotificationSchemaを更新

* read:gallery, write:gallery, read:gallery-likes, write:gallery-likesに翻訳を追加

* fix

* add header, choice, invitation

* test

* fix

* yatta

* remove no longer needed "as PackedUser/PackedNote"

* clean up

* add simple-schema

* fix lint

* define items in full Schema

* revert https://github.com/misskey-dev/misskey/pull/7772#discussion_r706627736

* user packとnote packの型不整合を修正

* add prelude/types.ts

* emoji

* signin

* game

* matching

* fix

* add emoji schema

* add reversiGame

* add reversiMatching

* remove signin schema (use Signin entity)

* add Packed type

* note-reaction

* user

* user-group

* user-list

* note

* app, messaging-message

* notification

* drive-file

* drive-folder

* following

* muting

* blocking

* hashtag

* page

* app (with modifying schema)

* import user?

* channel

* antenna

* clip

* gallery-post

* emoji

* Packed

* reversi-matching

* add changelog

* add changelog

* revert fix
2021-09-22 22:35:55 +09:00
bea42f5804 New Crowdin updates (#7764)
* New translations ja-JP.yml (Korean)

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

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

* New translations apps.md (Chinese Simplified)

* New translations links.md (Chinese Simplified)

* New translations changelog.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations report-issue.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mfm.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations timeline.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mfm.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mfm.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations aiscript.md (English)

* New translations ja-JP.yml (Esperanto)

* New translations aiscript.md (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations links.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations faq.md (Korean)

* New translations faq.md (Korean)

* New translations misskey.md (Korean)

* New translations faq.md (Korean)

* New translations disable-timelines.md (Korean)

* New translations disable-timelines.md (Korean)

* New translations disable-timelines.md (Korean)

* New translations aiscript.md (Korean)

* New translations misskey.md (Korean)

* New translations aiscript.md (Korean)

* New translations changelog.md (Korean)

* New translations misskey.md (Korean)

* New translations misskey.md (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations faq.md (Korean)

* New translations misskey.md (Korean)

* New translations apps.md (Korean)

* New translations faq.md (Korean)

* New translations misskey.md (Korean)

* New translations faq.md (Korean)

* New translations glossary.md (Korean)

* New translations faq.md (Korean)

* New translations glossary.md (Korean)

* New translations glossary.md (Korean)

* New translations glossary.md (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations create-plugin.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

* New translations create-plugin.md (Chinese Simplified)

* New translations develop-bot.md (Chinese Simplified)

* New translations reversi-bot.md (Chinese Simplified)

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

* New translations reversi-bot.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations reversi-bot.md (Chinese Simplified)

* New translations develop-bot.md (Chinese Simplified)

* New translations reversi-bot.md (Chinese Simplified)

* New translations reversi-bot.md (Chinese Simplified)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations troubleshooting.md (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations reversi-bot.md (Chinese Simplified)

* New translations reversi-bot.md (Chinese Simplified)

* New translations reversi-bot.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Korean)

* New translations glossary.md (Korean)

* New translations glossary.md (Korean)

* New translations glossary.md (Korean)

* New translations links.md (Korean)

* New translations links.md (Korean)

* New translations ja-JP.yml (Korean)
2021-09-22 22:31:22 +09:00
fbbce302bc enhance(client): 非ログイン自は更新ダイアログを出さないように
Resolve #7756
2021-09-22 22:18:08 +09:00
4b9c605477 #7813の修正 2021-09-22 22:12:10 +09:00
a499ad6879 feat: MFM Sparkle animation (#7813)
* Add sparkle mfm animation 

* Cleanup sparkle effect

+ spaces -> tabs and other codestyle
+ use proper image
+ listen for resizes
+ use font-size to determine particle size (for fun with x2/3/4 stacking)
2021-09-22 22:09:23 +09:00
76c5dc8999 fix(client): fix #7774 2021-09-22 21:58:08 +09:00
b985e14b13 update deps 2021-09-22 21:51:24 +09:00
61de9cdbd4 🎨 2021-09-22 21:42:07 +09:00
9208825975 feat(server): 管理者用アカウント削除API実装
動作確認済み
Resolve #7735
2021-09-22 17:34:48 +09:00
72a49f334a enhance(client): リスト、アンテナタイムラインを個別ページとして分割 2021-09-21 21:04:59 +09:00
b35ca3b739 🎨 2021-09-21 04:13:54 +09:00
85950f17fa 🎨 2021-09-21 04:09:28 +09:00
78f95b5910 🎨 2021-09-21 02:01:25 +09:00
909a09a0c0 Update CONTRIBUTING.md 2021-09-20 23:26:43 +09:00
bb9fc56cc1 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-09-20 23:24:10 +09:00
9f3b4ccd14 update contribution guide 2021-09-20 23:24:07 +09:00
90bf976fe2 enhance: ノートヘッダーにflex-shrinkを設定し、Acctを優先的に縮小して見栄えをよくするように (#7752)
* MAKE NOTE HEADER FLEX AGAIN

* span => div

* remove submodules
2021-09-20 22:14:49 +09:00
388de9dc96 chore, perf: Reduce redis memory (#7816)
* Reduce redis memory

* CHANGELOG

* a
2021-09-20 21:55:19 +09:00
8a0a46b1c9 test: improve e2e test 2021-09-19 14:27:16 +09:00
186163ec3f refactor 2021-09-19 02:58:25 +09:00
91171c559a Update .gitignore 2021-09-19 02:58:17 +09:00
36b483d04d Update .gitignore 2021-09-19 02:43:39 +09:00
54e0a7f8a8 feat: 凍結された場合のダイアログを実装 (#7811)
* feat: 凍結された場合のダイアログを実装

* Update CHANGELOG.md

* Update basic.js

* improve error handling

* cypressなんもわからん

* Update basic.js
2021-09-19 02:23:12 +09:00
6d4e96dea2 fix style 2021-09-18 21:26:31 +09:00
a6958da091 enhance(server): アカウントが凍結されたときのエラーを判定しやすく 2021-09-18 17:58:37 +09:00
502bde5567 Update CHANGELOG.md 2021-09-18 15:45:45 +09:00
d5702f9d51 add resolver check for blocked instance (#7777)
* add resolver check for blocked instance

* lint

* Update note.ts
2021-09-18 15:45:02 +09:00
5141afe476 fix(client): タイムラインでリストとかなかったの修正 2021-09-18 15:39:01 +09:00
4422219be7 fix: アンテナが既読にならないのを修正 (#7809) 2021-09-18 15:31:32 +09:00
4b2afec108 Update CHANGELOG.md 2021-09-18 13:31:09 +09:00
07bb8067ae fix: アンテナの既読 (#7803)
from: a89742319c
2021-09-18 13:30:28 +09:00
4f63eb0c7e add sponsors section 2021-09-18 03:26:52 +09:00
4ea7b2dd63 fix(server): fix #7786 2021-09-18 03:26:36 +09:00
e8189f7c69 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-09-17 22:58:29 +09:00
23c054caec fix: add vanilla-tilt 2021-09-17 22:58:26 +09:00
a084c8b344 Update CHANGELOG.md 2021-09-17 22:39:55 +09:00
361069314f Refine UI (#7806)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* Update default.vue

* wip
2021-09-17 22:39:15 +09:00
d252514a39 popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正 (#7797) 2021-09-17 20:00:31 +09:00
31d1edc0fb update deps 2021-09-16 22:04:47 +09:00
987474726c chore: .configをdockerイメージに入れないように (#7625)
* .configをdockerイメージに入れないように

* Update docker-compose.yml

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

Co-authored-by: MeiMei <30769358+mei23@users.noreply.github.com>
Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2021-09-13 20:07:39 +09:00
4beea63d3f GitHub Actionsを使用してDocker Hubへpushする方法 の説明 (#7790)
* Create push-docker-hub.ja.md

* remove space
2021-09-12 22:43:54 +09:00
53f3b779bf refactor: Expand schema (#7772)
* packedNotificationSchemaを更新

* read:gallery, write:gallery, read:gallery-likes, write:gallery-likesに翻訳を追加

* fix

* add header, choice, invitation

* test

* fix

* yatta

* remove no longer needed "as PackedUser/PackedNote"

* clean up

* add simple-schema

* fix lint

* define items in full Schema

* revert https://github.com/misskey-dev/misskey/pull/7772#discussion_r706627736

* user packとnote packの型不整合を修正
2021-09-12 01:12:23 +09:00
f59f424795 Revert "fix: use master branch when build docker image"
This reverts commit c63ba5470a.
2021-09-11 11:37:35 +09:00
c63ba5470a fix: use master branch when build docker image 2021-09-11 11:32:47 +09:00
935d6473ed chore: APIドキュメントの修正 (#7771)
* packedNotificationSchemaを更新

* read:gallery, write:gallery, read:gallery-likes, write:gallery-likesに翻訳を追加

* fix

* add header, choice, invitation
2021-09-09 20:23:31 +09:00
0faa4470fb GitHub ActionsでDocker Hubへのpushを行うように (#7782)
* Create docker.yml

* Update .github/workflows/docker.yml

Co-authored-by: tamaina <tamaina@hotmail.co.jp>

* add workflow_dispatch

* Multi-platform image

* Revert "Multi-platform image"

This reverts commit e5bac6632909a5020b0708227ebe248b443c2c2b.

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2021-09-09 19:28:02 +09:00
0281bdd90c Update CHANGELOG.md 2021-09-05 23:36:20 +09:00
608ff73907 feat: リモートからユーザー削除が飛んできたら削除するように (#7768)
* Delete Actor

* Update src/remote/activitypub/kernel/delete/actor.ts

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

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-09-05 23:35:48 +09:00
cc75620976 12.90.1 2021-09-05 16:26:24 +09:00
1cd8bfaded fix(server): ノート翻訳時に公開範囲が考慮されていない問題を修正 2021-09-05 16:25:30 +09:00
65d9c304df fix Dockerfile (#7763)
* fix Dockerfile

* remove unnecessary change

* add misskey-assets in .dockerignore
2021-09-05 02:18:12 +09:00
bf7bacceab 12.90.0 2021-09-04 20:38:09 +09:00
a56f461895 New Crowdin updates (#7693)
* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations disable-timelines.md (Indonesian)

* New translations faq.md (Indonesian)

* New translations misskey.md (Indonesian)

* New translations disable-timelines.md (Indonesian)

* New translations faq.md (Indonesian)

* New translations misskey.md (Indonesian)

* New translations faq.md (Indonesian)

* New translations glossary.md (Indonesian)

* New translations misskey.md (Indonesian)

* New translations changelog.md (Indonesian)

* New translations glossary.md (Indonesian)

* New translations glossary.md (Indonesian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations api.md (Esperanto)

* New translations mfm.md (Esperanto)

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

* New translations keyboard-shortcut.md (Chinese Simplified)

* New translations mfm.md (Chinese Simplified)

* New translations note.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timeline.md (Portuguese)

* New translations timeline.md (Portuguese)

* New translations timeline.md (Portuguese)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations favorite.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations links.md (Russian)

* New translations glossary.md (Russian)

* New translations links.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations glossary.md (Russian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations develop-bot.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Russian)

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

* New translations report-issue.md (Russian)

* New translations faq.md (Russian)

* New translations report-issue.md (Russian)

* New translations faq.md (Russian)

* New translations faq.md (Russian)

* New translations faq.md (Russian)

* New translations faq.md (Russian)

* New translations apps.md (Russian)

* New translations faq.md (Russian)

* New translations changelog.md (Russian)

* New translations ja-JP.yml (French)

* New translations mfm.md (Russian)

* New translations ja-JP.yml (French)

* New translations mfm.md (Russian)

* New translations ja-JP.yml (French)

* New translations mfm.md (Russian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations ja-JP.yml (Kabyle)

* New translations api.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations apps.md (Arabic)

* New translations api.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations mute-and-block.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations links.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations reversi-bot.md (Chinese Simplified)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations word-mute.md (Esperanto)
2021-09-04 20:37:43 +09:00
e21ff916b0 ファイルサイズのハードリミット (#7760)
* maxFileSize

* CHANGELOG
2021-09-04 20:33:14 +09:00
da20675ada Update CHANGELOG.md 2021-09-04 19:50:07 +09:00
7364fb84ef fix missing strings (#7674)
* fix sort menu in federation panel

* add missing strings in report menu

* change i18n key too
2021-09-04 18:21:45 +09:00
48f46333f8 サインアップ・ログアウト周りの怪しい挙動を修正 (#7750)
* fix #7749

* fix

* fix logout behavior when there is no push subscription

* fix logout behavior when there is no push subscription 2

* clean up service worker registration

* fix lint

* remove submodules
2021-09-04 18:09:53 +09:00
8407702b38 藍モード (#7687)
* wip

* wip

* シンボリックリンクやめた

* install lib dependency

* bring live2d assets from misskey-dev/assets

* refactor

* nanka iroiro

* コミット忘れ

* random motion

* wip

* run git submodule update --init

* コミット忘れ

* refactor

* fix bug

* Update misskey-assets

* lint

* lint

* lint

* 藍モード修正 (#7702)

* lazy load live2d script

* fix typo

* lazy load also widget

* hot link to cubism core

* https://github.com/misskey-dev/misskey/pull/7702/files#r695623821

* fix lint

* remove live2d stuff

* use iframe

* update

* Update gulpfile.ts

* update

* Update .gitattributes

* update

Co-authored-by: tamaina <tamaina@hotmail.co.jp>
2021-09-04 17:54:24 +09:00
e1a8b158e0 Tune download (#2)
* s2-2

* allowedPrivateNetworks

* style

* Proxyの間にあると誤解しそうなのでconfigの記述順を変更

* Fix error handler
2021-09-03 21:13:06 +09:00
7e30910ab8 Update CONTRIBUTING.md 2021-08-30 20:11:22 +09:00
7fbee704ec Update CONTRIBUTING.en.md 2021-08-30 20:09:26 +09:00
b1f94c7bc6 Update CONTRIBUTING.en.md 2021-08-30 20:04:59 +09:00
90411967d6 Update CONTRIBUTING.md
linterで担保させれば済むため、コーディングスタイルなどのセクションを削除
2021-08-30 20:00:31 +09:00
5719c623a4 Update CONTRIBUTING.md 2021-08-30 19:56:28 +09:00
e210ec782a Update CONTRIBUTING.en.md 2021-08-30 19:53:51 +09:00
229780f6ff Update CONTRIBUTING.en.md 2021-08-30 19:50:50 +09:00
6490a9829b fix(client): fix button style 2021-08-29 16:44:15 +09:00
6384d0708d update contribution guides 2021-08-28 15:42:27 +09:00
db1fde2956 Update PULL_REQUEST_TEMPLATE.md 2021-08-26 14:56:47 +09:00
c86720a331 Update CHANGELOG.md 2021-08-24 20:53:18 +09:00
2af158be26 add setting to keep content warning (#7682) 2021-08-24 20:52:33 +09:00
f84483896e 12.89.2 2021-08-24 14:40:01 +09:00
fe7bc174fb Fix #7689 2021-08-24 14:39:42 +09:00
c3b55b6849 12.89.1 2021-08-24 13:20:20 +09:00
3e193c9864 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-24 13:19:28 +09:00
d64e25e449 fix: support DeepL pro account
Fix #7648
2021-08-24 13:19:21 +09:00
c4707c612d New Crowdin updates (#7679)
* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations create-plugin.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations timeline.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations timeline.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)
2021-08-24 13:08:58 +09:00
9d3448c880 fix(server): use csp to imporve security 2021-08-24 13:08:20 +09:00
dad6a77645 refactoring 2021-08-22 22:22:53 +09:00
f64d3942d7 🎨 2021-08-22 16:18:53 +09:00
45fe754759 🎨 2021-08-22 16:15:40 +09:00
98f1d93628 refactor 2021-08-22 13:16:23 +09:00
8785e1c3a4 enhance(client): ユーザー名についてのヒントを追加 2021-08-22 13:16:15 +09:00
7387e010c2 12.89.0 2021-08-21 17:59:13 +09:00
a59dfff12f New Crowdin updates (#7646)
* New translations mute-and-block.md (Ukrainian)

* New translations mute-and-block.md (Czech)

* New translations mute-and-block.md (Danish)

* New translations mute-and-block.md (German)

* New translations mute-and-block.md (Italian)

* New translations mute-and-block.md (Korean)

* New translations mute-and-block.md (Dutch)

* New translations mute-and-block.md (Norwegian)

* New translations mute-and-block.md (Polish)

* New translations mute-and-block.md (Portuguese)

* New translations mute-and-block.md (Russian)

* New translations mute-and-block.md (Chinese Simplified)

* New translations mute-and-block.md (Spanish)

* New translations mute-and-block.md (Chinese Traditional)

* New translations mute-and-block.md (English)

* New translations mute-and-block.md (Indonesian)

* New translations mute-and-block.md (Thai)

* New translations mute-and-block.md (Esperanto)

* New translations mute-and-block.md (Uyghur)

* New translations mute-and-block.md (Lojban)

* New translations mute-and-block.md (Kannada)

* New translations mute-and-block.md (Haitian Creole)

* New translations mute-and-block.md (Kabyle)

* New translations mute-and-block.md (Arabic)

* New translations mute-and-block.md (French)

* New translations mute-and-block.md (Japanese, Kansai)

* New translations glossary.md (German)

* New translations links.md (German)

* New translations links.md (English)

* New translations report-issue.md (German)

* New translations changelog.md (German)

* New translations apps.md (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations disable-timelines.md (Japanese, Kansai)

* New translations disable-timelines.md (Japanese, Kansai)

* New translations faq.md (Japanese, Kansai)

* New translations aiscript.md (Japanese, Kansai)

* New translations faq.md (Japanese, Kansai)

* New translations misskey.md (Japanese, Kansai)

* New translations aiscript.md (Japanese, Kansai)

* New translations reaction.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Japanese, Kansai)

* New translations glossary.md (Kabyle)

* New translations glossary.md (Haitian Creole)

* New translations glossary.md (Kannada)

* New translations glossary.md (Lojban)

* New translations glossary.md (Uyghur)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Indonesian)

* New translations misskey.md (English)

* New translations glossary.md (Thai)

* New translations glossary.md (English)

* New translations glossary.md (Chinese Traditional)

* New translations glossary.md (Dutch)

* New translations glossary.md (Chinese Simplified)

* New translations glossary.md (Ukrainian)

* New translations glossary.md (Russian)

* New translations glossary.md (Portuguese)

* New translations glossary.md (Polish)

* New translations glossary.md (Norwegian)

* New translations glossary.md (Korean)

* New translations glossary.md (French)

* New translations glossary.md (Italian)

* New translations glossary.md (German)

* New translations glossary.md (Danish)

* New translations glossary.md (Czech)

* New translations glossary.md (Arabic)

* New translations glossary.md (Spanish)

* New translations note.md (French)

* New translations glossary.md (Chinese Simplified)

* New translations faq.md (French)

* New translations faq.md (Chinese Simplified)

* New translations faq.md (Kabyle)

* New translations faq.md (Haitian Creole)

* New translations faq.md (Kannada)

* New translations faq.md (Lojban)

* New translations faq.md (Uyghur)

* New translations faq.md (Esperanto)

* New translations faq.md (Thai)

* New translations faq.md (Indonesian)

* New translations faq.md (English)

* New translations faq.md (Chinese Traditional)

* New translations faq.md (Ukrainian)

* New translations faq.md (Spanish)

* New translations faq.md (Russian)

* New translations faq.md (Portuguese)

* New translations faq.md (Polish)

* New translations faq.md (Norwegian)

* New translations faq.md (Dutch)

* New translations faq.md (Korean)

* New translations faq.md (Italian)

* New translations faq.md (German)

* New translations faq.md (Danish)

* New translations faq.md (Czech)

* New translations faq.md (Arabic)

* New translations faq.md (Japanese, Kansai)

* New translations faq.md (French)

* New translations misskey.md (French)

* New translations faq.md (French)

* New translations misskey.md (French)

* New translations faq.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (French)

* New translations word-mute.md (Ukrainian)

* New translations word-mute.md (Czech)

* New translations word-mute.md (Danish)

* New translations word-mute.md (German)

* New translations word-mute.md (Italian)

* New translations word-mute.md (Korean)

* New translations word-mute.md (Dutch)

* New translations word-mute.md (Norwegian)

* New translations word-mute.md (Polish)

* New translations word-mute.md (Portuguese)

* New translations word-mute.md (Russian)

* New translations word-mute.md (Chinese Simplified)

* New translations word-mute.md (Spanish)

* New translations word-mute.md (Chinese Traditional)

* New translations word-mute.md (English)

* New translations word-mute.md (Indonesian)

* New translations word-mute.md (Thai)

* New translations word-mute.md (Esperanto)

* New translations word-mute.md (Uyghur)

* New translations word-mute.md (Lojban)

* New translations word-mute.md (Kannada)

* New translations word-mute.md (Haitian Creole)

* New translations word-mute.md (Kabyle)

* New translations word-mute.md (Arabic)

* New translations word-mute.md (French)

* New translations word-mute.md (Japanese, Kansai)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations faq.md (English)

* New translations faq.md (English)

* New translations glossary.md (English)

* New translations word-mute.md (English)

* New translations word-mute.md (English)

* New translations word-mute.md (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)
2021-08-21 17:58:32 +09:00
f6128dd3ff 🎨 2021-08-21 17:40:15 +09:00
eeff88ece2 Update CHANGELOG.md 2021-08-21 14:52:41 +09:00
bae1282f74 clean up 2021-08-21 14:47:39 +09:00
d2007add75 feat: Implement api sw/unregister (#7611)
* Implement api sw/unregister

* remove all mode

* add changelog

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-08-21 14:47:18 +09:00
802db92d98 Update setup.en.md (#7675)
Updated PostgreSQL version to 12  

See https://github.com/misskey-dev/misskey/issues/7632#issuecomment-901653826
2021-08-21 14:24:03 +09:00
a53e1e4ec3 enhance: Improve account deletion experience 2021-08-21 12:48:50 +09:00
fd1ef4a62d enhance(server): Use job queue for account delete (#7668)
* enhance(server): Use job queue for account delete

Fix #5336

* ジョブをひとつに

* remove done call

* clean up

* add User.isDeleted

* コミット忘れ

* Update 1629512953000-user-is-deleted.ts

* show dialog

* lint

* Update 1629512953000-user-is-deleted.ts
2021-08-21 12:41:56 +09:00
8ab9068d8e fix bug 2021-08-21 11:51:46 +09:00
47dd30d3b2 fix(client): ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正
Fix #7037
2021-08-21 11:16:56 +09:00
fcdd042b02 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-21 10:29:30 +09:00
04855f9201 enhance(client): Improve emoji autocomplete behaviour
cherry picked from 4b2c215e25
2021-08-21 10:29:26 +09:00
cf0a5d5735 Bump @redocly/openapi-core from 1.0.0-beta.44 to 1.0.0-beta.54 (#7665)
Bumps [@redocly/openapi-core](https://github.com/Redocly/openapi-cli) from 1.0.0-beta.44 to 1.0.0-beta.54.
- [Release notes](https://github.com/Redocly/openapi-cli/releases)
- [Changelog](https://github.com/Redocly/openapi-cli/blob/master/docs/changelog.md)
- [Commits](https://github.com/Redocly/openapi-cli/compare/v1.0.0-beta.44...v1.0.0-beta.54)

---
updated-dependencies:
- dependency-name: "@redocly/openapi-core"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-20 23:15:17 +09:00
bb2db1cf76 perf: Tune AP job queue timings (#7635)
* perf: Tune AP job queue timings

* CHANGELOG

* chore: add reference

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-08-20 21:59:03 +09:00
0e69091455 doc: add features/word-mute (#7672) 2021-08-20 21:40:45 +09:00
3cb5ed167a fix: meta.jsonをimportしないように
Fix #7671
2021-08-20 21:34:56 +09:00
1ffee15b83 fix: use correct query generate function (#7657)
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-08-20 20:55:12 +09:00
75b9f31acf fix: import syslog-pro 2021-08-20 20:18:24 +09:00
fc56b12690 refactor: localStorageのaccountsはindexedDBで保持するように (#7609)
* accountsストアはindexedDBで保持するように

* fix lint

* fix indexeddb available detection

* remove debugging code

* fix lint

* resolve ba756204b7 (diff-f565878e8202f0037b830c780b7c0932dc1bb5fd3d05ede14d72d10efbc3740c)
Firefoxでの動作を改善

* fix lint

* fix lint

* add changelog
2021-08-20 19:38:16 +09:00
60e768436e Create dependabot.yml 2021-08-20 00:22:29 +09:00
84f2192cde update deps 2021-08-19 22:40:39 +09:00
97f2675d40 refactor: use path alias to improve readability 2021-08-19 22:04:15 +09:00
6d881d4570 fix import 2021-08-19 21:57:36 +09:00
42cc93dd0f fix: mochaが動かないため拡張子なしに戻した 2021-08-19 21:55:45 +09:00
e9f34a0f09 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-19 18:33:59 +09:00
b9cb6d1c10 refactor: refactoring imports
将来ESMに移行しやすいように
Related: #7658

なんかmochaが起動しなくなってるけど理由不明
すぐ直したい
2021-08-19 18:33:41 +09:00
7bf517e990 Remove unused packages (#7661)
* Remove unused packages

* Remove unused babel things

* Remove more unused packages
2021-08-19 18:07:32 +09:00
ab54e147f2 Remove is-root dependencies (#7660) 2021-08-19 16:27:12 +09:00
e677540fd6 Update faq.md 2021-08-19 15:42:53 +09:00
31e3aaeda0 Update glossary.md 2021-08-19 11:35:42 +09:00
938fc317c9 Update glossary.md 2021-08-19 11:32:25 +09:00
4c431c5432 refactor 2021-08-19 11:26:26 +09:00
881b914c6a チャンネルを作成しているとアカウントを削除できないのを修正 (#7653)
* チャンネルを作成しているとアカウントを削除できないのを修正

* CHANGELOG

* nullable
2021-08-18 22:04:04 +09:00
6a3a8ba4d0 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-17 22:01:12 +09:00
9e535c341e 12.88.0 2021-08-17 22:00:52 +09:00
17fa4ba804 update vue 2021-08-17 22:00:39 +09:00
dd9a3c91fc New Crowdin updates (#7622)
* New translations create-plugin.md (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations glossary.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations timeline.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations disable-timelines.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Indonesian)

* New translations troubleshooting.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (German)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations misskey.md (French)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations ja-JP.yml (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations antenna.md (French)

* New translations antenna.md (French)

* New translations changelog.md (French)

* New translations report-issue.md (French)

* New translations changelog.md (French)

* New translations links.md (French)

* New translations report-issue.md (French)

* New translations links.md (French)

* New translations links.md (French)

* New translations links.md (French)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations links.md (French)

* New translations links.md (French)

* New translations apps.md (French)

* New translations links.md (French)

* New translations troubleshooting.md (French)

* New translations ja-JP.yml (French)

* New translations report-issue.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations glossary.md (French)

* New translations misskey.md (Ukrainian)

* New translations misskey.md (Czech)

* New translations misskey.md (Danish)

* New translations misskey.md (German)

* New translations misskey.md (Italian)

* New translations misskey.md (Korean)

* New translations misskey.md (Dutch)

* New translations misskey.md (Norwegian)

* New translations misskey.md (Polish)

* New translations misskey.md (Portuguese)

* New translations misskey.md (Russian)

* New translations misskey.md (Chinese Simplified)

* New translations misskey.md (Spanish)

* New translations misskey.md (Chinese Traditional)

* New translations misskey.md (Indonesian)

* New translations misskey.md (Thai)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Uyghur)

* New translations misskey.md (Lojban)

* New translations misskey.md (Kannada)

* New translations misskey.md (Haitian Creole)

* New translations misskey.md (Kabyle)

* New translations misskey.md (Arabic)

* New translations misskey.md (French)

* New translations glossary.md (Spanish)

* New translations glossary.md (Russian)

* New translations glossary.md (Arabic)

* New translations glossary.md (Czech)

* New translations glossary.md (Danish)

* New translations glossary.md (German)

* New translations glossary.md (Italian)

* New translations glossary.md (Korean)

* New translations glossary.md (Dutch)

* New translations glossary.md (Norwegian)

* New translations glossary.md (Polish)

* New translations glossary.md (Portuguese)

* New translations glossary.md (Ukrainian)

* New translations glossary.md (Japanese, Kansai)

* New translations glossary.md (Chinese Simplified)

* New translations glossary.md (Chinese Traditional)

* New translations glossary.md (Indonesian)

* New translations glossary.md (Thai)

* New translations glossary.md (Uyghur)

* New translations glossary.md (Lojban)

* New translations glossary.md (Kannada)

* New translations glossary.md (Haitian Creole)

* New translations glossary.md (Kabyle)

* New translations misskey.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations note.md (Esperanto)

* New translations note.md (Esperanto)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations api.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations drive.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations report-issue.md (French)

* New translations troubleshooting.md (French)

* New translations faq.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations faq.md (Esperanto)

* New translations troubleshooting.md (French)

* New translations ja-JP.yml (Esperanto)

* New translations misskey.md (Esperanto)

* New translations troubleshooting.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations troubleshooting.md (French)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations misskey.md (Russian)

* New translations faq.md (French)

* New translations faq.md (Spanish)

* New translations faq.md (Russian)

* New translations faq.md (Arabic)

* New translations faq.md (Czech)

* New translations faq.md (Danish)

* New translations faq.md (German)

* New translations faq.md (Italian)

* New translations faq.md (Korean)

* New translations faq.md (Dutch)

* New translations faq.md (Norwegian)

* New translations faq.md (Polish)

* New translations faq.md (Portuguese)

* New translations faq.md (Ukrainian)

* New translations faq.md (Japanese, Kansai)

* New translations faq.md (Chinese Simplified)

* New translations faq.md (Chinese Traditional)

* New translations faq.md (English)

* New translations faq.md (Indonesian)

* New translations faq.md (Thai)

* New translations faq.md (Esperanto)

* New translations faq.md (Uyghur)

* New translations faq.md (Lojban)

* New translations faq.md (Kannada)

* New translations faq.md (Haitian Creole)

* New translations faq.md (Kabyle)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

* New translations antenna.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations apps.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations deck.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations antenna.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations antenna.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations api.md (Esperanto)

* New translations custom-emoji.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations deck.md (Japanese, Kansai)

* New translations deck.md (Japanese, Kansai)

* New translations faq.md (French)

* New translations faq.md (English)

* New translations faq.md (English)

* New translations faq.md (English)

* New translations faq.md (English)

* New translations faq.md (French)

* New translations misskey.md (French)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations faq.md (English)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations faq.md (French)

* New translations faq.md (Chinese Simplified)
2021-08-17 21:51:23 +09:00
7015df37e3 enhance(server): Improve user block (#7640)
* enhance(server): Improve user block

* Update CHANGELOG.md

* ユーザーリスト対応

* 相手から見れなくなるように

* Update 1629004542760-chart-reindex.ts

2365761ba5 (commitcomment-54919821)

* update test

* add test

* add todos

* Update 1629004542760-chart-reindex.ts
2021-08-17 21:48:59 +09:00
7ebdd4739a Fix truncate (#7642) 2021-08-17 17:25:19 +09:00
c4bcb31a00 Update 1629004542760-chart-reindex.ts 2021-08-17 13:40:15 +09:00
0a18ee24ac Update 1629004542760-chart-reindex.ts
2365761ba5 (commitcomment-54919821)
2021-08-17 13:37:16 +09:00
37d10b108e Update faq.md 2021-08-17 11:52:27 +09:00
b5cadeca2e fix(client): コントロールパネルでファイルを削除した際の表示を修正
Fix #7631
2021-08-16 20:07:54 +09:00
c8e93054bc fix(client): タッチ操作でウィンドウを閉じることができない問題を修正 2021-08-16 18:11:15 +09:00
def32107af perf: Improve network request performance (#7636)
* perf: Improve fetch

* CHANGELOG

* lifo
2021-08-16 17:44:43 +09:00
1b84ae9f3f chore: yarn.lockがおかしかったらCIでコケるように (#7634) 2021-08-16 16:33:45 +09:00
73ce1f61a8 Tweak client style 2021-08-16 15:21:58 +09:00
8661cd1ee7 Renoteされた時刻が投稿された時刻のように表示される問題を修正
Fix #7620
2021-08-16 15:20:23 +09:00
53f55defda fix typo 2021-08-16 12:28:12 +09:00
d60dc60bc9 fix(server): use insert instead of save 2021-08-15 22:10:05 +09:00
bf1d7e6252 fix(server): ja-JPのような形式にDeepLが対応してない 2021-08-15 21:52:58 +09:00
c96b2767b9 fix typo 2021-08-15 21:44:00 +09:00
6c1f03eefd enhance(client): Improve stability of version comparison 2021-08-15 20:34:06 +09:00
cced83024b feat: ノートの翻訳機能
Resolve #5213
2021-08-15 20:26:44 +09:00
1cd6ba3c1d chore: Remove vips from Dockerfile (#7633) 2021-08-15 18:12:46 +09:00
2365761ba5 perf(server): Optimize db indexes of chart tables 2021-08-15 17:13:23 +09:00
d3b4b70bfc 🎨 2021-08-14 22:35:15 +09:00
f95d5701a2 feat(client): ジョブキューウィジェットに警報音を鳴らす設定を追加 2021-08-14 18:36:22 +09:00
a8c56afd0f add sound 2021-08-14 18:19:25 +09:00
4de30aa47e Update CHANGELOG.md 2021-08-14 18:13:41 +09:00
f05f7c920e fix: truncate user information if it is too long (#7629)
* truncate user information if it is too long

Some AP software allows for user names or summaries to be very long.
Misskey can not handle this and the profile page can not be opened and
no activities from such users can be seen.

Instead, the user name and summary are cut off after the maximum length
so misskey can still process the activities of the profile.

Co-authored-by: Toast <toast@toast.cafe>

* fix code style

Co-authored-by: Toast <toast@toast.cafe>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-08-14 18:11:47 +09:00
5f86509abc Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-13 17:59:57 +09:00
1561391293 feat(client): Misskey更新時にダイアログを表示するように 2021-08-13 17:59:54 +09:00
60553a8a5e Update PULL_REQUEST_TEMPLATE.md 2021-08-12 23:46:13 +09:00
e656074de4 Update PULL_REQUEST_TEMPLATE.md 2021-08-12 23:45:46 +09:00
b81ff340b1 Introduce e2e test 2021-08-12 19:05:07 +09:00
77456ae0bc Create config.yml 2021-08-12 15:44:16 +09:00
ab01cf1881 12.87.0 2021-08-12 12:48:53 +09:00
0d10ca02db New Crowdin updates (#7619)
* New translations disable-timelines.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

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

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations api.md (Chinese Simplified)

* New translations create-plugin.md (Chinese Simplified)

* New translations stream.md (Chinese Simplified)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations note.md (English)

* New translations links.md (English)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Russian)

* New translations troubleshooting.md (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Chinese Simplified)
2021-08-12 12:48:24 +09:00
0627df8116 improve(client): Improve emoji autocomplete 2021-08-12 12:41:57 +09:00
c88ea7150c fix(client): 更新時にテーマキャッシュをクリアするように 2021-08-12 12:02:41 +09:00
555954c71e Improve about-misskey page 2021-08-12 11:48:06 +09:00
f231f02329 Update vue-loader 2021-08-12 11:38:21 +09:00
b8af5dfde0 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-08-12 11:33:03 +09:00
ef3710fdc2 Update deps 2021-08-12 11:33:00 +09:00
bde114ad13 Update node 2021-08-12 11:28:51 +09:00
9d138aa282 Update CHANGELOG.md 2021-08-11 22:40:58 +09:00
c0ba71c368 12.86.0 2021-08-11 22:36:51 +09:00
7b2cb30a9d New Crowdin updates (#7617)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations silence.md (Esperanto)

* New translations glossary.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations troubleshooting.md (French)

* New translations troubleshooting.md (Chinese Simplified)

* New translations troubleshooting.md (Kabyle)

* New translations troubleshooting.md (Haitian Creole)

* New translations troubleshooting.md (Kannada)

* New translations troubleshooting.md (Lojban)

* New translations troubleshooting.md (Uyghur)

* New translations troubleshooting.md (Esperanto)

* New translations troubleshooting.md (Thai)

* New translations troubleshooting.md (Indonesian)

* New translations troubleshooting.md (English)

* New translations troubleshooting.md (Chinese Traditional)

* New translations troubleshooting.md (Ukrainian)

* New translations troubleshooting.md (Spanish)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Portuguese)

* New translations troubleshooting.md (Polish)

* New translations troubleshooting.md (Norwegian)

* New translations troubleshooting.md (Dutch)

* New translations troubleshooting.md (Korean)

* New translations troubleshooting.md (Italian)

* New translations troubleshooting.md (German)

* New translations troubleshooting.md (Danish)

* New translations troubleshooting.md (Czech)

* New translations troubleshooting.md (Arabic)

* New translations troubleshooting.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations theme.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations changelog.md (French)

* New translations changelog.md (Chinese Simplified)

* New translations changelog.md (Kabyle)

* New translations changelog.md (Haitian Creole)

* New translations changelog.md (Kannada)

* New translations changelog.md (Lojban)

* New translations changelog.md (Uyghur)

* New translations changelog.md (Esperanto)

* New translations changelog.md (Thai)

* New translations changelog.md (Indonesian)

* New translations changelog.md (English)

* New translations changelog.md (Chinese Traditional)

* New translations changelog.md (Ukrainian)

* New translations changelog.md (Spanish)

* New translations changelog.md (Russian)

* New translations changelog.md (Portuguese)

* New translations changelog.md (Polish)

* New translations changelog.md (Norwegian)

* New translations changelog.md (Dutch)

* New translations changelog.md (Korean)

* New translations changelog.md (Italian)

* New translations changelog.md (German)

* New translations changelog.md (Danish)

* New translations changelog.md (Czech)

* New translations changelog.md (Arabic)

* New translations changelog.md (Japanese, Kansai)

* New translations links.md (Ukrainian)

* New translations links.md (Czech)

* New translations links.md (Danish)

* New translations links.md (German)

* New translations links.md (Italian)

* New translations links.md (Korean)

* New translations links.md (Dutch)

* New translations links.md (Norwegian)

* New translations links.md (Polish)

* New translations links.md (Portuguese)

* New translations links.md (Russian)

* New translations links.md (Chinese Simplified)

* New translations links.md (Spanish)

* New translations links.md (Chinese Traditional)

* New translations links.md (English)

* New translations links.md (Indonesian)

* New translations links.md (Thai)

* New translations links.md (Esperanto)

* New translations links.md (Uyghur)

* New translations links.md (Lojban)

* New translations links.md (Kannada)

* New translations links.md (Haitian Creole)

* New translations links.md (Kabyle)

* New translations links.md (Arabic)

* New translations links.md (French)

* New translations ja-JP.yml (English)

* New translations links.md (Japanese, Kansai)

* New translations disable-timelines.md (English)

* New translations disable-timelines.md (English)

* New translations disable-timelines.md (English)

* New translations faq.md (English)

* New translations faq.md (English)

* New translations misskey.md (English)

* New translations ja-JP.yml (English)

* New translations faq.md (English)

* New translations apps.md (English)

* New translations apps.md (English)

* New translations faq.md (English)

* New translations misskey.md (English)

* New translations changelog.md (English)

* New translations faq.md (English)

* New translations misskey.md (English)

* New translations faq.md (English)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations glossary.md (English)

* New translations links.md (English)

* New translations links.md (English)

* New translations report-issue.md (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations antenna.md (English)

* New translations drive.md (English)

* New translations drive.md (English)

* New translations faq.md (English)

* New translations antenna.md (English)

* New translations drive.md (English)

* New translations favorite.md (English)

* New translations silence.md (English)

* New translations glossary.md (English)

* New translations silence.md (English)

* New translations widgets.md (English)

* New translations ja-JP.yml (English)

* New translations misskey.md (English)

* New translations faq.md (English)

* New translations antenna.md (English)

* New translations drive.md (English)

* New translations favorite.md (English)

* New translations glossary.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations troubleshooting.md (English)

* New translations troubleshooting.md (English)

* New translations troubleshooting.md (English)

* New translations troubleshooting.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

* New translations misskey.md (English)

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

* New translations disable-timelines.md (Chinese Simplified)

* New translations links.md (Chinese Simplified)

* New translations note.md (English)

* New translations silence.md (English)

* New translations note.md (English)

* New translations note.md (English)

* New translations note.md (English)

* New translations note.md (English)

* New translations note.md (Ukrainian)

* New translations note.md (Czech)

* New translations note.md (Danish)

* New translations note.md (German)

* New translations note.md (Italian)

* New translations note.md (Korean)

* New translations note.md (Dutch)

* New translations note.md (Norwegian)

* New translations note.md (Polish)

* New translations note.md (Portuguese)

* New translations note.md (Russian)

* New translations note.md (Chinese Simplified)

* New translations note.md (Spanish)

* New translations note.md (Chinese Traditional)

* New translations note.md (English)

* New translations note.md (Indonesian)

* New translations note.md (Thai)

* New translations note.md (Esperanto)

* New translations note.md (Uyghur)

* New translations note.md (Lojban)

* New translations note.md (Kannada)

* New translations note.md (Haitian Creole)

* New translations note.md (Kabyle)

* New translations note.md (Arabic)

* New translations note.md (French)

* New translations note.md (Japanese, Kansai)

* New translations ja-JP.yml (Esperanto)

* New translations links.md (Ukrainian)

* New translations links.md (Kabyle)

* New translations links.md (Haitian Creole)

* New translations links.md (Kannada)

* New translations links.md (Lojban)

* New translations links.md (Uyghur)

* New translations links.md (Esperanto)

* New translations links.md (Thai)

* New translations links.md (Indonesian)

* New translations links.md (English)

* New translations links.md (Chinese Traditional)

* New translations links.md (Chinese Simplified)

* New translations links.md (Russian)

* New translations links.md (French)

* New translations links.md (Portuguese)

* New translations links.md (Polish)

* New translations links.md (Norwegian)

* New translations links.md (Dutch)

* New translations links.md (Korean)

* New translations links.md (Italian)

* New translations links.md (German)

* New translations links.md (Danish)

* New translations links.md (Czech)

* New translations links.md (Arabic)

* New translations links.md (Spanish)

* New translations links.md (Japanese, Kansai)

* New translations note.md (Esperanto)

* New translations disable-timelines.md (Chinese Simplified)
2021-08-11 22:36:36 +09:00
0f55e65701 ぼかし効果の切り替え機能 2021-08-11 22:34:45 +09:00
aeb24b96eb Add discord link 2021-08-11 21:13:17 +09:00
ad4700b3b1 Improve doc 2021-08-11 21:10:48 +09:00
b2e5ade5ac フォロー通知のEメール通知を修正 2021-08-11 21:08:05 +09:00
90a7b9b551 🎨 2021-08-11 21:05:26 +09:00
31b6ab9b23 fix chore error 2021-08-11 00:21:48 +09:00
4149c7782f 🎨 2021-08-11 00:21:24 +09:00
227f52d758 Improve docs 2021-08-10 19:51:56 +09:00
baa2a871f1 Update patrons list 2021-08-10 19:34:53 +09:00
5bb619fe7b Improve doc 2021-08-10 19:19:02 +09:00
fff3c552e2 perf(client): use function for render slot to improve performance
See: https://forum.vuejs.org/t/how-to-avoid-non-function-value-encountered-for-default-slot-warning/107039
2021-08-10 18:19:59 +09:00
e19cc8bebf ハッシュタグ入力が空のときに#が付くのを修正 2021-08-10 16:06:14 +09:00
f4f8debb92 🎨 2021-08-10 15:29:30 +09:00
ea6b8b599f Update html comment 2021-08-10 15:28:01 +09:00
c30f02ae4c Update vue to 3.2.1 2021-08-10 15:07:15 +09:00
09450ba544 Update troubleshooting.md 2021-08-09 22:35:22 +09:00
19f753c15c 12.85.1 2021-08-09 21:47:43 +09:00
fa49427df0 🎨 2021-08-09 21:45:46 +09:00
6678d97cc4 🎨 2021-08-09 21:41:20 +09:00
e3642a8d10 🎨 2021-08-09 18:55:39 +09:00
f9022fdf16 🎨 2021-08-09 18:05:32 +09:00
1c764139bf 🎨 2021-08-09 18:01:12 +09:00
048ed26f41 連合インスタンス設定ダイアログ 2021-08-09 12:28:23 +09:00
0cb04ded36 12.85.0 2021-08-08 23:25:13 +09:00
6cfad65ac7 🎨 2021-08-08 21:59:18 +09:00
ed20805b10 New Crowdin updates (#7616)
* New translations troubleshooting.md (Indonesian)

* New translations troubleshooting.md (Chinese Traditional)

* New translations troubleshooting.md (German)

* New translations troubleshooting.md (Chinese Simplified)

* New translations troubleshooting.md (Ukrainian)

* New translations troubleshooting.md (Russian)

* New translations troubleshooting.md (Portuguese)

* New translations troubleshooting.md (Polish)

* New translations troubleshooting.md (Norwegian)

* New translations troubleshooting.md (Dutch)

* New translations troubleshooting.md (Korean)

* New translations troubleshooting.md (Italian)

* New translations report-issue.md (Korean)

* New translations report-issue.md (German)

* New translations links.md (Portuguese)

* New translations links.md (Kannada)

* New translations misskey.md (German)

* New translations misskey.md (Danish)

* New translations misskey.md (Czech)

* New translations misskey.md (Arabic)

* New translations misskey.md (Spanish)

* New translations misskey.md (French)

* New translations links.md (Japanese, Kansai)

* New translations links.md (Kabyle)

* New translations links.md (Haitian Creole)

* New translations links.md (Lojban)

* New translations misskey.md (Korean)

* New translations links.md (Uyghur)

* New translations links.md (Esperanto)

* New translations links.md (Thai)

* New translations links.md (Indonesian)

* New translations links.md (English)

* New translations links.md (Chinese Traditional)

* New translations links.md (Chinese Simplified)

* New translations links.md (Ukrainian)

* New translations links.md (Russian)

* New translations misskey.md (Italian)

* New translations misskey.md (Dutch)

* New translations report-issue.md (Danish)

* New translations misskey.md (Uyghur)

* New translations report-issue.md (Czech)

* New translations report-issue.md (Arabic)

* New translations report-issue.md (Spanish)

* New translations report-issue.md (French)

* New translations misskey.md (Japanese, Kansai)

* New translations misskey.md (Kabyle)

* New translations misskey.md (Haitian Creole)

* New translations misskey.md (Kannada)

* New translations misskey.md (Lojban)

* New translations misskey.md (Esperanto)

* New translations misskey.md (Norwegian)

* New translations misskey.md (Thai)

* New translations misskey.md (Indonesian)

* New translations misskey.md (English)

* New translations misskey.md (Chinese Traditional)

* New translations misskey.md (Chinese Simplified)

* New translations misskey.md (Ukrainian)

* New translations misskey.md (Russian)

* New translations misskey.md (Portuguese)

* New translations misskey.md (Polish)

* New translations widgets.md (Lojban)

* New translations reaction.md (Polish)

* New translations widgets.md (Esperanto)

* New translations pages.md (Esperanto)

* New translations reaction.md (Spanish)

* New translations reaction.md (French)

* New translations pages.md (Japanese, Kansai)

* New translations pages.md (Kabyle)

* New translations pages.md (Haitian Creole)

* New translations pages.md (Kannada)

* New translations pages.md (Lojban)

* New translations pages.md (Uyghur)

* New translations pages.md (Thai)

* New translations reaction.md (Czech)

* New translations pages.md (Indonesian)

* New translations pages.md (English)

* New translations pages.md (Chinese Traditional)

* New translations pages.md (Chinese Simplified)

* New translations pages.md (Ukrainian)

* New translations pages.md (Russian)

* New translations pages.md (Portuguese)

* New translations pages.md (Polish)

* New translations pages.md (Norwegian)

* New translations reaction.md (Arabic)

* New translations reaction.md (Danish)

* New translations pages.md (Korean)

* New translations reaction.md (Indonesian)

* New translations silence.md (French)

* New translations reaction.md (Japanese, Kansai)

* New translations reaction.md (Kabyle)

* New translations reaction.md (Haitian Creole)

* New translations reaction.md (Kannada)

* New translations reaction.md (Lojban)

* New translations reaction.md (Uyghur)

* New translations reaction.md (Esperanto)

* New translations reaction.md (Thai)

* New translations reaction.md (English)

* New translations reaction.md (German)

* New translations reaction.md (Chinese Traditional)

* New translations reaction.md (Chinese Simplified)

* New translations reaction.md (Ukrainian)

* New translations reaction.md (Russian)

* New translations reaction.md (Portuguese)

* New translations reaction.md (Norwegian)

* New translations reaction.md (Dutch)

* New translations reaction.md (Korean)

* New translations reaction.md (Italian)

* New translations pages.md (Dutch)

* New translations pages.md (Italian)

* New translations silence.md (Arabic)

* New translations mute.md (Kabyle)

* New translations note.md (Italian)

* New translations note.md (German)

* New translations note.md (Danish)

* New translations note.md (Czech)

* New translations note.md (Arabic)

* New translations note.md (Spanish)

* New translations note.md (French)

* New translations mute.md (Japanese, Kansai)

* New translations mute.md (Haitian Creole)

* New translations note.md (Dutch)

* New translations mute.md (Kannada)

* New translations mute.md (Lojban)

* New translations mute.md (Uyghur)

* New translations mute.md (Esperanto)

* New translations mute.md (Thai)

* New translations mute.md (Indonesian)

* New translations mute.md (English)

* New translations mute.md (Chinese Traditional)

* New translations mute.md (Chinese Simplified)

* New translations note.md (Korean)

* New translations note.md (Norwegian)

* New translations pages.md (German)

* New translations note.md (Lojban)

* New translations pages.md (Danish)

* New translations pages.md (Czech)

* New translations pages.md (Arabic)

* New translations pages.md (Spanish)

* New translations pages.md (French)

* New translations note.md (Japanese, Kansai)

* New translations note.md (Kabyle)

* New translations note.md (Haitian Creole)

* New translations note.md (Kannada)

* New translations note.md (Uyghur)

* New translations note.md (Polish)

* New translations note.md (Esperanto)

* New translations note.md (Thai)

* New translations note.md (Indonesian)

* New translations note.md (English)

* New translations note.md (Chinese Traditional)

* New translations note.md (Chinese Simplified)

* New translations note.md (Ukrainian)

* New translations note.md (Russian)

* New translations note.md (Portuguese)

* New translations silence.md (Spanish)

* New translations silence.md (Czech)

* New translations widgets.md (Thai)

* New translations timeline.md (Portuguese)

* New translations timeline.md (Esperanto)

* New translations timeline.md (Thai)

* New translations timeline.md (Indonesian)

* New translations timeline.md (English)

* New translations timeline.md (Chinese Traditional)

* New translations timeline.md (Chinese Simplified)

* New translations timeline.md (Ukrainian)

* New translations timeline.md (Russian)

* New translations timeline.md (Polish)

* New translations timeline.md (Lojban)

* New translations timeline.md (Norwegian)

* New translations timeline.md (Dutch)

* New translations timeline.md (Korean)

* New translations timeline.md (Italian)

* New translations timeline.md (German)

* New translations timeline.md (Danish)

* New translations timeline.md (Czech)

* New translations timeline.md (Arabic)

* New translations timeline.md (Spanish)

* New translations timeline.md (Uyghur)

* New translations timeline.md (Kannada)

* New translations theme.md (Japanese, Kansai)

* New translations widgets.md (Dutch)

* New translations widgets.md (Indonesian)

* New translations widgets.md (English)

* New translations widgets.md (Chinese Traditional)

* New translations widgets.md (Chinese Simplified)

* New translations widgets.md (Ukrainian)

* New translations widgets.md (Russian)

* New translations widgets.md (Portuguese)

* New translations widgets.md (Polish)

* New translations widgets.md (Norwegian)

* New translations widgets.md (Korean)

* New translations timeline.md (Haitian Creole)

* New translations widgets.md (Italian)

* New translations widgets.md (German)

* New translations widgets.md (Danish)

* New translations widgets.md (Czech)

* New translations widgets.md (Arabic)

* New translations widgets.md (Spanish)

* New translations widgets.md (French)

* New translations timeline.md (Japanese, Kansai)

* New translations timeline.md (Kabyle)

* New translations timeline.md (French)

* New translations theme.md (Kabyle)

* New translations silence.md (Danish)

* New translations silence.md (Chinese Traditional)

* New translations silence.md (Kabyle)

* New translations silence.md (Haitian Creole)

* New translations silence.md (Kannada)

* New translations silence.md (Lojban)

* New translations silence.md (Uyghur)

* New translations silence.md (Esperanto)

* New translations silence.md (Thai)

* New translations silence.md (Indonesian)

* New translations silence.md (English)

* New translations silence.md (Chinese Simplified)

* New translations theme.md (French)

* New translations silence.md (Ukrainian)

* New translations silence.md (Russian)

* New translations silence.md (Portuguese)

* New translations silence.md (Polish)

* New translations silence.md (Norwegian)

* New translations silence.md (Dutch)

* New translations silence.md (Korean)

* New translations silence.md (Italian)

* New translations silence.md (German)

* New translations silence.md (Japanese, Kansai)

* New translations theme.md (Spanish)

* New translations theme.md (Haitian Creole)

* New translations theme.md (Ukrainian)

* New translations theme.md (Kannada)

* New translations theme.md (Lojban)

* New translations theme.md (Uyghur)

* New translations theme.md (Esperanto)

* New translations theme.md (Thai)

* New translations theme.md (Indonesian)

* New translations theme.md (English)

* New translations theme.md (Chinese Traditional)

* New translations theme.md (Chinese Simplified)

* New translations theme.md (Russian)

* New translations theme.md (Arabic)

* New translations theme.md (Portuguese)

* New translations theme.md (Polish)

* New translations theme.md (Norwegian)

* New translations theme.md (Dutch)

* New translations theme.md (Korean)

* New translations theme.md (Italian)

* New translations theme.md (German)

* New translations theme.md (Danish)

* New translations theme.md (Czech)

* New translations troubleshooting.md (Japanese, Kansai)
2021-08-08 21:39:45 +09:00
576303cd72 Update crowdin.yml 2021-08-08 18:57:07 +09:00
0062e084f8 New Crowdin updates (#7614)
* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Kabyle)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Japanese, Kansai)
2021-08-08 18:55:15 +09:00
b90d76dcfe Update links.md 2021-08-08 18:47:57 +09:00
c95619b2bf Update ja-JP.yml 2021-08-08 17:23:16 +09:00
82150bd5b8 🎨 2021-08-08 16:30:30 +09:00
9e03335ff8 Improve client 2021-08-08 13:02:58 +09:00
b3c5c3f0ea Improve usability 2021-08-08 12:45:44 +09:00
65858dab3e Improve client 2021-08-08 12:19:10 +09:00
c968633d15 Update misskey.md 2021-08-07 23:43:42 +09:00
39a8942daf 🎨 2021-08-07 22:06:50 +09:00
7705a7928e fix bug that docs not loading 2021-08-07 20:39:27 +09:00
d2c14b844e New Crowdin updates (#7610)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mute.md (Esperanto)

* New translations stream.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations keyboard-shortcut.md (Esperanto)

* New translations timelines.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations follow.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations custom-emoji.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)
2021-08-07 19:25:54 +09:00
3e45e6c165 Clean up 2021-08-07 19:21:17 +09:00
fe8334931f user page 🎨 2021-08-07 19:19:43 +09:00
f565c5f730 Improve chat UI (wip) 2021-08-07 19:19:31 +09:00
c03e2febb0 🎨 2021-08-07 19:09:06 +09:00
c2f4fb7ba7 Update troubleshooting.md 2021-08-07 18:10:33 +09:00
5f869e5d87 Improve client 2021-08-07 17:55:16 +09:00
65f1afc4e0 Improve docs 2021-08-07 16:54:51 +09:00
aec2762bf1 🎨 2021-08-07 16:12:42 +09:00
a41144a00f Improve docs 2021-08-07 15:13:38 +09:00
aa28e8a7a6 Update stream.md 2021-08-07 14:42:51 +09:00
a1a51ce518 Improve docs 2021-08-07 14:05:12 +09:00
90999e0ef9 Improve docs 2021-08-07 13:56:18 +09:00
2ceeb17056 Add doc for admin 2021-08-07 13:41:14 +09:00
18afdd6040 Improve docs 2021-08-07 13:35:18 +09:00
b9972ec6bd 🎨 2021-08-07 13:19:00 +09:00
ebb53e87f3 ハッシュタグ入力エリア
Resolve #7600
2021-08-07 12:47:01 +09:00
9f9d7325fd インスタンス一覧ページ 2021-08-07 10:24:50 +09:00
742a005523 カスタム絵文字一覧ページ 2021-08-07 10:23:59 +09:00
3a28c06534 🎨 2021-08-06 22:47:26 +09:00
46d5711071 🎨 2021-08-06 22:29:19 +09:00
48113f3afd Improve doc 2021-08-06 14:28:40 +09:00
be29972ddf Update doc.vue 2021-08-06 13:55:26 +09:00
49b3a83f76 Improve docs 2021-08-06 11:04:17 +09:00
342794c728 Update mfm.md 2021-08-06 10:49:04 +09:00
3739638c81 Improve docs 2021-08-06 03:28:47 +09:00
401351d9c8 Improve docs 2021-08-06 02:38:45 +09:00
6073a03967 Improve docs 2021-08-06 00:33:25 +09:00
3e3d294188 Improve docs 2021-08-06 00:17:40 +09:00
f6f96ae5bf Imorive client 2021-08-05 22:43:14 +09:00
62ccb53c24 Add rainbow function for MFM 2021-08-05 21:55:41 +09:00
e410e22980 Update misskey.md 2021-08-05 18:46:43 +09:00
fc5ceea335 Improve doc 2021-08-05 18:34:59 +09:00
38af8d4737 Update glossary.md 2021-08-05 16:34:24 +09:00
33b0cab596 refactor 2021-08-05 16:34:18 +09:00
2a47e4a1e1 Update misskey.md 2021-08-05 16:29:34 +09:00
46f53868c5 Improve docs 2021-08-05 16:04:31 +09:00
eac7f11aa7 Update glossary.md 2021-08-05 15:48:12 +09:00
e219188f46 Update misskey.md 2021-08-05 15:38:20 +09:00
3df8c701a7 Improve docs 2021-08-05 15:19:55 +09:00
1186813c75 Update glossary.md 2021-08-05 15:08:10 +09:00
645b6fdc8a Improve docs 2021-08-05 13:58:44 +09:00
ae0596a729 improve docs 2021-08-05 13:43:57 +09:00
bb5fd3c1f2 Update misskey.md 2021-08-05 13:02:44 +09:00
532fa9c5f9 🎨 2021-08-05 12:20:27 +09:00
80a4aa6fa6 Update misskey.md 2021-08-05 12:20:21 +09:00
4f218f544f Update misskey.md 2021-08-05 12:14:14 +09:00
f261f8d7d1 Update misskey.md 2021-08-05 10:45:19 +09:00
e044d11782 Improve docs 2021-08-05 00:15:51 +09:00
d2da459dd8 refactor 2021-08-01 14:45:40 +09:00
b1e6a33d6b tweak style 2021-07-29 23:59:45 +09:00
0d276d0d61 Improve usability 2021-07-29 17:10:16 +09:00
998936651a fix style 2021-07-28 14:46:25 +09:00
1bec25e8e6 パスワードリセットしても新しいパスワードが表示されない問題を修正 2021-07-28 14:45:56 +09:00
f220e4183f 🎨 2021-07-27 21:37:32 +09:00
e965b57dc2 Update PULL_REQUEST_TEMPLATE.md 2021-07-27 00:01:21 +09:00
41fe364b49 12.84.3 2021-07-26 11:15:33 +09:00
2953ba17c3 ストリーミングが不安定な問題を修正 2021-07-26 11:12:06 +09:00
f3b3e06329 fix email notification bug 2021-07-25 13:28:33 +09:00
98249942d5 fix bug 2021-07-25 13:07:08 +09:00
0fc8445425 🎨 2021-07-25 12:55:17 +09:00
15d166e30e 12.84.2 2021-07-23 22:43:34 +09:00
83619fda98 revert vue to 3.1.x 2021-07-23 22:43:24 +09:00
e23ad7833d 12.84.1 2021-07-23 21:36:32 +09:00
38aa760b57 update vue 2021-07-23 21:36:30 +09:00
3182606e99 12.84.0 2021-07-20 12:10:49 +09:00
7cc8646ad3 Update vue 2021-07-20 12:10:03 +09:00
e793fced61 New Crowdin updates (#7567)
* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations follow.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations follow.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations reaction.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations mute.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timelines.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (English)

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

* New translations keyboard-shortcut.md (Indonesian)

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

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

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations timelines.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations stream.md (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Esperanto)

* New translations ja-JP.yml (Chinese Simplified)
2021-07-20 12:09:39 +09:00
248edb5dfd 🎨 2021-07-19 23:48:22 +09:00
9414a944b7 Tweak design 2021-07-19 23:31:41 +09:00
756b8a2a29 Make thickness of clock hands configuable 2021-07-19 23:31:27 +09:00
f142ed91fb Implement radio type for form dialog 2021-07-19 23:30:45 +09:00
6aef54a9e0 Improve component stability 2021-07-19 23:30:12 +09:00
f1c9e596e8 アイコンを四角で表示するオプション 2021-07-19 15:11:28 +09:00
862ddde0db Tweak style 2021-07-19 13:04:32 +09:00
ee5a060762 Fix stickyTop calculation 2021-07-19 13:00:29 +09:00
42d293ee60 Classic UI 2021-07-19 11:36:35 +09:00
04e27e160e 認証の修正 (#7597)
* authenticateのキャッシュを廃止

* 凍結ユーザーがサインイン出来てしまうのを修正

* 凍結ユーザーはストリーミング接続出来ないように

* 他人のアクセストークンはrevoke出来ないように, 正常削除を待機するように

* ユーザー/アクセストークンを無効化したらストリーミングを切断するように

* Revert TODO

* ストリーミングterminateは、ユーザー削除後に行うように

* signinでsuspendは別のエラーにする

* トークン再生成後のストリーミング切断は少し待つように

* サスペンド後のストリーミング切断はローカルユーザーのみに
2021-07-18 19:57:53 +09:00
62dede02ea API AuthenticateでDB接続エラーなどが発生するとログアウトさせられてしまうのを修正 Fix #7603 (#7604) 2021-07-18 00:53:16 +09:00
6d1d7b5366 Improve type 2021-07-17 15:43:07 +09:00
55e5c12441 Update deps 2021-07-17 13:43:09 +09:00
0b34503c8a Update check-hit-antenna.ts 2021-07-16 19:43:15 +09:00
dc69490e3a Refactoring 2021-07-15 20:45:32 +09:00
1c241776a6 Improve email notification 2021-07-15 20:35:43 +09:00
6812b895e7 Revert "Resolve #6811"
This reverts commit 558d288e7b.
2021-07-14 00:13:23 +09:00
ab439d0ed6 Clean up 2021-07-14 00:12:34 +09:00
c7a2c368d4 Custom CSS 2021-07-14 00:11:05 +09:00
2047860e71 Use unisonReload 2021-07-13 23:30:36 +09:00
1dbe03b210 refactor 2021-07-13 23:30:20 +09:00
b59a19c144 Fix #7576 2021-07-13 23:30:12 +09:00
558d288e7b Resolve #6811 2021-07-12 02:56:33 +09:00
e24c8b6878 Fix video (#7594) 2021-07-10 23:19:56 +09:00
1772af9583 AP Actorの修正 (#7573)
* AP Actorの修正

* Add ActivityPub test

* Fix person

* Test

* ap test

* Revert "Test"

This reverts commit 3c493eff4e89f94fd33f25189ba3bc96ef4366b3.

* Test comment

* fix

* fix

* Update inbox

* indent

* nl

* indent

* TODO

* Fix inbox

* Update test
2021-07-10 23:14:57 +09:00
cb42f94d9c Rich welcome content (#7588)
* Add rich content (polls, media) to the welcome page notes

* Add a simple scrolling animation to welcome page
2021-07-10 02:55:12 +09:00
38474c7316 mfm.jsが更新されたのでもうこのresolutionsはいらない (#7581) 2021-07-09 01:09:02 +09:00
49febe1764 Resolve #7165 2021-07-09 01:07:55 +09:00
65addc8206 refactoring 2021-07-01 00:50:19 +09:00
28f7e48dc6 improve type 2021-06-30 23:33:50 +09:00
d97fc9ce4e カスタム絵文字インポート時もemojiAddedイベントを発行するように 2021-06-23 13:42:02 +09:00
f26aeee819 Update theme.vue 2021-06-14 22:58:43 +09:00
c071467b6a テストがうごかないのを修正 (#7566)
* startServer

* typeorm 0.2.32

* Fix: chartのテストがテストの並び順によっては正しく初期化されない

* initTestDb
2021-06-12 22:40:17 +09:00
334ca01092 Update resolutions (#7572) 2021-06-12 22:32:44 +09:00
c122ec2e79 Update CONTRIBUTING.md (#7570) 2021-06-11 12:19:48 +09:00
e1247b3e45 12.83.0 2021-06-10 14:03:19 +09:00
8b9c445fef New Crowdin updates (#7554)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations api.md (Korean)

* New translations mfm.md (Korean)

* New translations api.md (Korean)

* New translations timelines.md (Spanish)

* New translations timelines.md (Spanish)

* New translations timelines.md (Spanish)

* New translations theme.md (Spanish)

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

* New translations theme.md (Spanish)

* New translations theme.md (Spanish)

* New translations theme.md (Spanish)

* New translations theme.md (Spanish)

* New translations theme.md (Spanish)

* New translations theme.md (Spanish)

* New translations stream.md (Spanish)

* New translations stream.md (Spanish)

* New translations stream.md (Spanish)

* New translations stream.md (Spanish)
2021-06-10 14:01:09 +09:00
a65eb502d2 fix api response definition 2021-06-08 14:26:52 +09:00
55c549a9f8 Remove entity descriptions
#6627
2021-06-08 14:24:21 +09:00
56600ba1df refactor type 2021-06-08 14:14:58 +09:00
6b312f755e Remove endpoint descriptions
#6627
2021-06-08 14:09:32 +09:00
d6267f797d 外部リンクアイコンが表示されない問題を修正 2021-06-08 12:19:55 +09:00
a2b8097b4b 歓迎ページでバナー画像が表示されない問題を修正 (#7559)
* 歓迎ページでバナー画像が表示されない問題

* revert

* 背景画像設定オプションを追加
2021-06-08 12:17:17 +09:00
22bbee1fa3 Update deps 2021-06-08 11:40:08 +09:00
fa1b38394c Updated divisions to math.div (#7549)
* Updated divisions to math.div on Reversi (game.board.vue)

* Update src/client/pages/reversi/game.board.vue

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

* Oops. Forgot to put it all through parenthesis

* Imported sass:math

* Fixes on drive.vue

* Forgot the stupid comma

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-06-05 14:57:52 +09:00
441790be2d Fix resync-remote-user (#7556)
* Fix resync-remote-user

* tune
2021-06-05 14:55:41 +09:00
5d66bb8794 ランダムにテストがコケるのを修正 (#7553)
* Test shutdown

* Revert "Test shutdown"

This reverts commit 85182e7dd196cdd9ecb46cfb50adaabd04c5ba60.

* Skip beforeShutdown in test

* Wait shutdown in test

* Revert "Skip beforeShutdown in test"

This reverts commit 79c33ab53615e8fa4820d2abfc2494cba55c441c.

* Revert "Revert "Skip beforeShutdown in test""

This reverts commit 3423133a137c79b64f3ff6ef9dbe433a441a47b0.
2021-06-05 14:54:07 +09:00
a5cdc9a1f4 Add missing migrations (#7552) 2021-06-04 20:40:47 +09:00
a5a2f9d01e Update misskey.js 2021-06-01 19:17:25 +09:00
89fb727f61 Update type.ts 2021-06-01 19:17:17 +09:00
3e7a87f75a 12.82.0 2021-05-31 13:06:25 +09:00
caf40e40fb Supports Array ActivityStreams type (#7536)
* Supports Array type

* Fix

* Fix Service to Note

* Update type.ts

Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-05-31 13:04:13 +09:00
b608f63a1a New Crowdin updates (#7527)
* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Korean)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Ukrainian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Indonesian)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

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

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

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

* New translations ja-JP.yml (Korean)
2021-05-31 12:02:13 +09:00
dc44d9a0a8 fix 2021-05-31 12:02:02 +09:00
bb926dd301 fix bug 2021-05-31 11:05:37 +09:00
79cb836483 Update deps 2021-05-31 11:05:34 +09:00
f1c4e4a10e fix style 2021-05-31 10:35:12 +09:00
798aedfc0f Supports Emoji 13.1 (#7539)
* Supports Emoji 13.1

* Fix regex
2021-05-30 20:52:39 +09:00
1077c2a637 🎨 2021-05-30 16:42:22 +09:00
cbe689607c Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-05-30 16:27:00 +09:00
948b70cb0f fix typo
Resolve #7540
2021-05-30 16:26:52 +09:00
0263539202 Fix remote drive expire (#7543) 2021-05-30 13:48:23 +09:00
52e54cf0dc refactor 2021-05-30 10:05:25 +09:00
24e7eeca0f fix local emoji detection
https://github.com/misskey-dev/misskey/pull/7526#discussion_r641886612
2021-05-30 10:05:12 +09:00
d76345264d fix bug 2021-05-28 22:57:04 +09:00
0eb115bf7e Resolve #7538 2021-05-28 22:53:00 +09:00
30d2a1d8b6 fix bug 2021-05-28 22:52:38 +09:00
857c88e8d6 fix type 2021-05-28 22:52:30 +09:00
ffb9646ce9 Add image description support (#7518)
* recieve image descriptions under the name property

* fix other components

* use comment for alt and title

* allow editing of file comment

* allow editing of file comment in note dialog

* federate note comments

* use file instead of this

* backend should accept comment on update

* update now actually accepts comment

* allow multiline descriptions

* image should also have description attached

* Update locales/ja-JP.yml

Co-authored-by: rinsuki <428rinsuki+git@gmail.com>

* Use custom component with side-by-side image

* improve usability on mobile devices

* revert changes

* Update post-form-attaches.vue

* Update drive.file.vue

* Update media-caption.vue

Co-authored-by: rinsuki <428rinsuki+git@gmail.com>
Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
2021-05-28 09:38:09 +09:00
db3724cf33 improve types 2021-05-28 09:34:42 +09:00
466c083233 カスタム絵文字をproxyに通すように (#7526) 2021-05-27 22:40:48 +09:00
ae2267220b wip #7533 2021-05-27 17:15:08 +09:00
c92744c3d3 Create SECURITY.md 2021-05-24 05:50:45 +09:00
35f075b887 🎨 2021-05-23 21:28:41 +09:00
6cc4edc5e8 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-05-23 21:14:44 +09:00
c06091f78a Update README.md 2021-05-23 21:14:29 +09:00
f85399e355 Add Indonesian to index language (#7528)
Co-authored-by: Sandy Nicko Mac Corzeta <sandynicko@windowslive.com>
2021-05-23 18:57:33 +09:00
47aaf04481 Fix search-by-tag (#7531)
* Fix search-by-tag

* Revert "Fix search-by-tag"

This reverts commit c971d1d5d82f2d8b58fdec76e42f4404339ab83a.

* Fix typo

* Remove unused var

* インジェクションは[]を返すように
2021-05-23 18:57:12 +09:00
7063a6925f fix: Safariでもモーダルのぼかし効果が効くようにした (#7530)
https://github.com/misskey-dev/misskey/issues/7529
2021-05-23 18:55:21 +09:00
3cd04c4b81 Fix agent type (#7532) 2021-05-23 13:07:11 +09:00
e6754eb880 12.81.2 2021-05-21 17:28:19 +09:00
ef646b9576 12.81.1 2021-05-21 17:27:17 +09:00
ecd541873b Update node version 2021-05-21 17:27:09 +09:00
5d10642e07 New Crowdin updates (#7511)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations timelines.md (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations aiscript.md (Indonesian)

* New translations aiscript.md (Indonesian)

* New translations api.md (Indonesian)

* New translations api.md (Indonesian)

* New translations custom-emoji.md (Indonesian)

* New translations timelines.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations follow.md (Indonesian)

* New translations timelines.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations create-plugin.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations theme.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations stream.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Dutch)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations deck.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations theme.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations keyboard-shortcut.md (Indonesian)

* New translations pages.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations theme.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations reversi-bot.md (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Indonesian)
2021-05-21 17:20:45 +09:00
da34acd35f Resolve #6563 (#7524)
* Resolve #6563

* Update note.ts

* Update generate-visibility-query.ts
2021-05-21 14:13:03 +09:00
0108b8bfe3 Update deps 2021-05-20 12:27:50 +09:00
b16c3798a4 Fix Announce/Delete AP deliver (#7517)
* Fix Announce/Delete AP deliver

* Revert "Fix Announce/Delete AP deliver"

This reverts commit 0292c5196df48f67bb7914e925560ba69e2b2980.

* localOnlyのDeleteをdeliverしないように

* null Activityに対するUndoはdeliverしないように
2021-05-19 16:15:01 +09:00
4b33c42da7 Add queue timeout (#7519) 2021-05-19 16:12:31 +09:00
961b3177d5 Fix Agent type, httpでもDNSキャッシュ (#7520) 2021-05-19 16:11:47 +09:00
7dc85a624e Update preloaded JSON-LD (#7521) 2021-05-19 16:10:43 +09:00
bfd215542b @contextをちゃんと付ける (#7522) 2021-05-19 16:00:08 +09:00
d752275730 fix bug 2021-05-14 11:04:21 +09:00
be7e389bb5 Revert "fix bug"
This reverts commit 5b250c15f8.
2021-05-14 10:49:54 +09:00
99234632b2 12.81.0 2021-05-11 14:39:26 +09:00
3a7393e1dd New Crowdin updates (#7501)
* New translations ja-JP.yml (Chinese Simplified)

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

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (English)

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

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

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Czech)

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

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Czech)
2021-05-11 14:39:08 +09:00
2d12f8b49e Improve rendering performance 2021-05-11 14:38:34 +09:00
3461f0ffc9 コントロールパネルでログ見れるように 2021-05-11 14:31:20 +09:00
f24f7f14c3 🎨 2021-05-11 12:55:38 +09:00
917e57d475 Fix #7431 (#7432)
* Fix #7431

* fix
2021-05-11 12:41:02 +09:00
6b43c5c18c change dom order: down elements cover upper ones (#7509) 2021-05-11 12:39:10 +09:00
7cd7059fbc 🎨 2021-05-10 21:22:51 +09:00
591a5c277c Add queue types (#7504) 2021-05-08 18:56:21 +09:00
164959a0c5 Create get-index-stats.ts 2021-05-08 12:51:23 +09:00
47fa7bb22a Improve ad 2021-05-08 12:50:11 +09:00
5b250c15f8 fix bug 2021-05-08 12:07:30 +09:00
b60f9fbc00 Improve ad 2021-05-07 14:22:13 +09:00
3d7c3c39ff 12.80.3 2021-05-05 19:05:33 +09:00
dd628006ec Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-05-05 19:05:21 +09:00
6cec662ec4 Improve ad 2021-05-05 19:05:19 +09:00
588b838deb APIドキュメントが見れなくなっているのを修正など (#7500)
* Test api.json

* Fix typo

* Fix api-doc
2021-05-05 19:02:30 +09:00
80f8c2de78 12.80.2 2021-05-05 15:17:45 +09:00
d011aeefc5 New Crowdin updates (#7496)
* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Japanese, Kansai)
2021-05-05 15:17:12 +09:00
44627c3b5f Update date-separated-list.vue 2021-05-05 15:16:47 +09:00
925a61e4d7 🎨 2021-05-05 14:06:57 +09:00
d8b17daf9d fix style 2021-05-04 23:43:26 +09:00
5e40930f11 Fix style 2021-05-04 23:39:17 +09:00
1a8f41010e 12.80.1 2021-05-04 23:12:45 +09:00
67f58b5217 fix bug 2021-05-04 23:12:36 +09:00
2efae80b97 12.80.0 2021-05-04 22:53:13 +09:00
1157df1407 New Crowdin updates (#7489)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations create-plugin.md (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations stream.md (French)

* New translations reversi-bot.md (French)

* New translations ja-JP.yml (English)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Spanish)

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

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

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

* New translations ja-JP.yml (French)

* New translations reversi-bot.md (French)

* New translations reversi-bot.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations stream.md (French)

* New translations stream.md (French)

* New translations ja-JP.yml (French)

* New translations stream.md (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations theme.md (Italian)

* New translations theme.md (French)

* New translations theme.md (English)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

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

* New translations deck.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

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

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

* New translations ja-JP.yml (French)

* New translations theme.md (French)

* New translations theme.md (French)

* New translations deck.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations aiscript.md (Spanish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

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

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

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)
2021-05-04 22:52:02 +09:00
94ac0a7797 🎨 2021-05-04 21:27:36 +09:00
35cf05d6ca 🎨 2021-05-04 21:21:02 +09:00
18e1efc7ec Ad (#7495)
* wip

* Update ad.vue

* Update default.widgets.vue

* wip

* Create 1620019354680-ad.ts

* wip

* Update ads.vue

* wip

* Update ad.vue
2021-05-04 21:15:57 +09:00
71ebb068f7 メールアドレスの設定を促すように 2021-05-04 17:09:57 +09:00
e9170e630c リアクションピッカーの設定がリアルタイムで反映されない問題を修正 2021-05-04 17:02:14 +09:00
6ae642245e Password reset (#7494)
* wip

* wip

* Update well-known.ts

* wip

* clean up

* Update request-reset-password.ts

* Update forgot-password.vue

* Update reset-password.ts

* Update request-reset-password.ts
2021-05-04 15:05:34 +09:00
a34d8549d0 Fix style 2021-04-30 12:55:30 +09:00
52e1df2df3 Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-04-29 12:31:55 +09:00
d7a5efbd36 Improve usability 2021-04-29 12:31:47 +09:00
9f5123d176 Fix path 2021-04-29 11:18:08 +09:00
18da55bd81 12.79.3 2021-04-28 18:37:31 +09:00
25424fe62e New Crowdin updates (#7485)
* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (French)
2021-04-28 18:36:21 +09:00
c7e60cfd0c Fix style 2021-04-28 18:36:07 +09:00
3e19bcb6cb Fix #7488 2021-04-28 18:32:55 +09:00
6573c3b522 Use Node.js v16 2021-04-28 09:22:01 +09:00
fa9f0d9ff9 12.79.2 2021-04-26 13:00:01 +09:00
77ccf3b929 Fix #7483 2021-04-26 12:47:54 +09:00
4b205aee91 Fix #7480 2021-04-26 12:34:41 +09:00
d348e211d4 New Crowdin updates (#7482)
* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations reversi-bot.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)
2021-04-26 11:12:34 +09:00
42539575a6 ギャラリー投稿の編集と削除 2021-04-26 11:10:45 +09:00
8bce241170 🎨 2021-04-26 10:46:55 +09:00
c039665a97 Fix #7481 2021-04-25 22:32:46 +09:00
0038f3b244 12.79.1 2021-04-25 15:20:32 +09:00
2f1fb9fe2d New Crowdin updates (#7479)
* New translations ja-JP.yml (Chinese Simplified)

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

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)
2021-04-25 15:19:56 +09:00
8c6d5408eb Update default sidebar definition 2021-04-25 15:19:34 +09:00
3f6a55aabd Tweak UI 2021-04-25 15:14:26 +09:00
f37c25d00e Update api-permissions.ts 2021-04-25 12:33:55 +09:00
23821d6fad Improve client 2021-04-25 12:31:11 +09:00
c384c4ca6c Tweak UI 2021-04-25 12:01:00 +09:00
946ba2a8ae Improve usability 2021-04-25 12:00:56 +09:00
55b673cc6f Update deps 2021-04-25 11:30:02 +09:00
6d145bc4cb 12.79.0 2021-04-24 23:04:49 +09:00
26b2a4de36 Tweak style 2021-04-24 23:04:31 +09:00
99b7f4d26e Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop 2021-04-24 22:56:35 +09:00
f413339e75 Update yarn.lock 2021-04-24 22:56:26 +09:00
8a5567796f New Crowdin updates (#7459)
* New translations ja-JP.yml (Chinese Traditional)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations timelines.md (Italian)

* New translations ja-JP.yml (Italian)

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

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

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

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

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

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

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

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

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

* New translations ja-JP.yml (Korean)

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

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

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations keyboard-shortcut.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (Italian)

* New translations theme.md (French)

* New translations theme.md (Italian)

* New translations deck.md (Italian)

* New translations deck.md (Italian)

* New translations deck.md (Italian)

* New translations deck.md (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Indonesian)

* New translations ja-JP.yml (Ukrainian)

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

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

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

* New translations ja-JP.yml (Kannada)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Arabic)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (Czech)

* New translations ja-JP.yml (Indonesian)

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Polish)

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Ukrainian)

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

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Russian)

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

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

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (Russian)

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

* New translations ja-JP.yml (Russian)

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

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

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

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

* New translations ja-JP.yml (English)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (Polish)

* New translations ja-JP.yml (German)

* New translations ja-JP.yml (Korean)

* New translations ja-JP.yml (Italian)

* New translations ja-JP.yml (French)

* New translations ja-JP.yml (Spanish)

* New translations ja-JP.yml (English)

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

* New translations ja-JP.yml (Polish)

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

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

* New translations ja-JP.yml (Russian)

* New translations ja-JP.yml (Ukrainian)
2021-04-24 22:56:15 +09:00
112c68cd0c refactor init (#7464) 2021-04-24 22:55:18 +09:00
4e5e542fb0 update mfm.js (#7476) 2021-04-24 22:52:32 +09:00
7bfc41c6e1 fix bug 2021-04-24 22:52:07 +09:00
fec3c70886 Gallery (#7194)
* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip
2021-04-24 22:38:24 +09:00
ccf063709e Tweak UI 2021-04-24 22:36:28 +09:00
9cab2cd940 Tweak animation 2021-04-24 18:38:38 +09:00
2135 changed files with 68843 additions and 18313 deletions

View File

@ -1,13 +0,0 @@
{
"plugins": [
[
"@babel/plugin-transform-runtime",
{
"corejs": {
"version": 3,
"proposals": true
}
}
]
]
}

View File

@ -157,3 +157,10 @@ id: 'aid'
# Sign to ActivityPub GET request (default: false)
#signToActivityPubGet: true
#allowedPrivateNetworks: [
# '127.0.0.1/32'
#]
# Upload or download file size limits (bytes)
#maxFileSize: 262144000

View File

@ -1,8 +1,8 @@
.autogen
.git
.github
.travis
.vscode
.config
Dockerfile
build/
built/
@ -12,3 +12,4 @@ elasticsearch/
node_modules/
redis/
files/
misskey-assets/

7
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,7 @@
contact_links:
- name: 👪 Misskey Forum
url: https://forum.misskey.io/
about: Ask questions and share knowledge
- name: 💬 Misskey official Discord
url: https://discord.gg/Wp8gVStHW3
about: Chat freely about Misskey

View File

@ -1,13 +1,20 @@
## Summary
<!-- お読みください
PRありがとうございます PRを作成する前に、コントリビューションガイドをご確認ください:
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
-->
<!-- README
Thank you for your PR! Before creating a PR, please check the contribution guide:
https://github.com/misskey-dev/misskey/blob/develop/docs/CONTRIBUTING.en.md
-->
<!--
-
- * Please describe your changes here *
-
- If you are going to resolve some issue, please add this context.
- Resolve #ISSUE_NUMBER
-
- If you are going to fix some bug issue, please add this context.
- Fix #ISSUE_NUMBER
-
-->
# What
<!-- このPRで何をしたのか どう変わるのか? -->
<!-- What did you do with this PR? How will it change things? -->
# Why
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
<!-- Why do you do it? What are your intentions? What is the problem? -->
# Additional info (optional)
<!-- テスト観点など -->
<!-- Test perspective, etc -->

11
.github/dependabot.yml vendored Normal file
View File

@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
version: 2
updates:
- package-ecosystem: "npm" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "daily"

33
.github/workflows/docker-develop.yml vendored Normal file
View File

@ -0,0 +1,33 @@
name: Publish Docker image (develop)
on:
push:
branches:
- develop
workflow_dispatch:
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: misskey/misskey
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: misskey/misskey:develop
labels: develop

32
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,32 @@
name: Publish Docker image
on:
release:
types: [published]
workflow_dispatch:
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: misskey/misskey
- name: Log in to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push to Docker Hub
uses: docker/build-push-action@v2
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@ -12,31 +12,35 @@ jobs:
strategy:
matrix:
node-version: [12.x, 14.x, 15.x]
node-version: [14.x, 16.x]
services:
postgres:
image: postgres:10-alpine
image: postgres:12.2-alpine
ports:
- 5432:5432
- 54312:5432
env:
POSTGRES_DB: test-misskey
POSTGRES_HOST_AUTH_METHOD: trust
redis:
image: redis:alpine
image: redis:4.0-alpine
ports:
- 6379:6379
- 56312:6379
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: yarn install
- name: Check yarn.lock
run: git diff --exit-code yarn.lock
- name: Copy Configure
run: cp .circleci/misskey/*.yml .config
run: cp test/test.yml .config
- name: Build
run: yarn build
- name: Test
@ -46,6 +50,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- uses: actions/setup-node@v1
with:
node-version: 12.x

4
.gitignore vendored
View File

@ -9,6 +9,10 @@
/node_modules
report.*.json
# Cypress
cypress/screenshots
cypress/videos
# config
/.config/*
!/.config/example.yml

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "misskey-assets"]
path = misskey-assets
url = https://github.com/misskey-dev/assets.git

View File

@ -2,6 +2,6 @@
"extension": ["ts","js","cjs","mjs"],
"require": ["ts-node/register", "tsconfig-paths/register"],
"slow": 1000,
"timeout": 30000,
"timeout": 35000,
"exit": true
}

View File

@ -1 +1 @@
v14.15.5
v16.6.2

View File

@ -1,12 +1,10 @@
{
"recommendations": [
"ducksoupdev.vue2",
"editorconfig.editorconfig",
"eg2.vscode-npm-script",
"hollowtree.vue-snippets",
"ms-vscode.typescript-javascript-grammar",
"ms-vscode.vscode-typescript-tslint-plugin",
"octref.vetur",
"johnsoncodehk.volar",
"sysoev.language-stylus"
]
}

View File

@ -1 +1,202 @@
see [releases](https://github.com/misskey-dev/misskey/releases)
<!--
## 12.x.x (unreleased)
### Improvements
### Bugfixes
-->
## 12.93.1 (2021/10/23)
### Bugfixes
- クライアント: 通知上でローカルのリアクションが表示されないのを修正
## 12.93.0 (2021/10/23)
### Improvements
- クライアント: コントロールパネルのパフォーマンスを改善
- クライアント: 自分のリアクション一覧を見れるように
- 設定により、リアクション一覧を全員に公開することも可能
- クライアント: ユーザー検索の精度を強化
- クライアント: 新しいライトテーマを追加
- クライアント: 新しいダークテーマを追加
- API: ユーザーのリアクション一覧を取得する users/reactions を追加
- API: users/search および users/search-by-username-and-host を強化
- ミュート及びブロックのインポートを行えるように
- クライアント: /share のクエリでリプライやファイル等の情報を渡せるように
- チャートのsyncを毎日0時に自動で行うように
### Bugfixes
- クライアント: テーマの管理が行えない問題を修正
- API: アプリケーション通知が取得できない問題を修正
- クライアント: リモートノートで意図せずローカルカスタム絵文字が使われてしまうことがあるのを修正
- ActivityPub: not reacted な Undo.Like がinboxに滞留するのを修正
### Changes
- 連合の考慮に問題があることなどが分かったため、モデレーターをブロックできない仕様を廃止しました
- データベースにログを保存しないようになりました
- ログを永続化したい場合はsyslogを利用してください
## 12.92.0 (2021/10/16)
### Improvements
- アカウント登録にメールアドレスの設定を必須にするオプション
- クライアント: 全体的なUIのブラッシュアップ
- クライアント: MFM関数構文のサジェストを実装
- クライアント: ノート本文を投稿フォーム内でプレビューできるように
- クライアント: 未読の通知のみ表示する機能
- クライアント: 通知ページで通知の種類によるフィルタ
- クライアント: アニメーションを減らす設定の適用範囲を拡充
- クライアント: 新しいダークテーマを追加
- クライアント: テーマコンパイラに hue と saturate 関数を追加
- ActivityPub: HTML -> MFMの変換を強化
- API: グループから抜ける users/groups/leave エンドポイントを実装
- API: i/notifications に unreadOnly オプションを追加
- API: ap系のエンドポイントをログイン必須化+レートリミット追加
- MFM: Add tag syntaxes of bold <b></b> and strikethrough <s></s>
### Bugfixes
- Fix createDeleteAccountJob
- admin inbox queue does not show individual jobs
- クライアント: ヘッダーのタブが折り返される問題を修正
- クライアント: ヘッダーにタブが表示されている状態でタイトルをクリックしたときにタブ選択が表示されるのを修正
- クライアント: ユーザーページのタブが機能していない問題を修正
- クライアント: ピン留めユーザーの設定項目がない問題を修正
- クライアント: Deck UIにおいて、重ねたカラムの片方を畳んだ状態で右に出すと表示が壊れる問題を修正
- API: 管理者およびモデレーターをブロックできてしまう問題を修正
- MFM: Mentions in the link label are parsed as text
- MFM: Add a property to the URL node indicating whether it was enclosed in <>
- MFM: Disallows < and > in hashtags
### Changes
- 保守性やユーザビリティの観点から、Misskeyのコマンドラインオプションが削除されました。
- 必要であれば、代わりに環境変数で設定することができます
- MFM: パフォーマンス、保守性、構文誤認識抑制の観点から、旧関数構文のサポートが削除されました。
- 旧構文(`[foo bar]`)を使用せず、現行の構文(`$[foo bar]`)を使用してください。
## 12.91.0 (2021/09/22)
### Improvements
- ActivityPub: リモートユーザーのDeleteアクティビティに対応
- ActivityPub: add resolver check for blocked instance
- ActivityPub: deliverキューのメモリ使用量を削減
- API: 管理者用アカウント削除APIを実装(/admin/accounts/delete)
- リモートユーザーの削除も可能に
- アカウントが凍結された場合に、凍結された旨を表示してからログアウトするように
- 凍結されたアカウントにログインしようとしたときに、凍結されている旨を表示するように
- リスト、アンテナタイムラインを個別ページとして分割
- UIの改善
- MFMにsparklesエフェクトを追加
- 非ログイン自は更新ダイアログを出さないように
- クライアント起動時、アップデートが利用可能な場合エラー表示およびダイアログ表示しないように
### Bugfixes
- アカウントデータのエクスポート/インポート処理ができない問題を修正
- アンテナの既読が付かない問題を修正
- popupで設定ページを表示すると、アカウントの削除ページにアクセスすることができない問題を修正
- "問題が発生しました"ウィンドウを開くと☓ボタンがなくて閉じれない問題を修正
## 12.90.1 (2021/09/05)
### Bugfixes
- Dockerfileを修正
- ノート翻訳時に公開範囲が考慮されていない問題を修正
## 12.90.0 (2021/09/04)
### Improvements
- 藍モード、および藍ウィジェット
- クライアントに藍ちゃんを召喚することができるようになりました。
- URLからのアップロード, APの添付ファイル, 外部ファイルのプロキシ等では、Privateアドレス等へのリクエストは拒否されるようになりました。
- developmentで動作している場合は、この制限は適用されません。
- Proxy使用時には、この制限は適用されません。
Proxy使用時に同等の制限を行いたい場合は、Proxy側で設定を行う必要があります。
- `default.yml`にて`allowedPrivateNetworks`にCIDRを追加することにより、宛先ネットワークを指定してこの制限から除外することが出来ます。
- アップロード, ダウンロード出来るファイルサイズにハードリミットが適用されるようになりました。(約250MB)
- `default.yml`にて`maxFileSize`を変更することにより、制限値を変更することが出来ます。
### Bugfixes
- 管理者が最初にサインアップするページでログインされないのを修正
- CWを維持する設定を復活
- クライアントの表示を修正
## 12.89.2 (2021/08/24)
### Bugfixes
- カスタムCSSを有効にしているとエラーになる問題を修正
## 12.89.1 (2021/08/24)
### Improvements
- クライアントのデザインの調整
### Bugfixes
- 翻訳でDeepLのProアカウントに対応していない問題を修正
- インスタンス設定でDeepLのAuth Keyが空で表示される問題を修正
- セキュリティの向上
## 12.89.0 (2021/08/21)
### Improvements
- アカウント削除の安定性を向上
- 絵文字オートコンプリートの挙動を改修
- localStorageのaccountsはindexedDBで保持するように
- ActivityPub: ジョブキューの試行タイミングを調整 (#7635)
- API: sw/unregisterを追加
- ワードミュートのドキュメントを追加
- クライアントのデザインの調整
- 依存関係の更新
### Bugfixes
- チャンネルを作成しているとアカウントを削除できないのを修正
- ノートの「削除して編集」をするとアンケートの選択肢が[object Object]になる問題を修正
## 12.88.0 (2021/08/17)
### Features
- ノートの翻訳機能を追加
- 有効にするには、サーバー管理者がDeepLの無料アカウントを登録し、取得した認証キーを「インスタンス設定 > その他 > DeepL Auth Key」に設定する必要があります。
- Misskey更新時にダイアログを表示するように
- ジョブキューウィジェットに警報音を鳴らす設定を追加
### Improvements
- ブロックの挙動を改修
- ブロックされたユーザーがブロックしたユーザーに対してアクション出来ないようになりました。詳細はドキュメントをご確認ください。
- UIデザインの調整
- データベースのインデックスを最適化
- Proxy使用時にKeep-Aliveをサポート
- DNSキャッシュでネガティブキャッシュをサポート
- 依存関係の更新
### Bugfixes
- タッチ操作でウィンドウを閉じることができない問題を修正
- Renoteされた時刻が投稿された時刻のように表示される問題を修正
- コントロールパネルでファイルを削除した際の表示を修正
- ActivityPub: 長いユーザーの名前や自己紹介の対応
## 12.87.0 (2021/08/12)
### Improvements
- 絵文字オートコンプリートで一文字目は最近使った絵文字をサジェストするように
- 絵文字オートコンプリートのパフォーマンスを改善
- about-misskeyページにドキュメントへのリンクを追加
- Docker: Node.jsを16.6.2に
- 依存関係の更新
- 翻訳の更新
### Bugfixes
- Misskey更新時、テーマキャッシュの影響でスタイルがおかしくなる問題を修正
## 12.86.0 (2021/08/11)
### Improvements
- ドキュメントの更新
- ドキュメントにchangelogを追加
- ぼかし効果のオプションを追加
- Vueを3.2.1に更新
- UIの調整
### Bugfixes
- ハッシュタグ入力が空のときに#が付くのを修正
- フォローリクエストのEメール通知を修正

View File

@ -1,22 +1,43 @@
# Contribution guide
:v: Thanks for your contributions :v:
We're glad you're interested in contributing Misskey! In this document you will find the information you need to contribute to the project.
## When you contribute...
- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。
- 設計に迷った時はプロジェクトリーダーの判断を仰いでください。
- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。
- 温度感高めで見てほしいものは責付いてください。
** Important:** This project uses Japanese as its major language, **but you do not need to translate and write the Issues/PRs in Japanese.**
Also, you might receive comments on your Issue/PR in Japanese, but you do not need to reply to them in Japanese as well.\
The accuracy of translation into Japanese is not high, so it will be easier for us to understand if you write it in the original language.
It will also allow the reader to use the translation tool of their preference if necessary.
## Issues
Feature suggestions and bug reports are filed in https://github.com/misskey-dev/misskey/issues .
Before creating an issue, please check the following:
- To avoid duplication, please search for similar issues before creating a new issue.
- Do not use Issues to ask questions or troubleshooting.
- Issues should only be used to feature requests, suggestions, and bug tracking.
- Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3).
* Please search existing issues to avoid duplication. If your issue is already filed, please add your reaction or comment to the existing one.
* If you have multiple independent issues, please submit them separately.
## Before implementation
When you want to add a feature or fix a bug, **first have the design and policy reviewed in an Issue** (if it is not there, please make one). Without this step, there is a high possibility that the PR will not be merged even if it is implemented.
## Branches
* **master** branch is tracking the latest release and used for production purposes.
* **develop** branch is where we work for the next release.
* **l10n_develop** branch is reserved for localization management.
Also, when you start implementation, assign yourself to the Issue (if you cannot do it yourself, ask another member to assign you). By expressing your intention to work the Issue, you can prevent conflicts in the work.
## Well-known branches
- **`master`** branch is tracking the latest release and used for production purposes.
- **`develop`** branch is where we work for the next release.
- When you create a PR, basically target it to this branch.
- **`l10n_develop`** branch is reserved for localization management.
## Creating a PR
Thank you for your PR! Before creating a PR, please check the following:
- If possible, prefix the title with a keyword that identifies the type of this PR, as shown below.
- `fix` / `refactor` / `feat` / `enhance` / `perf` / `chore` etc
- Also, make sure that the granularity of this PR is appropriate. Please do not include more than one type of change or interest in a single PR.
- If there is an Issue which will be resolved by this PR, please include a reference to the Issue in the text.
- Please add the summary of the changes to [`CHANGELOG.md`](/CHANGELOG.md). However, this is not necessary for changes that do not affect the users, such as refactoring.
- Check if there are any documents that need to be created or updated due to this change.
- If you have added a feature or fixed a bug, please add a test case if possible.
- Please make sure that tests and Lint are passed in advance.
- You can run it with `npm run test` and `npm run lint`. [See more info](#testing)
- If this PR includes UI changes, please attach a screenshot in the text.
Thanks for your cooperation 🤗
## Localization (l10n)
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
@ -28,21 +49,40 @@ If your language is not listed in Crowdin, please open an issue.
![Crowdin](https://d322cqt584bo4o.cloudfront.net/misskey/localized.svg)
## Internationalization (i18n)
Misskey uses the Vue.js plugin [Vue I18n](https://github.com/kazupon/vue-i18n).
Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/introduction.html .
## Documentation
* Documents for contributors are located in [`/docs`](/docs).
* Documents for instance admins are located in [`/docs`](/docs).
* Documents for end users are located in [`/src/docs`](/src/docs).
## Test
* Test codes are located in [`/test`](/test).
## Testing
- Test codes are located in [`/test`](/test).
### Run test
Create a config file.
```
cp test/test.yml .config/
```
Prepare DB/Redis for testing.
```
docker-compose -f test/docker-compose.yml up
```
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
Run all test.
```
npm run test
```
#### Run specify test
```
npx cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT="./test/tsconfig.json" npx mocha test/foo.ts --require ts-node/register
```
### e2e tests
TODO
## Continuous integration
Misskey uses CircleCI for executing automated tests.
Configuration files are located in [`/.circleci`](/.circleci).
Misskey uses GitHub Actions for executing automated tests.
Configuration files are located in [`/.github/workflows`](/.github/workflows).
## Adding MisskeyRoom items
* Use English for material, object and texture names.
@ -50,121 +90,16 @@ Configuration files are located in [`/.circleci`](/.circleci).
* Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing).
* Your PR must include the glTF binary files (`.glb`) of your models.
* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml).
* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5).
* Add a furniture definition at [`src/client/scripts/room/furnitures.json5`](src/client/scripts/room/furnitures.json5).
If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/).
You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html).
## FAQ
## Notes
### How to resolve conflictions occurred at yarn.lock?
Just execute `yarn` to fix it.
## Glossary
### AP
Stands for _**A**ctivity**P**ub_.
### MFM
Stands for _**M**isskey **F**lavored **M**arkdown_.
### Mk
Stands for _**M**iss**k**ey_.
### SW
Stands for _**S**ervice**W**orker_.
### Nyaize
Convert な(na) to にゃ(nya)
#### Denyaize
Revert Nyaize
## TypeScript Coding Style
### Do not omit semicolons
This is to avoid Automatic Semicolon Insertion (ASI) hazard.
Ref:
* https://www.ecma-international.org/ecma-262/#sec-automatic-semicolon-insertion
* https://github.com/tc39/ecma262/pull/1062
### Do not omit curly brackets
Bad:
``` ts
if (foo)
bar;
else
baz;
```
Good:
``` ts
if (foo) {
bar;
} else {
baz;
}
```
As a special case, you can omit the curly brackets if
* the body of the `if`-statement have only one statement and,
* the `if`-statement does not have `else`-clause.
Good:
``` ts
if (foo) bar;
```
Make sure that the condition and the body statement are on the same line.
### Do not use `==` when it can simply be replaced with `===`.
🥰
### Use only boolean (or null related) values in the condition of an `if`-statement.
Bad:
``` ts
if (foo.length)
```
Good:
``` ts
if (foo.length > 0)
```
### Do not use `export default`
This is because the current language support does not work well with `export default`.
Ref:
* https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html
* https://gfx.hatenablog.com/entry/2017/11/24/135343
Bad:
``` ts
export default function(foo: string): string {
```
Good:
``` ts
export function something(foo: string): string {
```
## Directory structure
```
src ... Source code
@types ... Type definitions
prelude ... Independence utils for coding JavaScript without side effects
misc ... Independence utils for Misskey without side effects
service ... Common functions with side effects
queue ... Job queues and Jobs
server ... Web Server
client ... Client
mfm ... MFM
test ... Test code
```
## Notes
### placeholder
SQLをクエリビルダで組み立てる際、使用するプレースホルダは重複してはならない
例えば
@ -236,6 +171,9 @@ const users = userIds.length > 0 ? await Users.find({
SQLでは配列のインデックスは**1始まり**。
`[a, b, c]`の `a`にアクセスしたいなら`[0]`ではなく`[1]`と書く
### null IN
nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。
### `undefined`にご用心
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
@ -247,6 +185,16 @@ npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前
作成されたスクリプトは不必要な変更を含むため除去してください。
### コネクションには`markRaw`せよ
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
### JSONのimportに気を付けよう
TypeScriptでjsonをimportすると、tscでコンパイルするときにそのjsonファイルも一緒にdistディレクトリに吐き出されてしまう。この挙動により、意図せずファイルの書き換えが発生することがあるので、jsonをimportするときは書き換えられても良いものかどうか確認すること。書き換えされて欲しくない場合は、importで読み込むのではなく、`fs.readFileSync`などの関数を使って読み込むようにすればよい。
### コンポーネントのスタイル定義でmarginを持たせない
コンポーネント自身がmarginを設定するのは問題の元となることはよく知られている
marginはそのコンポーネントを使う側が設定する
## その他
### HTMLのクラス名で follow という単語は使わない
広告ブロッカーで誤ってブロックされる

View File

@ -6,10 +6,6 @@ And is distributed under The GNU Affero General Public License Version 3, you sh
Misskey includes several third-party Open-Source softwares.
Unicode emoji regular expressions by Twitter, Inc.
License: MIT
https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
Emoji keywords for Unicode 11 and below by Mu-An Chiou
License: MIT
https://github.com/muan/emojilib/blob/master/LICENSE

View File

@ -1,38 +1,26 @@
FROM node:14.15.5-alpine3.13 AS base
FROM node:16.6.2-alpine3.13 AS base
ENV NODE_ENV=production
WORKDIR /misskey
ENV BUILD_DEPS autoconf automake file g++ gcc libc-dev libtool make nasm pkgconfig python3 zlib-dev git
FROM base AS builder
RUN apk add --no-cache \
autoconf \
automake \
file \
g++ \
gcc \
libc-dev \
libtool \
make \
nasm \
pkgconfig \
python3 \
zlib-dev \
vips-dev \
vips
COPY package.json yarn.lock .yarnrc ./
RUN yarn install
COPY . ./
RUN yarn build
RUN apk add --no-cache $BUILD_DEPS && \
git submodule update --init && \
yarn install && \
yarn build && \
rm -rf .git
FROM base AS runner
RUN apk add --no-cache \
ffmpeg \
tini \
vips
tini
ENTRYPOINT ["/sbin/tini", "--"]
@ -41,3 +29,4 @@ COPY --from=builder /misskey/built ./built
COPY . ./
CMD ["npm", "run", "migrateandstart"]

View File

@ -65,7 +65,7 @@ Organize and store your files! Want to post a picture you have already uploaded?
:package: Create your own instance
----------------------------------------------------------------
Please see the [Setup and Installation Guide](./docs/setup.en.md).
Please see the [Setup and Installation Guide](https://misskey-hub.net/docs/install/install.html).
:wrench: Contribution
----------------------------------------------------------------
@ -99,6 +99,17 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
To receive updates of this repo, follow [@repo@misskey.io](https://misskey.io/@repo) on fediverse.
Related projects
----------------------------------------------------------------
- [misskey.js](https://github.com/misskey-dev/misskey.js) - Misskey SDK for JavaScript
- [mfm.js](https://github.com/misskey-dev/mfm.js) - MFM parser
Sponsors
----------------------------------------------------------------
<div align="center">
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank" style="display: inline-block;"><img src="https://rss3.io/assets/images/Logo.svg" alt="RSS3" style="display: inline-block; height: 60px;"></a>
</div>
:heart: Backers
----------------------------------------------------------------
<!-- PATREON_START -->

9
SECURITY.md Normal file
View File

@ -0,0 +1,9 @@
# Reporting Security Issues
If you discover a security issue in Misskey, please report it by sending an
email to [syuilotan@yahoo.co.jp](mailto:syuilotan@yahoo.co.jp).
This will allow us to assess the risk, and make a fix available before we add a
bug report to the GitHub repository.
Thanks for helping make Misskey safe for everyone.

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 B

View File

@ -2,6 +2,6 @@ files:
- source: /locales/ja-JP.yml
translation: /locales/%locale%.yml
update_option: update_as_unapproved
- source: /src/docs/ja-JP/*.md
translation: /src/docs/%locale%/%original_file_name%
- source: /src/docs/ja-JP/**/*.md
translation: /src/docs/%locale%/**/%original_file_name%
update_option: update_as_unapproved

3
cypress.json Normal file
View File

@ -0,0 +1,3 @@
{
"baseUrl": "http://localhost"
}

View File

@ -0,0 +1,5 @@
{
"name": "Using fixtures to represent data",
"email": "hello@cypress.io",
"body": "Fixtures are a great way to mock data for responses to routes"
}

View File

@ -0,0 +1,189 @@
describe('Before setup instance', () => {
beforeEach(() => {
cy.request('POST', '/api/reset-db').as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);
});
afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});
it('successfully loads', () => {
cy.visit('/');
});
it('setup instance', () => {
cy.visit('/');
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
cy.get('[data-cy-admin-username] input').type('admin');
cy.get('[data-cy-admin-password] input').type('admin1234');
cy.get('[data-cy-admin-ok]').click();
// なぜか動かない
//cy.wait('@signup').should('have.property', 'response.statusCode');
cy.wait('@signup');
});
});
describe('After setup instance', () => {
beforeEach(() => {
cy.request('POST', '/api/reset-db').as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);
// インスタンス初期セットアップ
cy.request('POST', '/api/admin/accounts/create', {
username: 'admin',
password: 'pass',
}).its('body').as('admin');
cy.get('@admin');
});
afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});
it('successfully loads', () => {
cy.visit('/');
});
it('signup', () => {
cy.visit('/');
cy.intercept('POST', '/api/signup').as('signup');
cy.get('[data-cy-signup]').click();
cy.get('[data-cy-signup-username] input').type('alice');
cy.get('[data-cy-signup-password] input').type('alice1234');
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
cy.get('[data-cy-signup-submit]').click();
cy.wait('@signup');
});
});
describe('After user signup', () => {
beforeEach(() => {
cy.request('POST', '/api/reset-db').as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);
// インスタンス初期セットアップ
cy.request('POST', '/api/admin/accounts/create', {
username: 'admin',
password: 'pass',
}).its('body').as('admin');
cy.get('@admin').then(() => {
// ユーザー作成
cy.request('POST', '/api/signup', {
username: 'alice',
password: 'alice1234',
}).its('body').as('alice');
});
cy.get('@alice');
});
afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});
it('successfully loads', () => {
cy.visit('/');
});
it('signin', () => {
cy.visit('/');
cy.intercept('POST', '/api/signin').as('signin');
cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
// Enterキーでサインインできるかの確認も兼ねる
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
cy.wait('@signin');
});
it('suspend', function() {
cy.request('POST', '/api/admin/suspend-user', {
i: this.admin.token,
userId: this.alice.id,
});
cy.visit('/');
cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
cy.contains('アカウントが凍結されています');
});
});
describe('After user singed in', () => {
beforeEach(() => {
cy.request('POST', '/api/reset-db').as('reset');
cy.get('@reset').its('status').should('equal', 204);
cy.reload(true);
// インスタンス初期セットアップ
cy.request('POST', '/api/admin/accounts/create', {
username: 'admin',
password: 'pass',
}).its('body').as('admin');
cy.get('@admin').then(() => {
// ユーザー作成
cy.request('POST', '/api/signup', {
username: 'alice',
password: 'alice1234',
}).its('body').as('alice');
});
cy.get('@alice').then(() => {
cy.visit('/');
cy.intercept('POST', '/api/signin').as('signin');
cy.get('[data-cy-signin]').click();
cy.get('[data-cy-signin-username] input').type('alice');
cy.get('[data-cy-signin-password] input').type('alice1234{enter}');
cy.wait('@signin').as('signedIn');
});
cy.get('@signedIn');
});
afterEach(() => {
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
// waitを入れることでそれを防止できる
cy.wait(1000);
});
it('successfully loads', () => {
cy.visit('/');
});
it('note', () => {
cy.visit('/');
cy.get('[data-cy-open-post-form]').click();
cy.get('[data-cy-post-form-text]').type('Hello, Misskey!');
cy.get('[data-cy-open-post-form-submit]').click();
cy.contains('Hello, Misskey!');
});
});

22
cypress/plugins/index.js Normal file
View File

@ -0,0 +1,22 @@
/// <reference types="cypress" />
// ***********************************************************
// This example plugins/index.js can be used to load plugins
//
// You can change the location of this file or turn off loading
// the plugins file with the 'pluginsFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/plugins-guide
// ***********************************************************
// This function is called when a project is opened or re-opened (e.g. due to
// the project's config changing)
/**
* @type {Cypress.PluginConfig}
*/
// eslint-disable-next-line no-unused-vars
module.exports = (on, config) => {
// `on` is used to hook into various events Cypress emits
// `config` is the resolved Cypress config
}

View File

@ -0,0 +1,25 @@
// ***********************************************
// This example commands.js shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add('login', (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })

20
cypress/support/index.js Normal file
View File

@ -0,0 +1,20 @@
// ***********************************************************
// This example support/index.js is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
// Alternatively you can use CommonJS syntax:
// require('./commands')

View File

@ -15,6 +15,7 @@ services:
- external_network
volumes:
- ./files:/misskey/files
- ./.config:/misskey/.config:ro
redis:
restart: always

View File

@ -1,33 +0,0 @@
# Docs
These docs are for contributors of Misskey or admins of instance of Misskey.
Docs for users are located in `src/docs`.
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
利用者向けのドキュメントは`src/docs`にあります。
这些文档是为 Misskey 的贡献者,或是 Misskey 实例的管理者准备的。
为用户准备的文档放置在 `src/docs` 文件夹中。
## 日本語版
- [Misskey構築の手引き](./setup.ja.md)
- [運営ガイド](./manage.ja.md)
- [Dockerを使ったMisskey構築方法](./docker.ja.md)
## English Version
- [Misskey Setup and Installation Guide](./setup.en.md)
- [Management guide](./manage.en.md)
- [Docker Guide](./docker.en.md)
## Française Version
- [Guide d'installation et de configuration de Misskey](./setup.fr.md)
- [Guide d'administration](./manage.fr.md)
- [Guide Docker](./docker.fr.md)
## 简体中文版
- [Misskey 设置和安装指南](./setup.zh.md)
- [运营指南](./manage.zh.md)
- [Docker 部署指南](./docker.zh.md)

View File

@ -1,96 +0,0 @@
Docker Guide
================================================================
This guide describes how to install and setup Misskey with Docker.
- [Japanese version also available - 日本語版もあります](./docker.ja.md)
- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
----------------------------------------------------------------
*1.* Download Misskey
----------------------------------------------------------------
1. Clone Misskey repository's master branch.
`git clone -b master git://github.com/misskey-dev/misskey.git`
2. Move to misskey directory.
`cd misskey`
3. Checkout to the [latest release](https://github.com/misskey-dev/misskey/releases/latest) tag.
`git checkout master`
*2.* Configure Misskey
----------------------------------------------------------------
Create configuration files with following:
```bash
cd .config
cp example.yml default.yml
cp docker_example.env docker.env
```
### `default.yml`
Edit this file the same as non-Docker environment.
However hostname of Postgresql, Redis and Elasticsearch are not `localhost`, they are set in `docker-compose.yml`.
The following is default hostname:
| Service | Hostname |
|---------------|----------|
| Postgresql | `db` |
| Redis | `redis` |
| Elasticsearch | `es` |
### `docker.env`
Configure Postgresql in this file.
The minimum required settings are:
| name | Description |
|---------------------|---------------|
| `POSTGRES_PASSWORD` | Password |
| `POSTGRES_USER` | Username |
| `POSTGRES_DB` | Database name |
*3.* Configure Docker
----------------------------------------------------------------
Edit `docker-compose.yml`.
*4.* Build Misskey
----------------------------------------------------------------
Build misskey with the following:
`docker-compose build`
*5.* Init DB
----------------------------------------------------------------
``` shell
docker-compose run --rm web yarn run init
```
*6.* That is it.
----------------------------------------------------------------
Well done! Now you have an environment to run Misskey.
### Launch normally
Just `docker-compose up -d`. GLHF!
### How to update your Misskey server to the latest version
1. `git stash`
2. `git checkout master`
3. `git pull`
4. `git stash pop`
5. `docker-compose build`
6. Check [ChangeLog](../CHANGELOG.md) for migration information
7. `docker-compose stop && docker-compose up -d`
### How to execute [cli commands](manage.en.md):
`docker-compose run --rm web node built/tools/mark-admin @example`
----------------------------------------------------------------
If you have any questions or trouble, feel free to contact us!

View File

@ -1,90 +0,0 @@
Guide Docker
================================================================
Ce guide explique comment installer et configurer Misskey avec Docker.
- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
- [Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
----------------------------------------------------------------
*1.* Télécharger Misskey
----------------------------------------------------------------
1. Clone le dépôt de Misskey sur la branche master.
`git clone -b master git://github.com/misskey-dev/misskey.git`
2. Naviguez dans le dossier du dépôt.
`cd misskey`
3. Checkout sur le tag de la [dernière version](https://github.com/misskey-dev/misskey/releases/latest).
`git checkout master`
*2.* Configuration de Misskey
----------------------------------------------------------------
1. `cp .config/example.yml .config/default.yml` Copiez le fichier `.config/example.yml` et renommez-le `default.yml`.
2. `cp .config/mongo_initdb_example.js .config/mongo_initdb.js` Copie le fichier `.config/mongo_initdb_example.js` et le renomme en `mongo_initdb.js`.
3. Editez `default.yml` et `mongo_initdb.js`.
*3.* Configurer Docker
----------------------------------------------------------------
Editez `docker-compose.yml`.
*4.* Contruire Misskey
----------------------------------------------------------------
Contruire l'image Docker avec:
`docker-compose build`
*5.* C'est tout !
----------------------------------------------------------------
Parfait, Vous avez un environnement prêt pour démarrer Misskey.
### Lancer normalement
Utilisez la commande `docker-compose up -d`. GLHF!
### How to update your Misskey server to the latest version
1. `git stash`
2. `git checkout master`
3. `git pull`
4. `git stash pop`
5. `docker-compose build`
6. Consultez le [ChangeLog](../CHANGELOG.md) pour avoir les éventuelles informations de migration
7. `docker-compose stop && docker-compose up -d`
### Comment exécuter des [commandes](manage.fr.md)
`docker-compose run --rm web node built/tools/mark-admin @example`
### Configuration d'ElasticSearch (pour la fonction de recherche)
*1.* Préparation de l'environnement
----------------------------------------------------------------
1. Permet de créer le dossier d'accueil de la base ElasticSearch aves les bons droits
`mkdir elasticsearch && chown 1000:1000 elasticsearch`
2. Augmente la valeur max du paramètre map_count du système (valeur minimum pour pouvoir lancer ES)
`sysctl -w vm.max_map_count=262144`
*2.* Après lancement du docker-compose, initialisation de la base ElasticSearch
----------------------------------------------------------------
1. Connexion dans le conteneur web
`docker-compose -it web /bin/sh`
2. Ajout du paquet curl
`apk add curl`
3. Création de la base ES
`curl -X PUT "es:9200/misskey" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'`
4. `exit`
----------------------------------------------------------------
Si vous avez des questions ou des problèmes, n'hésitez pas à nous contacter !

View File

@ -1,97 +0,0 @@
Dockerを使ったMisskey構築方法
================================================================
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
- [英語版もあります - English version also available](./docker.en.md)
- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md)
----------------------------------------------------------------
*1.* Misskeyのダウンロード
----------------------------------------------------------------
1. masterブランチからMisskeyレポジトリをクローン
`git clone -b master git://github.com/misskey-dev/misskey.git`
2. misskeyディレクトリに移動
`cd misskey`
3. [最新のリリース](https://github.com/misskey-dev/misskey/releases/latest)を確認
`git checkout master`
*2.* 設定ファイルの作成と編集
----------------------------------------------------------------
下記コマンドで設定ファイルを作成してください。
```bash
cd .config
cp example.yml default.yml
cp docker_example.env docker.env
```
### `default.yml`の編集
非Docker環境と同じ様に編集してください。
ただし、Postgresql、RedisとElasticsearchのホストは`localhost`ではなく、`docker-compose.yml`で設定されたサービス名になっています。
標準設定では次の通りです。
| サービス | ホスト名 |
|---------------|---------|
| Postgresql |`db` |
| Redis |`redis` |
| Elasticsearch |`es` |
### `docker.env`の編集
このファイルはPostgresqlの設定を記述します。
最低限記述する必要がある設定は次の通りです。
| 設定 | 内容 |
|---------------------|--------------|
| `POSTGRES_PASSWORD` | パスワード |
| `POSTGRES_USER` | ユーザー名 |
| `POSTGRES_DB` | データベース名 |
*3.* Dockerの設定
----------------------------------------------------------------
`docker-compose.yml`を編集してください。
*4.* Misskeyのビルド
----------------------------------------------------------------
次のコマンドでMisskeyをビルドしてください:
`docker-compose build`
*5.* データベースを初期化
----------------------------------------------------------------
``` shell
docker-compose run --rm web yarn run init
```
*6.* 以上です!
----------------------------------------------------------------
お疲れ様でした。これでMisskeyを動かす準備は整いました。
### 通常起動
`docker-compose up -d`するだけです。GLHF!
### Misskeyを最新バージョンにアップデートする方法:
1. `git stash`
2. `git checkout master`
3. `git pull`
4. `git stash pop`
5. `docker-compose build`
6. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
7. `docker-compose stop && docker-compose up -d`
### cliコマンドを実行する方法:
`docker-compose run --rm web node built/tools/mark-admin @example`
----------------------------------------------------------------
なにかお困りのことがありましたらお気軽にご連絡ください。

View File

@ -1,96 +0,0 @@
Docker 部署指南
================================================================
这份指南描述了如何使用Docker安装并设置 Misskey 。
- [日本語版もあります - Japanese version also available](./docker.ja.md)
- [英語版もあります - English version also available](./docker.en.md)
----------------------------------------------------------------
*1.* 下载 Misskey
----------------------------------------------------------------
1. 克隆 Misskey 项目的 master 分支。
`git clone -b master git://github.com/misskey-dev/misskey.git`
2. 进入 misskey 文件夹。
`cd misskey`
3. 检查 [最新发布版](https://github.com/misskey-dev/misskey/releases/latest) 标签。
`git checkout master`
*2.* 配置 Misskey
----------------------------------------------------------------
可以按照如下方式创建配置文件:
``` bash
cd .config
cp example.yml default.yml
cp docker_example.env docker.env
```
### `default.yml`
这个文件的编辑工作基本与非 Docker 环境的版本相同。
但请注意, Postgresql、 Redis 和 Elasticsearch 的 **主机名(hostname)** 配置不应该是 `localhost` ,它们被设置在 `docker-compose.yml` 文件中。
以下是默认的主机名:
| 服务 | 主机名 |
|---------------|----------|
| Postgresql | `db` |
| Redis | `redis` |
| Elasticsearch | `es` |
### `docker.env`
在这个文件中配置 Postgresql 。
至少需要如下这些配置:
| 名称 | 描述 |
|---------------------|---------------|
| `POSTGRES_PASSWORD` | 数据库密码 |
| `POSTGRES_USER` | 数据库用户名 |
| `POSTGRES_DB` | 数据库名 |
*3.* 配置 Docker
----------------------------------------------------------------
编辑 `docker-compose.yml` 文件。
*4.* 构建 Misskey
----------------------------------------------------------------
使用如下的方式构建Misskey
`docker-compose build`
*5.* 初始化数据库
----------------------------------------------------------------
``` bash
docker-compose run --rm web yarn run init
```
*6.* 完成了!
----------------------------------------------------------------
干得不错现在您拥有了一个可以运行Misskey的环境啦。
### 正常启动
只需要 `docker-compose up -d` 即可。玩得愉快!
### 如何将您的 Misskey 服务器升级至最新版本
1. `git stash`
2. `git checkout master`
3. `git pull`
4. `git stash pop`
5. `docker-compose build`
6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
7. `docker-compose stop && docker-compose up -d`
### 如何执行 [控制台指令](manage.zh.md):
`docker-compose run --rm web node built/tools/mark-admin @example`
----------------------------------------------------------------
如果您有任何疑问或是困惑,欢迎与我们联系!

View File

@ -1,71 +0,0 @@
# Sample nginx configuration for Misskey
#
# 1. Replace example.tld to your domain
# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/
# or copy to /etc/nginx/conf.d/
# For WebSocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
proxy_cache_path /tmp/nginx_cache levels=1:2 keys_zone=cache1:16m max_size=1g inactive=720m use_temp_path=off;
server {
listen 80;
listen [::]:80;
server_name example.tld;
# For SSL domain validation
root /var/www/html;
location /.well-known/acme-challenge/ { allow all; }
location /.well-known/pki-validation/ { allow all; }
location / { return 301 https://$server_name$request_uri; }
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.tld;
ssl_session_cache shared:ssl_session_cache:10m;
# To use Let's Encrypt certificate
ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
# To use Debian/Ubuntu's self-signed certificate (For testing or before issuing a certificate)
#ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem;
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
# SSL protocol settings
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
ssl_prefer_server_ciphers on;
# Change to your upload limit
client_max_body_size 80m;
# Proxy to Node
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_redirect off;
# If it's behind another reverse proxy or CDN, remove the following.
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
# For WebSocket
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
# Cache settings
proxy_cache cache1;
proxy_cache_lock on;
proxy_cache_use_stale updating;
add_header X-Cache $upstream_cache_status;
}
}

View File

@ -1,14 +0,0 @@
# Management guide
## Check the status of the job queue
coming soon
## Mark as 'admin' user
``` shell
node built/tools/mark-admin (Username)
```
e.g.
``` shell
node built/tools/mark-admin @syuilo
```

View File

@ -1,14 +0,0 @@
# Guide d'administration
## Vérifier le status de la file d'attente des taches
coming soon
## Marquer un utilisateur en tant que 'admin'
``` shell
node built/tools/mark-admin (nom d'utilisateur)
```
Exemple :
``` shell
node built/tools/mark-admin @syuilo
```

View File

@ -1,14 +0,0 @@
# 運営ガイド
## ジョブキューの状態を調べる
coming soon
## 管理者ユーザーを設定する
``` shell
node built/tools/mark-admin (ユーザー名)
```
例:
``` shell
node built/tools/mark-admin @syuilo
```

View File

@ -1,14 +0,0 @@
# 运营指南
## 检查任务队列的状态
即将到来……
## 设置用户为管理员
``` shell
node built/tools/mark-admin (用户名)
```
样例
``` shell
node built/tools/mark-admin @syuilo
```

View File

@ -1,146 +0,0 @@
Misskey Setup and Installation Guide
================================================================
We thank you for your interest in setting up your Misskey server!
This guide describes how to install and setup Misskey.
- [Japanese version also available - 日本語版もあります](./setup.ja.md)
- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
----------------------------------------------------------------
*1.* Create Misskey user
----------------------------------------------------------------
Running misskey as root is not a good idea so we create a user for that.
In debian for exemple :
```
adduser --disabled-password --disabled-login misskey
```
*2.* Install dependencies
----------------------------------------------------------------
Please install and setup these softwares:
#### Dependencies :package:
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
* **[Redis](https://redis.io/)**
##### Optional
* [Yarn](https://yarnpkg.com/) *Optional but recommended for security reason. If you won't install it, use `npx yarn` instead of `yarn`.*
* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature
* [FFmpeg](https://www.ffmpeg.org/)
*3.* Install Misskey
----------------------------------------------------------------
1. Connect to misskey user.
`su - misskey`
2. Clone the misskey repo from master branch.
`git clone -b master git://github.com/misskey-dev/misskey.git`
3. Navigate to misskey directory
`cd misskey`
4. Checkout to the [latest release](https://github.com/misskey-dev/misskey/releases/latest)
`git checkout master`
5. Install misskey dependencies.
`yarn`
*4.* Configure Misskey
----------------------------------------------------------------
1. Copy the `.config/example.yml` and rename it to `default.yml`.
`cp .config/example.yml .config/default.yml`
2. Edit `default.yml`
*5.* Build Misskey
----------------------------------------------------------------
Build misskey with the following:
`NODE_ENV=production yarn build`
If you're on Debian, you will need to install the `build-essential`, `python` package.
If you're still encountering errors about some modules, use node-gyp:
1. `npx node-gyp configure`
2. `npx node-gyp build`
3. `NODE_ENV=production yarn build`
*6.* Init DB
----------------------------------------------------------------
``` shell
yarn run init
```
*7.* That is it.
----------------------------------------------------------------
Well done! Now, you have an environment that run to Misskey.
### Launch normally
Just `NODE_ENV=production npm start`. GLHF!
### Launch with systemd
1. Create a systemd service here
`/etc/systemd/system/misskey.service`
2. Edit it, and paste this and save:
```
[Unit]
Description=Misskey daemon
[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
3. Reload systemd and enable the misskey service.
`systemctl daemon-reload ; systemctl enable misskey`
4. Start the misskey service.
`systemctl start misskey`
You can check if the service is running with `systemctl status misskey`.
### How to update your Misskey server to the latest version
1. `git checkout master`
2. `git pull`
3. `yarn install`
4. `NODE_ENV=production yarn build`
5. `yarn migrate`
6. Restart your Misskey process to apply changes
7. Enjoy
If you encounter any problems with updating, please try the following:
1. `yarn clean` or `yarn cleanall`
2. Retry update (Don't forget `yarn install`
----------------------------------------------------------------
If you have any questions or troubles, feel free to contact us!

View File

@ -1,135 +0,0 @@
Guide d'installation et de configuration de Misskey
================================================================
Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey !
Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey.
- [La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md)
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
----------------------------------------------------------------
*1.* Création de l'utilisateur Misskey
----------------------------------------------------------------
Executer misskey en tant que super-utilisateur étant une mauvaise idée, nous allons créer un utilisateur dédié.
Sous Debian, par exemple :
```
adduser --disabled-password --disabled-login misskey
```
*2.* Installation des dépendances
----------------------------------------------------------------
Installez les paquets suivants :
#### Dépendences :package:
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
* **[Redis](https://redis.io/)**
##### Optionnels
* [Yarn](https://yarnpkg.com/) - *recommander pour des raisons de sécurité. Si vous ne l'installez pas, utilisez `npx yarn` au lieu de` yarn`.*
* [Elasticsearch](https://www.elastic.co/) - *requis pour pouvoir activer la fonctionnalité de recherche.*
* [FFmpeg](https://www.ffmpeg.org/)
*3.* Installation de Misskey
----------------------------------------------------------------
1. Basculez vers l'utilisateur misskey.
`su - misskey`
2. Clonez la branche master du dépôt misskey.
`git clone -b master git://github.com/misskey-dev/misskey.git`
3. Accédez au dossier misskey.
`cd misskey`
4. Checkout sur le tag de la [version la plus récente](https://github.com/misskey-dev/misskey/releases/latest)
`git checkout master`
5. Installez les dépendances de misskey.
`yarn install`
*4.* Création du fichier de configuration
----------------------------------------------------------------
1. Copiez le fichier `.config/example.yml` et renommez-le`default.yml`.
`cp .config/example.yml .config/default.yml`
2. Editez le fichier `default.yml`
*5.* Construction de Misskey
----------------------------------------------------------------
Construisez Misskey comme ceci :
`NODE_ENV=production yarn build`
Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential` et `python`.
Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp:
1. `npx node-gyp configure`
2. `npx node-gyp build`
3. `NODE_ENV=production yarn build`
*6.* C'est tout.
----------------------------------------------------------------
Excellent ! Maintenant, vous avez un environnement prêt pour lancer Misskey
### Lancement conventionnel
Lancez tout simplement `NODE_ENV=production yarn start`. Bonne chance et amusez-vous bien !
### Démarrage avec systemd
1. Créez un service systemd sur
`/etc/systemd/system/misskey.service`
2. Editez-le puis copiez et coller ceci dans le fichier :
```
[Unit]
Description=Misskey daemon
[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
3. Redémarre systemd et active le service misskey.
`systemctl daemon-reload ; systemctl enable misskey`
4. Démarre le service misskey.
`systemctl start misskey`
Vous pouvez vérifier si le service a démarré en utilisant la commande `systemctl status misskey`.
### Méthode de mise à jour vers la plus récente version de Misskey
1. `git checkout master`
2. `git pull`
3. `yarn install`
4. `NODE_ENV=production yarn build`
5. `yarn migrate`
----------------------------------------------------------------
Si vous rencontrez des difficultés ou avez d'autres questions, n'hésitez pas à nous contacter !

View File

@ -1,144 +0,0 @@
Misskey構築の手引き
================================================================
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます
このガイドではMisskeyのインストール・セットアップ方法について解説します。
- [英語版もあります - English version also available](./setup.en.md)
- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md)
----------------------------------------------------------------
*1.* Misskeyユーザーの作成
----------------------------------------------------------------
Misskeyはrootユーザーで実行しない方がよいため、代わりにユーザーを作成します。
Debianの例:
```
adduser --disabled-password --disabled-login misskey
```
*2.* 依存関係をインストールする
----------------------------------------------------------------
これらのソフトウェアをインストール・設定してください:
#### 依存関係 :package:
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
* **[Redis](https://redis.io/)**
##### オプション
* [Yarn](https://yarnpkg.com/)
* セキュリティの観点から推奨されます。 yarn をインストールしない方針の場合は、文章中の `yarn` を適宜 `npx yarn` と読み替えてください。
* [Elasticsearch](https://www.elastic.co/)
* 検索機能を有効にするためにはインストールが必要です。
* [FFmpeg](https://www.ffmpeg.org/)
*3.* Misskeyのインストール
----------------------------------------------------------------
1. misskeyユーザーを使用
`su - misskey`
2. masterブランチからMisskeyレポジトリをクローン
`git clone -b master git://github.com/misskey-dev/misskey.git`
3. misskeyディレクトリに移動
`cd misskey`
4. [最新のリリース](https://github.com/misskey-dev/misskey/releases/latest)を確認
`git checkout master`
5. Misskeyの依存パッケージをインストール
`yarn install`
*4.* 設定ファイルを作成する
----------------------------------------------------------------
1. `.config/example.yml`をコピーし名前を`default.yml`にする。
`cp .config/example.yml .config/default.yml`
2. `default.yml` を編集する。
*5.* Misskeyのビルド
----------------------------------------------------------------
次のコマンドでMisskeyをビルドしてください:
`NODE_ENV=production yarn build`
Debianをお使いであれば、`build-essential`パッケージをインストールする必要があります。
何らかのモジュールでエラーが発生する場合はnode-gypを使ってください:
1. `npx node-gyp configure`
2. `npx node-gyp build`
3. `NODE_ENV=production yarn build`
*6.* データベースを初期化
----------------------------------------------------------------
``` shell
yarn run init
```
*7.* 以上です!
----------------------------------------------------------------
お疲れ様でした。これでMisskeyを動かす準備は整いました。
### 通常起動
`NODE_ENV=production yarn start`するだけです。GLHF!
### systemdを用いた起動
1. systemdサービスのファイルを作成
`/etc/systemd/system/misskey.service`
2. エディタで開き、以下のコードを貼り付けて保存:
```
[Unit]
Description=Misskey daemon
[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
CentOSで1024以下のポートを使用してMisskeyを使用する場合は`ExecStart=/usr/bin/sudo /usr/bin/npm start`に変更する必要があります。
3. systemdを再読み込みしmisskeyサービスを有効化
`systemctl daemon-reload; systemctl enable misskey`
4. misskeyサービスの起動
`systemctl start misskey`
`systemctl status misskey`と入力すると、サービスの状態を調べることができます。
### Misskeyを最新バージョンにアップデートする方法:
1. `git checkout master`
2. `git pull`
3. `yarn install`
4. `NODE_ENV=production yarn build`
5. `yarn migrate`
なにか問題が発生した場合は、`yarn clean`または`yarn cleanall`すると直る場合があります。
----------------------------------------------------------------
なにかお困りのことがありましたらお気軽にご連絡ください。

View File

@ -1,146 +0,0 @@
Misskey 设置和安装指南
================================================================
非常感谢您对构建 Misskey 服务器的关注!
这份指南描述了 Misskey 的安装与设置流程。
- [日本語版もあります - Japanese version also available](./setup.ja.md)
- [英語版もあります - English version also available](./setup.en.md)
----------------------------------------------------------------
*1.* 创建 Misskey 用户
----------------------------------------------------------------
直接使用 root 用户来运行 misskey 也许并不是一个好主意,因此我们有必要创建一个专用的用户。
以 Debian 为例:
``` bash
adduser --disabled-password --disabled-login misskey
```
*2.* 安装依赖
----------------------------------------------------------------
请安装并设置如下这些软件:
#### Dependencies :package:
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
* **[Redis](https://redis.io/)**
##### Optional
* [Yarn](https://yarnpkg.com/) *可选,但出于安全因素考虑还是推荐安装。如果您没有安装, 您需要使用 `npx yarn` 来代替 `yarn`.*
* [Elasticsearch](https://www.elastic.co/) - 为了启用搜索功能,这个搜索引擎是有必要的。
* [FFmpeg](https://www.ffmpeg.org/)
*3.* 安装 Misskey
----------------------------------------------------------------
1. 连接至 misskey 用户.
`su - misskey`
2. 克隆 Misskey 项目的 master 分支。
`git clone -b master git://github.com/misskey-dev/misskey.git`
3. 进入 misskey 文件夹。
`cd misskey`
4. 检查 [最新发布版](https://github.com/misskey-dev/misskey/releases/latest) 标签。
`git checkout master`
5. 安装 Misskey 的依赖。
`yarn`
*4.* 配置 Misskey
----------------------------------------------------------------
1. 复制 `.config/example.yml` 并重命名为 `default.yml`。
`cp .config/example.yml .config/default.yml`
2. 编辑 `default.yml`
*5.* 构建 Misskey
----------------------------------------------------------------
使用如下的指令构建 Misskey
`NODE_ENV=production yarn build`
如果您使用的是 Debian 您需要安装 `build-essential`, `python` 环境包。
如果您仍然遇到有关某些模块的错误,您可以使用 node-gyp:
1. `npx node-gyp configure`
2. `npx node-gyp build`
3. `NODE_ENV=production yarn build`
*6.* 初始化数据库
----------------------------------------------------------------
``` bash
yarn run init
```
*7.* 完成了!
----------------------------------------------------------------
干得不错现在您拥有了一个可以运行Misskey的环境啦。
### 正常启动
只需要 `NODE_ENV=production npm start` 即可。玩得愉快!
### 使用 systemd 来启动
1. 在此处创建一个 systemd 服务:
`/etc/systemd/system/misskey.service`
2. 编辑它,粘贴如下内容并保存:
```
[Unit]
Description=Misskey daemon
[Service]
Type=simple
User=misskey
ExecStart=/usr/bin/npm start
WorkingDirectory=/home/misskey/misskey
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=misskey
Restart=always
[Install]
WantedBy=multi-user.target
```
3. 重启 systemd 并设置 misskey 服务自动启动:
`systemctl daemon-reload ; systemctl enable misskey`
4. 启动 misskey 服务:
`systemctl start misskey`
您可以使用 `systemctl status misskey` 来检查服务是否正在运行。
### 如何将您的 Misskey 服务器升级至最新版本
1. `git checkout master`
2. `git pull`
3. `yarn install`
4. `NODE_ENV=production yarn build`
5. `yarn migrate`
6. 重启您的 Misskey 进程来应用改变。
7. 尽情享受吧!
如果您在更新时遇到任何问题,请尝试以下操作:
1. `yarn clean` 或是 `yarn cleanall`
2. 重试升级 (请不要忘记 `yarn install`
----------------------------------------------------------------
如果您有任何疑问或是困惑,欢迎与我们联系!

View File

@ -4,8 +4,8 @@
import * as fs from 'fs';
import * as gulp from 'gulp';
import * as rimraf from 'rimraf';
import * as replace from 'gulp-replace';
import rimraf from 'rimraf';
const replace = require('gulp-replace');
const terser = require('gulp-terser');
const cssnano = require('gulp-cssnano');

View File

@ -1,3 +1,13 @@
/*
import * as fs from 'fs';
if (fs.existsSync('./built')) {
import('./built/index.js').then(built => built());
} else {
console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.');
}
*/
const fs = require('fs');
if (fs.existsSync('./built')) {

View File

@ -6,6 +6,7 @@ search: "البحث"
notifications: "الإشعارات"
username: "اسم المستخدم"
password: "الكلمة السرية"
forgotPassword: "نسيتَ كلمة السر"
fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…"
ok: " حسناً"
gotIt: "فهِمت"
@ -62,6 +63,7 @@ files: "الملفات"
download: "تنزيل"
driveFileDeleteConfirm: "أمتأكد من حذف ملف {name}؟ كل الملاحظات المُرفق بها هذا الملف ستحذف."
unfollowConfirm: "أمتأكد من إلغاء متابعة {name}؟"
importRequested: "يستغرق الاستيراد بعض الوقت"
lists: "القوائم"
noLists: "ليس لديك أية قائمة"
note: "ملاحظة"
@ -75,6 +77,7 @@ error: "خطأ"
somethingHappened: "حدث خطأ"
retry: "حاول مجددًا"
pageLoadError: "فشل تحميل الصفحة"
serverIsDead: "الخادم لا يستجيب، حاول بعد قليل"
enterListName: "اسم القائمة"
privacy: "الخصوصية"
makeFollowManuallyApprove: "القبول يدويا طلبات الإشتراك"
@ -96,6 +99,7 @@ add: "إضافة"
reaction: "تفاعل"
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
attachCancel: "أزل المرفق"
markAsSensitive: "علّمه كمحتوى حساس"
enterFileName: "ادخل اسم الملف"
mute: "اكتم"
unmute: "إلغاء الكتم"
@ -108,16 +112,20 @@ unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
selectList: "اختر قائمة"
editWidgetsExit: "تم"
customEmojis: "إيموجي مخصص"
emoji: "الوجوه التعبيرية"
emojis: "الوجوه التعبيرية"
emojiName: "اسم الوجه التعبيري"
emojiUrl: "رابط الوجه التعبيري"
addEmoji: "إضافة إيموجي"
settingGuide: "الإعدادات المستحسنة"
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
autoAcceptFollowed: "اقبل طلبات المتابعة تلقائيا من الحسابات المتابَعة"
addAcount: "إضافة حساب"
loginFailed: "فشل الولوج"
showOnRemote: "رؤيته على مثيل الخادم البُعدي"
general: "الرئيسية"
wallpaper: "خلفية الشاشة"
setWallpaper: "استخدم خلفية الشاشة"
removeWallpaper: "إزالة خلفية الشاشة"
wallpaper: "الخلفية"
setWallpaper: "عيّن خلفية"
removeWallpaper: "أزل الخلفية"
searchWith: "البحث: {q}"
youHaveNoLists: "لا تمتلك أية قائمة"
followConfirm: "أتريد متابعة {name}؟"
@ -182,7 +190,7 @@ removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
deleteAreYouSure: "متأكد من أنك تريد حذف {x}؟"
resetAreYouSure: "هل تريد إعادة التعيين؟"
saved: "تم حفظه"
messaging: "الدردشة"
messaging: "المحادثة"
upload: "تحميل"
fromDrive: "من المخزن"
fromUrl: "من عنوان URL"
@ -194,7 +202,7 @@ explore: "استكشاف"
games: "ألعاب Misskey"
messageRead: "مقروءة"
noMoreHistory: "لا يوجد المزيد من التاريخ"
startMessaging: "ابدأ الدردشة"
startMessaging: "ابدأ محادثة"
nUsersRead: "تمت القراءة من {n}"
agreeTo: "اوافق على {0}"
tos: "شروط الخدمة"
@ -260,15 +268,23 @@ monthX: "{month}"
yearX: "{year}"
pages: "الصفحات"
integration: "دمج"
connectSerice: "أوصل"
disconnectSerice: "قطع الاتصال"
enableLocalTimeline: "تفعيل الخيط المحلي"
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
disablingTimelinesInfo: "سيتمكن المسؤولون ومن تعديل دائمًا و من الوصول إلى جميع المخططات الزمنية ، حتى إذا لم يتم تمكينها."
registration: "إنشاء حساب"
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
invite: "دعوة"
driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي"
driveCapacityPerRemoteAccount: "حصة التخزين لكل مستخدم بعيد"
inMb: "بالميغابايت"
iconUrl: "رابط الأيقونة"
bannerUrl: "رابط صورة اللافتة"
backgroundImageUrl: "رابط صورة الخلفية"
basicInfo: "المعلومات الأساسية "
pinnedUsers: "المستخدمون المثبتون"
pinnedUsersDescription: "قائمة المستخدمين المثبتين في لسان \"استكشف\" ، اجعل كل اسم مستخدم في سطر لوحده."
pinnedPages: "الصفحات المثبتة"
pinnedPagesDescription: "أدخل مسار الصفحات التي تريد تثبيتها في أعلى هذا الموقع، اجعل كل مسار في سطر لوحده."
pinnedNotes: "ملاحظة مدبسة"
hcaptchaSiteKey: "مفتاح الموقع"
hcaptchaSecretKey: "المفتاح السري"
@ -281,12 +297,19 @@ manageAntennas: "إدارة الهوائيات"
name: "الإسم"
antennaSource: "مصدر الهوائي"
antennaKeywords: "الكلمات المفتاحية للإستقبال"
notifyAntenna: "نبهني بصول ملاحظات جديدة"
withFileAntenna: "ملاحظات تحوي ملفات فقط"
caseSensitive: "حساسية حالة الأحرف"
withReplies: "بالردود"
notesAndReplies: "الملاحظات والردود"
withFiles: "بالمرفقات"
silence: "اكتم"
unsilence: "إلغاء الكتم"
popularUsers: "المستخدمون الشائعون"
recentlyUpdatedUsers: "أصحاب النشاطات الأخيرة"
recentlyRegisteredUsers: "المستخدمون المنضمون حديثًا"
recentlyDiscoveredUsers: "المستخدمون المكتشفون حديثًا"
exploreUsersCount: "يوجد {count} مستخدم(ا)"
exploreFediverse: "استكشف الفديفرس"
popularTags: "الوسوم الرائجة"
userList: "القوائم"
@ -299,11 +322,13 @@ moderator: "مشرِف"
nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم"
securityKey: "مفتاح الأمان"
securityKeyName: "اسم المفتاح"
registerSecurityKey: "سجل مفتاح أمان"
lastUsed: "آخر استخدام"
unregister: "إلغاء التسجيل"
passwordLessLogin: "لِج مِن دون كلمة سرية"
resetPassword: "أعد تعيين كلمتك السرية"
newPasswordIs: "كلمتك السرية الجديدة هي {password}"
reduceUiAnimation: "قلص تأثيرات الواجهة"
share: "شارِك"
notFound: "غير موجود"
cacheClear: "مسح ذاكرة التخزين المؤقت"
@ -318,8 +343,8 @@ invites: "دعوة"
groupName: "اسم الفريق"
members: "الأعضاء"
transfer: "نقل"
messagingWithUser: "الدردشة مع مستخدم آخر"
messagingWithGroup: "دردشة جماعية"
messagingWithUser: "تحدث مع مستخدم"
messagingWithGroup: "محادثة جماعية"
title: "العنوان"
text: "النص"
enable: "تشغيل"
@ -354,7 +379,6 @@ category: "الفئات"
tags: "الوسوم"
docSource: "مصدر هذا المستند"
createAccount: "أنشئ حسابًا"
existingAcount: "الحسابات الموجودة"
regenerate: "أعِد التوليد"
fontSize: "حجم الخط"
openImageInNewTab: "إفتح الصورة بصفحة جديدة"
@ -365,31 +389,45 @@ total: "المجموع"
weekOverWeekChanges: "أسبوعيا"
dayOverDayChanges: "يوميا"
appearance: "المظهر"
clientSettings: "إعدادات العميل"
accountSettings: "إعدادات الحساب"
promotion: "ترقية"
promote: "روِّج"
numberOfDays: "عدد الأيام"
hideThisNote: "إخفاء هذه الملاحظة"
objectStorageBaseUrl: "الرابط الأساسي"
objectStoragePrefix: "البادئة"
objectStorageEndpoint: "نقطة النهاية"
objectStorageRegion: "المنطقة"
objectStorageUseSSL: "استخدم SSL"
objectStorageUseProxy: "اتصل عبر وكيل"
serverLogs: "سجلات الخادم"
deleteAll: "حذف الكل"
showFixedPostForm: "أظهر نموذج الكتابة في أعلى الصفحة"
newNoteRecived: "هناك ملاحظات جديدة"
sounds: "الرنات"
listen: "استمع"
none: "لا شيء"
showInPage: "اعرض في الصفحة"
volume: "مستوى الصوت"
details: "التفاصيل"
chooseEmoji: "اختر إيموجي"
unableToProcess: "يتعذر إكمال العملية"
recentUsed: "المستخدمة مؤخرا"
install: "التثبيت"
uninstall: "إلغاء التثبيت"
installedApps: "التطبيقات المُخوّلة"
nothing: "لا يوجد شيء هنا"
lastUsedDate: "آخر استخدام"
state: "الحالة"
sort: "ترتيب حسب"
output: "الخارجة"
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
deleteAllFiles: "حذف كافة الملفات"
deleteAllFilesConfirm: "أتريد حذف كل الملفات؟"
removeAllFollowing: "ألغ متابعة كل المتابِعين"
userSuspended: "تم تعليق هذا المستخدم."
userSilenced: "تم إسكات هذا المستخدم."
sidebar: "الشريط الجانبي"
addItem: "إضافة عنصر"
rooms: "الغرفة"
relays: "المُرَحلات"
@ -423,13 +461,56 @@ makeActive: "تفعيل"
display: "المظهر"
copy: "نسخ"
metrics: "المقاييس"
fileIdOrUrl: "معرف الملف أو رابط"
chatOpenBehavior: "سلوك نفاذة المحادثة عند فتحها"
behavior: "السلوك"
sample: "مثال"
abuseReports: "البلاغات"
reportAbuse: "البلاغات"
reportAbuseOf: "أبلغ عن {name}"
fillAbuseReportDescription: "أكتب بالتفصيل سبب الإبلاغ، إذا كنت تبلغ عن ملاحظة أرفق رابط لها."
abuseReported: "أُرسل البلاغ، شكرًا لك"
send: "أرسل"
abuseMarkAsResolved: "علّم البلاغ كمحلول"
openInNewTab: "افتح في لسان جديد"
defaultNavigationBehaviour: "سلوك الملاحة الافتراضي"
waitingFor: "في انتظار {x}"
random: "عشوائي"
system: "النظام"
switchUi: "بدّل واجهة المستخدم"
createNew: "أنشِئ جديد"
optional: "اختياري"
public: "للعامة"
i18nInfo: "يترجم متطوعون ميسكي إلى عدة لغات، يمكنك المساعدة عبر {link}"
manageAccessTokens: "إدارة رموز الوصول"
accountInfo: "معلومات الحساب"
notesCount: "عدد الملاحظات"
repliesCount: "عدد الردود المرسلة"
repliedCount: "عدد الردود المستلمة"
followingCount: "عدد الحسابات المتابَعة"
followersCount: "عدد المتابِعين"
sentReactionsCount: "عدد الانفعالات المرسلة"
receivedReactionsCount: "عدد الانفعالات المستلمة"
pollVotesCount: "عدد الاستطلاعات المرسلة"
pollVotedCount: "عدد الاستطلاعات المستلمة"
yes: "نعم"
no: "لا"
currentVersion: "الإصدار الحالي"
latestVersion: "آخر نسخة مستقرة"
usageAmount: "الإستخدام"
capacity: "السعة"
inUse: "مستخدم"
info: "عن"
user: "المستخدمون"
administration: "إدارة "
postToGallery: "انشر في المعرض"
gallery: "المعرض"
expiration: "ينتهي استطلاع الرأي في"
middle: "متوسط"
global: "الشامل"
sent: "أرسل"
_docs:
admin: "إدارة "
_email:
_follow:
title: "يتابعك"
@ -442,9 +523,7 @@ _reversi:
total: "المجموع"
_channel:
featured: "المتداوَلة"
_sidebar:
full: "كامل"
icon: "الصورة الرمزية"
_menuDisplay:
hide: "إخفاء"
_theme:
explore: "استكشف قوالب المظهر"
@ -456,12 +535,12 @@ _theme:
alpha: "الشفافية"
keys:
mention: "أشر الى"
messageBg: "خلفية الدردشة"
messageBg: "خلفية المحادثة"
_sfx:
note: "الملاحظات"
noteMy: "ملاحظتي"
notification: "الإشعارات"
chat: "الدردشة"
chat: "المحادثة"
_ago:
unknown: "مجهول"
future: "المستقبَل"

View File

@ -1,11 +1,13 @@
---
_lang_: "Čeština"
headlineMisskey: "Síť propojená poznámkami"
introMisskey: "Vítejte! Misskey je otevřený a decentralizovaný microblogový servis.\n\"Poznámkami\" můžete sdílet co se zrovna děje se všemi ve Vašem okolí. 📡\nPomocí \"reakcí\" můžete sdílet své názory a pocity na ostatní poznámky. 👍\nPojďte objevovat nový svět! 🚀"
monthAndDay: "{day}. {month}."
search: "Vyhledávání"
notifications: "Oznámení"
username: "Uživatelské jméno"
password: "Heslo"
forgotPassword: "Zapomenuté heslo"
fetchingAsApObject: "Načítám data z Fediversu..."
ok: "Potvrdit"
gotIt: "Rozumím!"
@ -72,6 +74,8 @@ error: "Chyba"
somethingHappened: "Jejda. Něco se nepovedlo."
retry: "Opakovat"
pageLoadError: "Nepodařilo se načíst stránku"
enterListName: "Jméno seznamu"
privacy: "Soukromí"
follow: "Sledovaní"
unfollow: "Přestat sledovat"
renote: "Přeposlat"
@ -107,21 +111,29 @@ editWidgets: "Upravit widget"
editWidgetsExit: "Hotovo"
customEmojis: "Vlastní emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Jméno emoji"
emojiUrl: "URL obrázku"
addEmoji: "Přidat emoji"
settingGuide: "Doporučené nastavení"
cacheRemoteFiles: "Ukládání vzdálených souborů do mezipaměti"
cacheRemoteFilesDescription: "Zakázání tohoto nastavení způsobí, že vzdálené soubory budou odkazovány přímo, místo aby byly ukládány do mezipaměti. Tím se ušetří úložiště na serveru, ale zvýší se provoz, protože se negenerují miniatury."
flagAsBot: "Tento účet je bot"
flagAsBotDescription: "Pokud je tento účet kontrolován programem zaškrtněte tuto možnost. To označí tento účet jako bot pro ostatní vývojáře a zabrání tak nekonečným interakcím s ostatními boty a upraví Misskey systém aby se choval k tomuhle účtu jako bot."
flagAsCat: "Tenhle účet je kočka"
flagAsCatDescription: "Vyberte tuto možnost aby tento účet byl označen jako kočka."
autoAcceptFollowed: "Automaticky akceptovat následování od účtů které sledujete"
addAcount: "Přidat účet"
addAccount: "Přidat účet"
loginFailed: "Přihlášení se nezdařilo."
showOnRemote: "Více na původním profilu"
general: "Obecně"
wallpaper: "Obrázek na pozadí"
setWallpaper: "Nastavení obrázku na pozadí"
removeWallpaper: "Odstranit pozadí"
youHaveNoLists: "Nemáte žádné seznamy"
proxyAccount: "Proxy účet"
proxyAccountDescription: "Proxy účet je účet, který za určitých podmínek sleduje uživatele na dálku vaším jménem. Například když uživatel zařadí vzdáleného uživatele do seznamu, pokud nikdo nesleduje uživatele na seznamu, aktivita nebude doručena instanci, takže místo toho bude uživatele sledovat účet proxy."
host: "Hostitel"
selectUser: "Vyberte uživatele"
recipient: "Pro"
annotation: "Komentáře"
@ -139,6 +151,8 @@ operations: "Operace"
software: "Software"
version: "Verze"
metadata: "Metadata"
withNFiles: "{n} soubor(ů)"
monitor: "Monitorovat"
jobQueue: "Fronta úloh"
cpuAndMemory: "CPU a paměť"
network: "Síť"
@ -149,6 +163,7 @@ clearQueue: "Vyčistit frontu"
clearQueueConfirmTitle: "Jste si jisti že zrušit všechny úlohy ve frontě?"
clearCachedFiles: "Vyprázdnit mezipaměť"
blockedInstances: "Blokované instance"
editProfile: "Upravit můj profil"
pinLimitExceeded: "Nemůžete připnout další poznámky."
intro: "Instalace Misskey byla dokončena! Prosím vytvořte admina."
done: "Hotovo"
@ -161,6 +176,7 @@ all: "Vše"
subscribing: "Odebíráte"
publishing: "Publikuji"
notResponding: "Neodpovídá"
instanceFollowing: "Následovníci na instanci"
instanceFollowers: "Následovníci na instanci"
instanceUsers: "Uživatelé této instance"
changePassword: "Změnit heslo"
@ -170,6 +186,7 @@ newPassword: "Nové heslo"
newPasswordRetype: "Nové heslo (znovu)"
attachFile: "Přiložit soubor"
more: "Více!"
featured: "Oblíbené poznámky"
usernameOrUserId: "Uživatelské jméno nebo uživatelské id"
noSuchUser: "Uživatel nebyl nalezen"
announcements: "Oznámení"
@ -201,8 +218,14 @@ remoteUserCaution: "Tyto informace nemusí být aktuální jelikož uživatel je
activity: "Aktivita"
images: "Obrázky"
birthday: "Datum narození"
yearsOld: "{age} let"
registeredDate: "Datum registrace"
location: "Lokace"
theme: "Vzhled"
themeForLightMode: "Vzhled pro použití ve světlém režimu"
themeForDarkMode: "Vzhled k použití v tmavém režimu"
light: "Světlý"
dark: "Tmavý"
lightThemes: "Světlý vzhled"
darkThemes: "Tmavý vzhled"
syncDeviceDarkMode: "Synchronizovat tmavý vzhled s nastavením Vašeho systému"
@ -217,6 +240,10 @@ folderName: "Název složky"
createFolder: "Vytvořit složku"
renameFolder: "Přejmenovat složku"
deleteFolder: "Odstranit složku"
addFile: "Přidat soubor"
emptyFolder: "Tato složka je prázdná"
unableToDelete: "Nelze smazat"
inputNewFileName: "Zadejte nový název"
copyUrl: "Kopírovat URL"
rename: "Přejmenovat"
avatar: "Avatar"
@ -224,6 +251,7 @@ banner: "Baner"
nsfw: "NSFW"
disconnectedFromServer: "Spojení bylo přerušeno"
reload: "Aktualizovat"
doNothing: "Ignorovat"
watch: "Sledovat"
unwatch: "Přestat sledovat"
accept: "Souhlasím"
@ -242,8 +270,6 @@ monthX: "{month}"
yearX: "{year}"
pages: "Stránky"
integration: "Integrace"
connectSerice: "Připojit"
disconnectSerice: "Odpojit"
enableLocalTimeline: "Povolit lokální čas"
enableGlobalTimeline: "Povolit globální čas"
registration: "Registrace"
@ -254,6 +280,17 @@ iconUrl: "Favicon URL"
bannerUrl: "Baner URL"
basicInfo: "Základní informace"
hcaptcha: "hCaptcha"
hcaptchaSecretKey: "Tajný Klíč (Secret Key)"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Zapnout ReCAPTCHu"
recaptchaSecretKey: "Tajný Klíč (Secret Key)"
antennas: "Antény"
manageAntennas: "Spravovat Antény"
name: "Jméno"
antennaSource: "Zdroj Antény"
enableServiceworker: "Povolit ServiceWorker"
caseSensitive: "Rozlišuje malá a velká písmena"
connectedTo: "Následující účty jsou připojeny"
userList: "Seznamy"
about: "Informace"
aboutMisskey: "O Misskey"
@ -298,17 +335,80 @@ retype: "Zadejte znovu"
noteOf: "{user} poznámky"
inviteToGroup: "Pozvat do skupiny"
invitations: "Pozvat"
checking: "Ověřuji"
available: "K dispozici"
unavailable: "Není k dispozici"
usernameInvalidFormat: "Písmena, čísla a _ jsou povolená."
tooShort: "Příliš krátké"
tooLong: "Příliš dlouhé"
weakPassword: "Slabé heslo"
normalPassword: "Dobré heslo"
strongPassword: "Silné heslo"
passwordMatched: "Hesla se schodují"
passwordNotMatched: "Hesla se neschodují"
signinWith: "Přihlásit se s {x}"
signinFailed: "Nelze se přihlásit. Zkontrolujte prosím své uživatelské jméno a heslo."
or: "Nebo"
language: "Jazyk"
uiLanguage: "Jazyk uživatelského rozhraní"
groupInvited: "Pozvat do skupiny"
aboutX: "O {x}"
useOsNativeEmojis: "Použití nativních emoji operačního systému"
youHaveNoGroups: "Nemáte žádné skupiny"
joinOrCreateGroup: "Můžete požádat o pozvání do stávající skupiny nebo vytvořit novou."
noHistory: "Žádná historie"
signinHistory: "Historie přihlášení"
category: "Kategorie"
tags: "Štítky"
createAccount: "Vytvořit účet"
fontSize: "Velikost písma"
openImageInNewTab: "Otevřít obrázek v novém panelu"
dashboard: "Přehled"
local: "Lokální"
total: "Celkem"
weekOverWeekChanges: "Týdně"
dayOverDayChanges: "Denně"
appearance: "Vzhled"
clientSettings: "Nastavení klienta"
accountSettings: "Nastavení účtu"
promotion: "Propagace"
promote: "Propagovat"
numberOfDays: "Počet dní"
chooseEmoji: "Vybrat emotikon"
unableToProcess: "Operace nebyla dokončena."
recentUsed: "Naposledy použité"
install: "Nainstalovat"
uninstall: "Odinstalovat"
installedApps: "Autorizované aplikace"
nothing: "Nic nebylo nalezeno"
lastUsedDate: "Poslední použití"
state: "Stav"
ascendingOrder: "Vzestupně"
descendingOrder: "Sestupně"
scratchpad: "Zápisník"
output: "Výstup"
script: "Skript"
deleteAllFiles: "Smazat všechny soubory"
deleteAllFilesConfirm: "Jste si jistí že chcete smazat všechny soubory?"
userSuspended: "Tomuto uživateli byl pozastaven účet."
addItem: "Přidat položku"
rooms: "Místnost"
inboxUrl: "Inbox URL"
deletedNote: "Odstraněné příspěvky"
invisibleNote: "Skryté příspěvky"
smtpHost: "Hostitel"
smtpUser: "Uživatelské jméno"
smtpPass: "Heslo"
clearCache: "Vyprázdnit mezipaměť"
info: "Informace"
user: "Uživatelé"
_mfm:
mention: "Zmínění"
quote: "Citovat"
emoji: "Vlastní emoji"
search: "Vyhledávání"
_sidebar:
icon: "Avatar"
_reversi:
total: "Celkem"
_theme:
keys:
mention: "Zmínění"
@ -328,6 +428,7 @@ _visibility:
home: "Domů"
followers: "Sledující"
_profile:
name: "Jméno"
username: "Uživatelské jméno"
_exportOrImport:
followingList: "Sledovaní"
@ -339,6 +440,8 @@ _timelines:
_rooms:
_roomType:
default: "Výchozí"
_furnitures:
monitor: "Monitorovat"
_pages:
blocks:
image: "Obrázky"
@ -361,6 +464,7 @@ _pages:
types:
array: "Seznamy"
_notification:
youWereInvitedToGroup: "Pozvat do skupiny"
_types:
follow: "Sledovaní"
mention: "Zmínění"
@ -371,5 +475,6 @@ _deck:
_columns:
notifications: "Oznámení"
tl: "Časová osa"
antenna: "Antény"
list: "Seznamy"
mentions: "Zmínění"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

894
locales/eo-UY.yml Normal file
View File

@ -0,0 +1,894 @@
---
_lang_: "Esperanto"
headlineMisskey: "Jen la reto konektata de notoj"
introMisskey: "Bonvenon! Misskey estas malfermitkoda malcentraliza etbloga servo.\nKreu \"noto\"n por paroli vian penson al iuj ĉirkaŭ vi. 📡\nLa funkcion \"reago\" ebligas esprimi rapide vian senton pri ies noto en Fediverso. 👍\nBonvole esploru novan mondon. 🚀"
monthAndDay: "{{day}}/{{month}}"
search: "Serĉi"
notifications: "Sciigoj"
username: "Uzantnomo"
password: "Pasvorto"
forgotPassword: "Ĉu vi forgesis pasvorton?"
fetchingAsApObject: "Informpetado de kunfederaĵo…"
ok: "Akcepteble"
gotIt: "Mi komprenas"
cancel: "Nuligi"
enterUsername: "Entajpu uzantnomon"
renotedBy: "Noto plusendita de {user}"
noNotes: "Neniu noto!"
noNotifications: "Vi ne havas sciigojn."
instance: "Nodo"
settings: "Agordoj"
basicSettings: "Ĝeneralaj agordoj"
otherSettings: "Aliaj agordoj"
openInWindow: "Malfermi en fenestro"
profile: "Profilo"
timeline: "Templinio"
noAccountDescription: "Neniu priskribo"
login: "Ensaluti"
loggingIn: "Ensalutado…"
logout: "Elsaluti"
signup: "Registriĝi"
uploading: "Alŝutado…"
save: "Konservi"
users: "Uzantoj"
addUser: "Aldoni uzanton"
favorite: "Preferi"
favorites: "Preferaĵoj"
unfavorite: "Malpreferi"
favorited: "Aldonita al via listo de preferaĵoj."
alreadyFavorited: "Ĝi jam estis aldonita al via listo de preferaĵoj."
cantFavorite: "Ne aldonita al via listo de preferaĵoj."
pin: "Alpingli"
unpin: "Depingli"
copyContent: "Kopii enhavon"
copyLink: "Kopii ligilon"
delete: "Forviŝi"
deleteAndEdit: "Redakti foriginte"
deleteAndEditConfirm: "Ĉu vi certas, ke vi volas forigi kaj redakti la noton? Tio forviŝos reagojn, plusendojn, kaj respondojn ĉiujn de ĝi."
addToList: "Aldoni al listo"
sendMessage: "Sendi mesaĝon"
copyUsername: "Kopii uzantnomon"
searchUser: "Serĉi uzanton"
reply: "Respondi"
loadMore: "Vidu pli"
showMore: "Vidi pli"
youGotNewFollower: "eksekvis vin"
receiveFollowRequest: "Peto de sekvado estas ricevita"
followRequestAccepted: "La peto de sekvado akceptita"
mention: "Mencioj"
mentions: "Al vi"
directNotes: "Rekte senditaj"
importAndExport: "Importi/eksporti"
import: "Importi"
export: "Eksporti"
files: "Dosieroj"
download: "Elŝuti"
driveFileDeleteConfirm: "Ĉu vi certas, ke vi volas forviŝi la dosieron \"{name}\"? Pro tio forviŝiĝos ankaŭ la notoj kiuj enhavas ĝin."
unfollowConfirm: "Ĉu vi certas, ke vi volas ĉesi sekvi {name}'(o)n?"
lists: "Listoj"
noLists: "Neniu listo"
note: "Sendi"
notes: "Notoj"
following: "Sekvatoj"
followers: "Sekvantoj"
followsYou: "Sekvas vin"
createList: "Krei liston"
manageLists: "Administri liston"
error: "Eraro"
somethingHappened: "Problemo okazis"
retry: "Provi denove"
enterListName: "Entajpu nomon de la listo"
privacy: "Privateco"
defaultNoteVisibility: "Implicitaĵo de videbleco"
follow: "Sekvi"
followRequest: "Peti de sekvado"
followRequests: "Petoj de sekvado"
unfollow: "Ne plu sekvi"
enterEmoji: "Entajpu emoĵion"
renote: "Plusendi la noton"
unrenote: "Malfari plusendadon"
renoted: "Sukcese plusendita"
cantRenote: "Oni ne povas plusendi la noton."
cantReRenote: "Plusendo de noto ne estas plusendebla."
quote: "Citi"
pinnedNote: "Alpinglita noto"
pinned: "Alpingli"
you: "Vi"
clickToShow: "Klaku por malkaŝu"
sensitive: "Enhavo ne estas deca por laborejo (NSFW)"
add: "Aldoni"
reaction: "Reagoj"
rememberNoteVisibility: "Rememoru videblecon de la noto laste sendita "
attachCancel: "Deigi aldonaĵon"
markAsSensitive: "Troviĝi NSFW"
unmarkAsSensitive: "Ne troviĝi NSFW"
enterFileName: "Entajpu nomon de dosiero"
mute: "Silentigi"
unmute: "Malsilentigi"
block: "Bloki"
unblock: "Malbloki"
suspend: "Flostigi"
unsuspend: "Fandi"
blockConfirm: "Ĉu vi certas ke vi volas bloki la uzanton?"
unblockConfirm: "Ĉu vi certas ke vi volas malbloki la uzanton?"
suspendConfirm: "Ĉu vi certas ke vi volas frostigi la uzanton?"
unsuspendConfirm: "Ĉu vi certas ke vi volas fandi la uzanton?"
selectList: "Elekti liston"
selectAntenna: "Elekti antenon"
selectWidget: "Elekti enestraĵon"
editWidgets: "Redakti fenestraĵon"
editWidgetsExit: "Fini la redaktadon"
customEmojis: "Personecigitaj emoĵioj"
emoji: "Emoĵio"
emojis: "Emoĵio"
emojiName: "Nomo de emoĵio"
emojiUrl: "URL de la emoĵio"
addEmoji: "Aldoni emoĵion"
settingGuide: "Agordaj rekomendoj"
cacheRemoteFiles: "Stapli transajn dosierojn"
flagAsBot: "Agordo por robota uzanto"
flagAsCat: "Agordo de katiĝa uzanto"
addAccount: "Aldoni konton"
showOnRemote: "Vidi ĉe la surloka nodo"
general: "Ĝenerala"
wallpaper: "Ekranfonoj"
setWallpaper: "Apliki ekranfonon"
removeWallpaper: "Forviŝi ekranfonon. "
searchWith: "Serĉi: {q}"
youHaveNoLists: "Vi ne havas listojn."
followConfirm: "Ĉu vi certas ke vi volas sekvi {name}'(o)n?"
host: "Gastigo"
selectUser: "Elekti uzanton"
recipient: "Ricevonto"
annotation: "Komentarioj"
federation: "Kunfederaĵo"
instances: "Nodoj"
latestRequestSentAt: "Lastatempa sendo"
latestRequestReceivedAt: "Lastatempa ricevo"
latestStatus: "Laŭstato"
perHour: "Po horo"
perDay: "Po tago"
blockThisInstance: "Bloki la nodon"
operations: "Agoj"
software: "Programaro"
version: "Versio"
metadata: "Metadatumoj"
withNFiles: "{n} dosiero(j)"
monitor: "Monitoro"
network: "Reto"
disk: "Diskilo"
instanceInfo: "Informoj pri la nodo"
statistics: "Statistikoj"
clearCachedFiles: "Malplenigi la staplon"
clearCachedFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn transajn dosierojn en la staplo?"
blockedInstances: "Blokitaj nodoj"
muteAndBlock: "Silentigitoj kaj blokitoj"
mutedUsers: "Silentigitaj uzantoj"
blockedUsers: "Blokitaj uzantoj"
noUsers: "Sen uzantoj"
editProfile: "Redakti profilon"
noteDeleteConfirm: "Ĉu vi certas ke vi volas forviŝi la noton?"
pinLimitExceeded: "Vi povas alpingli ne pli noton."
done: "Fini"
processing: "Prilaborado…"
preview: "Antaŭmontro"
noCustomEmojis: "Neniu emoĵio"
federating: "Nun kunfederanta"
blocked: "Blokita"
suspended: "Suspendita"
all: "Ĉiuj"
subscribing: "Abonata"
publishing: "Al kiu dissendas"
notResponding: "Alvokato ne disponeblas"
instanceFollowing: "Sekvatoj en la nodo"
instanceFollowers: "Sekvantoj el la nodo"
instanceUsers: "Uzantoj de tiu ĉi nodo"
changePassword: "Ŝanĝi pasvorton"
security: "Sekureco"
retypedNotMatch: "Enigitoj ne estas konformaj."
currentPassword: "Aktuala pasvorto"
newPassword: "Nova pasvorto"
newPasswordRetype: "Reentajpu la novan pasvorton"
attachFile: "Aldoni dosieron"
more: "Plu!"
featured: "Maksimumi"
usernameOrUserId: "Uzantnomo aŭ identigilo de uzanto"
noSuchUser: "Neniuj uzantoj trovitaj."
lookup: "Informpeti"
announcements: "Novaĵoj"
imageUrl: "URL de bildo"
remove: "Forigi"
removed: "Forviŝis"
removeAreYouSure: "Ĉu vi certas ke vi volas forigi \"{x}\"'(o)n?"
deleteAreYouSure: "Ĉu vi certas ke vi volas forviŝi \"{x}\"'(o)n?"
saved: "Konservita"
messaging: "Retbabili"
upload: "Alŝuti"
fromDrive: "De la disko"
fromUrl: "De URL"
uploadFromUrl: "Alŝuti de URL"
uploadFromUrlDescription: "URL de dosiero kiun vi volas alŝuti"
explore: "Esplori"
games: "Miskiaj Ludoj"
messageRead: "Legita"
startMessaging: "Komenci babiladon"
nUsersRead: "Legita de {n} homoj"
tos: "Kondiĉoj de uzado"
start: "Komenciĝi"
home: "Hejma"
remoteUserCaution: "Ĉi tiuj infomoj ne estas tute ekzaktaj pro transa uzanto."
activity: "Aktiveco"
images: "Bildoj"
birthday: "Naskiĝdato"
registeredDate: "Dato de registriĝo"
location: "Loko"
theme: "Koloraro"
light: "Luma"
dark: "Malluma"
drive: "Disko"
fileName: "Dosiernomo"
selectFile: "Elekti dosieron"
selectFiles: "Elekti dosieron"
selectFolder: "Elekti dosierujon"
selectFolders: "Elekti dosierujon"
renameFile: "Alinomi la dosieron"
folderName: "Nomo de la dosierujo"
createFolder: "Krei dosierujon"
renameFolder: "Alinomi la dosierujon"
deleteFolder: "Forviŝi dosierujon"
addFile: "Aldoni dosieron"
emptyDrive: "La disko malplenas"
emptyFolder: "La dosierujo malplenas"
unableToDelete: "Ne forigebla"
inputNewFileName: "Entajpu nova nomon de la dosiero"
inputNewFolderName: "Entajpu nova nomon de la dosierujo"
hasChildFilesOrFolders: "La dosierujo ne estas forviŝebla, ĉar ĝi ne malplenas."
copyUrl: "Kopii URL"
rename: "Alinomi"
avatar: "Ikono"
banner: "Standardo"
nsfw: "Enhavo ne estas deca por laborejo (NSFW)"
reload: "Reŝargi"
watch: "Observi"
unwatch: "Malobservi"
accept: "Permesi"
normal: "Normala"
instanceName: "Nomo de la nodo"
instanceDescription: "Priskribo de la nodo "
maintainerName: "Nomo de la administranto"
maintainerEmail: "Retpoŝto de la administranto"
tosUrl: "URL de kondiĉoj de uzado"
thisYear: "Ĉi-jare"
thisMonth: "Ĉi-monate"
today: "Hodiaŭ"
dayX: "{day}a"
monthX: "La {month}a monato"
yearX: "La jaro {year}"
pages: "Paĝoj"
connectService: "Konekti"
disconnectService: "Farkonektiĝi"
enableLocalTimeline: "Ebligi lokan templinion"
enableGlobalTimeline: "Ebligi mallokan templinion"
registration: "Registri"
enableRegistration: "Ebligi novan uzanton registriĝon"
invite: "Inviti"
driveCapacityPerLocalAccount: "Volumo de disko po unu loka uzanto"
driveCapacityPerRemoteAccount: "Volumo de disko po unu transa uzanto"
iconUrl: "URL de la ikono (retpaĝsimbolo, ktp)"
bannerUrl: "URL de standardo"
backgroundImageUrl: "URL de fona bildo"
basicInfo: "Baza informo"
pinnedUsers: "Alpinglita uzanto"
pinnedPages: "Alpinglitaj paĝoj"
pinnedNotes: "Alpinglita noto"
hcaptchaSiteKey: "Reteja ŝlosilo"
hcaptchaSecretKey: "Sekreta ŝlosilo"
recaptcha: "reCAPTCHA"
enableRecaptcha: "Ebligi reCAPTCHA'on"
recaptchaSiteKey: "Reteja ŝlosilo"
recaptchaSecretKey: "Sekreta ŝlosilo"
antennas: "Antenoj"
manageAntennas: "Administri antenojn"
name: "Nomo"
notifyAntenna: "Oni sciigos novajn notojn"
withFileAntenna: "Nur kun aldonaĵo"
withReplies: "Inkluzive respondoj"
connectedTo: "Sekva konto estas konektita"
notesAndReplies: "Kun respondoj"
withFiles: "Kun aldonaĵo"
silence: "Mutigi"
silenceConfirm: "Ĉu vi certas ke vi volas mutigi la uzanton?"
unsilence: "Malmutigi"
unsilenceConfirm: "Ĉu vi certas ke vi volas malmutigi la uzanton?"
popularUsers: "Popularaj uzantoj"
recentlyUpdatedUsers: "Uzantoj kiuj lastatempe sendis noton"
recentlyRegisteredUsers: "Novaliĝintaj uzantoj"
recentlyDiscoveredUsers: "Lastatempe trovitaj uzantoj"
exploreUsersCount: "Tio estas {count} uzantoj"
exploreFediverse: "Esplori la Fediverson"
popularTags: "Popularaj kradvortoj"
userList: "Listoj"
about: "Informoj"
aboutMisskey: "Pri Misskey"
administrator: "Administranto"
twoStepAuthentication: "Dua-faktora aŭtentiko"
moderator: "Kontrolisto"
nUsersMentioned: "{n} uzanto(j) menciis"
securityKey: "Sekureca ŝlosilo"
securityKeyName: "Nomo de la ŝlosilo"
lastUsed: "Plej malnove uzita"
unregister: "Malregistriĝi"
passwordLessLogin: "Ensaluti sen pasvorto"
resetPassword: "Restarigi pasvorton"
newPasswordIs: "La nova pasvorto estas {password}."
share: "Diskonigi"
notFound: "Ne trovita"
cacheClear: "Malplenigi staplon"
markAsReadAllNotifications: "Marki ĉiujn sciigojn kiel legito"
help: "Manlibro de uzado"
inputMessageHere: "Entajpu masaĝo tie ĉi"
close: "Fermi"
group: "Grupo"
groups: "Grupoj"
createGroup: "Krei grupon"
invites: "Inviti"
groupName: "Grupa nomo"
members: "Membroj"
messagingWithUser: "Babili private"
messagingWithGroup: "Babili grupe"
title: "Titolo"
text: "Teksto"
enable: "Ebligi"
next: "Sekve"
retype: "Retajpu"
noteOf: "Noto de {user}"
quoteAttached: "Kun citaĵo"
quoteQuestion: "Ĉu vi aldonas citaĵon?"
noMessagesYet: "Ankoraŭ neniu mesaĝo"
newMessageExists: "Vi ricevis novan mesaĝon."
onlyOneFileCanBeAttached: "Oni povas aldoni nur unu dosieron po mesaĝo."
signinRequired: "Bonvolu ensaluti"
invitations: "Inviti"
invitationCode: "Invita kodo"
unavailable: "Ne disponebla"
passwordMatched: "Konforma"
passwordNotMatched: "Nekonforma"
or: "Aŭ"
language: "Lingvo"
uiLanguage: "Lingvo de fasado"
aboutX: "Pri {x}"
useOsNativeEmojis: "Oni uzas la emoĵioj de la denaska sistemo"
youHaveNoGroups: "Neniuj grupoj"
doing: "Traktado..."
category: "Kategorio"
tags: "Etikedoj"
createAccount: "Krei konton"
existingAccount: "Ekzista konto"
regenerate: "Regeneri"
fontSize: "Tipara grando"
noFollowRequests: "Vi ne havas peto de sekvado"
openImageInNewTab: "Fermi la bildon en nova tablo"
dashboard: "Stirpanelo"
local: "Loka"
remote: "Transa"
total: "Entute"
appearance: "Eksteraĵo"
clientSettings: "Agordoj de kliento"
accountSettings: "Agordoj de konto"
numberOfDays: "Nombro de tagoj"
hideThisNote: "Kaŝi la noton"
objectStorageBaseUrl: "Baza URL"
objectStorageRegion: "Regiono"
objectStorageUseSSL: "Oni uzas SSL"
serverLogs: "Servila protokolo"
deleteAll: "Forviŝi ĉiujn"
newNoteRecived: "Jen estas novaj notoj"
sounds: "Sonoj"
listen: "Aŭdi"
none: "Neniu"
showInPage: "Vidi en paĝo"
popout: "Superigi"
volume: "Laŭteco"
masterVolume: "Baza laŭteco"
chooseEmoji: "Elekti emoĵion"
recentUsed: "Lastatempaj uzitaj"
install: "Instali"
uninstall: "Malinstali"
installedApps: "Instalita programo"
nothing: "Neniu"
installedDate: "Dato de instalado"
lastUsedDate: "Lastfoje uzita je"
state: "Stato"
sort: "Ordigado"
output: "Elmeto"
script: "Skripto"
disablePagesScript: "Malebligi AiScripto en la paĝoj"
deleteAllFiles: "Forviŝi ĉiujn dosierojn"
deleteAllFilesConfirm: "Ĉu vi certas, ke vi volas forviŝi ĉiujn dosierojn?"
userSuspended: "Ĉi tiu uzanto estas flostigita."
userSilenced: "Ĉi tiu uzanto estas mutigita."
menu: "Menuo"
addItem: "Aldoni novaĵon"
rooms: "Ĉambro"
deletedNote: "Forviŝita noto"
invisibleNote: "Malpublika noto"
visibility: "Videbleco"
poll: "Balotujo"
useCw: "Kaŝi enhavo"
enablePlayer: "Vidi videon"
disablePlayer: "Fermi videon"
expandTweet: "Disvolvi pepon"
themeEditor: "Redaktilo de koloraroj"
description: "Priskribo"
describeFile: "Priskribi la bildon"
enterFileDescription: "Priskribu"
author: "Aŭtoro"
manage: "Administro"
plugins: "Kromaĵoj"
deck: "Kartaro"
width: "Larĝeco"
height: "Alteco"
medium: "Meza"
small: "Malgranda"
edit: "Redakti"
emailServer: "Retpoŝta servilo"
email: "Retpoŝto"
emailAddress: "Retpoŝta adreso"
smtpConfig: "Agordoj de SMTP servilo"
smtpHost: "Gastigo"
smtpPort: "Pordo"
smtpUser: "Uzantnomo"
smtpPass: "Pasvorto"
wordMute: "Silentigi specifajn vortojn"
userSaysSomething: "{name} parolis ion"
makeActive: "Aktivigi"
display: "Vidi"
copy: "Kopii"
overview: "Resumo"
database: "Datumbazo"
channel: "Kanalo"
create: "Krei"
notificationSetting: "Agordoj de sciigoj"
useGlobalSetting: "Oni uzas malloka agordo"
fileIdOrUrl: "Dosiera identigilo aŭ URL"
sample: "Ekzemplo"
abuseReports: "Signaloj"
reportAbuse: "Signalo"
reportAbuseOf: "Signali kontraŭ {name}'(o)"
send: "Sendi"
openInNewTab: "Malfermi en nova langeto"
editTheseSettingsMayBreakAccount: "Redakti ĉi tiujn agordojn povas damaĝi vian konton."
instanceTicker: "Informoj pri la nodo kiu dissendas la noton"
random: "Hazarde"
system: "Sistemo"
desktop: "Labortablo"
createNew: "Krei novan"
optional: "Opciaj"
public: "Publika"
i18nInfo: "Misskey estas tradukata en diversaj lingvoj far volontuloj. Oni povas kontribui por la tradukado ĉe {link}."
accountInfo: "Kontaj Informoj"
notesCount: "La nombro de notoj"
repliesCount: "La nombro de respondoj senditaj"
renotesCount: "La nombro de notoj kiujn la uzanto plusendis"
repliedCount: "La nombro de respondoj ricevitaj"
renotedCount: "La nombro de uzantulaj notoj plusenditaj"
followingCount: "La nombro de sekvatoj"
followersCount: "La nombro de sekvantoj"
sentReactionsCount: "La nombro de la reagoj senditaj"
receivedReactionsCount: "La nombro de la reagoj ricevitaj"
yes: "Jes"
no: "Ne"
driveFilesCount: "La nombro de la dosieroj ĉe la disko"
notSet: "Ne elektita"
emailVerified: "Via retpoŝto estis kontrolita."
noteFavoritesCount: "La nombro de notoj preferataj"
pageLikesCount: "La nombro de paĝoj kiun la uzanto preferas"
pageLikedCount: "La nombro de uzantoj, kiuj preferas paĝon de ĉi tiu uzanto"
contact: "Kontakto"
makeExplorable: "Videbligi konton sur la paĝo \"Esplori\""
duplicate: "Duobligi"
left: "Maldekstra"
center: "Centra"
showTitlebar: "Videbligi titolan stangon"
clearCache: "Malplenigi staplon"
onlineUsersCount: "{n} uzanto(j) estas surlinea"
nUsers: "{n} uzanto(j)"
nNotes: "{n} notoj"
myTheme: "Miaj koloraroj"
backgroundColor: "Fona koloro"
textColor: "Teksto"
saveAs: "Konservi kiel…"
value: "Valoro"
createdAt: "Kreita je"
updatedAt: "Laste ĝisdatigita"
deleteConfirm: "Ĉu certas forviŝi?"
closeAccount: "Forigi konton"
currentVersion: "Nuna versio"
latestVersion: "Plej nova versio"
youAreRunningUpToDateClient: "Vi uzas la plej novan version de via kliento."
newVersionOfClientAvailable: "Nova versio de via kliento estas disponebla."
inUse: "Uzata"
editCode: "Redakti kodon"
emailNotification: "Sciigoj per retpoŝto"
inChannelSearch: "Serĉi en kanalo"
useReactionPickerForContextMenu: "Malfermi reago-elektilon per dekstro-klaki"
typingUsers: "{users} nun entajpas…"
clear: "Vakigi"
goBack: "Reiri antaŭ"
addDescription: "Priskribi"
info: "Informoj"
userInfo: "Informoj de uzanto"
unknown: "Nekonata"
online: "Surkonektita"
offline: "Forkonektita"
instanceBlocking: "Bloki specifajn nodojn"
selectAccount: "Elekti konton"
user: "Uzantoj"
administration: "Administro"
accounts: "Kontoj"
shareWithNote: "Kundividi en noto"
ads: "Reklamaĵo"
memo: "Memorigilo"
high: "Alta"
middle: "Meza"
low: "Malalta"
customCss: "Uzantula CSS"
global: "Malloka"
sent: "Sendi"
received: "Ricevita"
searchResult: "Serĉorezultoj"
hashtags: "Kradvorto"
troubleshooting: "Problemsolvi"
learnMore: "Lernu pli"
translate: "Traduki"
translatedFrom: "Tradukita el {x}"
controllPanel: "Ŝaltpodio"
_docs:
continueReading: "Legi plu"
features: "Funkcioj"
admin: "Administro"
_ad:
back: "Nuligi"
_gallery:
liked: "Ŝatitaj notoj"
like: "Ŝati"
_email:
_follow:
title: "Vi estas eksekvita"
_receiveFollowRequest:
title: "Vi ricevis peton de sekvado"
_plugin:
install: "Instali kromaĵon"
manage: "Administri kromaĵojn"
_registry:
key: "Ŝlosilo"
keys: "Ŝlosiloj"
domain: "Nomregno"
createKey: "Krei ŝlosilon"
_aboutMisskey:
about: "Misskey estas malfermitkoda programo evoluigata de syuilo ekde la 2014."
contributors: "Precipaj kontribuantoj"
allContributors: "Ĉiuj kontribuantoj"
source: "Fontkodo"
translation: "Traduki Misskey'on"
patrons: "Mecenatoj"
_mfm:
dummy: "Misskey evoluigas la mondon de Fediverso"
mention: "Mencioj"
hashtag: "Kradvorto"
url: "URL"
link: "Ligilo"
bold: "Grasa"
small: "Malgrande"
center: "Centrigi"
inlineCode: "Kodo (en linio)"
blockCode: "Kodo (bloko)"
inlineMath: "Formulo (en linio)"
blockMath: "Formulo (bloko)"
quote: "Citi"
emoji: "Personecigitaj emoĵioj"
search: "Serĉi"
flip: "Inversa"
x2: "Granda"
x3: "Grandega"
x4: "Pli grandega"
font: "Presliteraro"
_reversi:
total: "Entute"
_instanceTicker:
none: "Ne montri"
remote: "Montri al transaj uzantoj"
always: "Ĉiam montri"
_channel:
create: "Krei kanalon"
edit: "Redakti kanalon"
setBanner: "Apliki standardan bildon"
removeBanner: "Forviŝi la standardan bildon"
owned: "Posedaĵo"
following: "Sekvante"
usersCount: "{n} partoprenanto(j)"
_menuDisplay:
top: "Supro"
hide: "Kaŝi"
_wordMute:
muteWords: "Silentigitaj vortoj"
soft: "En kliento"
hard: "En servilo"
mutedNotes: "Silentigitaj notoj"
_theme:
manage: "Administri kolorarojn"
code: "Kolorara kodo"
description: "Priskribo"
color: "Koloro"
darken: "Malbrileco"
lighten: "Brileco"
keys:
bg: "Fono"
navBg: "Fono de flanka stango"
link: "Ligilo"
hashtag: "Kradvorto"
mention: "Mencioj"
mentionMe: "Mencio al vi"
renote: "Noto plusendita"
buttonBg: "Fono de butono"
driveFolderBg: "Fono de dosierujo de la disko"
messageBg: "Fono de retbabilejo"
_sfx:
note: "Nova noto"
noteMy: "Mia noto"
notification: "Sciigoj"
chat: "Retbabili"
chatBg: "Retbabili (BG)"
antenna: "Ricevo de anteno"
channel: "Sciigoj de kanalo"
_ago:
future: "Futuro"
justNow: "Ĵus"
secondsAgo: "Antaŭ {n} sekundo(j)"
minutesAgo: "Antaŭ {n} minutoj"
hoursAgo: "Antaŭ {n} horo(j)"
daysAgo: "Antaŭ {n} tagoj"
weeksAgo: "Antaŭ {n} semajnoj"
monthsAgo: "Antaŭ {n} monatoj"
yearsAgo: "Antaŭ {n} jaroj"
_time:
second: "sek"
minute: "min"
hour: "hor"
day: "Tago"
_tutorial:
title: "Uzado de Misskey"
step1_1: "Bonvenon."
step7_2: "Se vi volas scii pli pri Misskey, rigardu la fakon {help}."
step7_3: "Do, bonvolu amuziĝi Misskey'on🚀"
_2fa:
registerKey: "Nove registri ŝlosilon"
_permissions:
"read:account": "Legado de la informoj pri via konto"
"write:account": "Redatado de la informoj de via konto"
"read:blocks": "Vidi vian liston de uzantoj blokitaj"
"write:blocks": "Redakti vian liston de blokitoj"
"read:drive": "Legi vian diskon"
"write:drive": "Ĉia operacio por skribi, forviŝi, aŭ alimaniere ŝanĝi la informon de dosiero en via disko de Misskey"
"read:favorites": "Vidi vian liston de preferaĵoj"
"write:favorites": "Redakti vian liston de preferaĵoj"
"read:following": "Vidi la infomaciojn pri tio, kion vi sekvas"
"write:following": "Sekvi aŭ malsekvi alian uzanton"
"read:messaging": "Vidi vian retbabiladon"
"write:messaging": "Retbabilejo"
"read:mutes": "Vidi vian liston de silentigitoj"
"write:mutes": "Redakti vian liston de silentigitoj"
"write:notes": "Krei / Forviŝi noton"
"read:notifications": "Vidi sciigojn"
"write:notifications": "Manipulado por viaj sciigoj"
"read:reactions": "Vidi reagojn"
"write:reactions": "Redakti viajn reagojn"
"read:page-likes": "Vidi ŝatojn de paĝo"
"read:channels": "Vidi kanalojn"
_antennaSources:
all: "Ĉiuj notoj"
homeTimeline: "Notoj far uzantoj kiujn vi sekvas"
_weekday:
sunday: "Dimanĉo"
monday: "Lundo"
tuesday: "Mardo"
wednesday: "Merkredo"
thursday: "Ĵaŭdo"
friday: "Vendredo"
saturday: "Sabato"
_widgets:
notifications: "Sciigoj"
timeline: "Templinio"
clock: "Horloĝo"
activity: "Aktiveco"
federation: "Kunfederaĵo"
slideshow: "Bildoprezento"
button: "Butono"
onlineUsers: "Surkonektita uzanto"
aichan: "Ai"
_cw:
show: "Vidu pli"
files: "{count} dosiero(j)"
_poll:
choiceN: "Balotilo {n}"
noMore: "Oni ne povas aldoni pli."
infinite: "Neniam"
deadlineTime: "hor"
votesCount: "{n} balotiloj"
vote: "Baloti"
closed: "Oni jam balotis ĝin"
_visibility:
public: "Publika"
publicDescription: "Via noto estos videbla de ĉiuj uzantoj"
home: "Hejma"
homeDescription: "Dissendi nur sur hejma templinio"
followers: "Nur al sekvantoj"
followersDescription: "Publiki nur al viaj sekvantoj"
specified: "Rekte"
specifiedDescription: "Montri nur al specifaj uzantoj"
localOnly: "Nur loka"
localOnlyDescription: "Ne montri al transaj uzantoj"
_postForm:
replyPlaceholder: "Respondi la noton…"
quotePlaceholder: "Citi la noton…"
channelPlaceholder: "Mencii en kanalo…"
_profile:
name: "Nomo"
username: "Uzantnomo"
description: "Sinprezento"
metadata: "Kromaj informoj"
metadataEdit: "Redakti kromaj informoj"
changeAvatar: "Ŝanĝi profilbildon"
changeBanner: "Ŝanĝi standardon"
_exportOrImport:
allNotes: "Ĉiuj notoj"
followingList: "Sekvataj uzantoj"
muteList: "Silentigoj"
blockingList: "Blokitoj"
userLists: "Listoj"
_charts:
federationInstancesTotal: "La totala nombro de nodoj kunfederantaj"
usersTotal: "La totala nombro de la uzantoj"
activeUsers: "La nombro de la uzantoj aktivaj"
notesTotal: "La totala nombro de notoj"
filesTotal: "La totala nombro de la dosieroj"
_timelines:
home: "Hejma"
local: "Loka"
social: "Sociala"
global: "Malloka"
_rooms:
translate: "Movi"
chooseImage: "Elekti bildon"
_furnitures:
bed: "Lito"
low-table: "Malaltotablo"
desk: "Skribotablo"
chair: "Seĝo"
chair2: "Seĝo 2"
pc: "Komputilo"
eraser: "Skrapileto"
pencil: "Krajono"
pudding: "Flaŭno"
book: "Libro"
book2: "Libro 2"
piano: "Piano"
facial-tissue: "Tualetpaperejo"
server: "Servilo"
moon: "Luno"
monitor: "Monitoro"
keyboard: "Klavaro"
doll-ai: "Pupa Ai"
_pages:
newPage: "Krei novan paĝon"
editPage: "Redakti paĝon"
deleted: "Oni forviŝis la paĝon."
editThisPage: "Redakti la paĝon"
viewPage: "Vidi viajn paĝojn"
my: "Miaj paĝoj"
featured: "Ravaĵoj"
contents: "Enhavo"
content: "Paĝo en bloko"
url: "URL de paĝo"
alignCenter: "Centrigi"
chooseBlock: "Aldoni blokon"
contentBlocks: "Enhavo"
blocks:
text: "Teksto"
textarea: "Areo de teksto"
image: "Bildo"
button: "Butono"
_post:
canvasId: "Kanvasa identigilo"
textInput: "Enmeto el teksto"
textareaInput: "Enmeto el teksto en multaj linioj"
numberInput: "Nombra enmeto"
_numberInput:
text: "Titolo"
_canvas:
id: "Kanvasa identigilo"
_note:
id: "Identigilo de noto"
_counter:
text: "Titolo"
_button:
text: "Titolo"
_action:
_pushEvent:
event: "Nomo de la evento"
script:
categories:
text: "Manipulo de teksto"
list: "Listoj"
blocks:
text: "Teksto"
multiLineText: "Teksto (multaj linioj)"
textList: "List de teksto"
_strLen:
arg1: "Teksto"
_strPick:
arg1: "Teksto"
_strReplace:
arg1: "Teksto"
_strReverse:
arg1: "Teksto"
_join:
arg1: "Listoj"
_randomPick:
arg1: "Listoj"
_dailyRandomPick:
arg1: "Listoj"
_seedRandomPick:
arg2: "Listoj"
_DRPWPM:
arg1: "List de teksto"
pick: "Elekti de la listo"
_pick:
arg1: "Listoj"
_listLen:
arg1: "Listoj"
_stringToNumber:
arg1: "Teksto"
_splitStrByLine:
arg1: "Teksto"
_fn:
slots: "Juntoj"
arg1: "Elmeto"
thereIsEmptySlot: "La junto {slot} estas malplena!"
types:
string: "Teksto"
array: "Listoj"
stringArray: "List de teksto"
emptySlot: "Malplena junto"
argVariables: "Eniga junto"
_notification:
fileUploaded: "La dosiero sukcese alŝutiĝis."
youGotMention: "{name} mencis"
youGotReply: "{name} respondis"
youGotQuote: "{name} citis"
youRenoted: "{name} plusendis"
youGotPoll: "{name} balotis"
youGotMessagingMessageFromUser: "{name} sentis mesaĝon al vi."
youGotMessagingMessageFromGroup: "Retbabilan mesaĝon oni sendis al la grupo {name}"
youWereFollowed: "eksekvis vin"
youReceivedFollowRequest: "Vi ricevis peton de sekvado"
yourFollowRequestAccepted: "Via peto de sekvado estis akceptita."
_types:
all: "Ĉio"
follow: "Nova sekvatoj"
mention: "Mencioj"
reply: "Respondoj"
renote: "Notoj plusenditaj"
quote: "Citi"
reaction: "Reagoj"
receiveFollowRequest: "Ricevita peton de sekvado"
followRequestAccepted: "Akceptita peto por sekvado"
_deck:
profile: "Agordaro"
_columns:
notifications: "Sciigoj"
tl: "Templinio"
antenna: "Antenoj"
list: "Listoj"
mentions: "Al vi"
direct: "Rekte"

View File

@ -1,11 +1,13 @@
---
_lang_: "Español"
headlineMisskey: "Red conectada por notas"
introMisskey: "¡Bienvenido/a! Misskey es un servicio de microblogging descentralizado de código abierto.\nEscribe \"notas\" para compartir lo que te ocurre ahora o para contar sobre ti a todos 📡\nCon la función de \"reacciones\", puedes también añadir una reacción rápida a las notas de todos 👍\nExplora un nuevo mundo 🚀"
monthAndDay: "{day}/{month}"
search: "Buscar"
notifications: "Notificaciones"
username: "Nombre de usuario"
password: "Contraseña"
forgotPassword: "Olvidé mi Contraseña"
fetchingAsApObject: "Buscando en el fediverso"
ok: "OK"
gotIt: "Entendido"
@ -126,6 +128,7 @@ editWidgets: "Editar widgets"
editWidgetsExit: "Terminar edición"
customEmojis: "Emojis personalizados"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nombre del emoji"
emojiUrl: "URL de la imágen del emoji"
addEmoji: "Agregar emoji"
@ -137,7 +140,7 @@ flagAsBotDescription: "En caso de que esta cuenta fuera usada por un programa, a
flagAsCat: "Esta cuenta es un gato"
flagAsCatDescription: "En caso de que declare que esta cuenta es de un gato, active esta opción."
autoAcceptFollowed: "Aceptar automáticamente las solicitudes de seguimiento de los usuarios que sigues"
addAcount: "Agregar cuenta"
addAccount: "Agregar Cuenta"
loginFailed: "Error al iniciar sesión."
showOnRemote: "Ver en una instancia remota"
general: "General"
@ -277,6 +280,7 @@ emptyDrive: "El drive está vacío"
emptyFolder: "La carpeta está vacía"
unableToDelete: "No se puede borrar"
inputNewFileName: "Ingrese un nuevo nombre de archivo"
inputNewDescription: "Ingrese nueva descripción"
inputNewFolderName: "Ingrese un nuevo nombre de la carpeta"
circularReferenceFolder: "La carpeta de destino es una sub-carpeta de la carpeta que quieres mover."
hasChildFilesOrFolders: "No se puede borrar esta carpeta. No está vacía."
@ -308,8 +312,8 @@ monthX: "Mes {month}"
yearX: "Año {year}"
pages: "Páginas"
integration: "Integración"
connectSerice: "Conectarse"
disconnectSerice: "Desconectarse"
connectService: "Conectar"
disconnectService: "Desconectar"
enableLocalTimeline: "Habilitar linea de tiempo local"
enableGlobalTimeline: "Habilitar linea de tiempo global"
disablingTimelinesInfo: "Aunque se desactiven estas lineas de tiempo, por conveniencia el administrador y los moderadores pueden seguir usándolos"
@ -323,6 +327,7 @@ driveCapacityPerRemoteAccount: "Capacidad del drive por usuario remoto"
inMb: "En megabytes"
iconUrl: "URL de la imagen del avatar"
bannerUrl: "URL de la imagen del banner"
backgroundImageUrl: "URL de la imagen de fondo"
basicInfo: "Información básica"
pinnedUsers: "Usuarios fijados"
pinnedUsersDescription: "Describir los usuarios que quiere fijar en la página \"Descubrir\" separados por una linea nueva"
@ -348,7 +353,6 @@ antennaExcludeKeywords: "Palabras clave para excluir"
antennaKeywordsDescription: "Separar con espacios es una declaración AND, separar con una linea nueva es una declaración OR"
notifyAntenna: "Notificar nueva nota"
withFileAntenna: "Sólo notas con archivos adjuntados"
serviceworker: "ServiceWorker"
enableServiceworker: "Activar ServiceWorker"
antennaUsersDescription: "Elegir nombres de usuarios separados por una linea nueva"
caseSensitive: "Distinguir mayúsculas de minúsculas"
@ -437,6 +441,7 @@ signinWith: "Inicie sesión con {x}"
signinFailed: "Autenticación fallida. Asegúrate de haber usado el nombre de usuario y contraseña correctos."
tapSecurityKey: "Toque la clave de seguridad"
or: "O"
language: "Idioma"
uiLanguage: "Idioma de visualización de la interfaz"
groupInvited: "Invitado al grupo"
aboutX: "Acerca de {x}"
@ -451,7 +456,7 @@ category: "Categoría"
tags: "Etiqueta"
docSource: "Fuente de este documento"
createAccount: "Crear cuenta"
existingAcount: "Cuentas existentes"
existingAccount: "Cuenta existente"
regenerate: "Regenerar"
fontSize: "Tamaño de la letra"
noFollowRequests: "No hay solicitudes de seguimiento"
@ -524,7 +529,9 @@ removeAllFollowing: "Retener todos los siguientes"
removeAllFollowingDescription: "Cancelar todos los siguientes del servidor {host}. Ejecutar en caso de que esta instancia haya dejado de existir"
userSuspended: "Este usuario ha sido suspendido."
userSilenced: "Este usuario ha sido silenciado."
sidebar: "Barra lateral"
yourAccountSuspendedTitle: "Esta cuenta ha sido suspendida"
yourAccountSuspendedDescription: "Esta cuenta ha sido suspendida debido a violaciones de los términos de servicio del servidor y otras razones. Para más información, póngase en contacto con el administrador. Por favor, no cree una nueva cuenta."
menu: "Menú"
divider: "Divisor"
addItem: "Agregar elemento"
rooms: "Cuartos"
@ -544,6 +551,8 @@ disablePlayer: "Cerrar reproductor"
expandTweet: "Expandir tweet"
themeEditor: "Editor de temas"
description: "Descripción"
describeFile: "Añade una descripción"
enterFileDescription: "Introducir un título"
author: "Autor"
leaveConfirm: "Hay modificaciones sin guardar. ¿Desea descartarlas?"
manage: "Administrar"
@ -566,7 +575,7 @@ pluginTokenRequestedDescription: "Este plugin podrá usar los permisos descritos
notificationType: "Tipo de notificación"
edit: "Editar"
useStarForReactionFallback: "En caso de que los emojis de reacciones no sean claros, usar en su lugar una estrella"
emailConfig: "Configuración del servidor de correos"
emailServer: "Servidor de correo"
enableEmail: "Activar el envío de correos electrónicos"
emailConfigInfo: "Usar en caso de validación de correo electrónico y pedido de contraseña"
email: "Correo"
@ -646,14 +655,96 @@ driveFilesCount: "Cantidad de archivos en el drive"
driveUsage: "Uso del drive"
noCrawle: "Rechazar indexación del crawler"
noCrawleDescription: "Pedir a los motores de búsqueda que no indexen tu perfil, notas, páginas, etc."
lockedAccountInfo: "A menos que configures la visibilidad de tus notas como \"Sólo seguidores\", tus notas serán visibles para cualquiera, incluso si requieres que los seguidores sean aprobados manualmente."
alwaysMarkSensitive: "Marcar los medios de comunicación como contenido sensible por defecto"
loadRawImages: "Cargar las imágenes originales en lugar de mostrar las miniaturas"
disableShowingAnimatedImages: "No reproducir imágenes animadas"
verificationEmailSent: "Se le ha enviado un correo electrónico de confirmación. Por favor, acceda al enlace proporcionado en el correo electrónico para completar la configuración."
notSet: "Sin especificar"
emailVerified: "Su dirección de correo electrónico ha sido verificada."
noteFavoritesCount: "Número de notas favoritas"
pageLikesCount: "Número de favoritos en la página"
pageLikedCount: "Número de favoritos de su página"
reversiCount: "Numero de partidas Reversi"
contact: "Contacto"
useSystemFont: "Utilizar la tipografía por defecto del sistema"
clips: "Clip"
experimentalFeatures: "Características experimentales"
developer: "Desarrolladores"
makeExplorable: "Hacer visible la cuenta en \"Explorar\""
makeExplorableDescription: "Si desactiva esta opción, su cuenta no aparecerá en la sección \"Explorar\"."
showGapBetweenNotesInTimeline: "Mostrar un intervalo entre notas en la línea de tiempo"
duplicate: "Duplicar"
left: "Izquierda"
center: "Centrar"
wide: "Ancho"
narrow: "Estrecho"
reloadToApplySetting: "Esta configuración sólo se aplicará después de recargar la página. ¿Recargar ahora?"
showTitlebar: "Mostrar la barra de título"
clearCache: "Limpiar caché"
onlineUsersCount: "{n} usuarios en línea"
nUsers: "{n} Usuarios"
nNotes: "{n} Notas"
sendErrorReports: "Envíar informe de errores"
sendErrorReportsDescription: "Si habilita esta opción, ayudará a mejorar la calidad de Misskey compartiendo información detallada sobre los errores cuando se produzca un problema.\nEsto incluye información como la versión de su sistema operativo, el tipo de navegador que utiliza, su historial de actividad, etc."
myTheme: "Mi Tema"
backgroundColor: "Fondo"
accentColor: "Acento"
textColor: "Texto"
saveAs: "Guardar como…"
advanced: "Avanzado"
value: "Valores"
createdAt: "Fecha de creación"
updatedAt: "Actualizado"
saveConfirm: "¿Guardar cambios?"
deleteConfirm: "¿Desea eliminarlo?"
invalidValue: "Este no es un valor válido."
registry: "Registro"
closeAccount: "Cerrar cuenta"
currentVersion: "Versión actual"
latestVersion: "Última versión"
youAreRunningUpToDateClient: "Está utilizando la versión más reciente de su cliente."
newVersionOfClientAvailable: "Hay una versión más nueva de su cliente disponible."
usageAmount: "Uso"
capacity: "Capacidad"
inUse: "Usado"
editCode: "Editar código"
goBack: "Deseleccionar"
info: "Información"
user: "Usuarios"
administration: "Administrar"
expiration: "Termina el"
middle: "Mediano"
customCssWarn: "Este ajuste sólo debe utilizarse si se sabe lo que hace. Introducir valores inadecuados puede hacer que el cliente deje de funcionar con normalidad."
global: "Global"
squareAvatars: "Mostrar iconos cuadrados"
sent: "Enviar"
received: "Recibido"
searchResult: "Resultados de búsqueda"
hashtags: "Hashtag"
troubleshooting: "Solución de problemas"
useBlurEffect: "Utilizar efecto de desenfoque en la interfaz de usuario"
learnMore: "Ver más"
misskeyUpdated: "¡Misskey ha sido actualizado!"
whatIsNew: "Mostrar cambios"
translate: "Traducir"
translatedFrom: "Traducido de {x}"
accountDeletionInProgress: "La eliminación de la cuenta está en curso"
usernameInfo: "Un nombre que identifique su cuenta de otras en este servidor. Puede utilizar el alfabeto (a~z, A~Z), dígitos (0~9) o guiones bajos (_). Los nombres de usuario no se pueden cambiar posteriormente."
aiChanMode: "Modo Ai"
keepCw: "Mantener la advertencia de contenido"
pubSub: "Cuentas Pub/Sub"
lastCommunication: "Última comunicación"
resolved: "Resuelto"
unresolved: "Sin resolver"
_accountDelete:
accountDelete: "Eliminar Cuenta"
_docs:
admin: "Administrar"
_ad:
back: "Deseleccionar"
_gallery:
unlike: "Quitar me gusta"
_email:
_follow:
title: "te ha seguido"
@ -729,9 +820,7 @@ _channel:
following: "Siguiendo"
usersCount: "{n} participantes"
notesCount: "{n} notas"
_sidebar:
full: "Completo"
icon: "Avatar"
_menuDisplay:
hide: "Ocultar"
_wordMute:
muteWords: "Palabras que silenciar"

View File

@ -7,6 +7,7 @@ search: "Rechercher"
notifications: "Notifications"
username: "Nom dutilisateur·rice"
password: "Mot de passe"
forgotPassword: "Mot de passe oublié"
fetchingAsApObject: "Récupération depuis le fédiverse …"
ok: "OK"
gotIt: "Jai compris !"
@ -80,6 +81,8 @@ somethingHappened: "Une erreur est survenue"
retry: "Réessayer"
pageLoadError: "Le chargement de la page a échoué"
pageLoadErrorDescription: "Cela est généralement causé par le cache du navigateur ou par un problème réseau. Veuillez vider votre cache ou attendre un peu et réessayer."
serverIsDead: "Le serveur ne répond pas. Patientez quelques instants puis essayez à nouveau."
youShouldUpgradeClient: "Si la page ne s'affiche pas correctement, rechargez-la pour mettre votre client à jour."
enterListName: "Nom de la liste"
privacy: "Confidentialité"
makeFollowManuallyApprove: "Accepter manuellement les demandes dabonnement"
@ -90,11 +93,11 @@ followRequests: "Demandes dabonnement"
unfollow: "Se désabonner"
followRequestPending: "Demande d'abonnement en attente de confirmation"
enterEmoji: "Insérer un émoji"
renote: "Partager"
unrenote: "Annuler le partage"
renoted: "Republié !"
cantRenote: "Ce message ne peut pas être republié."
cantReRenote: "Impossible de repartager un partage."
renote: "Renoter"
unrenote: "Annuler la Renote"
renoted: "Renoté !"
cantRenote: "Ce message ne peut pas être renoté."
cantReRenote: "Impossible de renoter une Renote."
quote: "Citer"
pinnedNote: "Note épinglée"
pinned: "Épingler sur le profil"
@ -127,6 +130,7 @@ editWidgets: "Modifier les widgets"
editWidgetsExit: "Valider les modifications"
customEmojis: "Émojis personnalisés"
emoji: "Émoji"
emojis: "Émoji"
emojiName: "Nom de lémoji"
emojiUrl: "URL de lémoji"
addEmoji: "Ajouter un émoji"
@ -134,11 +138,11 @@ settingGuide: "Configuration proposée"
cacheRemoteFiles: "Mise en cache des fichiers distants"
cacheRemoteFilesDescription: "Lorsque cette option est désactivée, les fichiers distants sont chargés directement depuis linstance distante. La désactiver diminuera certes lutilisation de lespace de stockage local mais augmentera le trafic réseau puisque les miniatures ne seront plus générées."
flagAsBot: "Ce compte est un robot"
flagAsBotDescription: "Si ce compte est géré de manière automatisée , définissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot."
flagAsBotDescription: "Si ce compte est géré de manière automatisée, choisissez cette option. Si elle est activée, elle agira comme un marqueur pour les autres développeurs afin d'éviter des chaînes d'interaction sans fin avec d'autres robots et d'ajuster les systèmes internes de Misskey pour traiter ce compte comme un robot."
flagAsCat: "Ce compte est un chat"
flagAsCatDescription: "Activer l'option \" Je suis un chat \" pour ce compte."
autoAcceptFollowed: "Accepter automatiquement les demandes dabonnement venant dutilisateur·rice·s que vous suivez"
addAcount: "Ajouter un compte"
addAccount: "Ajouter un compte"
loginFailed: "Échec de la connexion"
showOnRemote: "Voir sur linstance distante"
general: "Général"
@ -278,6 +282,7 @@ emptyDrive: "Le Drive est vide"
emptyFolder: "Le dossier est vide"
unableToDelete: "Suppression impossible"
inputNewFileName: "Entrez un nouveau nom de fichier"
inputNewDescription: "Veuillez entrer une nouvelle description"
inputNewFolderName: "Entrez un nouveau nom de dossier"
circularReferenceFolder: "Le dossier de destination est un sous-dossier du dossier que vous souhaitez déplacer."
hasChildFilesOrFolders: "Impossible de supprimer ce dossier car il n'est pas vide."
@ -309,8 +314,8 @@ monthX: "{month}"
yearX: "{year}"
pages: "Pages"
integration: "Intégrations"
connectSerice: "Connecter"
disconnectSerice: "Déconnecter"
connectService: "Connexion"
disconnectService: "Déconnexion"
enableLocalTimeline: "Activer le fil local"
enableGlobalTimeline: "Activer le fil global"
disablingTimelinesInfo: "Même si vous désactivez ces fils, les administrateur·rice·s et les modérateur·rice·s pourront toujours y accéder."
@ -324,6 +329,7 @@ driveCapacityPerRemoteAccount: "Volume du Drive par utilisateur distant"
inMb: "en mégaoctets"
iconUrl: "URL de l'icône"
bannerUrl: "URL de limage de la bannière"
backgroundImageUrl: "URL de l'image d'arrière-plan"
basicInfo: "Informations basiques"
pinnedUsers: "Utilisateur·rice épinglé·e"
pinnedUsersDescription: "Listez les utilisateur·rice·s que vous souhaitez voir épinglé·e·s sur la page \"Découvrir\", un·e par ligne."
@ -349,7 +355,6 @@ antennaExcludeKeywords: "Mots clés à exclure"
antennaKeywordsDescription: "Séparer avec des espaces pour la condition AND. Séparer avec un saut de ligne pour une condition OR."
notifyAntenna: "Je souhaite recevoir les notifications des nouvelles notes"
withFileAntenna: "Notes ayant des attachements uniquement"
serviceworker: "ServiceWorker"
enableServiceworker: "Activer ServiceWorker"
antennaUsersDescription: "Saisissez un seul nom dutilisateur·rice par ligne"
caseSensitive: "Sensible à la casse"
@ -360,7 +365,7 @@ withFiles: "Avec fichiers joints"
silence: "Mettre en sourdine"
silenceConfirm: "Êtes-vous sûr·e de vouloir mettre lutilisateur·rice en sourdine ?"
unsilence: "Annuler la sourdine"
unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cette utilisateur·rice ?"
unsilenceConfirm: "Êtes-vous sûr·e de vouloir annuler la mise en sourdine de cet·te utilisateur·rice ?"
popularUsers: "Utilisateur·rice·s populaires"
recentlyUpdatedUsers: "Utilisateur·rice·s actif·ve·s récemment"
recentlyRegisteredUsers: "Utilisateur·rice·s récemment inscrit·e·s"
@ -374,7 +379,7 @@ aboutMisskey: "À propos de Misskey"
administrator: "Administrateur"
token: "Jeton"
twoStepAuthentication: "Authentification à deux facteurs"
moderator: "Modérateurs"
moderator: "Modérateur·rice·s"
nUsersMentioned: "{n} utilisateur·rice·s mentionné·e·s"
securityKey: "Clé de sécurité"
securityKeyName: "Nom de la clé"
@ -426,7 +431,7 @@ invitationCode: "Code dinvitation"
checking: "Vérification en cours..."
available: "Disponible"
unavailable: "Non disponible"
usernameInvalidFormat: "Le nom d'utilisateur peut contenir uniquement des lettres, des chiffres et des _"
usernameInvalidFormat: "Le nom d'utilisateur peut contenir uniquement des lettres (minuscules et/ou majuscules), des chiffres et des _"
tooShort: "Trop court"
tooLong: "Trop long"
weakPassword: "Mot de passe faible"
@ -453,7 +458,7 @@ category: "Catégorie"
tags: "Étiquettes"
docSource: "Source de ce document"
createAccount: "Créer un compte"
existingAcount: "Comptes existants"
existingAccount: "Compte existant"
regenerate: "Générer à nouveau"
fontSize: "Taille de la police"
noFollowRequests: "Vous navez aucune demande dabonnement en attente"
@ -487,12 +492,12 @@ objectStorageRegionDesc: "Spécifiez une région comme 'xx-east-1'. Si votre ser
objectStorageUseSSL: "Utiliser SSL"
objectStorageUseSSLDesc: "Désactivez cette option si vous n'utilisez pas HTTPS pour la connexion API"
objectStorageUseProxy: "Se connecter via proxy"
objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas Proxy pour la connexion API"
objectStorageUseProxyDesc: "Désactivez cette option si vous n'utilisez pas de proxy pour la connexion API"
objectStorageSetPublicRead: "Régler sur « public » lors de l'envoi"
serverLogs: "Journal du serveur"
deleteAll: "Supprimer tout"
showFixedPostForm: "Afficher le formulaire de publication en haut du fil d'actualité"
newNoteRecived: "Vous avez reçu une nouvelle note"
newNoteRecived: "Voir les nouvelles notes"
sounds: "Sons"
listen: "Écouter"
none: "Rien"
@ -526,7 +531,9 @@ removeAllFollowing: "Retenir tous les abonnements"
removeAllFollowingDescription: "Se désabonner de tous les comptes de {host}. Veuillez lancer cette action uniquement si linstance nexiste plus."
userSuspended: "Cet·te utilisateur·rice a été suspendu·e."
userSilenced: "Cette utilisateur·trice a été mis·e en sourdine."
sidebar: "Barre latérale"
yourAccountSuspendedTitle: "Ce compte est suspendu"
yourAccountSuspendedDescription: "Ce compte est suspendu car vous avez enfreint les conditions d'utilisation de l'instance, ou pour un motif similaire. Si vous souhaitez connaître en détail les raisons de cette suspension, renseignez-vous auprès de l'administrateur·rice de votre instance. Merci de ne pas créer de nouveau compte."
menu: "Menu"
divider: "Séparateur"
addItem: "Ajouter un élément"
rooms: "Chambre"
@ -541,11 +548,13 @@ enableInfiniteScroll: "Activer le défilement infini"
visibility: "Visibilité"
poll: "Sondage"
useCw: "Masquer le contenu"
enablePlayer: "Activer le lecteur vidéo"
disablePlayer: "Désactiver le lecteur vidéo"
enablePlayer: "Ouvrir dans le lecteur vidéo"
disablePlayer: "Fermer le lecteur vidéo"
expandTweet: "Étendre le tweet"
themeEditor: "Éditeur de thèmes"
description: "Description"
describeFile: "Ajouter une description d'image"
enterFileDescription: "Saisissez une description"
author: "Auteur·rice"
leaveConfirm: "Vous avez des modifications non-sauvegardées. Voulez-vous les ignorer ?"
manage: "Gestion"
@ -568,7 +577,7 @@ pluginTokenRequestedDescription: "Ce plugin pourra utiliser les autorisations d
notificationType: "Type de notifications"
edit: "Editer"
useStarForReactionFallback: "Utiliser ★ comme alternative si lémoji de réaction est inconnu"
emailConfig: "Configuration du serveur email"
emailServer: "Serveur mail"
enableEmail: "Activer la distribution de courriel"
emailConfigInfo: "Utilisé pour confirmer votre adresse de courriel et la réinitialisation de votre mot de passe en cas doubli."
email: "E-mail "
@ -601,12 +610,13 @@ useGlobalSettingDesc: "S'il est activé, les paramètres de notification de votr
other: "Autre"
regenerateLoginToken: "Régénérer le jeton de connexion"
regenerateLoginTokenDescription: "Générer un nouveau jeton d'authentification. Cette opération ne devrait pas être nécessaire ; lors de la génération d'un nouveau jeton, tous les appareils seront déconnectés. "
setMultipleBySeparatingWithSpace: "Vous pouvez définir plus dun, séparés par des espaces."
setMultipleBySeparatingWithSpace: "Vous pouvez en définir plusieurs, en les séparant par des espaces."
fileIdOrUrl: "ID du fichier ou URL"
chatOpenBehavior: "Comportement de la fenêtre de discussion lors de son ouverture"
behavior: "Comportement"
sample: "Exemple"
abuseReports: "Signalements"
reportAbuse: "Signalements"
reportAbuse: "Signaler"
reportAbuseOf: "Signaler {name}"
fillAbuseReportDescription: "Veuillez expliquer les raisons du signalement. S'il s'agit d'une note précise, veuillez en donner le lien."
abuseReported: "Le rapport est envoyé. Merci."
@ -632,9 +642,9 @@ manageAccessTokens: "Gérer les jetons d'accès"
accountInfo: " Informations du compte "
notesCount: "Nombre de notes"
repliesCount: "Nombre de réponses envoyées"
renotesCount: "Nombre de notes repartagées"
renotesCount: "Nombre de notes que vous avez renotées"
repliedCount: "Nombre de réponses reçues"
renotedCount: "Nombre de Renotes"
renotedCount: "Nombre de vos notes renotées"
followingCount: "Nombre de comptes suivis"
followersCount: "Nombre d'abonnés"
sentReactionsCount: "Nombre de réactions envoyées"
@ -678,7 +688,7 @@ onlineUsersCount: "{n} utilisateur(s) en ligne"
nUsers: "{n} utilisateur·rice·s"
nNotes: "{n} Notes"
sendErrorReports: "Envoyer les rapports derreur"
sendErrorReportsDescription: "Lorsqu'il est activé, des informations détaillées sur les erreurs sont partagées avec Misskey lorsqu'un problème survient, ce qui contribue à améliorer la qualité de Misskey."
sendErrorReportsDescription: "Si vous activez l'envoi des rapports d'erreur, vous contribuerez à améliorer la qualité de Misskey grâce au partage d'informations détaillées sur les erreurs lorsqu'un problème survient.\nCela inclut des informations telles que la version de votre système d'exploitation, le type de navigateur que vous utilisez, votre historique d'activité, etc."
myTheme: "Mes thèmes"
backgroundColor: "Arrière-plan"
accentColor: "Accentuation"
@ -704,6 +714,7 @@ editCode: "Modifier le code"
apply: "Appliquer"
receiveAnnouncementFromInstance: "Recevoir les messages d'information de l'instance"
emailNotification: "Notifications par mail"
publish: "Public"
inChannelSearch: "Chercher dans le canal"
useReactionPickerForContextMenu: "Clic-droit pour ouvrir le panneau de réactions"
typingUsers: "{users} est en train d'écrire"
@ -722,10 +733,100 @@ info: "Informations"
userInfo: "Informations sur l'utilisateur"
unknown: "Inconnu"
onlineStatus: "Statut"
hideOnlineStatus: "Toujours apparaître hors ligne"
hideOnlineStatusDescription: "Forcer votre statut à toujours apparaître hors ligne peut diminuer les performances de certaines fonctionnalités, telles que la Recherche."
hideOnlineStatus: "Se rendre invisible"
hideOnlineStatusDescription: "Rendre votre statut invisible peut diminuer les performances de certaines fonctionnalités, telles que la Recherche."
online: "En ligne"
active: "Actif·ve"
offline: "Hors ligne"
notRecommended: "Déconseillé"
botProtection: "Protection contre les bots"
instanceBlocking: "Instances bloquées"
selectAccount: "Sélectionner un compte"
enabled: "Activé"
disabled: "Désactivé"
quickAction: "Actions rapides"
user: "Utilisateur·rice·s"
administration: "Gestion"
accounts: "Comptes"
switch: "Remplacer"
noMaintainerInformationWarning: "Informations administrateur non configurées."
noBotProtectionWarning: "La protection contre les bots n'est pas configurée."
configure: "Configurer"
postToGallery: "Publier dans la galerie"
gallery: "Galerie"
recentPosts: "Les plus récentes"
popularPosts: "Les plus consultées"
shareWithNote: "Partager dans une note"
ads: "Publicité"
expiration: "Échéance"
memo: "Pense-bête"
priority: "Priorité"
high: "Haute"
middle: "Moyen"
low: "Basse"
emailNotConfiguredWarning: "Vous n'avez pas configuré d'adresse e-mail."
ratio: "Ratio"
previewNoteText: "Voir l'aperçu"
customCss: "CSS personnalisé"
customCssWarn: "Utilisez cette fonctionnalité uniquement si vous savez exactement ce que vous faites. Une configuration inadaptée peut empêcher le client de s'exécuter normalement."
global: "Global"
squareAvatars: "Avatars carrés"
sent: "Envoyer"
received: "Reçu"
searchResult: "Résultats de la recherche"
hashtags: "Hashtags"
troubleshooting: "Résolution de problèmes"
useBlurEffect: "Utiliser des effets de flou dans l'interface"
learnMore: "Plus d'informations"
misskeyUpdated: "Misskey a été mis à jour !"
whatIsNew: "Voir les derniers changements"
translate: "Traduire"
translatedFrom: "Traduit depuis {x}"
accountDeletionInProgress: "La suppression de votre compte est en cours"
usernameInfo: "C'est un nom qui identifie votre compte sur l'instance de manière unique. Vous pouvez utiliser des lettres de l'alphabet (minuscules et majuscules), des chiffres (de 0 à 9), ou bien le tiret « _ ». Vous ne pourrez pas modifier votre nom d'utilisateur·rice par la suite."
aiChanMode: "Mode Ai"
keepCw: "Garder le CW"
pubSub: "Comptes Pub/Sub"
lastCommunication: "Dernière communication"
resolved: "Résolu"
unresolved: "En attente"
itsOn: "Activé"
itsOff: "Désactivé"
emailRequiredForSignup: "Une adresse e-mail est nécessaire pour créer un compte"
unread: "Non lu"
filter: "Filtre"
controllPanel: "Panneau de contrôle"
manageAccounts: "Gérer les comptes"
_signup:
almostThere: "Bientôt fini"
emailAddressInfo: "Insérez votre adresse e-mail."
emailSent: "Un courriel de confirmation vient d'être envoyé à l'adresse que vous avez renseignée ({email}). Cliquez sur le lien contenu dans le message pour terminer la création de votre compte."
_accountDelete:
accountDelete: "Supprimer le compte"
mayTakeTime: "La suppression de compte nécessitant beaucoup de ressources, l'exécution du processus peut prendre du temps, en fonction de la quantité de contenus que vous avez créés et du nombre de fichiers que vous avez téléversés."
sendEmail: "Une fois la suppression de votre compte effectuée, un courriel sera envoyé à l'adresse que vous aviez enregistrée."
requestAccountDelete: "Demander la suppression de votre compte"
started: "La procédure de suppression a commencé."
inProgress: "Suppression en cours"
_docs:
continueReading: "Lire plus"
features: "Fonctionnalités"
generalTopics: "Sujets généraux"
advancedTopics: "Sujets avancés"
admin: "Gestion"
translateWarn: "Ceci est une traduction dont le contenu peut différer du texte original."
_ad:
back: "Retour"
reduceFrequencyOfThisAd: "Voir cette publicité moins souvent"
_forgotPassword:
enterEmail: "Entrez ici l'adresse e-mail que vous avez enregistrée pour votre compte. Un lien vous permettant de réinitialiser votre mot de passe sera envoyé à cette adresse."
ifNoEmail: "Si vous n'avez pas enregistré d'adresse e-mail, merci de contacter l'administrateur·rice de votre instance."
contactAdmin: "Cette instance ne permettant pas l'utilisation d'adresses e-mail, prenez contact avec l'administrateur·rice pour procéder à la réinitialisation de votre mot de passe."
_gallery:
my: "Mes publications"
liked: " Publications que j'ai aimées"
like: "J'aime"
unlike: "Je naime pas"
_email:
_follow:
title: "Vous suit"
@ -736,6 +837,7 @@ _plugin:
installWarn: "Ninstallez que des extensions provenant de sources de confiance."
manage: "Gestion des plugins"
_registry:
scope: "Portée"
key: "Clé "
keys: "Clé "
domain: "Domaine"
@ -769,18 +871,38 @@ _mfm:
boldDescription: "Il est possible de mettre le texte en exergue en le mettant en gras."
small: "Diminuer l'emphase"
smallDescription: "Le contenu peut être affiché en petit et fin."
center: "Centrée"
center: "Centrer"
centerDescription: "Le contenu peut être centré"
inlineCode: "Code (inline)"
inlineCodeDescription: "Coloration syntaxique des lignes de code."
blockCode: "Bloc de code"
blockCodeDescription: "Coloration syntaxique des lignes de code pour les blocs multi-lignes."
inlineMath: "Formule mathématique (inline)"
inlineMathDescription: "Afficher les formules mathématiques (KaTeX)."
blockMath: "Formule mathématique (bloc)"
blockMathDescription: "Afficher les formules mathématiques (KaTeX) multi-lignes dans un bloc."
quote: "Citer"
quoteDescription: "Affiche le contenu sous forme de citation."
emoji: "Émojis personnalisés"
emojiDescription: "Entourez le nom de l'émoji personnalisé de deux points pour l'afficher."
search: "Rechercher"
searchDescription: "Affiche une boîte de recherche avec du texte pré-saisi."
flip: "Inverser"
flipDescription: "Rotation verticale ou horizontale du contenu"
jelly: "Animation (Gelée)"
jellyDescription: "Donne une animation d'étirement."
tada: "Animation (Tada)"
tadaDescription: "Donne une animation qui donne une impression de \"Tada !\""
jump: "Animation (Saut)"
jumpDescription: "Donne une animation qui saute."
bounce: "Animation (Rebond)"
bounceDescription: "Donne une animation de rebondissement."
shake: "Animation (Secousse)"
shakeDescription: "Donne une animation tremblante."
twitch: "Animation (Tremblement)"
twitchDescription: "Donne une animation de tremblement intense."
spin: "Animation (Rotation)"
spinDescription: "Donne une animation de rotation."
x2: "Grand"
x2Description: "Afficher le contenu en grand."
x3: "Très grand"
@ -791,6 +913,10 @@ _mfm:
blurDescription: "Le contenu peut être flouté ; il sera visible en le survolant avec le curseur."
font: "Police de caractères"
fontDescription: "Il est possible de choisir la police."
rainbow: "Arc-en-ciel"
rainbowDescription: "Permet d'afficher le contenu en couleurs arc-en-ciel."
sparkle: "Paillettes"
sparkleDescription: "Ajoute un effet scintillant au contenu."
_reversi:
reversi: "Reversi"
gameSettings: "Réglages de la partie"
@ -822,6 +948,7 @@ _reversi:
ended: "Fin de partie"
playing: "En cours"
isLlotheo: "Celui ou celle qui a le moins de pièces gagne (Llotheo)"
loopedMap: "Carte en boucle"
canPutEverywhere: "Les pions peuvent être placés partout "
_instanceTicker:
none: "Cacher "
@ -841,9 +968,10 @@ _channel:
following: "Abonné·e"
usersCount: "{n} Participant·e·s"
notesCount: "{n} Notes"
_sidebar:
full: "Complet"
icon: "Icônes"
_menuDisplay:
sideFull: "Latéral"
sideIcon: "Latéral (icônes)"
top: "Haut de page"
hide: "Masquer"
_wordMute:
muteWords: "Mots à filtrer"
@ -871,17 +999,21 @@ _theme:
constant: "Constante"
defaultValue: "Valeur par défaut"
color: "Couleur"
refConst: "Référencez une constante"
refProp: "Appeler une propriété"
refConst: "Appeler une constante"
key: "Clé "
func: "Fonction"
funcKind: "Type de fonction"
argument: "Argument"
basedProp: "Nom de la propriété référencée"
alpha: "Transparence"
darken: "Assombrir"
darken: "Sombre"
lighten: "Clair"
inputConstantName: "Insérez un nom de constante"
importInfo: "Vous pouvez importer un thème vers léditeur de thèmes en saisissant son code ici."
deleteConstantConfirm: "Êtes-vous sûr·e de vouloir supprimer la constante {const} ?"
keys:
accent: "Accentuation"
bg: "Arrière-plan"
fg: "Texte"
focus: "Mise au point"
@ -898,30 +1030,38 @@ _theme:
hashtag: "Hashtags"
mention: "Mentionner"
mentionMe: "Mentions (Moi)"
renote: "Partager"
renote: "Renoter"
modalBg: "Modal d'arrière-plan"
divider: "Séparateur"
scrollbarHandle: "Poignée de la barre de navigation"
scrollbarHandleHover: "Poignée de la barre de navigation (survolée)"
dateLabelFg: "Texte de l'étiquette de la date"
infoBg: "Arrière-plan pour les informations"
infoFg: "Texte d'information"
infoWarnBg: "Arrière-plan des avertissements"
infoWarnFg: "Texte davertissement"
cwBg: "Arrière-plan du CW"
cwFg: "Texte du bouton CW"
cwHoverBg: "Arrière-plan du bouton CW (survolé)"
toastBg: "Arrière-plan de la bulle de notification"
toastFg: "Texte de la bulle de notification"
buttonBg: "Arrière-plan du bouton"
buttonHoverBg: "Arrière-plan du bouton (survolé)"
inputBorder: "Cadre de la zone de texte"
listItemHoverBg: "Arrière-plan d'item de liste (survolé)"
driveFolderBg: "Arrière-plan du dossier de disque"
wallpaperOverlay: "Superposition de fond d'écran"
badge: "Badge"
messageBg: "Arrière plan de la discussion"
accentDarken: "Plus sombre"
accentLighten: "Plus clair"
fgHighlighted: "Texte mis en évidence"
_sfx:
note: "Nouvelle note"
noteMy: "Ma note"
notification: "Notifications"
chat: "Discuter"
chatBg: "Discuter (De fond)"
chatBg: "Discussion (arrière-plan)"
antenna: "Réception de lantenne"
channel: "Notifications de canal"
reversiPutBlack: "Reversi : les pions noirs ont joué"
@ -966,14 +1106,14 @@ _tutorial:
step7_2: "Si vous désirez en savoir plus sur Misskey, jetez un œil sur la section {help}."
step7_3: "Bon courage et amusez-vous bien sur Misskey ! 🚀"
_2fa:
alreadyRegistered: "Cette étape à déjà été complétée"
alreadyRegistered: "Configuration déjà achevée."
registerDevice: "Ajouter un nouvel appareil"
registerKey: "Sinscrire la clé"
registerKey: "Enregistrer une clef"
step1: "Tout d'abord, installez une application d'authentification, telle que {a} ou {b}, sur votre appareil."
step2: "Ensuite, scannez le code QR affiché sur lécran."
step3: "Entrez le jeton affiché sur votre application pour compléter la configuration."
step4: "Lorsque vous vous connectez, entrez le jeton de la même manière."
securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion avec non seulement la clé de sécurité matérielle qui prend en charge FIDO2, mais également l'authentification par empreinte digitale ou PIN sur votre appareil."
step4: "À partir de maintenant, ce même jeton vous sera demandé à chacune de vos connexions."
securityKeyInfo: "Vous pouvez configurer l'authentification WebAuthN pour sécuriser davantage le processus de connexion grâce à une clé de sécurité matérielle qui prend en charge FIDO2, ou bien en configurant l'authentification par empreinte digitale ou par code PIN sur votre appareil."
_permissions:
"read:account": "Afficher les informations du compte"
"write:account": "Mettre à jour les informations de votre compte"
@ -985,8 +1125,8 @@ _permissions:
"write:favorites": "Gérer les favoris"
"read:following": "Voir les informations de vos abonnements"
"write:following": "Abonnements/Se désabonner"
"read:messaging": "Cherche à discuter"
"write:messaging": "Contrôler le discuter"
"read:messaging": "Voir vos discussions"
"write:messaging": "Gérer les discussions"
"read:mutes": "Voir les comptes masqués"
"write:mutes": "Gérer les comptes masqués"
"write:notes": "Créer / supprimer des notes"
@ -995,14 +1135,18 @@ _permissions:
"read:reactions": "Lire les réactions"
"write:reactions": "Gérer vos réactions"
"write:votes": "Voter"
"read:pages": "Afficher la page"
"write:pages": "Mettre à jour les Pages"
"read:page-likes": "Voir les favoris sur les Pages"
"write:page-likes": "Mettre à jour les favoris sur les Pages"
"read:pages": "Voir vos pages"
"write:pages": "Gérer les pages"
"read:page-likes": "Voir les mentions « J'aime » des pages"
"write:page-likes": "Gérer les mentions « J'aime » sur les pages"
"read:user-groups": "Voir les groupes d'utilisateur·rice·s"
"write:user-groups": "Éditer les groupes des utilisateur·rice·s"
"read:channels": "Lire les canaux"
"write:channels": "Gérer les canaux"
"read:gallery": "Voir la galerie"
"write:gallery": "Éditer la galerie"
"read:gallery-likes": "Voir les mentions « J'aime » dans la galerie"
"write:gallery-likes": "Gérer les mentions « J'aime » dans la galerie"
_auth:
shareAccess: "Autoriser \"{name}\" à accéder à votre compte ?"
shareAccessAsk: "Voulez-vous vraiment autoriser cette application à accéder à votre compte?"
@ -1043,6 +1187,7 @@ _widgets:
jobQueue: "File dattente"
serverMetric: "Statistiques du serveur"
aiscript: "Console AiScript"
aichan: "Ai"
_cw:
hide: "Masquer"
show: "Afficher plus …"
@ -1087,7 +1232,7 @@ _postForm:
channelPlaceholder: "Publier vers le canal"
_placeholders:
a: "Quoi de neuf ?"
b: "Quoi de neuf ?"
b: "Il s'est passé quelque chose ?"
c: "Quavez-vous en tête ?"
d: "Désirez-vous publier quelques mots ?"
e: "Écrivez ici"
@ -1111,31 +1256,31 @@ _exportOrImport:
blockingList: "Comptes bloqués"
userLists: "Listes"
_charts:
federationInstancesIncDec: "Variation du nombre des instances fédérées"
federationInstancesTotal: "Nombre total des instances fédérées"
federationInstancesIncDec: "Variation du nombre d'instances fédérées"
federationInstancesTotal: "Nombre total d'instances fédérées"
usersIncDec: "Variation du nombre d'utilisateur·rice·s"
usersTotal: "Nombre des utilisateur·rice·s au total"
activeUsers: "Utilisateur·rice·s actif·ve·s"
activeUsers: "Nombre d'utilisateurices actif·ve·s"
notesIncDec: "Variation du nombre des notes"
localNotesIncDec: "Variation du nombre de notes local"
remoteNotesIncDec: "Variation du nombre dnotes distant"
localNotesIncDec: "Variation du nombre de notes locales"
remoteNotesIncDec: "Variation du nombre de notes distantes"
notesTotal: "Nombre total des notes"
filesIncDec: "Variation du nombre de fichiers"
filesTotal: "Nombre de fichiers au total"
filesTotal: "Nombre total de fichiers"
storageUsageIncDec: "Variation de l'utilisation du stockage"
storageUsageTotal: "Utilisation totale du stockage"
_instanceCharts:
requests: "Requêtes"
users: "Variation du nombre d'utilisateur·rice·s"
usersTotal: "Nombre d'utilisateur·rice·s au total cumulé"
notes: "Variation du nombre des notes"
usersTotal: "Total cumulé du nombre d'utilisateur·rice·s"
notes: "Variation du nombre de notes"
notesTotal: "Nombre total cumulé des notes"
ff: "Variation des abonné·e·s"
ffTotal: "Nombre d'abonné·e·s au total cumulé"
ff: "Variation des abonné·e·s / abonnements"
ffTotal: "Total cumulé du nombre d'abonné·e·s / abonnements"
cacheSize: "Variation de la taille du cache"
cacheSizeTotal: "La taille du cache au total cumulé"
cacheSizeTotal: "Total cumulé de la taille du cache"
files: "Variation du nombre de fichiers"
filesTotal: "Nombre de fichiers au total cumulé"
filesTotal: "Total cumulé du nombre de fichiers"
_timelines:
home: "Principal"
local: "Local"
@ -1158,7 +1303,7 @@ _rooms:
default: "Par défaut"
washitsu: "Style japonnais"
_furnitures:
milk: "Lait en carton"
milk: "Brique de lait"
bed: "Lit"
low-table: "Table basse"
desk: "Bureau"
@ -1177,7 +1322,7 @@ _rooms:
book: "Livre"
book2: "Livre 2"
piano: "Piano"
facial-tissue: "Mouchoirs en papier"
facial-tissue: "Boîte de mouchoirs"
server: "Serveurs"
moon: "Lune"
corkboard: "Tableau en liège"
@ -1190,7 +1335,7 @@ _rooms:
wall-clock: "Horloge murale"
photoframe: "Cadre photo"
cube: "Cube"
tv: "Téléviseur"
tv: "Télé"
pinguin: "Pingouin"
rubik-cube: "Cube de Rubik"
poster-h: "Affiche (horizontale)"
@ -1206,13 +1351,13 @@ _rooms:
_pages:
newPage: "Créer une page"
editPage: "Modifier une page"
readPage: "Voir la source"
readPage: "Affichage de la source en cours"
created: "La page a été créée !"
updated: "La page a été mise à jour !"
deleted: "La page a bien été supprimée"
deleted: "La page a été supprimée"
pageSetting: "Paramètres de la Page"
nameAlreadyExists: "La URL de page spécifiée existe déjà"
invalidNameTitle: "La URL de la page spécifiée nest pas valide"
nameAlreadyExists: "L'URL de page spécifiée existe déjà"
invalidNameTitle: "L'URL de page spécifiée nest pas valide"
invalidNameText: "Assurez-vous quil nest pas vide"
editThisPage: "Éditer cette page"
viewSource: "Afficher la source"
@ -1227,21 +1372,21 @@ _pages:
content: "Bloc de page"
variables: "Variables"
title: "Titre"
url: "URL de page"
url: "URL de la page"
summary: "Résumé de page"
alignCenter: "Centrée"
hideTitleWhenPinned: "Masquer le titre de la page lorsque celle-ci est épinglée au profil"
font: "Police de caractères"
fontSerif: "Serif"
fontSansSerif: "Sans Serif"
eyeCatchingImageSet: "Définir une image attirante"
eyeCatchingImageRemove: "Supprimer une image attirante"
eyeCatchingImageSet: "Définir une image attractive"
eyeCatchingImageRemove: "Supprimer l'image attractive"
chooseBlock: "Ajouter un bloc"
selectType: "Choisir un type"
enterVariableName: "Veuillez entrer un nom pour votre variable"
variableNameIsAlreadyUsed: "Cette variable est déjà utilisée"
variableNameIsAlreadyUsed: "Ce nom de variable est déjà utilisé"
contentBlocks: "Contenu"
inputBlocks: "Entrée"
inputBlocks: "Blocs d'entrée"
specialBlocks: "Spécial"
blocks:
text: "Texte"
@ -1511,11 +1656,11 @@ _notification:
youWereInvitedToGroup: "Invité·e au groupe"
_types:
all: "Toutes"
follow: "Abonnements"
follow: "Nouvel·le abonné·e"
mention: "Mentions"
reply: "Réponses"
renote: "Partager"
quote: "Citer"
renote: "Renotes"
quote: "Citations"
reaction: "Réactions"
pollVote: "Votes dans des sondages"
receiveFollowRequest: "Demande d'abonnement reçue"
@ -1533,7 +1678,7 @@ _deck:
swapUp: "Déplacer vers le haut"
swapDown: "Déplacer vers le bas"
stackLeft: "Empiler à gauche"
popRight: "Vers la droite"
popRight: "Extraire à droite"
profile: "Profil"
_columns:
main: "Principale"

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@ const languages = [
'en-US',
'es-ES',
'fr-FR',
'id-ID',
'ja-JP',
'ja-KS',
'kab-KAB',

View File

@ -7,6 +7,7 @@ search: "Cerca"
notifications: "Notifiche"
username: "Nome utente"
password: "Password"
forgotPassword: "Hai dimenticato la tua password?"
fetchingAsApObject: "Recuperando dal Fediverso..."
ok: "OK"
gotIt: "Capito!"
@ -47,7 +48,7 @@ deleteAndEditConfirm: "Vuoi davvero cancellare questa nota e scriverla di nuovo?
addToList: "Aggiungi alla lista"
sendMessage: "Invia messaggio"
copyUsername: "Copia nome utente"
searchUser: "Cerca Utente"
searchUser: "Cerca utente"
reply: "Rispondi"
loadMore: "Mostra di più"
showMore: "Mostra di più"
@ -126,6 +127,7 @@ editWidgets: "Modifica i widget"
editWidgetsExit: "Modifica fine"
customEmojis: "Emoji personalizzati"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nome dell'emoji"
emojiUrl: "URL dell'emoji"
addEmoji: "Aggiungi un emoji"
@ -136,7 +138,7 @@ flagAsBotDescription: "Se l'account esegue principalmente operazioni automatiche
flagAsCat: "Io sono un gatto"
flagAsCatDescription: "Abilita l'opzione \"Io sono un gatto\" per l'account."
autoAcceptFollowed: "Accetta automaticamente le richieste di follow da utenti che già segui"
addAcount: "Aggiungi account"
addAccount: "Aggiungi account"
loginFailed: "Accesso non riuscito"
showOnRemote: "Sfoglia sull'istanza remota"
general: "Generali"
@ -153,6 +155,9 @@ recipient: "Destinatario"
annotation: "Descrizione"
federation: "Federazione"
instances: "Istanza"
latestRequestSentAt: "Ultima richiesta inviata"
latestRequestReceivedAt: "Ultima richiesta ricevuta"
latestStatus: "Ultimo stato"
storageUsage: "Volume di dischi"
charts: "Grafici"
perHour: "All'ora"
@ -172,6 +177,7 @@ instanceInfo: "Informazioni sull'istanza"
statistics: "Statistiche"
clearQueue: "Svuota coda"
clearQueueConfirmTitle: "Vuoi davvero svuotare la coda?"
clearQueueConfirmText: "Le note ancora non distribuite non verranno rilasciate. Solitamente, non è necessario eseguire questa operazione."
clearCachedFiles: "Svuota cache"
clearCachedFilesConfirm: "Vuoi davvero svuotare la cache da tutti i file remoti?"
blockedInstances: "Istanze bloccate"
@ -269,6 +275,7 @@ emptyDrive: "Il Drive è vuoto"
emptyFolder: "La cartella è vuota"
unableToDelete: "Eliminazione impossibile"
inputNewFileName: "Inserisci nome del nuovo file"
inputNewDescription: "Inserisci una nuova descrizione"
inputNewFolderName: "Inserisci nome della nuova cartella"
circularReferenceFolder: "La cartella di destinazione è una sottocartella della cartella che vuoi spostare."
hasChildFilesOrFolders: "Impossibile eliminare la cartella perché non è vuota"
@ -300,8 +307,8 @@ monthX: "{month}"
yearX: "{year}"
pages: "Pagine"
integration: "App collegate"
connectSerice: "Connetti"
disconnectSerice: "Disconnetti"
connectService: "Connessione"
disconnectService: "Disconnessione "
enableLocalTimeline: "Abilita Timeline locale"
enableGlobalTimeline: "Abilita Timeline federata"
disablingTimelinesInfo: "Anche se disabiliti queste timeline, gli amministratori e i moderatori potranno sempre accederci."
@ -329,6 +336,7 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "Abilita reCAPTCHA"
recaptchaSiteKey: "Chiave del sito"
recaptchaSecretKey: "Chiave segreta"
avoidMultiCaptchaConfirm: "Utilizzare diversi Captcha può causare interferenze. Vuoi disattivare l'altro Captcha? Puoi lasciare diversi Captcha attivi premendo \"Cancella\"."
antennas: "Antenne"
manageAntennas: "Gestore delle antenne"
name: "Nome"
@ -338,7 +346,6 @@ antennaExcludeKeywords: "Parole chiavi da escludere"
antennaKeywordsDescription: "Separare con uno spazio indica la condizione \"E\". Separare con un'interruzzione riga indica la condizione \"O\"."
notifyAntenna: "Invia notifiche delle nuove note"
withFileAntenna: "Solo note con file in allegato"
serviceworker: "ServiceWorker"
enableServiceworker: "Abilita ServiceWorker"
antennaUsersDescription: "Inserisci solo un nome utente per riga"
caseSensitive: "Sensibile alla distinzione tra maiuscole e minuscole"
@ -436,11 +443,12 @@ youHaveNoGroups: "Nessun gruppo"
joinOrCreateGroup: "Puoi creare il tuo gruppo o essere invitat@ a gruppi che già esistono."
noHistory: "Nessuna cronologia"
signinHistory: "Cronologia di accesso all'account"
doing: "In corso..."
category: "Categoria"
tags: "Tag"
docSource: "Sorgente della scheda"
createAccount: "Crea il tuo account"
existingAcount: "Account esistente"
existingAccount: "Account esistente"
regenerate: "Generare di nuovo"
fontSize: "Dimensione carattere"
noFollowRequests: "Non hai alcuna richiesta di follow"
@ -468,10 +476,13 @@ objectStoragePrefixDesc: "I file saranno conservati sotto la directory di questo
objectStorageEndpoint: "Endpoint"
objectStorageRegion: "Region"
objectStorageUseSSL: "Usare SSL"
objectStorageUseProxy: "Usa proxy"
objectStorageUseProxyDesc: "Disabilita quest'opzione se non usi proxy per la connessione API."
objectStorageSetPublicRead: "Imposta \"visibilità pubblica\" al momento di caricare"
serverLogs: "Log del server"
deleteAll: "Cancella cronologia"
showFixedPostForm: "Visualizzare la finestra di pubblicazione in cima alla timeline"
newNoteRecived: "Nuova nota ricevuta"
newNoteRecived: "Vedi le nuove note"
sounds: "Impostazioni suoni"
listen: "Ascolta"
none: "Niente"
@ -497,17 +508,20 @@ scratchpad: "ScratchPad"
output: "Uscita"
script: "Script"
disablePagesScript: "Disabilita AiScript nelle pagine"
updateRemoteUser: "Aggiornare le informazioni di utente remoto"
updateRemoteUser: "Aggiornare le informazioni di utente remot@"
deleteAllFiles: "Elimina tutti i file"
deleteAllFilesConfirm: "Vuoi davvero eliminare tutti i file?"
removeAllFollowing: "Cancella tutti i follows"
removeAllFollowingDescription: "Cancella tutti i follows del server {host}. Per favore, esegui se, ad esempio, l'istanza non esiste più."
userSuspended: "L'utente è sospes@."
userSilenced: "L'utente è silenziat@."
sidebar: "Barra laterale"
divider: "Linea di separazione"
addItem: "Aggiungi elemento"
rooms: "Camera"
relays: "Ripetitori"
addRelay: "Aggiungi ripetitore"
inboxUrl: "Inbox URL"
addedRelays: "Ripetitori configurati"
serviceworkerInfo: "Deve essere abilitato per le notifiche push. "
deletedNote: "Nota eliminata"
invisibleNote: "Nota invisibile"
@ -515,47 +529,82 @@ enableInfiniteScroll: "Abilita scorrimento infinito"
visibility: "Visibilità"
poll: "Sondaggio"
useCw: "Nascondere media"
enablePlayer: "Apri in lettore video"
disablePlayer: "Chiudi lettore video"
expandTweet: "Espandi tweet"
themeEditor: "Editor di temi"
description: "Descrizione"
describeFile: "Aggiungi una descrizione d'immagine"
enterFileDescription: "Inserisci descrizione"
author: "Autore"
leaveConfirm: "Ci sono delle modifiche ancora non salvate. Vuoi cancellarle?"
manage: "Gestione"
plugins: "Estensioni"
deck: "Deck"
undeck: "Esci dal deck"
useFullReactionPicker: "Usa la totalità del pannello di reazioni"
width: "Larghezza"
height: "Altezza"
large: "Grande"
medium: "Predefinito"
small: "Piccolo"
generateAccessToken: "Genera token di accesso"
permission: "Autorizzazioni "
enableAll: "Abilita tutto"
disableAll: "Disabilita tutto"
tokenRequested: "Autorizza accesso all'account"
pluginTokenRequestedDescription: "Il plugin potrà utilizzare le autorizzazioni impostate qui."
notificationType: "Tipo di notifiche"
edit: "Modifica"
useStarForReactionFallback: "Se è sconosciuto l'emoji di reazione, usare la ★ come alternativa."
emailConfig: "Impostazioni server email"
emailServer: "Server email"
enableEmail: "Abilita consegna email"
emailConfigInfo: "Utilizzato per verificare il tuo indirizzo di posta elettronica e per reimpostare la tua password"
email: "Email"
emailAddress: "Indirizzo di posta elettronica"
smtpConfig: "Impostazioni del server SMTP"
smtpHost: "Server remoto"
smtpPort: "Porta"
smtpUser: "Nome utente"
smtpPass: "Password"
emptyToDisableSmtpAuth: "Lasciare il nome utente e la password vuoti per disabilitare la verifica SMTP"
smtpSecure: "Usare la porta SSL/TLS implicito per le connessioni SMTP"
smtpSecureInfo: "Disabilitare quando è attivo STARTTLS."
testEmail: "Testare la consegna di posta elettronica"
wordMute: "Filtri parole"
userSaysSomething: "{name} ha detto qualcosa"
makeActive: "Attiva"
display: "Visualizza"
copy: "Copia"
metrics: "Statistiche"
overview: "Anteprima"
logs: "Log"
delayed: "Ritardo"
database: "Base di dati"
channel: "Canale"
create: "Crea"
notificationSetting: "Impostazioni notifiche"
notificationSettingDesc: "Seleziona il tipo di notifiche da visualizzare."
useGlobalSetting: "Usa impostazioni generali"
useGlobalSettingDesc: "Se abilitato, le impostazioni notifiche dell'account verranno utilizzate. Se disabilitato, si possono definire diverse singole impostazioni."
other: "Avanzate"
regenerateLoginToken: "Genera di nuovo un token di connessione"
regenerateLoginTokenDescription: "Genera un nuovo token di autenticazione. Solitamente questa operazione non è necessaria: quando si genera un nuovo token, tutti i dispositivi vanno disconnessi."
fileIdOrUrl: "ID o URL del file"
abuseReports: "Segnala"
reportAbuse: "Segnala"
chatOpenBehavior: "Comportamento della finestra di chat quando viene aperta"
behavior: "Comportamento"
abuseReports: "Segnalazioni"
reportAbuse: "Segnalazioni"
reportAbuseOf: "Segnala {name}"
fillAbuseReportDescription: "Si prega di spiegare il motivo della segnalazione. Se riguarda una nota precisa, si prega di collegare anche l'URL della nota."
abuseReported: "La segnalazione è stata inviata. Grazie."
send: "Inviare"
abuseMarkAsResolved: "Contrassegna la segnalazione come risolta"
openInNewTab: "Apri in una nuova scheda"
openInSideView: "Apri in vista laterale"
defaultNavigationBehaviour: "Navigazione preimpostata"
editTheseSettingsMayBreakAccount: "Modificare queste impostazioni può danneggiare l'account."
instanceTicker: "Informazioni sull'istanza da cui vengono le note"
waitingFor: "Aspettando {x}"
random: "Casuale"
system: "Sistema"
@ -567,6 +616,8 @@ optional: "Opzionale"
createNewClip: "Nuova clip"
public: "Pubblica"
i18nInfo: "Misskey è tradotto in diverse lingue da volontari. Anche tu puoi contribuire su {link}."
manageAccessTokens: "Gestisci token di accesso"
accountInfo: "Informazioni account"
notesCount: "Conteggio note"
repliesCount: "Numero di risposte inviate"
renotesCount: "Numero di note che hai ricondiviso"
@ -581,54 +632,166 @@ pollVotedCount: "Numero di voti ricevuti"
yes: "Sì"
no: "No"
driveFilesCount: "Numero di file nel Drive"
driveUsage: "Utilizzazione del Drive"
noCrawle: "Rifiuta l'indicizzazione dai robot."
noCrawleDescription: "Richiedi che i motori di ricerca non indicizzino la tua pagina di profilo, le tue note, pagine, ecc."
lockedAccountInfo: "A meno che non imposti la visibilità delle tue note su \"Solo ai follower\", le tue note sono visibili da tutti, anche se hai configurato l'account per confermare manualmente le richieste di follow."
alwaysMarkSensitive: "Segnare i media come sensibili per impostazione predefinita"
loadRawImages: "Visualizza le intere immagini allegate invece delle miniature."
disableShowingAnimatedImages: "Disabilita le immagini animate"
verificationEmailSent: "Una mail di verifica è stata inviata. Si prega di accedere al collegamento per compiere la verifica."
notSet: "Non impostato"
emailVerified: "Il tuo indirizzo email è stato verificato"
noteFavoritesCount: "Conteggio note tra i preferiti"
pageLikesCount: "Numero di pagine che ti piacciono"
pageLikedCount: "Numero delle tue pagine che hanno ricevuto \"Mi piace\""
reversiCount: "Numero di partite a Reversi"
contact: "Contatti"
useSystemFont: "Usa il carattere predefinito del sistema"
clips: "Clip"
experimentalFeatures: "Funzioni sperimentali"
developer: "Sviluppatore"
makeExplorable: "Account visibile sulla pagina \"Esplora\""
makeExplorableDescription: "Se disabiliti l'opzione, il tuo account non verrà visualizzato sulla pagina \"Esplora\"."
showGapBetweenNotesInTimeline: "Mostrare un intervallo tra le note sulla timeline"
duplicate: "Duplica"
left: "Sinistra"
center: "Centro"
wide: "Largo"
reloadToApplySetting: "Le tue preferenze verranno impostate dopo il ricaricamento della pagina. Vuoi ricaricare adesso?"
showTitlebar: "Visualizza la barra del titolo"
clearCache: "Svuota cache"
onlineUsersCount: "{n} utenti online"
nUsers: "{n} utenti"
nNotes: "{n}Note"
sendErrorReports: "Invia segnalazioni di errori"
sendErrorReportsDescription: "Quando abilitato, se si verifica un problema, informazioni dettagliate sugli errori verranno condivise con Misskey in modo da aiutare a migliorare la qualità del software.\nCiò include informazioni come la versione del sistema operativo, il tipo di navigatore web che usi, la cronologia delle attività, ecc."
myTheme: "I miei temi"
backgroundColor: "Sfondo"
textColor: "Testo"
saveAs: "Salva con nome"
value: "Valore"
createdAt: "Data di creazione"
updatedAt: "Aggiornato il"
saveConfirm: "Vuoi salvare le modifiche?"
deleteConfirm: "Rimuovere?"
invalidValue: "Questo non è un valore valido."
registry: "Registro"
closeAccount: "Disattiva account"
currentVersion: "Versione attuale"
latestVersion: "Ultima versione"
youAreRunningUpToDateClient: "Stai usando la versione più recente del client."
newVersionOfClientAvailable: "Una nuova versione del tuo client è disponibile."
usageAmount: "In utilizzo"
capacity: "Capacità"
inUse: "In utilizzo"
editCode: "Modifica codice"
apply: "Applica"
receiveAnnouncementFromInstance: "Ricevi i messaggi informativi dall'istanza"
emailNotification: "Eventi per notifiche via mail"
publish: "Pubblico"
inChannelSearch: "Cerca in canale"
useReactionPickerForContextMenu: "Cliccare sul tasto destro per aprire il pannello di reazioni"
typingUsers: "{users} sta(nno) scrivendo"
jumpToSpecifiedDate: "Vai alla data "
showingPastTimeline: "Stai visualizzando una vecchia timeline"
clear: "Cancella"
markAllAsRead: "Segna tutti come già letti"
goBack: "Indietro"
unlikeConfirm: "Non ti piace più?"
fullView: "Schermo intero"
quitFullView: "Esci dalla modalità a schermo intero"
addDescription: "Aggiungi descrizione"
userPagePinTip: "Qui puoi appuntare note, premendo \"Fissa sul profilo\" nel menù delle singole note."
notSpecifiedMentionWarning: "Sono menzionati account che non vengono inclusi fra i destinatari"
info: "Informazioni"
userInfo: "Informazioni utente"
unknown: "Sconosciuto"
onlineStatus: "Stato di connessione"
hideOnlineStatus: "Stato invisibile"
hideOnlineStatusDescription: "Abilitare l'opzione di stato invisibile può guastare la praticità di singole funzioni, come la ricerca."
online: "Online"
active: "Attiv@"
offline: "Offline"
notRecommended: "Sconsigliato"
botProtection: "Protezione contro i bot"
instanceBlocking: "Istanze bloccate"
selectAccount: "Scegli account"
enabled: "Attivo"
disabled: "Inattivo"
quickAction: "Azioni rapide"
user: "Utente"
administration: "Gestione"
accounts: "Account"
switch: "Sostituisci"
noMaintainerInformationWarning: "Le informazioni amministratore non sono impostate."
noBotProtectionWarning: "Nessuna protezione impostata contro i bot."
configure: "Imposta"
postToGallery: "Pubblicare nella galleria"
gallery: "Galleria"
recentPosts: "Le più recenti"
popularPosts: "Le più visualizzate"
shareWithNote: "Condividere in nota"
ads: "Pubblicità"
expiration: "Scadenza"
memo: "Promemoria"
priority: "Priorità"
high: "Alta"
middle: "Media"
low: "Bassa"
emailNotConfiguredWarning: "Non hai impostato nessun indirizzo e-mail."
ratio: "Rapporto"
global: "Federata"
sent: "Inviare"
hashtags: "Hashtag"
troubleshooting: "Risoluzione problemi"
_docs:
continueReading: "Leggi di più"
features: "Funzionalità"
admin: "Gestione"
_ad:
back: "Indietro"
reduceFrequencyOfThisAd: "Visualizza questa pubblicità meno spesso"
_forgotPassword:
enterEmail: "Inserisci l'indirizzo di posta elettronica che hai registrato nel tuo profilo. Il collegamento necessario per ripristinare la password verrà inviato a questo indirizzo."
ifNoEmail: "Se nessun indirizzo e-mail è stato registrato, si prega di contattare l'amministratore·trice dell'istanza."
contactAdmin: "Poiché questa istanza non permette l'utilizzo di una mail, si prega di contattare l'amministratore·trice dell'istanza per poter ripristinare la password."
_gallery:
my: "Le mie pubblicazioni"
liked: "Pubblicazioni che mi piacciono"
like: "Mi piace!"
unlike: "Non mi piace più"
_email:
_follow:
title: "Ha iniziato a seguirti"
_receiveFollowRequest:
title: "Hai ricevuto una richiesta di follow"
_plugin:
install: "Installa estensioni"
installWarn: "Si prega di installare soltanto estensioni che provengono da fonti affidabili."
manage: "Gestisci estensioni"
_registry:
key: "Dati"
keys: "Dati"
domain: "Dominio"
createKey: "Crea chiave"
_aboutMisskey:
about: "Misskey è un software libero e open source, sviluppato da syuilo dal 2014."
contributors: "Principali sostenitori"
allContributors: "Tutti i sostenitori"
source: "Codice sorgente"
morePatrons: "Ci sono molti altri che ci sostengono. Grazie 🥰"
translation: "Tradurre Misskey"
donate: "Sostieni Misskey"
morePatrons: "Apprezziamo sinceramente il supporto di tante altre persone. Grazie mille! 🥰"
patrons: "Sostenitori"
_nsfw:
respect: "Nascondere i media segnati come sensibli"
ignore: "Visualizzare i media segnati come sensibili"
force: "Nascondere tutti i media"
_mfm:
cheatSheet: "Bigliettino MFM"
intro: "MFM è un linguaggio Markdown particolare che si può usare in diverse parti di Misskey. Qui puoi visualizzare a colpo d'occhio tutta la sintassi MFM utile."
dummy: "Il Fediverso si espande con Misskey"
mention: "Menzioni"
mentionDescription: "Si può menzionare un utente specifico digitando il suo nome utente subito dopo il segno @."
hashtag: "Hashtag"
@ -643,7 +806,10 @@ _mfm:
search: "Cerca"
blur: "Sfocatura"
font: "Tipo di carattere"
fontDescription: "Puoi scegliere il tipo di carattere per il contenuto."
rainbow: "Arcobaleno"
_reversi:
reversi: "Reversi"
gameSettings: "Impostazioni di gioco"
botSettings: "Opzioni del bot"
black: "Nero"
@ -654,6 +820,10 @@ _instanceTicker:
none: "Nascondi"
remote: "Mostra solo per gli/le utenti remotə"
always: "Mostra sempre"
_serverDisconnectedBehavior:
reload: "Ricarica automaticamente"
dialog: "Apri avviso in finestra"
quiet: "Visualizza avviso in modo discreto"
_channel:
create: "Nuovo canale"
edit: "Gerisci canale"
@ -664,13 +834,16 @@ _channel:
following: "Seguiti"
usersCount: "{n} partecipanti"
notesCount: "{n} note"
_sidebar:
icon: "Icone"
_menuDisplay:
hide: "Nascondere"
_wordMute:
muteWords: "Parole da silenziare"
muteWords: "Parole da filtrare"
muteWordsDescription: "Separare con uno spazio indica la condizione \"E\". Separare con un'interruzzione riga indica la condizione \"O\"."
muteWordsDescription2: "Metti le parole chiavi tra slash per usare espressioni regolari (regexp)."
softDescription: "Nascondi della timeline note che rispondono alle condizioni impostate qui."
hardDescription: "Impedisci alla timeline di caricare le note che rispondono alle condizioni impostate qui. Inoltre, le note scompariranno in modo irreversibile, anche se le condizioni verranno successivamente rimosse."
soft: "Moderato"
hard: "Severo"
mutedNotes: "Note silenziate"
_theme:
explore: "Esplora temi"
@ -689,11 +862,15 @@ _theme:
constant: "Costante"
defaultValue: "Valore predefinito"
color: "Colore"
refConst: "Chiama costante"
key: "Chiave"
func: "Funzione"
funcKind: "Tipo di funzione"
argument: "Argomento"
darken: "Scuro"
lighten: "Chiaro"
inputConstantName: "Inserisci un nome per la costante"
deleteConstantConfirm: "Vuoi davvero eliminare la costante {const}?"
keys:
bg: "Sfondo"
fg: "Testo"
@ -710,12 +887,30 @@ _theme:
link: "Link"
hashtag: "Hashtag"
mention: "Menzioni"
mentionMe: "Menzioni (di me)"
renote: "Rinota"
divider: "Interruzione di linea"
infoBg: "Sfondo informazioni"
infoFg: "Testo di informazioni"
infoWarnBg: "Sfondo degli avvisi"
infoWarnFg: "Testo di avviso"
cwBg: "Sfondo del CW"
cwFg: "Testo del pulsante CW"
cwHoverBg: "Sfondo del pulsante CW (sorvolato)"
toastBg: "Sfondo di notifica a comparsa"
toastFg: "Testo di notifica a comparsa"
buttonBg: "Sfondo del pulsante"
buttonHoverBg: "Sfondo del pulsante (sorvolato)"
inputBorder: "Inquadra casella di testo"
listItemHoverBg: "Sfondo della voce di elenco (sorvolato)"
driveFolderBg: "Sfondo della cartella di disco"
messageBg: "Sfondo della chat"
_sfx:
note: "Nota"
noteMy: "Mia nota"
notification: "Notifiche"
chat: "Messaggi"
chatBg: "Chat (sfondo)"
antenna: "Ricezione dell'antenna"
channel: "Notifiche di canale"
_ago:
@ -748,7 +943,7 @@ _tutorial:
step4_1: "Hai pubblicato qualcosa?"
step4_2: "Se puoi visualizzare la tua nota sulla timeline, ce l'hai fatta!"
step5_1: "Adesso, cerca di seguire altre persone per vivacizzare la tua timeline. "
step5_2: "La pagina {featured} mostra le note di tendenza su questa istanza e, sfogliandole, magari toverai degli account che ti piacciono e che vorrai seguire. Oppure, potrai trovare utenti popolari usando {explore}."
step5_2: "La pagina {featured} mostra le note di tendenza su questa istanza, e magari ti aiuterà a trovare account che ti piacciono e che vorrai seguire. Oppure, potrai trovare utenti popolari usando {explore}."
step5_3: "Per seguire altrə utenti, clicca sul loro avatar per aprire la pagina di profilo dove puoi premere il pulsante \"Seguire\". "
step5_4: "Alcunə utenti scelgono di confermare manualmente le richieste di follow che ricevono, quindi a seconda delle persone potrebbe volerci un pò prima che la tua richiesta sia accolta."
step6_1: "Ora, se puoi visualizzare le note di altrə utenti sulla tua timeline, ce l'hai fatta!"
@ -757,13 +952,21 @@ _tutorial:
step7_1: "Complimenti! Sei arrivat@ alla fine dell'esercitazione di base su come usare Misskey. "
step7_2: "Se vuoi saperne di più su Misskey, puoi dare un'occhiata alla sezione {help}."
step7_3: "Da ultimo, buon divertimento su Misskey! 🚀"
_2fa:
registerDevice: "Aggiungi dispositivo"
_permissions:
"read:account": "Visualizzare le informazioni dell'account"
"write:account": "Modificare le informazioni dell'account"
"read:blocks": "Visualizza gli account bloccati"
"write:blocks": "Gestisci gli account bloccati"
"read:drive": "Aprire il Drive"
"write:drive": "Gestire il Drive"
"read:favorites": "Visualizza i tuoi preferiti"
"write:favorites": "Gestisci i tuoi preferiti"
"read:following": "Vedi le informazioni di follow"
"write:following": "Seguiti/ Smetti di seguire"
"read:messaging": "Visualizzare la chat"
"write:messaging": "Gestire la chat"
"read:mutes": "Vedi account silenziati"
"write:mutes": "Gerisci account silenziati"
"write:notes": "Creare / Eliminare note"
@ -771,10 +974,22 @@ _permissions:
"write:notifications": "Gerisci notifiche"
"read:reactions": "Vedi reazioni"
"write:reactions": "Gerisci reazioni"
"write:votes": "Votare"
"read:pages": "Visualizzare pagine"
"write:pages": "Gestire pagine"
"read:page-likes": "Visualizzare i \"Mi piace\" di pagine"
"write:page-likes": "Gestire i \"Mi piace\" di pagine"
"read:user-groups": "Vedi gruppi di utenti"
"write:user-groups": "Gestisci gruppi di utenti"
"read:channels": "Visualizza canali"
"write:channels": "Gerisci canali"
_auth:
shareAccess: "Autorizzare「{name}」ad accedere al tuo account?"
shareAccessAsk: "Vuoi davvero consentire l'accesso al tuo account a questa app'?"
permissionAsk: "Questa app richiede le seguenti autorizzazioni:"
pleaseGoBack: "Si prega di ritornare sulla app"
callback: "Ritornando sulla app"
denied: "Accesso negato"
_antennaSources:
all: "Tutte le note"
homeTimeline: "Note dagli utenti che segui"
@ -801,21 +1016,40 @@ _widgets:
photos: "Foto"
digitalClock: "Orologio digitale"
federation: "Federazione"
postForm: "Finestra di pubblicazione"
slideshow: "Diapositive"
button: "Pulsante"
onlineUsers: "Utenti online"
jobQueue: "Coda di lavoro"
serverMetric: "Statistiche server"
aiscript: "Console AiScript"
_cw:
hide: "Nascondere"
show: "Mostra di più"
chars: "{count} caratteri"
files: "{count} file"
_poll:
noOnlyOneChoice: "Sono necessarie almeno 2 risposte"
choiceN: "Opzione {n}"
noMore: "Hai aggiunto il numero massimo di opzioni."
canMultipleVote: "Risposte multiple"
canMultipleVote: "Possibilità di risposte multiple"
expiration: "Scadenza"
infinite: "Permanente"
infinite: "Non scade"
at: "Seleziona data"
after: "Seleziona durata"
deadlineDate: "Data di scadenza"
deadlineTime: "h"
voted: "Votato"
deadlineTime: "Ora di scadenza"
duration: "Durata"
votesCount: "{n} voti"
totalVotes: "Totale di {n} voti"
vote: "Vota"
showResult: "Visualizza risultati"
voted: "Hai votato"
closed: "Terminato"
remainingDays: "Rimangono {d} giorni e {h} ore"
remainingHours: "Rimangono {h} ore e {m} minuti"
remainingMinutes: "Rimangono {m} minuti e {s} secondi"
remainingSeconds: "Rimangono {s} secondi"
_visibility:
public: "Pubblica"
publicDescription: "Visibile per tutti sul Fediverso"
@ -831,13 +1065,24 @@ _postForm:
replyPlaceholder: "Nota la tua risposta.."
quotePlaceholder: "Cita Nota..."
channelPlaceholder: "Pubblica in canale"
_placeholders:
a: "Che succede?"
b: "È successo qualcosa?"
c: "Che cos'hai in mente?"
d: "Vuoi dire qualcosa?"
e: "Scrivi qualcosa qui"
f: "Aspettando che scriva..."
_profile:
name: "Nome"
username: "Nome utente"
description: "Bio"
metadata: "Metadati"
youCanIncludeHashtags: "Puoi anche includere hashtag."
metadata: "Informazioni aggiuntive"
metadataEdit: "Modifica informazioni aggiuntive"
metadataDescription: "Puoi pubblicare fino a quattro informazioni aggiuntive sul profilo."
metadataLabel: "Etichetta"
metadataContent: "Contenuto"
changeAvatar: "Modifica immagine profilo"
changeBanner: "Cambia intestazione"
_exportOrImport:
allNotes: "Tutte le note"
@ -846,67 +1091,136 @@ _exportOrImport:
blockingList: "Account bloccati"
userLists: "Liste"
_charts:
federationInstancesIncDec: "Variazione del numero di istanze federate"
federationInstancesTotal: "Numero totale di istanze federate"
usersIncDec: "Variazione del numero di utenti"
usersTotal: "Numero totale di utenti"
activeUsers: "Numero di utenti attivi"
notesIncDec: "Variazione del numero di note"
localNotesIncDec: "Variazione del numero di note locali"
remoteNotesIncDec: "Variazione del numero di note distanti"
notesTotal: "Conteggio totale di note"
filesIncDec: "Variazione del numero dei file"
filesTotal: "Numero totale di file"
storageUsageIncDec: "Variazione dell'utilizzo dell'immagazzinamento"
storageUsageTotal: "Utilizzo totale dell'immagazzinamento"
_instanceCharts:
requests: "Richieste"
users: "Variazione del numero di utenti"
usersTotal: "Totale cumulativo di utenti"
notes: "Variazione del numero di note"
notesTotal: "Totale cumulato di note"
ff: "Variazione dei follow/ follower"
ffTotal: "Totale cumulato dei follow/ follower"
cacheSize: "Variazione dello spazio occupato dalla cache"
cacheSizeTotal: "Totale cumulato dello spazio occupato dalla cache"
files: "Variazione del numero di file"
filesTotal: "Totale cumulato del numero di file"
_timelines:
home: "Home"
local: "Locale"
social: "Sociale"
global: "Federata"
_rooms:
roomOf: "Camera di {user}"
addFurniture: "Disponi mobilia"
translate: "Sposta"
rotate: "Ruota"
exit: "Indietro"
remove: "Togli"
clear: "Rimuovi tutto"
clearConfirm: "Sei sicur@ di voler rimuovere tutti i mobili dalla tua camera?"
leaveConfirm: "Hai fatto modifiche ancora non salvate. Vuoi davvero uscire?"
chooseImage: "Seleziona immagine"
roomType: "Tipo di stanza"
carpetColor: "Colore del suolo"
_roomType:
default: "Predefinito"
washitsu: "Washitsu"
_furnitures:
milk: "Cartone del latte"
bed: "Letto"
low-table: "Tavolino Coffee"
low-table: "Tavolino"
desk: "Tavolo"
chair: "Sedia"
chair2: "Sedia 2"
fan: "Ventilatore"
pc: "PC"
pc: "Computer"
plant: "Pianta da appartamento"
plant2: "Pianta da appartamento2"
eraser: "Gomma"
pencil: "Matita"
pudding: "Pudding"
cardboard-box: "Scatola di cartone"
cardboard-box2: "Scatola di cartone 2"
cardboard-box3: "Scatola di cartone 3"
book: "Libro"
book2: "Libro2"
piano: "Pianoforte"
facial-tissue: "Scatola di fazzolettini"
server: "Server"
moon: "Luna"
corkboard: "Bacheca"
mousepad: "Tappetino per il mouse"
monitor: "Monitor "
keyboard: "Tastiera"
carpet-stripe: "Tappeto (a strisce)"
mat: "Zerbino"
color-box: "Libreria"
wall-clock: "Orologio da parete"
photoframe: "Cornice"
cube: "Cubo"
tv: "Televisore"
tv: "TV"
pinguin: "Pinguino"
rubik-cube: "Cubo di Rubik"
poster-h: "Poster (orizzontale)"
poster-v: "Poster (verticale)"
sofa: "Divano"
spiral: "Scale a chiocciola"
bin: "Cestino"
cup-noodle: "Noodle istantanei"
holo-display: "Visualizzazione olografica"
energy-drink: "Bevanda energetica"
doll-ai: "Bambola Ai"
banknote: "Mazzetta di banconote"
_pages:
newPage: "Crea pagina"
editPage: "Modifica pagina"
readPage: "Visualizzando fonte "
created: "Pagina creata!"
updated: "Pagina aggiornata con successo!"
deleted: "Pagina eliminata"
pageSetting: "Impostazioni pagina"
nameAlreadyExists: "Esiste già una pagina con lo stesso URL."
invalidNameTitle: "L'URL di pagina definito non è valido"
invalidNameText: "Verifica che il campo non è vuoto"
editThisPage: "Modifica questa pagina"
viewSource: "Visualizza sorgente"
viewPage: "Visualizza pagina"
like: "Mi piace"
unlike: "Togli Mi piace"
my: "Le mie pagine"
liked: "Pagine che mi piacciono"
featured: "Popolari"
contents: "Contenuto"
content: "Blocco di pagina"
variables: "Variabili"
title: "Titolo"
url: "URL della pagina"
summary: "Riassunto di pagina"
hideTitleWhenPinned: "Nascondere il titolo pagina quando è fissata in cima al profilo."
font: "Tipo di carattere"
fontSerif: "Serif"
fontSansSerif: "Sans serif"
eyeCatchingImageSet: "Imposta un'immagine attrattiva"
eyeCatchingImageRemove: "Elimina l'immagine attrattiva"
chooseBlock: "Aggiungi blocco"
selectType: "Seleziona tipo"
enterVariableName: "Digita un nome di variabile"
variableNameIsAlreadyUsed: "Esiste già una variabile con lo stesso nome"
contentBlocks: "Contenuto"
inputBlocks: "Blocchi di input"
specialBlocks: "Speciale"
blocks:
text: "Testo"
textarea: "Area di testo"
@ -916,16 +1230,20 @@ _pages:
if: "Se"
_if:
variable: "Variabili"
post: "Finestra di pubblicazione"
_post:
text: "Contenuto"
textInput: "Immissione testo"
_textInput:
name: "Nome della variabile"
text: "Titolo"
default: "Valore predefinito"
textareaInput: "Immissione testo a più righe"
_textareaInput:
name: "Nome della variabile"
text: "Titolo"
default: "Valore predefinito"
numberInput: "Immissione numerica"
_numberInput:
name: "Nome della variabile"
text: "Titolo"
@ -938,18 +1256,35 @@ _pages:
id: "ID nota"
idDescription: "Qui puoi anche incollare l'URL della nota che vuoi impostare."
detailed: "Visualizzazione dettagliata"
switch: "Interruttore"
_switch:
name: "Nome della variabile"
text: "Titolo"
default: "Valore predefinito"
counter: "Contatore"
_counter:
name: "Nome della variabile"
text: "Titolo"
inc: "Valore da aggiungere"
_button:
text: "Titolo"
colored: "Colorato"
action: "Operazione da eseguire quando viene premuto il pulsante"
_action:
dialog: "Visualizzare una finestra di dialogo"
_dialog:
content: "Contenuto"
resetRandom: "Ripristinare un numero aleatorio"
pushEvent: "Inviare evento"
_pushEvent:
event: "Nome evento"
message: "Messaggio da visualizzare quando abilitato"
variable: "Variabile da inviare"
no-variable: "Nessun contenuto"
callAiScript: "Chiamare AiScript"
_callAiScript:
functionName: "Nome della funzione"
radioButton: "Opzioni"
_radioButton:
name: "Nome della variabile"
title: "Titolo"
@ -963,6 +1298,8 @@ _pages:
list: "Liste"
blocks:
text: "Testo"
multiLineText: "Testo (a più righe)"
textList: "Lista di testo"
_strLen:
arg1: "Testo"
_strPick:
@ -1017,13 +1354,18 @@ _pages:
arg2: "B"
_if:
arg1: "Se"
arg2: "Se"
random: "Aleatorietà"
_randomPick:
arg1: "Liste"
_dailyRandomPick:
arg1: "Liste"
_seedRandom:
arg2: "Probabilità"
_seedRandomPick:
arg2: "Liste"
_DRPWPM:
arg1: "Lista di testo"
_pick:
arg1: "Liste"
_listLen:
@ -1037,13 +1379,14 @@ _pages:
types:
string: "Testo"
array: "Liste"
stringArray: "Lista di testo"
_notification:
fileUploaded: "File caricato correttamente"
youGotMention: "{name} ti ha menzionato"
youGotReply: "{name} ti ha risposto"
youGotQuote: "{name} ha citato il tuo Nota e ha detto"
youRenoted: "{name} ha rinotato"
youGotPoll: "{name} ha volluto."
youGotPoll: "{name} ha votato"
youGotMessagingMessageFromUser: "{name} ti ha mandato un messaggio"
youGotMessagingMessageFromGroup: "{name} ti ha mandato un messaggio nella chat"
youWereFollowed: "Ha iniziato a seguirti"
@ -1052,19 +1395,33 @@ _notification:
youWereInvitedToGroup: "Invitat@ al gruppo"
_types:
all: "Tutto"
follow: "Follows"
follow: "Nuovə follower"
mention: "Menzioni"
reply: "Rispondi"
reply: "Risposte"
renote: "Rinota"
quote: "Cita"
reaction: "Reazione"
reaction: "Reazioni"
pollVote: "Voti ricevuti"
receiveFollowRequest: "Richiesta di follow ricevuta"
followRequestAccepted: "Richiesta di follow accettata"
groupInvited: "Invito a un gruppo"
app: "Notifiche da applicazioni"
_deck:
alwaysShowMainColumn: "Mostra sempre la colonna principale"
columnAlign: "Allineare colonne"
columnMargin: "Margine tra le colonne"
columnHeaderHeight: "Dimensioni dell'intestazione della colonna"
addColumn: "Aggiungi colonna"
swapLeft: "Sposta a sinistra"
swapRight: "Sposta a destra"
swapUp: "Sposta in alto"
swapDown: "Sposta in basso"
stackLeft: "Impila a sinistra"
popRight: "Estrai a destra"
profile: "Profilo"
_columns:
main: "Principale"
widgets: "Widget"
notifications: "Notifiche"
tl: "Timeline"
antenna: "Antenne"

View File

@ -7,6 +7,7 @@ search: "検索"
notifications: "通知"
username: "ユーザー名"
password: "パスワード"
forgotPassword: "パスワードを忘れた"
fetchingAsApObject: "連合に照会中"
ok: "OK"
gotIt: "わかった"
@ -80,6 +81,8 @@ somethingHappened: "問題が発生しました"
retry: "再試行"
pageLoadError: "ページの読み込みに失敗しました。"
pageLoadErrorDescription: "これは通常、ネットワークまたはブラウザキャッシュが原因です。キャッシュをクリアするか、しばらく待ってから再度試してください。"
serverIsDead: "サーバーの応答がありません。しばらく待ってから再度試してください。"
youShouldUpgradeClient: "このページを表示するためには、リロードして新しいバージョンのクライアントをご利用ください。"
enterListName: "リスト名を入力"
privacy: "プライバシー"
makeFollowManuallyApprove: "フォローを承認制にする"
@ -127,6 +130,7 @@ editWidgets: "ウィジェットを編集"
editWidgetsExit: "編集を終了"
customEmojis: "カスタム絵文字"
emoji: "絵文字"
emojis: "絵文字"
emojiName: "絵文字名"
emojiUrl: "絵文字画像URL"
addEmoji: "絵文字を追加"
@ -278,6 +282,7 @@ emptyDrive: "ドライブは空です"
emptyFolder: "フォルダーは空です"
unableToDelete: "削除できません"
inputNewFileName: "新しいファイル名を入力してください"
inputNewDescription: "新しいキャプションを入力してください"
inputNewFolderName: "新しいフォルダ名を入力してください"
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーです。"
hasChildFilesOrFolders: "このフォルダは空でないため、削除できません。"
@ -309,8 +314,8 @@ monthX: "{month}月"
yearX: "{year}年"
pages: "ページ"
integration: "連携"
connectSerice: "接続する"
disconnectSerice: "切断する"
connectService: "接続する"
disconnectService: "切断する"
enableLocalTimeline: "ローカルタイムラインを有効にする"
enableGlobalTimeline: "グローバルタイムラインを有効にする"
disablingTimelinesInfo: "これらのタイムラインを無効化しても、利便性のため管理者およびモデレーターは引き続き利用することができます。"
@ -324,6 +329,7 @@ driveCapacityPerRemoteAccount: "リモートユーザーひとりあたりのド
inMb: "メガバイト単位"
iconUrl: "アイコン画像のURL (faviconなど)"
bannerUrl: "バナー画像のURL"
backgroundImageUrl: "背景画像のURL"
basicInfo: "基本情報"
pinnedUsers: "ピン留めユーザー"
pinnedUsersDescription: "「みつける」ページなどにピン留めしたいユーザーを改行で区切って記述します。"
@ -525,7 +531,9 @@ removeAllFollowing: "フォローを全解除"
removeAllFollowingDescription: "{host}からのフォローをすべて解除します。そのインスタンスがもう存在しなくなった場合などに実行してください。"
userSuspended: "このユーザーは凍結されています。"
userSilenced: "このユーザーはサイレンスされています。"
sidebar: "サイドバー"
yourAccountSuspendedTitle: "アカウントが凍結されています"
yourAccountSuspendedDescription: "このアカウントは、サーバーの利用規約に違反したなどの理由により、凍結されています。詳細については管理者までお問い合わせください。新しいアカウントを作らないでください。"
menu: "メニュー"
divider: "分割線"
addItem: "項目を追加"
rooms: "ルーム"
@ -545,6 +553,8 @@ disablePlayer: "プレイヤーを閉じる"
expandTweet: "ツイートを展開する"
themeEditor: "テーマエディター"
description: "説明"
describeFile: "キャプションを付ける"
enterFileDescription: "キャプションを入力"
author: "作者"
leaveConfirm: "未保存の変更があります。破棄しますか?"
manage: "管理"
@ -704,6 +714,7 @@ editCode: "コードを編集"
apply: "適用"
receiveAnnouncementFromInstance: "インスタンスからのお知らせを受け取る"
emailNotification: "メール通知"
publish: "公開"
inChannelSearch: "チャンネル内検索"
useReactionPickerForContextMenu: "右クリックでリアクションピッカーを開く"
typingUsers: "{users}が入力中"
@ -741,6 +752,89 @@ switch: "切り替え"
noMaintainerInformationWarning: "管理者情報が設定されていません。"
noBotProtectionWarning: "Bot防御が設定されていません。"
configure: "設定する"
postToGallery: "ギャラリーへ投稿"
gallery: "ギャラリー"
recentPosts: "最近の投稿"
popularPosts: "人気の投稿"
shareWithNote: "ノートで共有"
ads: "広告"
expiration: "期限"
memo: "メモ"
priority: "優先度"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "メールアドレスの設定がされていません。"
ratio: "比率"
previewNoteText: "本文をプレビュー"
customCss: "カスタムCSS"
customCssWarn: "この設定は必ず知識のある方が行ってください。不適切な設定を行うとクライアントが正常に使用できなくなる恐れがあります。"
global: "グローバル"
squareAvatars: "アイコンを四角形で表示"
sent: "送信"
received: "受信"
searchResult: "検索結果"
hashtags: "ハッシュタグ"
troubleshooting: "トラブルシューティング"
useBlurEffect: "UIにぼかし効果を使用"
learnMore: "詳しく"
misskeyUpdated: "Misskeyが更新されました"
whatIsNew: "更新情報を見る"
translate: "翻訳"
translatedFrom: "{x}から翻訳"
accountDeletionInProgress: "アカウントの削除が進行中です"
usernameInfo: "サーバー上であなたのアカウントを一意に識別するための名前。アルファベット(a~z, A~Z)、数字(0~9)、およびアンダーバー(_)が使用できます。ユーザー名は後から変更することは出来ません。"
aiChanMode: "藍モード"
keepCw: "CWを維持する"
pubSub: "Pub/Subのアカウント"
lastCommunication: "直近の通信"
resolved: "解決済み"
unresolved: "未解決"
itsOn: "オンになっています"
itsOff: "オフになっています"
emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする"
unread: "未読"
filter: "フィルタ"
controllPanel: "コントロールパネル"
manageAccounts: "アカウントを管理"
makeReactionsPublic: "リアクション一覧を公開する"
makeReactionsPublicDescription: "あなたがしたリアクション一覧を誰でも見れるようにします。"
_signup:
almostThere: "ほとんど完了です"
emailAddressInfo: "あなたが使っているメールアドレスを入力してください。"
emailSent: "入力されたメールアドレス({email})宛に確認のメールが送信されました。メールに記載されたリンクにアクセスすると、アカウントの作成が完了します。"
_accountDelete:
accountDelete: "アカウントの削除"
mayTakeTime: "アカウントの削除は負荷のかかる処理であるため、作成したコンテンツの数やアップロードしたファイルの数が多いと完了までに時間がかかることがあります。"
sendEmail: "アカウントの削除が完了する際は、登録してあったメールアドレス宛に通知を送信します。"
requestAccountDelete: "アカウント削除をリクエスト"
started: "削除処理が開始されました。"
inProgress: "削除が進行中"
_docs:
continueReading: "続きを読む"
features: "機能"
generalTopics: "一般的なトピック"
advancedTopics: "高度なトピック"
admin: "管理"
translateWarn: "このドキュメントは翻訳されたものです。オリジナルとは内容が異なる場合があります。"
_ad:
back: "戻る"
reduceFrequencyOfThisAd: "この広告の表示頻度を下げる"
_forgotPassword:
enterEmail: "アカウントに登録したメールアドレスを入力してください。そのアドレス宛てに、パスワードリセット用のリンクが送信されます。"
ifNoEmail: "メールアドレスを登録していない場合は、管理者までお問い合わせください。"
contactAdmin: "このインスタンスではメールがサポートされていないため、パスワードリセットを行う場合は管理者までお問い合わせください。"
_gallery:
my: "自分の投稿"
liked: "いいねした投稿"
like: "いいね!"
unlike: "いいね解除"
_email:
_follow:
@ -833,6 +927,10 @@ _mfm:
blurDescription: "内容をぼかすことができます。ポインターを上に乗せるとはっきり見えるようになります。"
font: "フォント"
fontDescription: "内容のフォントを指定することができます。"
rainbow: "レインボー"
rainbowDescription: "内容をレインボーにします。"
sparkle: "キラキラ"
sparkleDescription: "キラキラしたパーティクルのエフェクトを追加します。"
_reversi:
reversi: "リバーシ"
@ -889,9 +987,10 @@ _channel:
usersCount: "{n}人が参加中"
notesCount: "{n}投稿があります"
_sidebar:
full: "フル"
icon: "アイコン"
_menuDisplay:
sideFull: ""
sideIcon: "横(アイコン)"
top: "上部"
hide: "隠す"
_wordMute:
@ -1072,6 +1171,10 @@ _permissions:
"write:user-groups": "ユーザーグループを操作する"
"read:channels": "チャンネルを見る"
"write:channels": "チャンネルを操作する"
"read:gallery": "ギャラリーを見る"
"write:gallery": "ギャラリーを操作する"
"read:gallery-likes": "ギャラリーのいいねを見る"
"write:gallery-likes": "ギャラリーのいいねを操作する"
_auth:
shareAccess: "「{name}」がアカウントにアクセスすることを許可しますか?"
@ -1116,6 +1219,7 @@ _widgets:
jobQueue: "ジョブキュー"
serverMetric: "サーバーメトリクス"
aiscript: "AiScriptコンソール"
aichan: "藍"
_cw:
hide: "隠す"

View File

@ -7,6 +7,7 @@ search: "探す"
notifications: "通知"
username: "ユーザー名"
password: "パスワード"
forgotPassword: "パスワード忘れてん"
fetchingAsApObject: "今ちと連合に照会しとるで"
ok: "OKや"
gotIt: "ほい"
@ -127,6 +128,7 @@ editWidgets: "ウィジェットをいじる"
editWidgetsExit: "編集終ったで"
customEmojis: "カスタム絵文字"
emoji: "絵文字"
emojis: "絵文字"
emojiName: "絵文字名"
emojiUrl: "絵文字画像URL"
addEmoji: "絵文字を追加"
@ -138,7 +140,7 @@ flagAsBotDescription: "もしこのアカウントがプログラムによって
flagAsCat: "Catやで"
flagAsCatDescription: "ワレ、猫ちゃんならこのフラグをつけてみ?"
autoAcceptFollowed: "フォローしとるユーザーからのフォローリクエストを勝手に許可しとく"
addAcount: "アカウント追加"
addAccount: "アカウント追加"
loginFailed: "ログインに失敗してしもうた…"
showOnRemote: "リモートで見る"
general: "全般"
@ -243,7 +245,7 @@ messageRead: "もう読んだ"
noMoreHistory: "これより過去の履歴はあらへんで"
startMessaging: "チャットやるで"
nUsersRead: "{n}人が読んでもうた"
agreeTo: "{0}はええで"
agreeTo: "{0}に同意したで"
tos: "利用規約"
start: "始める"
home: "ホーム"
@ -278,6 +280,7 @@ emptyDrive: "ドライブにはなんも残っとらん"
emptyFolder: "ふぉろだーにはなんも残っとらん"
unableToDelete: "消そうおもってんけどな、あかんかったわ"
inputNewFileName: "今度のファイル名は何にするん?"
inputNewDescription: "新しいキャプションを入力しましょ"
inputNewFolderName: "今度のフォルダ名は何にするん?"
circularReferenceFolder: "移動先のフォルダーは、移動するフォルダーのサブフォルダーや。"
hasChildFilesOrFolders: "このフォルダ、まだなんか入っとるから消されへん"
@ -309,8 +312,6 @@ monthX: "{month}月"
yearX: "{year}年"
pages: "ページ"
integration: "連携"
connectSerice: "つなぐ"
disconnectSerice: "切ってまう"
enableLocalTimeline: "ローカルタイムラインを使えるようにする"
enableGlobalTimeline: "グローバルタイムラインを使えるようにする"
disablingTimelinesInfo: "ここらへんのタイムラインを使えんようにしてしもても、管理者とモデレーターは使えるままになってるで、そうやなかったら不便やからな。"
@ -345,9 +346,8 @@ antennaSource: "受信ソース(このソースは食われへん)"
antennaKeywords: "受信キーワード"
antennaExcludeKeywords: "除外キーワード"
antennaKeywordsDescription: "スペースで区切ったるとAND指定で、改行で区切ったるとOR指定や"
notifyAntenna: "新しいノートを追加すんで"
notifyAntenna: "新しいノートを通知すんで"
withFileAntenna: "なんか添付されたノートだけ"
serviceworker: "ServiceWorker"
enableServiceworker: "ServiceWorkerをつこて"
antennaUsersDescription: "ユーザー名を改行で区切ったってな"
caseSensitive: "大文字と小文字は別もんや"
@ -448,7 +448,6 @@ category: "カテゴリ"
tags: "タグ"
docSource: "このドキュメントのソース"
createAccount: "アカウントを作成"
existingAcount: "既存のアカウント"
regenerate: "再生成"
fontSize: "フォントサイズ"
noFollowRequests: "フォロー申請はあらへんで"
@ -516,7 +515,6 @@ removeAllFollowing: "フォローを全解除"
removeAllFollowingDescription: "{host}からのフォローをすべて解除するで。そのインスタンスが消えて無くなった時とかには便利な機能やで。"
userSuspended: "このユーザーは...凍結されとる。"
userSilenced: "このユーザーは...サイレンスされとる。"
sidebar: "サイドバー"
divider: "分割線"
rooms: "ルーム"
relays: "リレー"
@ -541,7 +539,6 @@ large: "大"
medium: "中"
small: "小"
edit: "編集"
emailConfig: "メールサーバー設定"
enableEmail: "メール配信を受け取る"
emailConfigInfo: "メールアドレスの確認とかパスワードリセットの時に使うで"
email: "メール"
@ -556,7 +553,7 @@ smtpSecure: "SMTP 接続に暗黙的なSSL/TLSを使用する"
testEmail: "配信テスト"
wordMute: "ワードミュート"
userSaysSomething: "{name}が何か言ったようやで"
makeActive: "アクティブにしてや"
makeActive: "使うで"
display: "表示"
copy: "コピー"
metrics: "メトリクス"
@ -619,6 +616,7 @@ textColor: "文字"
saveAs: "名前を付けて保存"
advanced: "高度"
value: "値"
createdAt: "作成した日"
updatedAt: "更新日時"
saveConfirm: "保存するで?"
deleteConfirm: "ホンマに削除するで?"
@ -641,8 +639,26 @@ typingUsers: "{users}が今書きよるで"
jumpToSpecifiedDate: "特定の日付にジャンプ"
showingPastTimeline: "過去のタイムラインを表示してるで"
clear: "クリア"
markAllAsRead: "もうみな読んでもうたわ"
goBack: "戻る"
info: "情報"
user: "ユーザー"
administration: "管理"
ads: "広告"
expiration: "期限"
memo: "メモ"
high: "高い"
middle: "中"
low: "低い"
global: "グローバル"
sent: "送信"
hashtags: "ハッシュタグ"
_docs:
admin: "管理"
_ad:
back: "戻る"
_gallery:
unlike: "良くないわ"
_email:
_follow:
title: "フォローされたで"
@ -723,9 +739,7 @@ _channel:
removeBanner: "バナーを削除"
featured: "トレンド"
notesCount: "{n}こ投稿があるで"
_sidebar:
full: "フル"
icon: "アイコン"
_menuDisplay:
hide: "隠す"
_wordMute:
soft: "ソフト"

1
locales/jbo-EN.yml Normal file
View File

@ -0,0 +1 @@
---

View File

@ -7,7 +7,9 @@ username: "Isem n umseqdac"
password: "Awal uffir"
ok: "IH"
settings: "Iɣewwaṛen"
otherSettings: "Iɣewwaren nniḍen"
profile: "Amaɣnu"
signup: "Jerred"
save: "Sekles"
delete: "Kkes"
addToList: "Rnu ɣer tebdart"
@ -27,15 +29,32 @@ followers: "Imeḍfaṛen"
followsYou: "Yeṭṭafaṛ-ik·em-id"
createList: "Snulfu-d tabdart"
enterListName: "Isem n tebdart"
privacy: "Tabaḍnit"
follow: "Ḍfeṛ"
you: "Kečči·mmi"
selectList: "Fren tabdart"
youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
security: "Taɣellist"
remove: "Kkes"
connectService: "Qqen"
userList: "Tibdarin"
securityKey: "Tasarutt n tɣellist"
securityKeyName: "Isem n tsarutt"
signinRequired: "Ttxil jerred"
signinWith: "Tuqqna s {x}"
tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist"
uiLanguage: "Tutlayt n wegrudem"
accountSettings: "Iɣewwaṛen n umiḍan"
plugins: "Izegrar"
email: "Imayl"
emailAddress: "Tansa imayl"
smtpUser: "Isem n umseqdac"
smtpPass: "Awal uffir"
other: "Wiyyaḍ"
accountInfo: "Talɣut n umiḍan"
emailNotification: "Ilɣa imayl"
selectAccount: "Fren amiḍan"
accounts: "Imiḍan"
_email:
_follow:
title: "Yeṭṭafaṛ-ik·em-id"
@ -48,6 +67,8 @@ _theme:
mention: "Bder"
_sfx:
notification: "Ilɣuyen"
_permissions:
"write:account": "Ẓreg talɣut n umiḍan-ik·im"
_widgets:
notifications: "Ilɣuyen"
_cw:

View File

@ -58,6 +58,7 @@ instances: "ನಿದರ್ಶನ"
remove: "ಅಳಿಸು"
smtpUser: "ಬಳಕೆಹೆಸರು"
smtpPass: "ಗುಪ್ತಪದ"
user: "ಬಳಕೆದಾರ"
_email:
_follow:
title: "ಹಿಂಬಾಲಿಸಿದರು"

View File

@ -7,6 +7,7 @@ search: "검색"
notifications: "알림"
username: "유저명"
password: "비밀번호"
forgotPassword: "비밀번호 재설정"
fetchingAsApObject: "연합에서 조회 중"
ok: "OK"
gotIt: "알겠어요"
@ -127,6 +128,7 @@ editWidgets: "위젯 편집"
editWidgetsExit: "편집 종료"
customEmojis: "커스텀 이모지"
emoji: "이모지"
emojis: "이모지"
emojiName: "이모지 이름"
emojiUrl: "이모지 URL"
addEmoji: "이모지 추가"
@ -138,7 +140,7 @@ flagAsBotDescription: "이 계정을 자동화된 수단으로 운용할 경우
flagAsCat: "나는 고양이다냥"
flagAsCatDescription: "이 계정이 고양이라면 활성화 해주세요."
autoAcceptFollowed: "팔로우 중인 유저로부터의 팔로우 요청을 자동 수락"
addAcount: "계정 추가"
addAccount: "계정 추가"
loginFailed: "로그인에 실패했습니다"
showOnRemote: "리모트에서 보기"
general: "일반"
@ -278,6 +280,7 @@ emptyDrive: "드라이브가 비어 있습니다"
emptyFolder: "폴더가 비어 있습니다"
unableToDelete: "삭제할 수 없습니다"
inputNewFileName: "바꿀 파일명을 입력해 주세요"
inputNewDescription: "새 캡션을 입력해 주세요"
inputNewFolderName: "바꿀 폴더명을 입력해 주세요"
circularReferenceFolder: "지정한 폴더가 이동할 폴더의 하위 폴더입니다."
hasChildFilesOrFolders: "이 폴더는 비어있지 않기 때문에 삭제할 수 없습니다."
@ -309,8 +312,8 @@ monthX: "{month}월"
yearX: "{year}년"
pages: "페이지"
integration: "연동"
connectSerice: "접속"
disconnectSerice: "연결 끊기"
connectService: "계정 연동"
disconnectService: "계정 연동 해제"
enableLocalTimeline: "로컬 타임라인 활성화"
enableGlobalTimeline: "글로벌 타임라인 활성화"
disablingTimelinesInfo: "특정 타임라인을 비활성화하더라도 관리자 및 모더레이터는 계속 사용할 수 있습니다."
@ -324,6 +327,7 @@ driveCapacityPerRemoteAccount: "리모트 유저 한 명당 드라이브 용량"
inMb: "메가바이트 단위"
iconUrl: "아이콘 URL"
bannerUrl: "배너 이미지 URL"
backgroundImageUrl: "배경 이미지 URL"
basicInfo: "기본 정보"
pinnedUsers: "고정된 유저"
pinnedUsersDescription: "\"발견하기\" 페이지 등에 고정하고 싶은 유저를 한 줄에 한 명씩 적습니다."
@ -349,7 +353,6 @@ antennaExcludeKeywords: "제외할 키워드"
antennaKeywordsDescription: "공백으로 구분하는 경우 AND, 줄바꿈으로 구분하는 경우 OR로 지정됩니다"
notifyAntenna: "새로운 노트를 알림"
withFileAntenna: "파일이 첨부된 노트만"
serviceworker: "ServiceWorker"
enableServiceworker: "ServiceWorker 사용"
antennaUsersDescription: "유저명을 한 줄에 한 명씩 적습니다"
caseSensitive: "대소문자를 구분"
@ -453,7 +456,7 @@ category: "카테고리"
tags: "태그"
docSource: "이 문서의 소스"
createAccount: "계정 만들기"
existingAcount: "기존 계정"
existingAccount: "기존 계정"
regenerate: "재생성"
fontSize: "글자 크기"
noFollowRequests: "처리되지 않은 팔로우 요청이 없습니다"
@ -526,7 +529,9 @@ removeAllFollowing: "모든 팔로잉 해제"
removeAllFollowingDescription: "{host}(으)로부터 모든 팔로잉을 해제합니다. 해당 인스턴스가 더 이상 존재하지 않게 된 경우 등에 실행해 주세요."
userSuspended: "이 계정은 정지된 상태입니다."
userSilenced: "이 계정은 사일런스된 상태입니다."
sidebar: "사이드바"
yourAccountSuspendedTitle: "계정이 정지되었습니다"
yourAccountSuspendedDescription: "이 계정은 서버의 이용 약관을 위반하거나, 기타 다른 이유로 인해 정지되었습니다. 자세한 사항은 관리자에게 문의해 주십시오. 계정을 새로 생성하지 마십시오."
menu: "메뉴"
divider: "구분선"
addItem: "항목 추가"
rooms: "방"
@ -546,6 +551,8 @@ disablePlayer: "플레이어 닫기"
expandTweet: "트윗 확장하기"
themeEditor: "테마 에디터"
description: "설명"
describeFile: "캡션 추가"
enterFileDescription: "캡션 입력"
author: "작성자"
leaveConfirm: "저장하지 않은 변경사항이 있습니다. 취소하시겠습니까?"
manage: "관리"
@ -568,7 +575,7 @@ pluginTokenRequestedDescription: "이 플러그인은 여기서 설정한 권한
notificationType: "알림 유형"
edit: "편집"
useStarForReactionFallback: "알 수 없는 리액션 이모지 대신 ★ 사용"
emailConfig: "메일 서버 설정"
emailServer: "메일 서버"
enableEmail: "이메일 송신 기능 활성화"
emailConfigInfo: "가입 시 메일 주소 확인이나 비밀번호 초기화 시에 사용합니다."
email: "이메일"
@ -705,6 +712,7 @@ editCode: "코드 수정"
apply: "적용"
receiveAnnouncementFromInstance: "이 인스턴스의 알림을 이메일로 수신할게요"
emailNotification: "메일 알림"
publish: "게시"
inChannelSearch: "채널에서 검색"
useReactionPickerForContextMenu: "우클릭하여 리액션 선택기 열기"
typingUsers: "{users} 님이 입력하고 있어요.."
@ -726,8 +734,86 @@ onlineStatus: "온라인 상태"
hideOnlineStatus: "온라인 상태 숨기기"
hideOnlineStatusDescription: "온라인 상태를 숨기면, 검색과 같은 일부 기능에 영향을 미칠 수 있습니다."
online: "온라인"
active: "활동 중"
active: "최근에 활동함"
offline: "오프라인"
notRecommended: "추천하지 않음"
botProtection: "Bot 방어"
instanceBlocking: "인스턴스 차단"
selectAccount: "계정 선택"
enabled: "활성화"
disabled: "비활성화"
quickAction: "빠른 동작"
user: "유저"
administration: "관리"
accounts: "계정"
switch: "전환"
noMaintainerInformationWarning: "관리자 정보가 설정되어 있지 않습니다."
noBotProtectionWarning: "Bot 방어가 설정되어 있지 않습니다."
configure: "설정하기"
postToGallery: "갤러리에 업로드"
gallery: "갤러리"
recentPosts: "최근 포스트"
popularPosts: "인기 포스트"
shareWithNote: "노트로 공유"
ads: "광고"
expiration: "기한"
memo: "메모"
priority: "우선순위"
high: "높음"
middle: "보통"
low: "낮음"
emailNotConfiguredWarning: "메일 주소가 설정되어 있지 않습니다."
ratio: "비율"
customCss: "CSS 사용자화"
customCssWarn: "이 설정은 기능을 알고 있는 경우에만 사용해야 합니다. 잘못된 값을 입력하면 클라이언트가 정상적으로 작동하지 않을 수 있습니다."
global: "글로벌"
squareAvatars: "프로필 아이콘을 사각형으로 표시"
sent: "전송"
received: "수신"
searchResult: "검색 결과"
hashtags: "해시태그"
troubleshooting: "문제 해결"
useBlurEffect: "UI에 흐림 효과 사용"
learnMore: "자세히"
misskeyUpdated: "Misskey가 업데이트 되었습니다!"
whatIsNew: "패치 정보 보기"
translate: "번역"
translatedFrom: "{x}에서 번역"
accountDeletionInProgress: "계정 삭제 작업을 진행하고 있습니다"
usernameInfo: "서버상에서 계정을 식별하기 위한 이름. 알파벳(a~z, A~Z), 숫자(0~9) 및 언더바(_)를 사용할 수 있습니다. 사용자명은 나중에 변경할 수 없습니다."
aiChanMode: "아이 모드"
keepCw: "CW 유지하기"
pubSub: "Pub/Sub 계정"
lastCommunication: "마지막 통신"
resolved: "해결됨"
unresolved: "해결되지 않음"
controllPanel: "제어판"
_accountDelete:
accountDelete: "계정 삭제"
mayTakeTime: "계정 삭제는 서버에 부하를 가하기 때문에, 작성한 콘텐츠나 업로드한 파일의 수가 많으면 완료까지 시간이 걸릴 수 있습니다."
sendEmail: "계정 삭제가 완료되면 등록된 이메일 주소로 알림을 보냅니다."
requestAccountDelete: "계정 삭제 요청"
started: "삭제 작업이 시작되었습니다."
inProgress: "삭제 진행 중"
_docs:
continueReading: "계속 읽기"
features: "기능"
generalTopics: "일반 주제"
advancedTopics: "심화 주제"
admin: "관리"
translateWarn: "이 문서는 번역되었기 때문에 원본과는 내용이 다를 수 있습니다."
_ad:
back: "뒤로"
reduceFrequencyOfThisAd: "이 광고의 표시 빈도 낮추기"
_forgotPassword:
enterEmail: "여기에 계정에 등록한 메일 주소를 입력해 주세요. 입력한 메일 주소로 비밀번호 재설정 링크를 발송합니다."
ifNoEmail: "메일 주소를 등록하지 않은 경우, 관리자에 문의해 주십시오."
contactAdmin: "이 인스턴스에서는 메일 기능이 지원되지 않습니다. 비밀번호를 재설정하려면 관리자에게 문의해 주십시오."
_gallery:
my: "내 갤러리"
liked: "좋아요 한 갤러리"
like: "좋아요!"
unlike: "좋아요 취소"
_email:
_follow:
title: "새로운 팔로워가 있습니다"
@ -814,6 +900,10 @@ _mfm:
blurDescription: "내용이 흐리게 보입니다. 마우스를 위에 올려두면 내용이 보입니다."
font: "폰트"
fontDescription: "내용의 글꼴을 지정할 수 있습니다."
rainbow: "무지개"
rainbowDescription: "내용을 무지개로 표시합니다."
sparkle: "반짝반짝"
sparkleDescription: "반짝이는 파티클 효과를 추가합니다."
_reversi:
reversi: "리버시"
gameSettings: "대국 설정"
@ -865,9 +955,10 @@ _channel:
following: "팔로잉"
usersCount: "{n}명 참여 중"
notesCount: "{n}노트"
_sidebar:
full: "전체"
icon: "아이콘"
_menuDisplay:
sideFull: "가로"
sideIcon: "가로(아이콘)"
top: "상단"
hide: "숨기기"
_wordMute:
muteWords: "뮤트할 단어"
@ -1034,11 +1125,15 @@ _permissions:
"read:pages": "페이지를 봅니다"
"write:pages": "페이지를 수정합니다"
"read:page-likes": "페이지의 좋아요를 확인합니다"
"write:page-likes": "페이지 좋아요를 추가하거나 삭제합니다"
"write:page-likes": "페이지 좋아요를 추가하거나 취소합니다"
"read:user-groups": "유저 그룹을 조회합니다"
"write:user-groups": "유저 그룹을 만들거나, 초대하거나, 이름을 변경하거나, 양도하거나, 삭제합니다"
"read:channels": "채널을 보기"
"write:channels": "채널을 변경하기"
"write:channels": "채널을 추가하거나 삭제합니다"
"read:gallery": "갤러리를 봅니다"
"write:gallery": "갤러리를 추가하거나 삭제합니다"
"read:gallery-likes": "갤러리의 좋아요를 확인합니다"
"write:gallery-likes": "갤러리에 좋아요를 추가하거나 취소합니다"
_auth:
shareAccess: "\"{name}\" 이 계정에 접근하는 것을 허용하시겠습니까?"
shareAccessAsk: "이 애플리케이션이 계정에 접근하는 것을 허용하시겠습니까?"
@ -1079,6 +1174,7 @@ _widgets:
jobQueue: "작업 대기열"
serverMetric: "서버 통계"
aiscript: "AiScript 콘솔"
aichan: "아이"
_cw:
hide: "숨기기"
show: "더 보기"

View File

@ -1,2 +1,3 @@
---
_lang_: "Nederlands"
headlineMisskey: "Netwerk verbonden door notities"

View File

@ -1,11 +1,13 @@
---
_lang_: "język polski"
headlineMisskey: "Sieć połączona wpisami"
introMisskey: "Misskey jest serwisem mikroblogowym typu open source.\nMisskey to opensource'owy serwis mikroblogowy, w którym możesz tworzyć \"notatki\", aby dzielić się tym, co się dzieje i opowiadać wszystkim o sobie.\nMożesz również użyć funkcji \"Reakcje\", aby szybko dodać własne reakcje do notatek innych użytkowników👍.\nOdkrywaj nowy świat🚀!"
monthAndDay: "{month}-{day}"
search: "Szukaj"
notifications: "Powiadomienia"
username: "Nazwa użytkownika"
password: "Hasło"
forgotPassword: "Nie pamiętam hasła"
fetchingAsApObject: "Pobieranie z Fediwersum…"
ok: "OK"
gotIt: "Rozumiem!"
@ -61,7 +63,10 @@ import: "Importuj"
export: "Eksportuj"
files: "Pliki"
download: "Pobierz"
driveFileDeleteConfirm: "Czy chcesz usunąć plik \"{name}\"? Zniknie również notatka, do której dołączony jest ten plik."
unfollowConfirm: "Czy na pewno chcesz przestać obserwować {name}?"
exportRequested: "Zażądałeś eksportu. Może to zająć trochę czasu. Po zakończeniu eksportu zostanie on dodany do Twoich \"dysków\"."
importRequested: "Zażądano importu. Może to zająć chwilę."
lists: "Listy"
noLists: "Nie masz żadnych list"
note: "Utwórz wpis"
@ -123,6 +128,7 @@ editWidgets: "Edytuj widżet"
editWidgetsExit: "Gotowe"
customEmojis: "Niestandardowe emoji"
emoji: "Emoji"
emojis: "Emoji"
emojiName: "Nazwa emoji"
emojiUrl: "Adres URL emoji"
addEmoji: "Dodaj emoji"
@ -130,10 +136,11 @@ settingGuide: "Proponowana konfiguracja"
cacheRemoteFiles: "Przechowuj zdalne pliki w pamięci podręcznej"
cacheRemoteFilesDescription: "Gdy ta opcja jest wyłączona, zdalne pliki są ładowane bezpośrednio ze zdalnych instancji. Wyłączenie the opcji zmniejszy użycie powierzchni dyskowej, ale zwiększy transfer, ponieważ miniaturki nie będą generowane."
flagAsBot: "To konto jest botem"
flagAsBotDescription: "Jeżeli ten kanał jest kontrolowany przez jakiś program, ustaw tę opcję. Jeżeli włączona, będzie działać jako flaga informująca innych programistów, aby zapobiegać nieskończonej interakcji z różnymi botami i dostosowywać wewnętrzne systemy Misskey, traktując konto jako bota."
flagAsCat: "To konto jest kotem"
flagAsCatDescription: "Przełącz tę opcję, aby konto było oznaczone jako kot."
autoAcceptFollowed: "Automatycznie przyjmuj prośby o możliwość obserwacji od użytkowników, których obserwujesz"
addAcount: "Dodaj konto"
addAccount: "Dodaj konto"
loginFailed: "Nie udało się zalogować"
showOnRemote: "Zobacz na zdalnej instancji"
general: "Ogólne"
@ -177,6 +184,7 @@ clearQueueConfirmTitle: "Czy na pewno chcesz wyczyścić kolejkę?"
clearCachedFiles: "Wyczyść pamięć podręczną"
clearCachedFilesConfirm: "Czy na pewno chcesz usunąć wszystkie zdalne pliki z pamięci podręcznej?"
blockedInstances: "Zablokowane instancje"
blockedInstancesDescription: "Wypisz nazwy hostów instancji, które powinny zostać zablokowane. Wypisane instancje nie będą mogły dłużej komunikować się z tą instancją."
muteAndBlock: "Wycisz / Zablokuj"
mutedUsers: "Wyciszeni użytkownicy"
blockedUsers: "Zablokowani użytkownicy"
@ -269,6 +277,7 @@ emptyDrive: "Dysk jest pusty"
emptyFolder: "Ten katalog jest pusty"
unableToDelete: "Nie można usunąć"
inputNewFileName: "Wprowadź nową nazwę pliku"
inputNewDescription: "Proszę wpisać nowy napis"
inputNewFolderName: "Wprowadź nową nazwę katalogu"
circularReferenceFolder: "Katalog docelowy jest podkatalogiem katalogu, który chcesz przenieść."
hasChildFilesOrFolders: "Ponieważ ten katalog nie jest pusty, nie może być usunięty."
@ -289,16 +298,17 @@ reject: "Odrzuć"
normal: "Normalny"
instanceName: "Nazwa instancji"
instanceDescription: "Opis instancji"
maintainerName: "Administrator"
maintainerEmail: "E-mail administratora"
tosUrl: "Adres URL regulaminu"
thisYear: "Rok"
thisMonth: "Miesiąc"
today: "Dziś"
dayX: "{day}"
monthX: "{month}"
yearX: "{year}"
pages: "Strony"
integration: "Integracja"
connectSerice: "Połącz"
disconnectSerice: "Rozłącz"
enableLocalTimeline: "Włącz lokalną oś czasu"
enableGlobalTimeline: "Włącz globalną oś czasu"
disablingTimelinesInfo: "Administratorzy i moderatorzy będą zawsze mieć dostęp do wszystkich osi czasu, nawet gdy są one wyłączone."
@ -330,8 +340,8 @@ manageAntennas: "Zarządzaj Antenami"
name: "Nazwa"
antennaSource: "Źródło Anteny"
antennaExcludeKeywords: "Wykluczone słowa kluczowe"
notifyAntenna: "Powiadamiaj o nowych wpisach"
withFileAntenna: "Filtruj tylko wpisy z załączonym plikiem"
serviceworker: "ServiceWorker"
enableServiceworker: "Włącz ServiceWorker"
antennaUsersDescription: "Wypisz po jednej nazwie użytkownika w linii"
caseSensitive: "Wielkość liter ma znaczenie"
@ -357,6 +367,7 @@ administrator: "Admin"
token: "Token"
twoStepAuthentication: "Uwierzytelnianie dwuskładnikowe"
moderator: "Moderator"
nUsersMentioned: "{n} wspomnianych użytkowników"
securityKey: "Klucz bezpieczeństwa"
securityKeyName: "Nazwa klucza"
registerSecurityKey: "Zarejestruj klucz bezpieczeństwa"
@ -396,6 +407,7 @@ retype: "Wprowadź ponownie"
noteOf: "Wpisy {user}"
inviteToGroup: "Zaproś do grupy"
maxNoteTextLength: "Limit znaków dla wpisów"
quoteAttached: "Zacytowano"
quoteQuestion: "Czy na pewno chcesz umieścić cytat?"
noMessagesYet: "Nie napisano jeszcze wiadomości"
newMessageExists: "Masz nową wiadomość"
@ -418,6 +430,7 @@ signinWith: "Zaloguj się z {x}"
signinFailed: "Nie udało się zalogować. Wprowadzona nazwa użytkownika lub hasło są nieprawidłowe."
tapSecurityKey: "Wybierz swój klucz bezpieczeństwa"
or: "Lub"
language: "Język"
uiLanguage: "Język wyświetlania UI"
groupInvited: "Zaproszony(-a) do grupy"
aboutX: "O {x}"
@ -431,7 +444,7 @@ category: "Kategoria"
tags: "Tagi"
docSource: "Źródło tego dokumentu"
createAccount: "Utwórz konto"
existingAcount: "Istniejące konta"
existingAccount: "Istniejące konto"
regenerate: "Wygeneruj ponownie"
fontSize: "Rozmiar czcionki"
noFollowRequests: "Nie masz żadnych oczekujących próśb o możliwość obserwacji"
@ -453,6 +466,8 @@ showFeaturedNotesInTimeline: "Pokazuj wyróżnione wpisy w osi czasu"
objectStorage: "Pamięć obiektowa"
useObjectStorage: "Używaj pamięci obiektowej"
objectStorageBaseUrl: "Podstawowy URL"
objectStorageBucket: "Bucket"
objectStorageBucketDesc: "Podaj nazwę „wiadra” używaną przez konfigurowaną usługę."
objectStoragePrefix: "Prefiks"
objectStoragePrefixDesc: "Pliki będą przechowywane w katalogu z tym prefiksem."
objectStorageEndpoint: "Punkt końcowy"
@ -499,7 +514,6 @@ deleteAllFilesConfirm: "Czy na pewno chcesz usunąć wszystkie pliki?"
removeAllFollowingDescription: "Przestań obserwować wszystkie konta z {host}. Wykonaj to, jeżeli instancja już nie istnieje."
userSuspended: "To konto zostało zawieszone."
userSilenced: "Ten użytkownik został wyciszony."
sidebar: "Pasek boczny"
divider: "Rozdzielacz"
addItem: "Dodaj element"
rooms: "Pokój"
@ -519,6 +533,8 @@ disablePlayer: "Zamknij odtwarzacz wideo"
expandTweet: "Rozwiń tweet"
themeEditor: "Edytor motywu"
description: "Opis"
describeFile: "dodaj podpis"
enterFileDescription: "Wprowadź napis"
author: "Autor"
leaveConfirm: "Są niezapisane zmiany. Czy chcesz je odrzucić?"
manage: "Zarządzanie"
@ -540,7 +556,7 @@ pluginTokenRequestedDescription: "Ta wtyczka będzie mogła korzystać z ustawio
notificationType: "Rodzaj powiadomień"
edit: "Edytuj"
useStarForReactionFallback: "Użyj ★ jako zapasowego emoji, gdy emoji reakcji jest nieznane"
emailConfig: "Konfiguracja serwera e-mail"
emailServer: "Serwer poczty e-mail"
enableEmail: "Włącz dostarczanie wiadomości e-mail"
emailConfigInfo: "Wykorzystywany do potwierdzenia adresu e-mail w trakcie rejestracji, lub gdy zapomnisz hasła"
email: "Adres e-mail"
@ -553,6 +569,7 @@ smtpPass: "Hasło"
emptyToDisableSmtpAuth: "Pozostaw adres e-mail i hasło puste, aby wyłączyć weryfikację SMTP"
smtpSecureInfo: "Wyłącz, jeżeli używasz STARTTLS"
testEmail: "Przetestuj dostarczanie wiadomości e-mail"
wordMute: "Wyciszenie słowa"
userSaysSomething: "{name} powiedział(-a) coś"
makeActive: "Aktywuj"
display: "Wyświetlanie"
@ -623,6 +640,7 @@ emailVerified: "Adres e-mail został potwierdzony"
noteFavoritesCount: "Liczba polubionych wpisów"
pageLikesCount: "Liczba otrzymanych polubień stron"
pageLikedCount: "Liczba polubionych stron"
reversiCount: "Liczba rozgrywek Reversi"
contact: "Kontakt"
useSystemFont: "Używaj domyślnej czcionki systemu"
experimentalFeatures: "Eksperymentalne funkcje"
@ -631,6 +649,7 @@ makeExplorable: "Pokazuj konto na stronie „Eksploruj”"
makeExplorableDescription: "Jeżeli wyłączysz tę opcję, Twoje konto nie będzie wyświetlać się w sekcji „Eksploruj”."
showGapBetweenNotesInTimeline: "Pokazuj odstęp między wpisami na osi czasu."
duplicate: "Duplikuj"
left: "Lewo"
center: "Wyśsrodkuj"
wide: "Szerokie"
narrow: "Wąskie"
@ -640,18 +659,112 @@ clearCache: "Wyczyść pamięć podręczną"
onlineUsersCount: "{n} osób jest online"
nUsers: "{n} użytkowników"
nNotes: "{n} wpisów"
sendErrorReports: "Wyślij raporty o błędach"
myTheme: "Mój motyw"
backgroundColor: "Tło"
accentColor: "Akcent"
textColor: "Tekst"
saveAs: "Zapisz jako…"
advanced: "Zaawansowane"
value: "Wartość"
createdAt: "Utworzono"
updatedAt: "Zaktualizowano"
saveConfirm: "Zapisać zmiany?"
deleteConfirm: "Na pewno usunąć?"
invalidValue: "Nieprawidłowa wartość."
registry: "Rejestr"
closeAccount: "Zamknij konto"
currentVersion: "Bieżąca wersja"
latestVersion: "Najnowsza wersja"
youAreRunningUpToDateClient: "Korzystasz z najnowszej wersji klienta."
newVersionOfClientAvailable: "Nowsza wersja klienta jest dostępna."
usageAmount: "Użycie"
capacity: "Pojemność"
inUse: "Użyto"
editCode: "Edytuj kod"
apply: "Zastosuj"
receiveAnnouncementFromInstance: "Otrzymuj powiadomienia e-mail z tej instancji"
emailNotification: "Powiadomienia e-mail"
publish: "Publikuj"
inChannelSearch: "Szukaj na kanale"
useReactionPickerForContextMenu: "Otwórz wybornik reakcji prawym kliknięciem"
typingUsers: "{users} pisze(-ą)..."
jumpToSpecifiedDate: "Przejdź do określonej daty"
showingPastTimeline: "Obecnie wyświetla starą oś czasu"
clear: "Wróć"
markAllAsRead: "Oznacz wszystkie jako przeczytane"
goBack: "Wróć"
unlikeConfirm: "Na pewno chcesz usunąć polubienie?"
fullView: "Pełny widok"
quitFullView: "Opuść pełny widok"
addDescription: "Dodaj opis"
info: "Informacje"
userInfo: "Informacje o użykowniku"
unknown: "Nieznane"
onlineStatus: "Status online"
hideOnlineStatus: "Ukryj status online"
hideOnlineStatusDescription: "Ukrywanie statusu online ogranicza wygody niektórych funkcji, tj. wyszukiwanie"
online: "Online"
active: "Aktywny"
offline: "Offline"
notRecommended: "Nie zalecane"
botProtection: "Zabezpieczenie przed botami"
instanceBlocking: "Zablokowane instancje"
selectAccount: "Wybierz konto"
enabled: "Właczono"
disabled: "Wyłączono"
quickAction: "Szybkie działania"
user: "Użytkownicy"
administration: "Zarządzanie"
accounts: "Konta"
switch: "Przełącz"
noMaintainerInformationWarning: "Informacje o administratorze nie są skonfigurowane."
noBotProtectionWarning: "Zabezpieczenie przed botami nie jest skonfigurowane."
configure: "Skonfiguruj"
postToGallery: "Opublikuj w galerii"
gallery: "Galeria"
recentPosts: "Ostatnie wpisy"
popularPosts: "Popularne wpisy"
shareWithNote: "Udostępnij z wpisem"
ads: "Reklamy"
expiration: "Ankieta kończy się"
memo: "Notatki"
priority: "Priorytet"
high: "Wysoki"
middle: "Średnie"
low: "Niski"
emailNotConfiguredWarning: "Nie podano adresu e-mail"
ratio: "Stosunek"
global: "Globalna"
sent: "Wyślij"
hashtags: "Hashtag"
_docs:
admin: "Zarządzanie"
_ad:
back: "Wróć"
reduceFrequencyOfThisAd: "Pokazuj tę reklamę rzadziej"
_forgotPassword:
ifNoEmail: "Jeżeli nie podano adresu e-mail podczas rejestracji, skontaktuj się z administratorem zamiast tego."
contactAdmin: "Jeżeli Twoja instancja nie obsługuje adresów e-mail, skontaktuj się zamiast tego z administratorem, aby zresetować hasło."
_gallery:
my: "Moja galeria"
liked: "Polubione wpisy"
like: "Polub"
unlike: "Cofnij polubienie"
_email:
_follow:
title: "Zaobserwował(a) Cię"
_receiveFollowRequest:
title: "Otrzymano prośbę o możliwość obserwacji"
_plugin:
install: "Zainstaluj wtyczki"
installWarn: "Nie instaluj niezaufanych wtyczek."
manage: "Zarządzanie wtyczkami"
_registry:
scope: "Zakres"
key: "Klucz"
keys: "Klucz"
domain: "Domena"
createKey: "Utwórz klucz"
_aboutMisskey:
about: "Misskey jest oprogramowanie open source rozwijanym przez syuilo od 2014."
@ -701,6 +814,7 @@ _mfm:
x4Description: "Czyni treść jeszcze większą niż jeszcze większa."
blur: "Rozmycie"
font: "Czcionka"
fontDescription: "Wybiera czcionkę do wyświetlania treści."
_reversi:
reversi: "Reversi"
gameSettings: "Ustawienia gry"
@ -749,9 +863,7 @@ _channel:
following: "Śledzeni"
usersCount: "{n} uczestnicy"
notesCount: "{n} wpisy"
_sidebar:
full: "Pełne"
icon: "Awatar"
_menuDisplay:
hide: "Ukryj"
_wordMute:
muteWords: "Słowo do wyciszenia"
@ -965,16 +1077,21 @@ _profile:
username: "Nazwa użytkownika"
description: "Opis"
youCanIncludeHashtags: "Możesz umieścić hashtagi w swoim opisie."
metadata: "Dodatkowe informacje"
metadataEdit: "Edytuj dodatkowe informacje"
metadataDescription: "Możesz wyświetlać do czterech sekcji dodatkowych informacji na swoim profilu."
metadataLabel: "Etykieta"
metadataContent: "Treść"
changeAvatar: "Zmień awatar"
changeBanner: "Zmień baner"
_exportOrImport:
allNotes: "Wszystkie wpisy"
followingList: "Obserwowani"
muteList: "Wycisz"
blockingList: "Zablokuj"
userLists: "Listy"
_charts:
federationInstancesTotal: "Łącznie sfederowanych instancji"
usersTotal: "Łącznie # użytkowników"
activeUsers: "Aktywni użytkownicy"
_instanceCharts:
@ -989,6 +1106,7 @@ _instanceCharts:
_timelines:
home: "Strona główna"
local: "Lokalne"
social: "Społeczność"
global: "Globalna"
_rooms:
roomOf: "Pokój {user}"
@ -1359,6 +1477,8 @@ _deck:
swapRight: "Przesuń w prawo"
swapUp: "Zamień z powyższym"
swapDown: "Zamień z poniższym"
stackLeft: "Przypnij do lewej"
popRight: "Odepnij w prawo"
profile: "Profil"
_columns:
main: "Główna"

View File

@ -6,25 +6,72 @@ notifications: "Notificações"
username: "Nome de usuário"
password: "Senha"
ok: "OK"
gotIt: "Entendi"
cancel: "Cancelar"
enterUsername: "Digite o nome de usuário"
renotedBy: "Repostado por {user}"
noNotes: "Sem posts"
settings: "Configurações"
basicSettings: "Configurações básicas"
otherSettings: "Outras configurações"
profile: "Perfil"
timeline: "Timeline"
logout: "Sair"
users: "Usuários"
favorite: "Favoritar"
favorites: "Favoritar"
showMore: "Ver mais"
youGotNewFollower: "Você tem um novo seguidor"
followRequestAccepted: "Pedido de seguir aceito"
note: "Post"
notes: "Posts"
enterEmoji: "Inserir emoji"
renote: "Repostar"
renoted: "Repostado"
cantRenote: "Não pode repostar"
cantReRenote: "Não pode repostar este repost"
pinnedNote: "Post fixado"
sensitive: "Conteúdo sensível"
mute: "Silenciar"
unmute: "Dessilenciar"
settingGuide: "Guia de configuração"
instances: "Instância"
registeredAt: "Registrado em"
perHour: "por hora"
perDay: "por dia"
noUsers: "Sem usuários"
messageRead: "Lida"
lightThemes: "Tema claro"
darkThemes: "Tema escuro"
addFile: "Adicionar arquivo"
nsfw: "Conteúdo sensível"
monthX: "mês de {month}"
pinnedNotes: "Post fixado"
smtpUser: "Nome de usuário"
smtpPass: "Senha"
user: "Usuários"
_email:
_follow:
title: "Você tem um novo seguidor"
_mfm:
search: "Pesquisar"
_theme:
keys:
renote: "Repostar"
_sfx:
note: "Posts"
notification: "Notificações"
_widgets:
notifications: "Notificações"
timeline: "Timeline"
_profile:
username: "Nome de usuário"
_exportOrImport:
muteList: "Silenciar"
_notification:
youWereFollowed: "Você tem um novo seguidor"
_types:
renote: "Repostar"
_deck:
_columns:
notifications: "Notificações"

View File

@ -7,6 +7,7 @@ search: "Поиск"
notifications: "Уведомления"
username: "Имя пользователя"
password: "Пароль"
forgotPassword: "Пароль забыт"
fetchingAsApObject: "Приём с других сайтов"
ok: "Окей"
gotIt: "Ясно!"
@ -80,6 +81,8 @@ somethingHappened: "Что-то пошло не так"
retry: "Повторить попытку"
pageLoadError: "Не удалось загрузить страницу"
pageLoadErrorDescription: "Обычно это случается из-за сбоев в сети или кэша браузера. Попробуйте очистить кэш, или подождать пару минут, а потом попытаться загрузить страницу снова."
serverIsDead: "Ответа от сервера нет. Пожалуйста, подождите немного и повторите попытку."
youShouldUpgradeClient: "Чтобы просмотреть эту страницу, пожалуйста, обновите ее."
enterListName: "Название списка"
privacy: "Конфиденциальность"
makeFollowManuallyApprove: "Принимать подписчиков вручную"
@ -127,6 +130,7 @@ editWidgets: "Редактировать виджеты"
editWidgetsExit: "Готово"
customEmojis: "Эмодзи пользователя"
emoji: "Эмодзи"
emojis: "Эмодзи"
emojiName: "Название эмодзи"
emojiUrl: "URL эмодзи"
addEmoji: "Добавить эмодзи"
@ -138,7 +142,7 @@ flagAsBotDescription: "Включите, если этот аккаунт упр
flagAsCat: "Аккаунт кота"
flagAsCatDescription: "Включите, и этот аккаунт будет помечен как кошачий."
autoAcceptFollowed: "Принимать подписчиков автоматически"
addAcount: "Добавить аккаунт"
addAccount: "Добавить учётную запись"
loginFailed: "Неудачная попытка входа"
showOnRemote: "Перейти к оригиналу на сайт"
general: "Общее"
@ -278,6 +282,7 @@ emptyDrive: "Диск пуст"
emptyFolder: "Папка пуста"
unableToDelete: "Удаление невозможно"
inputNewFileName: "Введите имя нового файла"
inputNewDescription: "Введите новую подпись"
inputNewFolderName: "Пожалуйста, введите новое имя папки!"
circularReferenceFolder: "Вы пытаетесь переместить папку внутрь себя."
hasChildFilesOrFolders: "Эта папка не пуста и не может быть удалена."
@ -309,8 +314,8 @@ monthX: "{month} месяц"
yearX: "{year} год"
pages: "Страницы"
integration: "Интеграция"
connectSerice: "Соединение"
disconnectSerice: "Отключение"
connectService: "Подключиться"
disconnectService: "Отключиться"
enableLocalTimeline: "Включить локальную ленту"
enableGlobalTimeline: "Включить глобальную ленту"
disablingTimelinesInfo: "У администраторов и модераторов есть доступ ко всем лентам, даже если они отключены."
@ -324,6 +329,7 @@ driveCapacityPerRemoteAccount: "Объём диска на одного поль
inMb: "В мегабайтах"
iconUrl: "Ссылка на аватар"
bannerUrl: "Ссылка на изображение в шапке"
backgroundImageUrl: "Ссылка на фоновое изображение"
basicInfo: "Общая информация"
pinnedUsers: "Прикреплённый пользователь"
pinnedUsersDescription: "Перечислите по одному имени пользователя в строке. Пользователи, перечисленные здесь, будут привязаны к закладке \"Изучение\"."
@ -349,7 +355,6 @@ antennaExcludeKeywords: "Исключения"
antennaKeywordsDescription: "Пишите слова через пробел в одной строке, чтобы ловить их появление вместе; на отдельных строках располагайте слова, или группы слов, чтобы ловить любые из них."
notifyAntenna: "Уведомлять о новых заметках"
withFileAntenna: "Только заметки с вложениями"
serviceworker: "ServiceWorker"
enableServiceworker: "Включить ServiceWorker"
antennaUsersDescription: "Пишите каждое название аккаута на отдельной строке"
caseSensitive: "С учётом регистра"
@ -453,7 +458,7 @@ category: "Категория"
tags: "Метки"
docSource: "Источник документа"
createAccount: "Новая учётная запись"
existingAcount: "Уже существующий"
existingAccount: "Существующая учётная запись"
regenerate: "Создать повторно"
fontSize: "Размер шрифта"
noFollowRequests: "Нерассмотренные запросы на подписку отсутствуют"
@ -526,7 +531,9 @@ removeAllFollowing: "Удалить всех подписчиков"
removeAllFollowingDescription: "Отменить все подписки с домена {host}? Пожалуйста, применяйте это действие, если инстанс больше не существует."
userSuspended: "Эта учётная запись заморожена"
userSilenced: "Этот пользователь был заглушен"
sidebar: "Боковая панель"
yourAccountSuspendedTitle: "Эта учетная запись заблокирована"
yourAccountSuspendedDescription: "Эта учетная запись была заблокирована из-за нарушения условий предоставления услуг сервера. Свяжитесь с администратором, если вы хотите узнать более подробную причину. Пожалуйста, не создавайте новую учетную запись."
menu: "Меню"
divider: "Линия-разделитель"
addItem: "Добавить элемент"
rooms: "Комната"
@ -546,6 +553,8 @@ disablePlayer: "Выключить проигрыватель"
expandTweet: "Развернуть твит"
themeEditor: "Редактор темы оформления"
description: "Описание"
describeFile: "Добавить подпись"
enterFileDescription: "Введите подпись"
author: "Автор"
leaveConfirm: "Вы не сохранили изменения. Хотите выйти и потерять их?"
manage: "Управление"
@ -568,7 +577,7 @@ pluginTokenRequestedDescription: "Это расширение сможет по
notificationType: "Тип уведомления"
edit: "Изменить"
useStarForReactionFallback: "Ставить ★ в качестве реакции вместо неизвестного эмодзи"
emailConfig: "Настройки почтового сервера"
emailServer: "Сервер электронной почты"
enableEmail: "Включить обмен электронной почтой"
emailConfigInfo: "Используется для подтверждения адреса электронной почты и сброса пароля."
email: "Электронная почта"
@ -687,6 +696,7 @@ textColor: "Текст"
saveAs: "Сохранить под названием…"
advanced: "Для продвинутых"
value: "Значения"
createdAt: "Создано"
updatedAt: "Обновлено"
saveConfirm: "Сохранить изменения?"
deleteConfirm: "Удалить?"
@ -704,14 +714,97 @@ editCode: "Редактировать исходный текст"
apply: "Применить"
receiveAnnouncementFromInstance: "Получать оповещения с инстанса"
emailNotification: "Уведомления по электронной почте"
publish: "Опубликовать"
inChannelSearch: "Поиск по каналу"
useReactionPickerForContextMenu: "Открывать палитру реакций правой кнопкой"
typingUsers: "Стук клавиш. Это {users}…"
jumpToSpecifiedDate: "Перейти к заданной дате"
showingPastTimeline: "Отображается старая лента"
clear: "Очистить"
markAllAsRead: "Отметить всё как прочитанное"
goBack: "Выход"
unlikeConfirm: "В самом деле отменить «нравится»?"
fullView: "Полный вид"
quitFullView: "Закрыть полный вид"
addDescription: "Добавить описание"
userPagePinTip: "Можно добавить сюда заметки, выбрав нужную, и включив в её меню пункт «Закрепить в профиле»."
notSpecifiedMentionWarning: "В этой заметке есть упоминание тех, кто не включён в адресаты"
info: "Описание"
userInfo: "Сведения о пользователе"
unknown: "Неизвестно"
onlineStatus: "Присутствие в сети"
hideOnlineStatus: "Скрыть присутствие"
hideOnlineStatusDescription: "Сокрытие присутствия делает некоторые функции, такие как поиск, менее удобными."
online: "В сети"
active: "Действует"
offline: "Не в сети"
notRecommended: "Не рекомендуется"
botProtection: "Ботозащита"
instanceBlocking: "Блокировка инстансов"
selectAccount: "Выберите учётную запись"
enabled: "Вкл."
disabled: "Откл."
quickAction: "Быстрое действие"
user: "Пользователи"
administration: "Управление"
accounts: "Учётные записи"
switch: "Переключение"
noMaintainerInformationWarning: "Не заполнены сведения об администраторах"
noBotProtectionWarning: "Ботозащита не настроена"
configure: "Настроить"
postToGallery: "Опубликовать в галерею"
gallery: "Галерея"
recentPosts: "Недавние публикации"
popularPosts: "Популярные публикации"
shareWithNote: "Поделиться заметкой"
ads: "Реклама"
expiration: "Опрос длится"
memo: "Памятка"
priority: "Приоритет"
high: "Высокий"
middle: "Средне"
low: "Низкий"
emailNotConfiguredWarning: "Не указан адрес электронной почты"
ratio: "Соотношение"
customCss: "Индивидуальный CSS"
customCssWarn: "Используйте эту настройку только если знаете, что делаете. Ошибки здесь чреваты тем, что сайт перестанет нормально работать у вас."
global: "Всеобщая"
squareAvatars: "Квадратные аватарки"
sent: "Отправить"
received: "Получено"
searchResult: "Результаты поиска"
hashtags: "Хэштег"
troubleshooting: "Разрешение проблем"
useBlurEffect: "Размытие в интерфейсе"
learnMore: "Подробнее"
misskeyUpdated: "Misskey обновился!"
whatIsNew: "Что новенького?"
translate: "Перевод"
accountDeletionInProgress: "В настоящее время выполняется удаление учетной записи"
usernameInfo: "Имя, которое отличает вашу учетную запись от других на этом сервере. Вы можете использовать алфавит (a~z, A~Z), цифры (0~9) или символы подчеркивания (_). Имена пользователей не могут быть изменены позже."
aiChanMode: "ИИ режим"
keepCw: "Сохраняйте Предупреждения о содержимом"
controllPanel: "Панель управления"
manageAccounts: "Управление аккаунтом"
_docs:
continueReading: "Читать подробнее"
features: "Возможности"
generalTopics: "Основные темы"
advancedTopics: "Дополнительные темы"
admin: "Управление"
translateWarn: "Это перевод документа. Он может неточно отражать содержимое оригинала."
_ad:
back: "Выход"
reduceFrequencyOfThisAd: "Реже показывать эту рекламу"
_forgotPassword:
enterEmail: "Введите адрес электронной почты, который ввели при регистрации. На неё будет выслана ссылка для смены пароля."
ifNoEmail: "Если вы не ввели свой адрес электронной почты, свяжитесь с администратором ресурса, чтобы сменить пароль."
contactAdmin: "Здесь не используются адреса электронной почты, так что свяжитесь с администратором, чтобы поменять пароль."
_gallery:
my: "Личная"
liked: "Понравившееся"
like: "Нравится!"
unlike: "Отменить «нравится»"
_email:
_follow:
title: "Новый подписчик"
@ -798,6 +891,8 @@ _mfm:
blurDescription: "Размывает текст до нечитаемости, будто его поместили за матовое стекло. Наведение указателя мыши на размытый текст возвращает чёткость."
font: "Шрифт"
fontDescription: "Так можно писать произвольным шрифтом."
rainbow: "Радуга"
rainbowDescription: "Заставлять содержимое отображаться в цветах радуги."
_reversi:
reversi: "Реверси"
gameSettings: "Настройки игры"
@ -849,9 +944,10 @@ _channel:
following: "Подписки"
usersCount: "Участников: {n}"
notesCount: "Заметок: {n}"
_sidebar:
full: "Полностью"
icon: "Только значки"
_menuDisplay:
sideFull: "Сторона"
sideIcon: "Сторона (иконки)"
top: "Вверх"
hide: "Спрятать"
_wordMute:
muteWords: "Скрыть слово"
@ -1063,6 +1159,7 @@ _widgets:
jobQueue: "Очередь заданий"
serverMetric: "Показатели сервера"
aiscript: "Консоль AiScript"
aichan: "Ай"
_cw:
hide: "Спрятать"
show: "Показать еще"

View File

@ -127,6 +127,7 @@ editWidgets: "Редагувати віджети"
editWidgetsExit: "Готово"
customEmojis: "Кастомні емоджі"
emoji: "Емоджі"
emojis: "Емоджі"
emojiName: "Назва емоджі"
emojiUrl: "URL емодзі"
addEmoji: "Додати емодзі"
@ -138,7 +139,6 @@ flagAsBotDescription: "Ввімкніть якщо цей обліковий з
flagAsCat: "Акаунт кота"
flagAsCatDescription: "Ввімкніть, щоб позначити, що обліковий запис є котиком."
autoAcceptFollowed: "Автоматично приймати запити на підписку від користувачів, на яких ви підписані"
addAcount: "Додати акаунт"
loginFailed: "Не вдалося увійти"
showOnRemote: "Переглянути в оригіналі"
general: "Загальне"
@ -308,8 +308,6 @@ monthX: "{month}"
yearX: "{year}"
pages: "Сторінки"
integration: "Інтеграція"
connectSerice: "Під’єднати"
disconnectSerice: "Відключитися"
enableLocalTimeline: "Увімкнути локальну стрічку"
enableGlobalTimeline: "Увімкнути глобальну стрічку"
disablingTimelinesInfo: "Адміністратори та модератори завжди мають доступ до всіх стрічок, навіть якщо вони вимкнуті."
@ -347,7 +345,6 @@ antennaExcludeKeywords: "Винятки"
antennaKeywordsDescription: "Розділення ключових слів пробілами для \"І\" або з нової лінійки для \"АБО\""
notifyAntenna: "Сповіщати про нові нотатки"
withFileAntenna: "Тільки нотатки з вкладеними файлами"
serviceworker: "ServiceWorker"
enableServiceworker: "Ввімкнути ServiceWorker"
antennaUsersDescription: "Список імя користувачів в стопчик"
caseSensitive: "З урахуванням регістру"
@ -450,7 +447,6 @@ category: "Категорія"
tags: "Теги"
docSource: "Джерело цього документа"
createAccount: "Створити акаунт"
existingAcount: "Існуючий акаунт"
regenerate: "Оновити"
fontSize: "Розмір шрифту"
noFollowRequests: "Немає запитів на підписку"
@ -522,7 +518,6 @@ removeAllFollowing: "Скасувати всі підписки"
removeAllFollowingDescription: "Скасувати підписку на всі акаунти з {host}. Будь ласка, робіть це, якщо інстанс більше не існує."
userSuspended: "Обліковий запис заблокований."
userSilenced: "Обліковий запис приглушений."
sidebar: "Бокова панель"
divider: "Розділювач"
addItem: "Додати елемент"
rooms: "Кімнати"
@ -564,7 +559,6 @@ pluginTokenRequestedDescription: "Цей плагін зможе викорис
notificationType: "Тип сповіщення"
edit: "Редагувати"
useStarForReactionFallback: "Використовувати ★ як запасний варіант, якщо емодзі реакції невідомий"
emailConfig: "Налаштування email сервера"
enableEmail: "Увімкнути функцію доставки пошти"
emailConfigInfo: "Використовується для підтвердження електронної пошти підчас реєстрації, а також для відновлення паролю."
email: "E-mail"
@ -691,6 +685,19 @@ registry: "Реєстр"
closeAccount: "Закрити обліковий запис"
goBack: "Назад"
info: "Інформація"
user: "Користувачі"
administration: "Управління"
expiration: "Опитування закінчується"
middle: "Середній"
global: "Глобальна"
sent: "Відправити"
hashtags: "Хештеґ"
_docs:
admin: "Управління"
_ad:
back: "Назад"
_gallery:
unlike: "Не вподобати"
_email:
_follow:
title: "Новий підписник"
@ -814,9 +821,7 @@ _channel:
following: "Підписки"
usersCount: "{n} учасників"
notesCount: "{n} дописів"
_sidebar:
full: "Повна"
icon: "Аватар"
_menuDisplay:
hide: "Сховати"
_wordMute:
muteWords: "Заглушені слова"

View File

@ -1,12 +1,13 @@
---
_lang_: "中文(简体)"
headlineMisskey: "通过帖子连接在一起的网络"
introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能可以让你快速地对大家的帖表达反馈👍\n来探索新的世界吧🚀"
introMisskey: "欢迎Misskey是一个开源的、去中心化的“微博客”服务。\n通过编写「帖」来和大家分享你的以及你周围的事情吧!📡\n通过「回应」功能可以让你快速地对大家的帖表达反馈👍\n来探索新的世界吧🚀"
monthAndDay: "{month}月 {day}日"
search: "搜索"
notifications: "通知"
username: "用户名"
password: "密码"
forgotPassword: "重置密码"
fetchingAsApObject: "联合查询中"
ok: "OK"
gotIt: "我明白了"
@ -62,33 +63,35 @@ import: "导入"
export: "导出"
files: "文件"
download: "下载"
driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会消失。"
driveFileDeleteConfirm: "要删除「{name}」文件吗?附加此文件的帖子也会被删除。"
unfollowConfirm: "要取消对{name}的关注吗?"
exportRequested: "导出请求已提交可能需要花一些时间导出的文件将保存到网盘中。"
importRequested: "导入请求已提交这可能需要花一点时间。"
exportRequested: "导出请求已提交,这可能需要花一些时间导出的文件将保存到网盘中。"
importRequested: "导入请求已提交这可能需要花一点时间。"
lists: "列表"
noLists: "列表为空"
note: "帖子"
notes: "帖子"
following: "关注中"
followers: "关注者"
followsYou: "关注你"
followsYou: "正在关注你"
createList: "创建列表"
manageLists: "管理列表"
error: "错误"
somethingHappened: "出现了问题"
somethingHappened: "出现了一些问题"
retry: "重试"
pageLoadError: "页面加载失败。"
pageLoadErrorDescription: "这通常是由于网络或浏览器缓存的原因。请清除缓存或等待片刻后重试。"
serverIsDead: "服务器没有响应。 请稍等片刻,然后重试。"
youShouldUpgradeClient: "请重新加载并使用新版本的客户端查看此页面。"
enterListName: "输入列表名称"
privacy: "隐私"
makeFollowManuallyApprove: "关注者请求需要批准"
makeFollowManuallyApprove: "关注者的关注请求需要批准"
defaultNoteVisibility: "默认可见性"
follow: "关注"
followRequest: "关注申请"
followRequests: "关注申请"
unfollow: "取消关注"
followRequestPending: "发送关注请"
followRequestPending: "发送关注请"
enterEmoji: "输入表情符号"
renote: "转发"
unrenote: "取消转发"
@ -105,7 +108,7 @@ add: "添加"
reaction: "回应"
reactionSettingDescription: "选择您想要置顶的回应。"
reactionSettingDescription2: "拖动重新排序,单击删除,点击 + 添加。"
rememberNoteVisibility: "记录公开范围"
rememberNoteVisibility: "保存上次设置的可见性"
attachCancel: "删除附件"
markAsSensitive: "标记为敏感内容"
unmarkAsSensitive: "取消标记为敏感内容"
@ -127,18 +130,19 @@ editWidgets: "编辑小工具"
editWidgetsExit: "完成编辑"
customEmojis: "自定义表情符号"
emoji: "表情符号"
emojis: "表情符号"
emojiName: "表情符号名称"
emojiUrl: "表情符号地址"
addEmoji: "添加表情符号"
settingGuide: "推荐配置"
cacheRemoteFiles: "远程文件缓存"
cacheRemoteFilesDescription: "当禁用此设定时远程文件将直接从远程实例载入。禁用后会减小储存空间需求,但是会增加流量,因为缩略图不会被生成。"
flagAsBot: "这个账户是Bot"
flagAsBot: "这是一个机器人账号"
flagAsBotDescription: "如果此帐户由程序控制请启用此项。启用后此标志可以帮助其他开发人员防止机器人之间产生无限互动的行为并让Misskey的内部系统将此帐户识别为机器人。"
flagAsCat: "这个账户是Cat"
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。"
autoAcceptFollowed: "自动允许关注"
addAcount: "添加账户"
flagAsCat: "这个账户是一只猫"
flagAsCatDescription: "如果您想表明此帐户是一只猫,请打开此标志。\n开启后会在您的头像上出现猫耳朵并将你的帖子中的「na」替换为「nya」日文同理。"
autoAcceptFollowed: "自动允许关注者的关注"
addAccount: "添加账户"
loginFailed: "登录失败"
showOnRemote: "转到所在实例显示"
general: "常规设置"
@ -171,9 +175,9 @@ software: "软件"
version: "版本"
metadata: "元数据"
withNFiles: "{n}个文件"
monitor: "监视器"
monitor: "服务器状态"
jobQueue: "作业队列"
cpuAndMemory: "CPU使用量"
cpuAndMemory: "CPU和内存"
network: "网络"
disk: "存储"
instanceInfo: "实例信息"
@ -210,7 +214,7 @@ instanceFollowing: "关注实例"
instanceFollowers: "关注实例"
instanceUsers: "实例用户"
changePassword: "修改密码"
security: "安全"
security: "安全"
retypedNotMatch: "两次输入不一致!"
currentPassword: "现在的密码"
newPassword: "新密码"
@ -230,18 +234,18 @@ deleteAreYouSure: "要删掉「{x}」吗?"
resetAreYouSure: "恢复默认设置?"
saved: "已保存"
messaging: "聊天"
upload: "上传"
upload: "本地上传"
fromDrive: "从网盘中"
fromUrl: "从 URL"
uploadFromUrl: "从网址上传"
uploadFromUrlDescription: "要上传的文件的URL"
uploadFromUrlDescription: "输入文件的URL"
uploadFromUrlRequested: "请求上传"
uploadFromUrlMayTakeTime: "上传可能需要一些时间完成。"
explore: "发现"
games: "Misskey游戏"
messageRead: "已读"
noMoreHistory: "没有更多的历史记录"
startMessaging: "开始聊天"
startMessaging: "添加聊天"
nUsersRead: "{n}人已读"
agreeTo: "{0}人同意"
tos: "服务条款"
@ -259,8 +263,8 @@ themeForLightMode: "在浅色模式下使用的主题"
themeForDarkMode: "在深色模式下使用的主题"
light: "浅色"
dark: "深色"
lightThemes: "色主题"
darkThemes: "色主题"
lightThemes: "色主题"
darkThemes: "色主题"
syncDeviceDarkMode: "将深色模式与设备设置同步"
drive: "网盘"
fileName: "文件名称"
@ -274,23 +278,24 @@ createFolder: "创建文件夹"
renameFolder: "重命名文件夹"
deleteFolder: "删除文件夹"
addFile: "添加文件"
emptyDrive: "驱动器为空"
emptyFolder: "文件夹"
emptyDrive: "网盘中无文件"
emptyFolder: "文件夹中无文件"
unableToDelete: "无法删除"
inputNewFileName: "请输入新文件名"
inputNewFolderName: "请输入新文件名"
inputNewDescription: "请输入新标题"
inputNewFolderName: "请输入新文件夹名"
circularReferenceFolder: "目标文件夹是您要移动的文件夹的子文件夹。"
hasChildFilesOrFolders: "此文件夹不为空,无法删除。"
hasChildFilesOrFolders: "此文件夹中有文件,无法删除。"
copyUrl: "复制链接"
rename: "重命名"
avatar: "头像"
banner: "Banner"
banner: "横幅"
nsfw: "敏感内容"
whenServerDisconnected: "与服务器连接中断时"
disconnectedFromServer: "已服务器断开连接"
disconnectedFromServer: "已服务器断开连接"
reload: "重新加载"
doNothing: "什么都不做"
reloadConfirm: "确定要重新加载吗"
doNothing: "关闭弹窗"
reloadConfirm: "确定要重新加载吗"
watch: "关注"
unwatch: "取消关注"
accept: "允许"
@ -309,8 +314,8 @@ monthX: "{month}月"
yearX: "{year}年"
pages: "页面"
integration: "关联"
connectSerice: "连接"
disconnectSerice: "断开连接"
connectService: "连接"
disconnectService: "断开连接"
enableLocalTimeline: "启用本地时间线功能"
enableGlobalTimeline: "启用全局时间线"
disablingTimelinesInfo: "即使时间线功能被禁用,出于便利性的原因,管理员和数据图表也可以继续使用。"
@ -323,13 +328,14 @@ driveCapacityPerLocalAccount: "每个用户的网盘空间"
driveCapacityPerRemoteAccount: "每个远程用户的网盘容量"
inMb: "以兆字节(MegaByte)为单位"
iconUrl: "图标URL"
bannerUrl: "Banner URL"
bannerUrl: "横幅URL"
backgroundImageUrl: "背景图URL"
basicInfo: "基本信息"
pinnedUsers: "置顶用户"
pinnedUsersDescription: "在「发现」页面中使用换行标记想要置顶的用户。"
pinnedPages: "固定页面"
pinnedPagesDescription: "输入您要固定到实例首页的页面路径,以换行符分隔。"
pinnedClipId: "置顶的片段ID"
pinnedClipId: "置顶的书签ID"
pinnedNotes: "已置顶的帖子"
hcaptcha: "hCaptcha"
enableHcaptcha: "启用 hCaptcha"
@ -347,14 +353,13 @@ antennaSource: "接收来源"
antennaKeywords: "包含关键字"
antennaExcludeKeywords: "排除关键字"
antennaKeywordsDescription: "使用空格分隔会产生AND规范并且使用换行符分隔会产生OR规范"
notifyAntenna: "通知新帖子"
notifyAntenna: "开启通知"
withFileAntenna: "仅带有附件的帖子"
serviceworker: "ServiceWorker"
enableServiceworker: "启用ServiceWorker"
antennaUsersDescription: "指定用户名,用换行符分隔"
caseSensitive: "区分大小写"
withReplies: "包括回复"
connectedTo: "您的账号已连到接以下社交账号"
connectedTo: "您的账号已连到接以下第三方账号"
notesAndReplies: "帖子与回复"
withFiles: "附件"
silence: "禁言"
@ -362,8 +367,8 @@ silenceConfirm: "确认要禁言吗?"
unsilence: "解除禁言"
unsilenceConfirm: "要解除禁言吗?"
popularUsers: "热门用户"
recentlyUpdatedUsers: "最近投稿用户"
recentlyRegisteredUsers: "最近登录用户"
recentlyUpdatedUsers: "最近投稿用户"
recentlyRegisteredUsers: "最近登录用户"
recentlyDiscoveredUsers: "最近发现的用户"
exploreUsersCount: "有{count}个用户"
exploreFediverse: "探索Fediverse"
@ -372,9 +377,9 @@ userList: "列表"
about: "关于"
aboutMisskey: "关于 Misskey"
administrator: "管理员"
token: "令牌"
token: "Token (令牌)"
twoStepAuthentication: "两步验证"
moderator: "版主"
moderator: "监察员"
nUsersMentioned: "{n} 被提到"
securityKey: "安全密钥"
securityKeyName: "密钥名称"
@ -416,7 +421,7 @@ noteOf: "{user}的帖子"
inviteToGroup: "群组邀请"
maxNoteTextLength: "帖子的字数限制"
quoteAttached: "已引用"
quoteQuestion: "是否将其作为引用附上"
quoteQuestion: "是否引用此链接内容"
noMessagesYet: "现在没有新的聊天"
newMessageExists: "新信息"
onlyOneFileCanBeAttached: "只能添加一个附件"
@ -440,9 +445,9 @@ tapSecurityKey: "轻触硬件安全密钥"
or: "或者"
language: "语言"
uiLanguage: "显示语言"
groupInvited: "群组招待"
groupInvited: "您有新的群组邀请"
aboutX: "关于 {x}"
useOsNativeEmojis: "使用OS原生表情符号"
useOsNativeEmojis: "使用系统的原生表情符号"
youHaveNoGroups: "没有群组"
joinOrCreateGroup: "请加入一个现有的群组,或者创建新群组。"
noHistory: "没有历史记录"
@ -453,12 +458,12 @@ category: "类别"
tags: "标签"
docSource: "文件来源"
createAccount: "注册账户"
existingAcount: "现有的帐户"
existingAccount: "现有的帐户"
regenerate: "重新生成"
fontSize: "字体大小"
noFollowRequests: "没有关注申请"
openImageInNewTab: "在新标签页中打开图片"
dashboard: "Dashboard"
dashboard: "管理面板"
local: "本地"
remote: "远程"
total: "总计"
@ -490,12 +495,12 @@ objectStorageUseProxy: "使用代理"
objectStorageUseProxyDesc: "如果您不使用代理进行API连接请将其关闭。"
objectStorageSetPublicRead: "上传时设置为public-read"
serverLogs: "服务器日志"
deleteAll: "删除全部"
showFixedPostForm: "在时间线顶部显示帖子表单"
deleteAll: "全部删除"
showFixedPostForm: "在时间线顶部显示发帖框"
newNoteRecived: "有新的帖子"
sounds: "音"
listen: "听"
none: ""
sounds: "提示音"
listen: "听"
none: ""
showInPage: "在页面中显示"
popout: "弹窗"
volume: "音量"
@ -507,15 +512,15 @@ recentUsed: "最近使用"
install: "安装"
uninstall: "卸载"
installedApps: "已授权的应用"
nothing: "没什么"
nothing: "没"
installedDate: "授权日期"
lastUsedDate: "最近使用"
state: "状态"
sort: "排序"
ascendingOrder: "升序"
descendingOrder: "降序"
scratchpad: "便签本"
scratchpadDescription: "便签本为AiScript提供了实验环境。您可以编写代码以与Misskey交互运行它并查看结果。"
scratchpad: "AiScript控制台"
scratchpadDescription: "AiScript控制台为AiScript提供了实验环境。您可以编写代码以与Misskey交互运行它并查看结果。"
output: "输出"
script: "脚本"
disablePagesScript: "禁用页面脚本"
@ -526,7 +531,9 @@ removeAllFollowing: "取消所有关注"
removeAllFollowingDescription: "取消{host}的所有关注者。当实例不存在时执行。"
userSuspended: "该用户已被冻结。"
userSilenced: "该用户已被禁言。"
sidebar: "侧边栏"
yourAccountSuspendedTitle: "账户已被冻结"
yourAccountSuspendedDescription: "由于违反了服务器的服务条款或其他原因,该账户已被冻结。 您可以与管理员联系以了解更多信息。 请不要创建一个新的帐户。"
menu: "菜单"
divider: "分割线"
addItem: "添加项目"
rooms: "房间"
@ -543,9 +550,11 @@ poll: "调查问卷"
useCw: "隐藏内容"
enablePlayer: "打开播放器"
disablePlayer: "关闭播放器"
expandTweet: "展开贴文"
expandTweet: "展开帖子"
themeEditor: "主题编辑器"
description: "描述"
describeFile: "添加标题"
enterFileDescription: "输入标题"
author: "作者"
leaveConfirm: "存在未保存的更改。要放弃更改吗?"
manage: "管理"
@ -568,7 +577,7 @@ pluginTokenRequestedDescription: "此插件将能够拥有此处设置的权限"
notificationType: "通知类型"
edit: "编辑"
useStarForReactionFallback: "如果回应的是未知表情符号,则使用★作为代替"
emailConfig: "邮件服务器设置"
emailServer: "邮件服务器"
enableEmail: "启用发送邮件功能"
emailConfigInfo: "用于确认电子邮件和密码重置"
email: "邮箱"
@ -587,10 +596,10 @@ userSaysSomething: "{name}说了什么"
makeActive: "启用"
display: "显示"
copy: "复制"
metrics: "指标"
overview: "概述"
metrics: "服务器监控"
overview: "服务器概况"
logs: "日志"
delayed: "延迟"
delayed: "滞后"
database: "数据库"
channel: "频道"
create: "创建"
@ -623,17 +632,17 @@ random: "随机"
system: "系统"
switchUi: "切换界面"
desktop: "桌面"
clip: "片段"
clip: "书签"
createNew: "新建"
optional: "可选"
createNewClip: "新建片段"
createNewClip: "新建书签"
public: "公开"
i18nInfo: "Misskey已经被志愿者们翻译到了各种语言。如果你也有兴趣可以通过{link}帮助翻译。"
manageAccessTokens: "管理 Access Tokens"
accountInfo: "帐户信息"
notesCount: "贴文数量"
notesCount: "帖子数量"
repliesCount: "回复数量"
renotesCount: "转数量"
renotesCount: "转数量"
repliedCount: "回复数"
renotedCount: "转发数"
followingCount: "正在关注数量"
@ -644,9 +653,9 @@ pollVotesCount: "问卷调查的投票数"
pollVotedCount: "问卷调查的被投票数"
yes: "是"
no: "否"
driveFilesCount: "磁盘文件数"
driveUsage: "磁盘空间用量"
noCrawle: "拒绝搜索的索引"
driveFilesCount: "网盘的文件数"
driveUsage: "网盘的空间用量"
noCrawle: "拒绝搜索引擎的索引"
noCrawleDescription: "要求搜索引擎不要收录(索引)您的用户页面,帖子,页面等。"
lockedAccountInfo: "即使通过了关注请求,只要您不将帖子可见范围设置成“关注者”,任何人都可以看到您的帖子。"
alwaysMarkSensitive: "默认将媒体文件标记为敏感内容"
@ -661,7 +670,7 @@ pageLikedCount: "页面被点赞次数"
reversiCount: "黑白棋对战次数"
contact: "联系人"
useSystemFont: "使用系统默认字体"
clips: "片段"
clips: "书签"
experimentalFeatures: "实验性功能"
developer: "开发者"
makeExplorable: "使账号可见。"
@ -693,7 +702,7 @@ saveConfirm: "确定保存?"
deleteConfirm: "确定删除?"
invalidValue: "无效值。"
registry: "注册表"
closeAccount: "关闭账户"
closeAccount: "永久注销账户"
currentVersion: "当前版本"
latestVersion: "最新版本"
youAreRunningUpToDateClient: "您所使用的客户端已经是最新的。"
@ -705,6 +714,7 @@ editCode: "编辑代码"
apply: "应用"
receiveAnnouncementFromInstance: "从实例接收通知"
emailNotification: "邮件通知"
publish: "发布"
inChannelSearch: "频道内搜索"
useReactionPickerForContextMenu: "单击右键打开回应工具栏"
typingUsers: "{users}正在输入"
@ -728,11 +738,100 @@ hideOnlineStatusDescription: "隐藏在线状态后,可能会降低例如搜
online: "在线"
active: "活动"
offline: "离线"
notRecommended: "不推荐"
botProtection: "Bot防御"
instanceBlocking: "被阻拦的实例"
selectAccount: "选择账户"
enabled: "已启用"
disabled: "已禁用 "
quickAction: "快捷操作"
user: "用户"
administration: "管理"
accounts: "账户"
switch: "切换"
noMaintainerInformationWarning: "管理人员信息未设置。"
noBotProtectionWarning: "Bot保护未设置。"
configure: "设置"
postToGallery: "发送到图库"
gallery: "图库"
recentPosts: "最新发布"
popularPosts: "热门投稿"
shareWithNote: "在帖子中分享"
ads: "广告"
expiration: "截止时间"
memo: "便笺"
priority: "优先级"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "电子邮件地址未设置。"
ratio: "比率"
previewNoteText: "预览文本"
customCss: "自定义 CSS"
customCssWarn: "这些设置必须有相关的基础知识,不当的配置可能导致客户端无法正常使用!"
global: "全局"
squareAvatars: "显示方形头像图标"
sent: "发送"
received: "收取"
searchResult: "搜索结果"
hashtags: "话题标签"
troubleshooting: "故障排除"
useBlurEffect: "在UI上使用模糊效果"
learnMore: "更多信息"
misskeyUpdated: "Misskey更新完成"
whatIsNew: "显示更新信息"
translate: "翻译"
translatedFrom: "从 {x} 翻译"
accountDeletionInProgress: "正在删除账户"
usernameInfo: "在服务器上唯一标识您的帐户的名称。您可以使用字母 (a ~ z, A ~ Z)、数字 (0 ~ 9) 和下划线 (_)。用户名以后不能更改。"
aiChanMode: "小蓝模式"
keepCw: "保留CW"
pubSub: "Pub/Sub账户"
lastCommunication: "最近通信"
resolved: "已解决"
unresolved: "未解决"
itsOn: "已开启"
itsOff: "已关闭"
emailRequiredForSignup: "注册账户需要电子邮件地址"
unread: "未读"
filter: "筛选"
controllPanel: "控制面板"
manageAccounts: "管理账户"
_signup:
almostThere: "即将完成"
emailAddressInfo: "请输入您所使用的电子邮件地址"
emailSent: "已将确认邮件发送至您输入的电子邮件地址 ({email})。请访问电子邮件中的链接以完成帐户创建。"
_accountDelete:
accountDelete: "删除帐户"
mayTakeTime: "删除账号是一个性能损耗较大的处理,如果账号持有的内容数量和上传的文件数量较多的话,完成需要花费一段时间。"
sendEmail: "账户删除完成后,将向注册的电子邮件地址发送通知。"
requestAccountDelete: "请求删除账户"
started: "账户删除过程已开始。"
inProgress: "正在删除"
_docs:
continueReading: "继续阅读"
features: "特性"
generalTopics: "通常提示"
advancedTopics: "进阶提示"
admin: "管理"
translateWarn: "本文档是翻译后的文档。内容可能与原文有所不同。"
_ad:
back: "返回"
reduceFrequencyOfThisAd: "减少此广告的频率"
_forgotPassword:
enterEmail: "请输入您验证账号时用的电子邮箱地址,密码重置链接将发送至该邮箱上。"
ifNoEmail: "如果您没有使用电子邮件地址进行验证,请联系管理员。"
contactAdmin: "该实例不支持发送电子邮件。如果您想重设密码,请联系管理员。"
_gallery:
my: "我的图库"
liked: "喜欢的图片"
like: "喜欢"
unlike: "取消喜欢"
_email:
_follow:
title: "你有新的关注者"
_receiveFollowRequest:
title: "收到关注请求"
title: "收到关注请求"
_plugin:
install: "安装插件"
installWarn: "请不要安装不可信的插件。"
@ -814,6 +913,10 @@ _mfm:
blurDescription: "产生模糊效果。将鼠标指针放在上面即可将内容显示出来。"
font: "字体"
fontDescription: "可以设置内容所使用的字体。"
rainbow: "彩虹"
rainbowDescription: "用彩虹色来显示内容。"
sparkle: "闪光"
sparkleDescription: "添加发光粒子效果。"
_reversi:
reversi: "黑白棋"
gameSettings: "对局设置"
@ -865,19 +968,20 @@ _channel:
following: "正在关注"
usersCount: "有{n}人参与"
notesCount: "有{n}个帖子"
_sidebar:
full: "全部"
icon: "图标"
_menuDisplay:
sideFull: "横向"
sideIcon: "横向(图标)"
top: "顶部"
hide: "隐藏"
_wordMute:
muteWords: "禁用词"
muteWordsDescription: "使用空格分隔表示AND逻辑使用换行符分隔表示OR逻辑。"
muteWordsDescription2: "将关键字用斜线括起来表示正则表达式。"
softDescription: "隐藏时间线中指定条件的帖。"
hardDescription: "防止将具有指定条件的帖添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。"
softDescription: "隐藏时间线中指定条件的帖。"
hardDescription: "防止将具有指定条件的帖添加到时间线。 即使您更改条件,未添加的帖文也会被排除在外。"
soft: "软屏蔽"
hard: "硬屏蔽"
mutedNotes: "被屏蔽的帖"
mutedNotes: "被屏蔽的帖"
_theme:
explore: "寻找主题"
install: "安装主题"
@ -903,8 +1007,8 @@ _theme:
argument: "参数"
basedProp: "基于的属性名称"
alpha: "不透明度"
darken: "色"
lighten: "色"
darken: "色"
lighten: "色"
inputConstantName: "请输入常量名称"
importInfo: "您可以在此处粘贴主题代码,将其导入到编辑器中"
deleteConstantConfirm: "确定要删除常量{const}吗?"
@ -939,18 +1043,18 @@ _theme:
cwBg: "CW 按钮背景"
cwFg: "CW 按钮文本"
cwHoverBg: "CW 按钮背景(悬停)"
toastBg: "吐司通知背景"
toastFg: "吐司通知文本"
toastBg: "Toast通知背景"
toastFg: "Toast通知文本"
buttonBg: "按钮背景"
buttonHoverBg: "按钮背景(悬停)"
inputBorder: "输入框边框"
listItemHoverBg: "下拉列表项目背景(悬停)"
driveFolderBg: "驱动器文件夹背景"
driveFolderBg: "网盘的文件夹背景"
wallpaperOverlay: "壁纸叠加层"
badge: "徽章"
messageBg: "聊天背景"
accentDarken: "强调色()"
accentLighten: "强调色()"
accentDarken: "强调色()"
accentLighten: "强调色()"
fgHighlighted: "高亮显示文本"
_sfx:
note: "帖子"
@ -1039,6 +1143,10 @@ _permissions:
"write:user-groups": "操作用户组"
"read:channels": "查看频道"
"write:channels": "管理频道"
"read:gallery": "浏览图库"
"write:gallery": "操作图库"
"read:gallery-likes": "读取喜欢的图片"
"write:gallery-likes": "操作喜欢的图片"
_auth:
shareAccess: "您要授权允许“{name}”访问您的帐户吗?"
shareAccessAsk: "您确定要授权此应用程序访问您的帐户吗?"
@ -1049,9 +1157,9 @@ _auth:
_antennaSources:
all: "所有帖子"
homeTimeline: "已关注用户的帖子"
users: "来自定用户的帖子"
userList: "来自特定清单中的帖子"
userGroup: "来自特定组中用户的帖子"
users: "来自定用户的帖子"
userList: "来自指定列表中的帖子"
userGroup: "来自指定群组中用户的帖子"
_weekday:
sunday: "星期日"
monday: "星期一"
@ -1077,8 +1185,9 @@ _widgets:
button: "按钮"
onlineUsers: "在线用户"
jobQueue: "作业队列"
serverMetric: "服务器指标"
serverMetric: "服务器监控"
aiscript: "AiScript控制台"
aichan: "小蓝"
_cw:
hide: "隐藏"
show: "查看更多"
@ -1090,7 +1199,7 @@ _poll:
noMore: "无法再添加更多了"
canMultipleVote: "允许多个投票"
expiration: "截止时间"
infinite: "无限期"
infinite: "不限时间"
at: "指定日期"
after: "指定时间"
deadlineDate: "截止日期"
@ -1129,7 +1238,7 @@ _postForm:
e: "请写下来吧"
f: "等待您的发布..."
_profile:
name: "称"
name: "称"
username: "用户名"
description: "个人简介"
youCanIncludeHashtags: "您可以包含一个哈希标签。"
@ -1242,7 +1351,7 @@ _rooms:
_pages:
newPage: "创建页面"
editPage: "编辑页面"
readPage: "查看"
readPage: "查看页面"
created: "页面已创建"
updated: "页面已更新"
deleted: "该页面已被删除"
@ -1254,7 +1363,7 @@ _pages:
viewSource: "查看源代码"
viewPage: "查看页面"
like: "赞"
unlike: "取消"
unlike: "取消喜欢"
my: "我的页面"
liked: "喜欢的页面"
featured: "热门"
@ -1555,7 +1664,7 @@ _notification:
reaction: "回应"
pollVote: "问卷调查被投票"
receiveFollowRequest: "收到关注请求"
followRequestAccepted: "关注请求已接受"
followRequestAccepted: "关注请求已通过"
groupInvited: "加入群组邀请"
app: "关联应用的通知"
_deck:

View File

@ -1,19 +1,20 @@
---
_lang_: "繁體中文"
headlineMisskey: "貼文連繫網"
introMisskey: "歡迎! Misskey是一個開且去中心化的社群網。\n過「貼文」分享周邊新鮮事,並告訴其他人您的想法!📡\n透過「情感」功能對大家的貼文表達情感👍\n一起來探索這個新的世界吧🚀"
headlineMisskey: "貼文連繫網"
introMisskey: "歡迎! Misskey是一個開放原始碼且去中心化的社群網。\n過「貼文」分享周邊新鮮事,並告訴其他人您的想法!📡\n透過「情感」功能對大家的貼文表達情感👍\n一起來探索這個新的世界吧🚀"
monthAndDay: "{month}月 {day}日"
search: "搜尋"
notifications: "通知"
username: "使用者名稱"
password: "密碼"
forgotPassword: "忘記密碼"
fetchingAsApObject: "從聯邦宇宙取得中..."
ok: "OK"
gotIt: "知道了"
cancel: "取消"
enterUsername: "輸入使用者名稱"
renotedBy: "{user} 轉了"
noNotes: "貼文不可用。"
renotedBy: "{user} 轉了"
noNotes: "貼文。"
noNotifications: "沒有通知"
instance: "實例"
settings: "設定"
@ -44,10 +45,10 @@ copyLink: "複製連結"
delete: "刪除"
deleteAndEdit: "刪除並編輯"
deleteAndEditConfirm: "要刪除並再次編輯嗎?此貼文的所有情感、轉發和回覆也將會消失。"
addToList: "新增至清單"
addToList: "加入至清單"
sendMessage: "發送訊息"
copyUsername: "複製用戶名"
searchUser: "搜尋用戶"
copyUsername: "複製使用者名稱"
searchUser: "搜尋使用者"
reply: "回覆"
loadMore: "載入更多"
showMore: "載入更多"
@ -56,7 +57,7 @@ receiveFollowRequest: "您有新的追隨請求"
followRequestAccepted: "追隨請求已接受"
mention: "提及"
mentions: "提及"
directNotes: "指定使用者發佈"
directNotes: "私訊"
importAndExport: "匯入與匯出"
import: "匯入"
export: "匯出"
@ -92,9 +93,9 @@ followRequestPending: "追隨許可批准中"
enterEmoji: "輸入表情符號"
renote: "轉發"
unrenote: "取消轉發"
renoted: "轉成功"
renoted: "轉成功"
cantRenote: "無法轉發此貼文。"
cantReRenote: "無法轉之前已經轉過的內容"
cantReRenote: "無法轉之前已經轉過的內容"
quote: "引用"
pinnedNote: "已置頂的貼文"
pinned: "置頂"
@ -127,9 +128,10 @@ editWidgets: "編輯小工具"
editWidgetsExit: "完成"
customEmojis: "自訂表情符號"
emoji: "表情符號"
emojis: "表情符號"
emojiName: "表情符號名稱"
emojiUrl: "表情符號URL"
addEmoji: "新增表情符號"
addEmoji: "加入表情符號"
settingGuide: "推薦設定"
cacheRemoteFiles: "緩存非遠程檔案"
cacheRemoteFilesDescription: "禁用此設定會停止遠端檔案的緩存,從而節省儲存空間,但資料會因直接連線從而產生額外連接數據。"
@ -138,7 +140,7 @@ flagAsBotDescription: "如果本帳戶是由程式控制,請啟用此選項。
flagAsCat: "此使用者是貓"
flagAsCatDescription: "如果想將本帳戶標示為一隻貓,請開啟此標示"
autoAcceptFollowed: "自動追隨中使用者的追隨請求"
addAcount: "新增帳戶"
addAccount: "添加帳戶"
loginFailed: "登入失敗"
showOnRemote: "轉到所在實例顯示"
general: "一般"
@ -149,7 +151,7 @@ searchWith: "搜尋: {q}"
youHaveNoLists: "你沒有任何清單"
followConfirm: "你真的要追隨{name}嗎?"
proxyAccount: "代理帳號"
proxyAccountDescription: "代理帳號是在某些情況下充當其他伺服器用戶的帳號。例如,當用戶將一個來自其他伺服器的帳號放在列表中時,由於沒有其他用戶關注該帳號,該指令不會傳送到該伺服器上,因此會由代理帳戶關注。"
proxyAccountDescription: "代理帳號是在某些情況下充當其他伺服器用戶的帳號。例如,當使用者將一個來自其他伺服器的帳號放在列表中時,由於沒有其他使用者關注該帳號,該指令不會傳送到該伺服器上,因此會由代理帳戶關注。"
host: "主機"
selectUser: "選取使用者"
recipient: "收件人"
@ -180,7 +182,7 @@ instanceInfo: "實例資訊"
statistics: "統計"
clearQueue: "清除佇列"
clearQueueConfirmTitle: "確定要清除佇列嗎?"
clearQueueConfirmText: "未發佈的帖子將不會發佈。您通常不需要確認。"
clearQueueConfirmText: "未發佈的貼文將不會發佈。您通常不需要確認。"
clearCachedFiles: "清除快取資料"
clearCachedFilesConfirm: "確定要清除所有遠端暫存資料嗎?"
blockedInstances: "已封鎖的實例"
@ -192,12 +194,12 @@ noUsers: "沒有任何使用者"
editProfile: "編輯個人檔案"
noteDeleteConfirm: "確定刪除此貼文嗎?"
pinLimitExceeded: "不能置頂更多貼文了"
intro: "Misskey 部署完成!請開設管理員帳號!"
intro: "Misskey 部署完成!請建立管理員帳號!"
done: "完成"
processing: "處理中"
preview: "預覽"
default: "預設"
noCustomEmojis: "沒有表情符號"
noCustomEmojis: "沒有自訂的表情符號"
noJobs: "沒有任務"
federating: "整合搜索中"
blocked: "已封鎖"
@ -218,7 +220,7 @@ newPasswordRetype: "確認密碼"
attachFile: "上傳附件"
more: "更多!"
featured: "精選"
usernameOrUserId: "使用者名稱或用戶ID"
usernameOrUserId: "使用者名稱或使用者ID"
noSuchUser: "使用者不存在"
lookup: "查詢"
announcements: "公告"
@ -231,7 +233,7 @@ resetAreYouSure: "確定要重設嗎?"
saved: "已儲存"
messaging: "傳送訊息"
upload: "上傳"
fromDrive: "從雲端"
fromDrive: "從雲端空間"
fromUrl: "從URL"
uploadFromUrl: "從網址上傳"
uploadFromUrlDescription: "您要上傳的文件的URL"
@ -247,7 +249,7 @@ agreeTo: "我同意{0}"
tos: "使用條款"
start: "開始"
home: "首頁"
remoteUserCaution: "由於該用戶來自遠端實例,因此資料用戶並未即時更新。"
remoteUserCaution: "由於該使用者來自遠端實例,因此資訊可能非即時的。"
activity: "動態"
images: "圖片"
birthday: "生日"
@ -273,11 +275,12 @@ folderName: "資料夾名稱"
createFolder: "新增資料夾"
renameFolder: "重新命名資料夾"
deleteFolder: "刪除資料夾"
addFile: "加附件"
addFile: "加附件"
emptyDrive: "雲端硬碟為空"
emptyFolder: "資料夾為空"
unableToDelete: "無法刪除"
inputNewFileName: "輸入檔案名稱"
inputNewDescription: "請輸入新標題 "
inputNewFolderName: "輸入新資料夾的名稱"
circularReferenceFolder: "目標文件夾是您要移動的文件夾的子文件夾。"
hasChildFilesOrFolders: "此文件夾不是空的,無法刪除。"
@ -286,11 +289,11 @@ rename: "重新命名"
avatar: "大頭貼"
banner: "橫幅"
nsfw: "敏感內容"
whenServerDisconnected: "與服器的連接中斷時"
whenServerDisconnected: "與服器的連接中斷時"
disconnectedFromServer: "與伺服器中斷連線"
reload: "重新載入"
reload: "重新整理"
doNothing: "無視"
reloadConfirm: "確定要重新嘗試嗎?"
reloadConfirm: "確定要重新整理嗎?"
watch: "關注"
unwatch: "取消追隨"
accept: "接受"
@ -309,24 +312,25 @@ monthX: "{month}月"
yearX: "{year}年"
pages: "頁面"
integration: "整合"
connectSerice: "連線"
disconnectSerice: "中斷連線"
connectService: "己連結"
disconnectService: "己斷開 "
enableLocalTimeline: "開啟本地時間軸"
enableGlobalTimeline: "啟用公開時間軸"
disablingTimelinesInfo: "即使您關閉了時間線功能,管理員和協調人仍可以繼續使用,以方便您。"
registration: "註冊"
enableRegistration: "開啟新用戶註冊"
enableRegistration: "開啟新使用者註冊"
invite: "邀請"
proxyRemoteFiles: "遠端代理檔案"
proxyRemoteFilesDescription: "啟用此設置後,由於超出存儲容量而未保存或刪除的遠程文件將被本地代理,並且將生成預覽圖。這不影響服器的存儲。"
driveCapacityPerLocalAccount: "每個本地用戶的雲端容量"
proxyRemoteFilesDescription: "啟用此設置後,由於超出存儲容量而未保存或刪除的遠程文件將被本地代理,並且將生成預覽圖。這不影響服器的存儲。"
driveCapacityPerLocalAccount: "每個本地用戶的雲端空間大小"
driveCapacityPerRemoteAccount: "每個非本地用戶的雲端容量"
inMb: "以Mbps為單位"
iconUrl: "圖像URL"
bannerUrl: "橫幅圖URL"
bannerUrl: "橫幅圖URL"
backgroundImageUrl: "背景圖片的來源網址 "
basicInfo: "基本資訊"
pinnedUsers: "置頂用戶"
pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的用戶。"
pinnedUsersDescription: "在「發現」頁面中使用換行標記想要置頂的使用者。"
pinnedPages: "釘選頁面"
pinnedPagesDescription: "輸入要固定至實例首頁的頁面路徑,以換行符分隔。"
pinnedClipId: "置頂的摘錄ID"
@ -339,7 +343,7 @@ recaptcha: "reCAPTCHA"
enableRecaptcha: "啟用 reCAPTCHA"
recaptchaSiteKey: "網站金鑰"
recaptchaSecretKey: "金鑰"
avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要禁用其他驗證方式嗎?您可以按“取消”保留多種驗證方式。"
avoidMultiCaptchaConfirm: "使用多種驗證方式可能會造成干擾,您要關閉其他驗證方式嗎?您可以按“取消”保留多種驗證方式。"
antennas: "天線"
manageAntennas: "管理天線"
name: "名稱"
@ -349,7 +353,6 @@ antennaExcludeKeywords: "排除關鍵字"
antennaKeywordsDescription: "用空格分隔指定AND、用換行符分隔指定OR"
notifyAntenna: "通知有新貼文"
withFileAntenna: "僅帶有附件的貼文"
serviceworker: "ServiceWorker"
enableServiceworker: "開啟 ServiceWorker"
antennaUsersDescription: "指定用換行符分隔的用戶名"
caseSensitive: "區分大小寫"
@ -361,11 +364,11 @@ silence: "禁言"
silenceConfirm: "確定要禁言此用戶嗎?"
unsilence: "解除禁言"
unsilenceConfirm: "確定要解除禁言嗎?"
popularUsers: "熱門用戶"
recentlyUpdatedUsers: "最近發文的用戶"
recentlyRegisteredUsers: "新加入用戶"
recentlyDiscoveredUsers: "最近發現的用戶"
exploreUsersCount: "有{count}個用戶"
popularUsers: "熱門使用者"
recentlyUpdatedUsers: "最近發文的使用者"
recentlyRegisteredUsers: "新加入使用者"
recentlyDiscoveredUsers: "最近發現的使用者"
exploreUsersCount: "有{count}個使用者"
exploreFediverse: "探索聯邦世界"
popularTags: "熱門標籤"
userList: "清單"
@ -405,7 +408,7 @@ invites: "邀請"
groupName: "群組名稱"
members: "成員"
transfer: "轉讓"
messagingWithUser: "傳送訊息給其他用戶"
messagingWithUser: "傳送訊息給其他使用者"
messagingWithGroup: "發送訊息至群組"
title: "標題"
text: "文字"
@ -431,11 +434,11 @@ tooShort: "過短"
tooLong: "過長"
weakPassword: "密碼強度過弱"
normalPassword: "密碼強度普通"
strongPassword: "密碼強度堅強"
strongPassword: "密碼強度"
passwordMatched: "密碼一致"
passwordNotMatched: "密碼不一致"
signinWith: "以{x}登錄"
signinFailed: "登入失敗。 請檢查用戶名和密碼。"
signinFailed: "登入失敗。 請檢查使用者名稱和密碼。"
tapSecurityKey: "點擊安全密鑰"
or: "或者"
language: "語言"
@ -453,7 +456,7 @@ category: "類別"
tags: "標籤"
docSource: "文件來源"
createAccount: "建立帳戶"
existingAcount: "現有帳戶"
existingAccount: "現有帳戶"
regenerate: "再生"
fontSize: "字體大小"
noFollowRequests: "沒有要求跟隨您的申請"
@ -476,9 +479,11 @@ objectStorage: "Object Storage (物件儲存)"
useObjectStorage: "使用Object Storage"
objectStorageBaseUrl: "Base URL"
objectStorageBucket: "儲存空間Bucket"
objectStorageBucketDesc: "請指定您正在使用的服務的存儲桶名稱。 "
objectStoragePrefix: "前綴"
objectStorageEndpoint: "訪問網域名稱Endpoint"
objectStorageEndpointDesc: "如要使用AWS S3請留空。否則請根據伺服器要求以'<host>'或 '<host>:<port>'的形式設定訪問網域名稱Endpoint"
objectStoragePrefixDesc: "它存儲在此前綴目錄下。"
objectStorageEndpoint: "端點Endpoint"
objectStorageEndpointDesc: "如要使用AWS S3請留空。否則請依照你使用的服務商的說明書進行設定以'<host>'或 '<host>:<port>'的形式設定端點Endpoint。"
objectStorageRegion: "地域Region"
objectStorageUseSSL: "使用SSL"
objectStorageUseProxy: "使用網路代理"
@ -512,14 +517,13 @@ scratchpad: "暫存記憶體"
output: "輸出"
script: "腳本"
disablePagesScript: "停用頁面的AiScript腳本"
updateRemoteUser: "更新遠端用戶資料"
updateRemoteUser: "更新遠端使用者資訊"
deleteAllFiles: "刪除所有檔案"
deleteAllFilesConfirm: "要删除所有檔案嗎?"
removeAllFollowing: "解除所有追蹤"
removeAllFollowingDescription: "解除{host}所有的追蹤。在實例不再存在時執行。"
userSuspended: "該用戶已被凍結"
userSuspended: "該使用者已被停用"
userSilenced: "該用戶已被禁言。"
sidebar: "側邊列"
divider: "分割線"
addItem: "新增項目"
rooms: "房間"
@ -539,6 +543,8 @@ disablePlayer: "關閉播放器"
expandTweet: "展開推文"
themeEditor: "主題編輯器"
description: "描述"
describeFile: "添加標題 "
enterFileDescription: "輸入標題 "
author: "作者"
leaveConfirm: "有未保存的更改。要放棄嗎?"
manage: "管理"
@ -559,7 +565,7 @@ tokenRequested: "允許存取帳號"
notificationType: "通知形式"
edit: "編輯"
useStarForReactionFallback: "以★代替未知的表情符號"
emailConfig: "電子郵件伺服器設定"
emailServer: "電伺服器"
enableEmail: "啟用發送電郵功能"
emailConfigInfo: "用於確認電郵地址及密碼重置"
email: "電子郵件"
@ -586,9 +592,11 @@ create: "新增"
notificationSetting: "通知設定"
notificationSettingDesc: "選擇顯示通知的類型"
useGlobalSetting: "使用全域設定"
useGlobalSettingDesc: "啟用時,將使用帳戶通知設定。停用時,則可以單獨設定。"
other: "其他"
regenerateLoginToken: "重新產生登入權杖"
regenerateLoginTokenDescription: "重新產生用於登入的內部權杖。一般情況下是不需要這樣做的。一旦重產,所有裝置將會被登出。"
setMultipleBySeparatingWithSpace: "您可以使用空格分隔多個項目。"
fileIdOrUrl: "檔案ID或URL"
chatOpenBehavior: "開啟聊天窗口時的行為"
behavior: "行為"
@ -602,6 +610,7 @@ send: "發送"
abuseMarkAsResolved: "處理完畢"
openInNewTab: "在新分頁中開啟"
openInSideView: "在側欄中開啟"
defaultNavigationBehaviour: "默認導航"
editTheseSettingsMayBreakAccount: "修改這些設定可能會毀損您的帳戶"
instanceTicker: "貼文的實例來源"
waitingFor: "等待{x}"
@ -635,13 +644,16 @@ driveUsage: "雲端硬碟使用量"
noCrawle: "拒絕搜尋引擎索引"
noCrawleDescription: "要求網路搜尋引擎不要索引你的個人資料頁、貼文及頁面等。"
lockedAccountInfo: "即使你通過了追隨者請求,除非你將貼文的可見性設定為 「追隨者」,否則任何人都能看見你的貼文。"
alwaysMarkSensitive: "默認將圖像/影像標記為敏感內容"
loadRawImages: "以原始圖檔顯示附件圖檔的縮圖"
disableShowingAnimatedImages: "不播放動態圖檔"
verificationEmailSent: "已發送驗證電子郵件。請點擊進入電子郵件中的鏈接完成驗證。"
notSet: "未設定"
emailVerified: "已成功驗證您的電郵"
noteFavoritesCount: "我的最愛貼文的數目"
pageLikesCount: "頁面被按讚次數"
pageLikedCount: "頁面被按讚次數"
reversiCount: "黑白棋對戰次數"
contact: "聯絡人"
useSystemFont: "使用系統預設的字型"
clips: "摘錄"
@ -670,6 +682,7 @@ textColor: "文字"
saveAs: "另存為..."
advanced: "進階"
value: "數值"
createdAt: "建立於"
updatedAt: "最後更新"
saveConfirm: "您要儲存變更嗎?"
deleteConfirm: "你確定要刪除嗎?"
@ -685,17 +698,84 @@ capacity: "容量"
inUse: "已使用"
editCode: "編輯代碼"
apply: "套用"
receiveAnnouncementFromInstance: "接收由本實例發出的電郵通知"
emailNotification: "郵件通知"
publish: "發佈"
inChannelSearch: "頻道内搜尋"
useReactionPickerForContextMenu: "點擊右鍵開啟回應工具欄"
typingUsers: "{users}輸入中..."
jumpToSpecifiedDate: "跳轉到特定日期"
showingPastTimeline: "顯示過往的時間線"
clear: "清除"
markAllAsRead: "全部標示為已讀"
goBack: "返回"
unlikeConfirm: "要取消按讚嗎?"
fullView: "全熒幕顯示"
quitFullView: "退出全熒幕顯示"
addDescription: "添加描述"
userPagePinTip: "在貼文的選單中選擇\"置頂\",即可置頂該貼文至您的個人檔案頁面。"
notSpecifiedMentionWarning: "此貼文有未指定的提及"
info: "資訊"
userInfo: "用戶資料"
unknown: "未知"
onlineStatus: "在線狀態"
hideOnlineStatus: "隱藏在線狀態"
hideOnlineStatusDescription: "隱藏在線狀態後,可能會降低檢索等功能的便利性。"
online: "線上"
active: "最近活躍"
offline: "離線"
notRecommended: "不推薦"
botProtection: "Bot防護"
instanceBlocking: "已封鎖的實例"
selectAccount: "選擇帳戶"
enabled: "已啟用"
disabled: "已停用"
quickAction: "快捷操作"
user: "使用者"
administration: "管理"
accounts: "帳戶"
switch: "切換"
noMaintainerInformationWarning: "尚未設定管理員信息。"
noBotProtectionWarning: "尚未設定Bot防護。"
configure: "設定"
postToGallery: "發佈到相簿"
gallery: "相簿"
recentPosts: "最新貼文"
popularPosts: "熱門的貼文"
ads: "廣告"
expiration: "期限"
memo: "備忘錄"
priority: "優先級"
high: "高"
middle: "中"
low: "低"
emailNotConfiguredWarning: "沒有設定電子郵件地址"
ratio: "%"
global: "公開"
sent: "發送"
hashtags: "#tag"
_docs:
admin: "管理"
_ad:
back: "返回"
reduceFrequencyOfThisAd: "降低此廣告的頻率 "
_forgotPassword:
enterEmail: "請輸入您的帳戶註冊的電子郵件地址。 密碼重置連結將被發送到該電子郵件地址。"
ifNoEmail: "如果您還沒有註冊您的電子郵件地址,請聯繫管理員。 "
contactAdmin: "此實例不支持電子郵件,請聯繫您的管理員重置您的密碼。 "
_gallery:
my: "我的貼文"
liked: "喜歡的貼文"
like: "讚"
unlike: "收回喜歡"
_email:
_follow:
title: "您有新的追隨者"
_receiveFollowRequest:
title: "收到追隨請求"
_plugin:
install: "安裝外掛組件"
installWarn: "請不要安裝來源不明的外掛組件。"
manage: "管理插件"
_registry:
scope: "範圍"
@ -723,8 +803,11 @@ _mfm:
mention: "提及"
mentionDescription: "透過 @+用戶名 來標示特定使用者。"
hashtag: "#tag"
hashtagDescription: "可以使用\"#\"符號後加文字表示話題標籤。"
url: "URL"
urlDescription: "可以展示URL位址。"
link: "鏈接"
linkDescription: "您可以將特定範圍的文章與 URL 相關聯。 "
bold: "粗體"
small: "縮小"
center: "置中"
@ -735,7 +818,9 @@ _mfm:
blockMath: "數學公式(方塊)"
quote: "引用"
emoji: "自訂表情符號"
emojiDescription: "您可以通過將自定義表情符號名稱括在冒號中來顯示自定義表情符號。 "
search: "搜尋"
searchDescription: "您可以顯示所輸入的搜索框。"
flip: "翻轉"
flipDescription: "將內容上下或左右翻轉。"
jelly: "動畫(果凍)"
@ -797,16 +882,14 @@ _serverDisconnectedBehavior:
_channel:
create: "建立頻道"
edit: "編輯頻道"
setBanner: "設定橫幅"
removeBanner: "移除封面圖"
setBanner: "設定橫幅圖像"
removeBanner: "移除橫幅圖像"
featured: "熱門貼文"
owned: "管理中"
following: "關注中"
usersCount: "有{n}人參與"
notesCount: "有{n}個貼文"
_sidebar:
full: "全部"
icon: "大頭貼"
_menuDisplay:
hide: "隱藏"
_wordMute:
muteWords: "加入靜音文字"
@ -828,17 +911,28 @@ _theme:
constant: "常數"
defaultValue: "預設值"
color: "顏色"
refProp: "查看屬性 "
key: "按鍵"
func: "函数"
funcKind: "功能類型"
argument: "參數"
basedProp: "要基於的屬性的名稱 "
alpha: "透明度"
darken: "暗度"
lighten: "亮度"
keys:
accent: "重點色彩"
bg: "背景"
fg: "文本"
focus: "聚焦"
indicator: "指標"
panel: "面板"
shadow: "陰影"
header: "標題"
navBg: "側邊欄的背景 "
navFg: "側邊欄的文字"
navHoverFg: "側邊欄文字(懸停) "
navActive: "側邊欄文本 (活動)"
navIndicator: "側邊欄指示符"
link: "鏈接"
hashtag: "#tag"
@ -856,11 +950,14 @@ _theme:
cwBg: "CW 按鈕背景"
cwFg: "CW 按鈕文本"
cwHoverBg: "CW 按鈕背景 (漂浮)"
toastBg: "通知背景"
toastFg: "通知文本"
buttonBg: "按鈕背景"
buttonHoverBg: "按鈕背景 (漂浮)"
inputBorder: "輸入框邊框"
listItemHoverBg: "列表物品背景 (漂浮)"
driveFolderBg: "雲端硬碟文件夾背景"
wallpaperOverlay: "壁紙覆蓋層"
badge: "獎章"
messageBg: "私訊背景"
accentDarken: "強調色(偏暗)"
@ -871,6 +968,7 @@ _sfx:
noteMy: "我的貼文"
notification: "通知"
chat: "傳送訊息"
chatBg: "聊天背景"
antenna: "天線接收"
channel: "頻道通知"
_ago:
@ -908,12 +1006,14 @@ _tutorial:
step5_4: "如果使用者的名字旁有鎖頭的圖示,代表他們需要手動核准你的追隨請求。"
step6_1: "現在你可以在時間軸上看到其他用戶的貼文。"
step6_2: "你也可以對別人的貼文作出「情感」,作出簡單的回覆。"
step6_3: "在他人的貼文按下\"+\"圖標,即可選擇喜好的表情符號進行回應。"
step7_1: "以上為Misskey的基本操作說明教學在此告一段落。辛苦了。"
step7_2: "歡迎到{help}來瞭解更多Misskey相關介紹。"
step7_3: "那麼祝您在Misskey玩的開心~ 🚀"
_2fa:
alreadyRegistered: "此設備已經被註冊過了"
registerDevice: "註冊裝置"
registerKey: "註冊鍵"
step1: "首先,在您的設備上安裝二步驗證程式,例如{a}或{b}。"
step2: "然後掃描螢幕上的QR code。"
_permissions:
@ -925,6 +1025,7 @@ _permissions:
"write:drive": "編輯雲端硬碟的檔案"
"read:favorites": "瀏覽我的最愛"
"write:favorites": "編輯我的最愛列表"
"read:following": "查看追隨中的用戶資訊"
"write:following": "追隨/解除追隨"
"read:messaging": "顯示訊息"
"write:messaging": "撰寫或刪除私人訊息"
@ -982,6 +1083,7 @@ _widgets:
button: "按鈕"
onlineUsers: "線上的用戶"
jobQueue: "佇列"
serverMetric: "服務器指標 "
_cw:
hide: "隱藏"
show: "瀏覽更多"
@ -991,9 +1093,11 @@ _poll:
noOnlyOneChoice: "至少需要兩個選項。"
choiceN: "選擇{n}"
noMore: "沒辦法再添加選項了"
canMultipleVote: "可以多次投票"
expiration: "期限"
infinite: "無期限"
at: "結束時間"
after: "進度指定 "
deadlineDate: "截止日期"
deadlineTime: "小時"
duration: "時長"
@ -1008,6 +1112,7 @@ _poll:
remainingSeconds: "{s}秒後截止"
_visibility:
public: "公開"
publicDescription: "發布給所有用戶 "
home: "首頁"
followers: "追隨者"
specified: "指定使用者"
@ -1034,6 +1139,8 @@ _profile:
metadataEdit: "編輯進階資訊"
metadataLabel: "標籤"
metadataContent: "内容"
changeAvatar: "更換大頭貼"
changeBanner: "變更橫幅圖像"
_exportOrImport:
allNotes: "所有貼文"
followingList: "追隨中"
@ -1119,6 +1226,7 @@ _rooms:
cube: "立方體"
tv: "電視"
pinguin: "企鵝蠟像"
rubik-cube: "魔術方塊"
poster-h: "海報(橫向)"
poster-v: "海報(直向)"
sofa: " 沙發"
@ -1181,6 +1289,7 @@ _pages:
post: "發佈窗口"
_post:
text: "内容"
attachCanvasImage: "附加相簿圖像 "
canvasId: "畫布ID"
textInput: "插入字串"
_textInput:
@ -1205,6 +1314,7 @@ _pages:
note: "嵌式貼文"
_note:
id: "貼文ID"
idDescription: "您也可以粘貼筆記 URL 並進行設置。 "
detailed: "顯示詳細內容"
switch: "開關"
_switch:
@ -1221,12 +1331,15 @@ _pages:
colored: "彩色"
action: "按下按鈕後發生的行為"
_action:
dialog: "顯示對話框 "
_dialog:
content: "内容"
resetRandom: "重設亂數"
pushEvent: "發送事件"
_pushEvent:
event: "事件名稱"
message: "按下時顯示的消息 "
variable: "要發送的變數"
no-variable: "沒有"
callAiScript: "調用AiScript"
_callAiScript:
@ -1235,6 +1348,7 @@ _pages:
_radioButton:
name: "變數名稱"
title: "標題"
values: "由換行符分隔的選項"
default: "預設值"
script:
categories:
@ -1252,6 +1366,8 @@ _pages:
text: "字串"
multiLineText: "字串(多行)"
textList: "字串串列"
_textList:
info: "請分開每個換行符 "
strLen: "字串長度"
_strLen:
arg1: "字串"
@ -1262,6 +1378,8 @@ _pages:
strReplace: "替換字串"
_strReplace:
arg1: "字串"
arg2: "替換前"
arg3: "替換後"
strReverse: "倒轉字串"
_strReverse:
arg1: "字串"
@ -1328,6 +1446,7 @@ _pages:
_if:
arg1: "如果"
arg2: "如果"
arg3: "除此以外 "
not: "否"
_not:
arg1: "否"
@ -1338,13 +1457,17 @@ _pages:
_rannum:
arg1: "下限"
arg2: "上限"
randomPick: "從列表中隨機選擇 "
_randomPick:
arg1: "清單"
dailyRandom: "隨機(使用者每日變化 )"
_dailyRandom:
arg1: "機率"
dailyRannum: "亂數(使用者每日變化)"
_dailyRannum:
arg1: "下限"
arg2: "上限"
dailyRandomPick: "從列表中隨機選擇(使用者每日變化 "
_dailyRandomPick:
arg1: "清單"
seedRandom: "隨機抽選種子碼"
@ -1383,7 +1506,10 @@ _pages:
aiScriptVar: "AiScript的變數"
fn: "函数"
_fn:
slots: "欄位"
slots-info: "用換行符分隔每個欄位"
arg1: "輸出"
for: "重複 "
_for:
arg1: "重複次數"
arg2: "處理"
@ -1393,13 +1519,16 @@ _pages:
boolean: "標記"
array: "清單"
stringArray: "字串列表"
emptySlot: "空欄位"
enviromentVariables: "環境變數"
pageVariables: "頁面元素"
argVariables: "輸入欄位"
_relayStatus:
requesting: "等待核准"
accepted: "已通過核准"
rejected: "已拒絕"
_notification:
fileUploaded: "上傳檔案成功。"
youGotMention: "{name}提及到您"
youGotReply: "{name}回覆了您"
youGotQuote: "{name}引用了您"
@ -1417,7 +1546,7 @@ _notification:
reply: "回覆"
renote: "轉發貼文"
quote: "引用"
reaction: "情感"
reaction: "反應"
pollVote: "統計已投票數"
receiveFollowRequest: "已收到追隨請求"
followRequestAccepted: "追隨請求已接受"

View File

@ -0,0 +1,40 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class gallery1611397665007 implements MigrationInterface {
name = 'gallery1611397665007'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "gallery_post" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "title" character varying(256) NOT NULL, "description" character varying(2048), "userId" character varying(32) NOT NULL, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "isSensitive" boolean NOT NULL DEFAULT false, "likedCount" integer NOT NULL DEFAULT '0', "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_8e90d7b6015f2c4518881b14753" PRIMARY KEY ("id")); COMMENT ON COLUMN "gallery_post"."createdAt" IS 'The created date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."updatedAt" IS 'The updated date of the GalleryPost.'; COMMENT ON COLUMN "gallery_post"."userId" IS 'The ID of author.'; COMMENT ON COLUMN "gallery_post"."isSensitive" IS 'Whether the post is sensitive.'`);
await queryRunner.query(`CREATE INDEX "IDX_8f1a239bd077c8864a20c62c2c" ON "gallery_post" ("createdAt") `);
await queryRunner.query(`CREATE INDEX "IDX_f631d37835adb04792e361807c" ON "gallery_post" ("updatedAt") `);
await queryRunner.query(`CREATE INDEX "IDX_985b836dddd8615e432d7043dd" ON "gallery_post" ("userId") `);
await queryRunner.query(`CREATE INDEX "IDX_3ca50563facd913c425e7a89ee" ON "gallery_post" ("fileIds") `);
await queryRunner.query(`CREATE INDEX "IDX_f2d744d9a14d0dfb8b96cb7fc5" ON "gallery_post" ("isSensitive") `);
await queryRunner.query(`CREATE INDEX "IDX_1a165c68a49d08f11caffbd206" ON "gallery_post" ("likedCount") `);
await queryRunner.query(`CREATE INDEX "IDX_05cca34b985d1b8edc1d1e28df" ON "gallery_post" ("tags") `);
await queryRunner.query(`CREATE TABLE "gallery_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "postId" character varying(32) NOT NULL, CONSTRAINT "PK_853ab02be39b8de45cd720cc15f" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE INDEX "IDX_8fd5215095473061855ceb948c" ON "gallery_like" ("userId") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_df1b5f4099e99fb0bc5eae53b6" ON "gallery_like" ("userId", "postId") `);
await queryRunner.query(`ALTER TABLE "gallery_post" ADD CONSTRAINT "FK_985b836dddd8615e432d7043ddb" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_8fd5215095473061855ceb948cf" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
await queryRunner.query(`ALTER TABLE "gallery_like" ADD CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8" FOREIGN KEY ("postId") REFERENCES "gallery_post"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_b1cb568bfe569e47b7051699fc8"`);
await queryRunner.query(`ALTER TABLE "gallery_like" DROP CONSTRAINT "FK_8fd5215095473061855ceb948cf"`);
await queryRunner.query(`ALTER TABLE "gallery_post" DROP CONSTRAINT "FK_985b836dddd8615e432d7043ddb"`);
await queryRunner.query(`DROP INDEX "IDX_df1b5f4099e99fb0bc5eae53b6"`);
await queryRunner.query(`DROP INDEX "IDX_8fd5215095473061855ceb948c"`);
await queryRunner.query(`DROP TABLE "gallery_like"`);
await queryRunner.query(`DROP INDEX "IDX_05cca34b985d1b8edc1d1e28df"`);
await queryRunner.query(`DROP INDEX "IDX_1a165c68a49d08f11caffbd206"`);
await queryRunner.query(`DROP INDEX "IDX_f2d744d9a14d0dfb8b96cb7fc5"`);
await queryRunner.query(`DROP INDEX "IDX_3ca50563facd913c425e7a89ee"`);
await queryRunner.query(`DROP INDEX "IDX_985b836dddd8615e432d7043dd"`);
await queryRunner.query(`DROP INDEX "IDX_f631d37835adb04792e361807c"`);
await queryRunner.query(`DROP INDEX "IDX_8f1a239bd077c8864a20c62c2c"`);
await queryRunner.query(`DROP TABLE "gallery_post"`);
}
}

View File

@ -0,0 +1,20 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class passwordReset1619942102890 implements MigrationInterface {
name = 'passwordReset1619942102890'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "password_reset_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, CONSTRAINT "PK_fcf4b02eae1403a2edaf87fd074" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0b575fa9a4cfe638a925949285" ON "password_reset_request" ("token") `);
await queryRunner.query(`CREATE INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac" ON "password_reset_request" ("userId") `);
await queryRunner.query(`ALTER TABLE "password_reset_request" ADD CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "password_reset_request" DROP CONSTRAINT "FK_4bb7fd4a34492ae0e6cc8d30ac8"`);
await queryRunner.query(`DROP INDEX "IDX_4bb7fd4a34492ae0e6cc8d30ac"`);
await queryRunner.query(`DROP INDEX "IDX_0b575fa9a4cfe638a925949285"`);
await queryRunner.query(`DROP TABLE "password_reset_request"`);
}
}

View File

@ -0,0 +1,18 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class ad1620019354680 implements MigrationInterface {
name = 'ad1620019354680'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "ad" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE NOT NULL, "place" character varying(32) NOT NULL, "priority" character varying(32) NOT NULL, "url" character varying(1024) NOT NULL, "imageUrl" character varying(1024) NOT NULL, "memo" character varying(8192) NOT NULL, CONSTRAINT "PK_0193d5ef09746e88e9ea92c634d" PRIMARY KEY ("id")); COMMENT ON COLUMN "ad"."createdAt" IS 'The created date of the Ad.'; COMMENT ON COLUMN "ad"."expiresAt" IS 'The expired date of the Ad.'`);
await queryRunner.query(`CREATE INDEX "IDX_1129c2ef687fc272df040bafaa" ON "ad" ("createdAt") `);
await queryRunner.query(`CREATE INDEX "IDX_2da24ce20ad209f1d9dc032457" ON "ad" ("expiresAt") `);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_2da24ce20ad209f1d9dc032457"`);
await queryRunner.query(`DROP INDEX "IDX_1129c2ef687fc272df040bafaa"`);
await queryRunner.query(`DROP TABLE "ad"`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class ad21620364649428 implements MigrationInterface {
name = 'ad21620364649428'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "ad" ADD "ratio" integer NOT NULL DEFAULT '1'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "ad" DROP COLUMN "ratio"`);
}
}

View File

@ -0,0 +1,16 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class addNoteIndexes1621479946000 implements MigrationInterface {
name = 'addNoteIndexes1621479946000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE INDEX "IDX_NOTE_MENTIONS" ON "note" USING gin ("mentions")`, undefined);
await queryRunner.query(`CREATE INDEX "IDX_NOTE_VISIBLE_USER_IDS" ON "note" USING gin ("visibleUserIds")`, undefined);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_NOTE_MENTIONS"`, undefined);
await queryRunner.query(`DROP INDEX "IDX_NOTE_VISIBLE_USER_IDS"`, undefined);
}
}

View File

@ -0,0 +1,13 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class userProfileDescriptionLength1622679304522 implements MigrationInterface {
name = 'userProfileDescriptionLength1622679304522';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(2048)`, undefined);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "description" TYPE character varying(1024)`, undefined);
}
}

View File

@ -0,0 +1,12 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class logMessageLength1622681548499 implements MigrationInterface {
name = 'logMessageLength1622681548499';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(2048)`, undefined);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "log" ALTER COLUMN "message" TYPE character varying(1024)`, undefined);
}
}

View File

@ -0,0 +1,182 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class chartReindex1629004542760 implements MigrationInterface {
name = 'chartReindex1629004542760'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DELETE FROM "__chart__active_users" a USING "__chart__active_users" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__drive" a USING "__chart__drive" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__federation" a USING "__chart__federation" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__hashtag" a USING "__chart__hashtag" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__instance" a USING "__chart__instance" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__network" a USING "__chart__network" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__notes" a USING "__chart__notes" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__per_user_drive" a USING "__chart__per_user_drive" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__per_user_following" a USING "__chart__per_user_following" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__per_user_notes" a USING "__chart__per_user_notes" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__per_user_reaction" a USING "__chart__per_user_reaction" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__test_grouped" a USING "__chart__test_grouped" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__test_unique" a USING "__chart__test_unique" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DELETE FROM "__chart__users" a USING "__chart__users" b WHERE a.id < b.id AND ((a.group IS NULL AND b.group IS NULL) OR a.group = b.group) AND a.date = b.date;`);
await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`);
await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`);
await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`);
await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`);
await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`);
await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`);
await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`);
await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`);
await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`);
await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`);
await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`);
await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`);
await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`);
await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`);
await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`);
await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`);
await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`);
await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`);
await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`);
await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`);
await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`);
await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`);
await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`);
await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`);
await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`);
await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`);
await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`);
await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`);
await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`);
await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`);
await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`);
await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`);
await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`);
await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`);
await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`);
await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`);
await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`);
await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`);
await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`);
await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`);
await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`);
await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`);
await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`);
await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`);
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_60c5c6e7e538c09aa274ecd1cf" ON "__chart__active_users" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d" ON "__chart__drive" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_eddfed8fb40305a04c6f941050" ON "__chart__federation" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_53a3604b939e2b479eb2cfaac8" ON "__chart__hashtag" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8111b817b9818c04d7eb8475b1" ON "__chart__instance" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_2082327b2699ce924fa654afc5" ON "__chart__network" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e60c358aaced5aab8900a4af31" ON "__chart__notes" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a9a806d466b314f253a1a611c4" ON "__chart__per_user_drive" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dabbb38a51ab86ee3cab291326" ON "__chart__per_user_following" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_583a157ed0cf0ed1b5ec2a833f" ON "__chart__per_user_notes" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_3b7697a96f522d0478972e6d6f" ON "__chart__per_user_reaction" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_da522b4008a9f5d7743b87ad55" ON "__chart__test_grouped" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_16effb2e888f6763673b579f80" ON "__chart__test_unique" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_dab383a36f3c9db4a0c9b02cf3" ON "__chart__test" ("date") WHERE "group" IS NULL`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_66feba81e1795d176d06c0b1e6" ON "__chart__users" ("date") WHERE "group" IS NULL`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_66feba81e1795d176d06c0b1e6"`);
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
await queryRunner.query(`DROP INDEX "IDX_dab383a36f3c9db4a0c9b02cf3"`);
await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`);
await queryRunner.query(`DROP INDEX "IDX_16effb2e888f6763673b579f80"`);
await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`);
await queryRunner.query(`DROP INDEX "IDX_da522b4008a9f5d7743b87ad55"`);
await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`);
await queryRunner.query(`DROP INDEX "IDX_3b7697a96f522d0478972e6d6f"`);
await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`);
await queryRunner.query(`DROP INDEX "IDX_583a157ed0cf0ed1b5ec2a833f"`);
await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`);
await queryRunner.query(`DROP INDEX "IDX_dabbb38a51ab86ee3cab291326"`);
await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`);
await queryRunner.query(`DROP INDEX "IDX_a9a806d466b314f253a1a611c4"`);
await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`);
await queryRunner.query(`DROP INDEX "IDX_e60c358aaced5aab8900a4af31"`);
await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`);
await queryRunner.query(`DROP INDEX "IDX_2082327b2699ce924fa654afc5"`);
await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`);
await queryRunner.query(`DROP INDEX "IDX_8111b817b9818c04d7eb8475b1"`);
await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`);
await queryRunner.query(`DROP INDEX "IDX_53a3604b939e2b479eb2cfaac8"`);
await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`);
await queryRunner.query(`DROP INDEX "IDX_eddfed8fb40305a04c6f941050"`);
await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`);
await queryRunner.query(`DROP INDEX "IDX_ceab80a6729f8e2e6f5b8a1a3d"`);
await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`);
await queryRunner.query(`DROP INDEX "IDX_60c5c6e7e538c09aa274ecd1cf"`);
await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`);
await queryRunner.query(`DROP INDEX "IDX_a9021cc2e1feb5f72d3db6e9f5"`);
await queryRunner.query(`DROP INDEX "IDX_f22169eb10657bded6d875ac8f"`);
await queryRunner.query(`DROP INDEX "IDX_c8cc87bd0f2f4487d17c651fbf"`);
await queryRunner.query(`DROP INDEX "IDX_754499f9b2642336433769518d"`);
await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`);
await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`);
await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `);
await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `);
await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `);
await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class deeplIntegration1629024377804 implements MigrationInterface {
name = 'deeplIntegration1629024377804'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" ADD "deeplAuthKey" character varying(128)`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplAuthKey"`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class fixChannelUserId1629288472000 implements MigrationInterface {
name = 'fixChannelUserId1629288472000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" DROP NOT NULL;`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "channel" ALTER COLUMN "userId" SET NOT NULL;`);
}
}

View File

@ -0,0 +1,15 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class isUserDeleted1629512953000 implements MigrationInterface {
name = 'isUserDeleted1629512953000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user" ADD "isDeleted" boolean NOT NULL DEFAULT false`);
await queryRunner.query(`COMMENT ON COLUMN "user"."isDeleted" IS 'Whether the User is deleted.'`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isDeleted"`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class deeplIntegration21629778475000 implements MigrationInterface {
name = 'deeplIntegration21629778475000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" ADD "deeplIsPro" boolean NOT NULL DEFAULT false`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "deeplIsPro"`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class emailRequiredForSignup1633068642000 implements MigrationInterface {
name = 'emailRequiredForSignup1633068642000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" ADD "emailRequiredForSignup" boolean NOT NULL DEFAULT false`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "emailRequiredForSignup"`);
}
}

View File

@ -0,0 +1,16 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class userPending1633071909016 implements MigrationInterface {
name = 'userPending1633071909016'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`CREATE TABLE "user_pending" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(128) NOT NULL, "username" character varying(128) NOT NULL, "email" character varying(128) NOT NULL, "password" character varying(128) NOT NULL, CONSTRAINT "PK_d4c84e013c98ec02d19b8fbbafa" PRIMARY KEY ("id"))`);
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4e5c4c99175638ec0761714ab0" ON "user_pending" ("code") `);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP INDEX "IDX_4e5c4c99175638ec0761714ab0"`);
await queryRunner.query(`DROP TABLE "user_pending"`);
}
}

View File

@ -0,0 +1,14 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class userPublicReactions1634486652000 implements MigrationInterface {
name = 'userPublicReactions1634486652000'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" ADD "publicReactions" boolean NOT NULL DEFAULT false`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "publicReactions"`);
}
}

View File

@ -0,0 +1,13 @@
import {MigrationInterface, QueryRunner} from "typeorm";
export class deleteLog1634902659689 implements MigrationInterface {
name = 'deleteLog1634902659689'
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`DROP TABLE "log"`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
}
}

1
misskey-assets Submodule

Submodule misskey-assets added at 0179793ec8

View File

@ -1,7 +1,7 @@
{
"name": "misskey",
"author": "syuilo <syuilotan@yahoo.co.jp>",
"version": "12.78.0",
"version": "12.93.1",
"codename": "indigo",
"repository": {
"type": "git",
@ -10,7 +10,8 @@
"main": "./index.js",
"private": true,
"scripts": {
"start": "node ./index.js",
"start": "node --experimental-json-modules ./index.js",
"start:test": "cross-env NODE_ENV=test node --experimental-json-modules ./index.js",
"init": "npm run migrate",
"ormconfig": "node ./built/ormconfig.js",
"migrate": "ts-node ./node_modules/typeorm/cli.js migration:run",
@ -26,142 +27,139 @@
"clean": "gulp clean",
"cleanall": "gulp cleanall",
"lint": "tslint 'src/**/*.ts'",
"cy:open": "cypress open",
"cy:run": "cypress run",
"e2e": "start-server-and-test start:test http://localhost cy:run",
"test": "cross-env TS_NODE_FILES=true TS_NODE_TRANSPILE_ONLY=true TS_NODE_PROJECT=\"./test/tsconfig.json\" mocha",
"format": "gulp format"
},
"resolutions": {
"chokidar": "^3.3.1",
"constantinople": "^4.0.1",
"gulp/gulp-cli/yargs/yargs-parser": "5.0.0-security.0",
"jsonld/rdf-canonize/node-forge": "0.10.0",
"lodash": "^4.17.20"
"lodash": "^4.17.21"
},
"dependencies": {
"@babel/plugin-transform-runtime": "7.13.15",
"@elastic/elasticsearch": "7.11.0",
"@koa/cors": "3.1.0",
"@koa/multer": "3.0.0",
"@koa/router": "9.0.1",
"@sentry/browser": "5.29.2",
"@sentry/tracing": "5.29.2",
"@sinonjs/fake-timers": "7.0.5",
"@sinonjs/fake-timers": "7.1.2",
"@syuilo/aiscript": "0.11.1",
"@types/bcryptjs": "2.4.2",
"@types/bull": "3.15.0",
"@types/cbor": "5.0.1",
"@types/bull": "3.15.5",
"@types/cbor": "6.0.0",
"@types/dateformat": "3.0.1",
"@types/escape-regexp": "0.0.0",
"@types/glob": "7.1.3",
"@types/gulp": "4.0.8",
"@types/gulp-rename": "2.0.0",
"@types/gulp-replace": "0.0.31",
"@types/is-url": "1.2.28",
"@types/js-yaml": "4.0.0",
"@types/jsdom": "16.2.10",
"@types/jsonld": "1.5.5",
"@types/katex": "0.11.0",
"@types/koa": "2.13.1",
"@types/koa-bodyparser": "4.3.0",
"@types/koa-cors": "0.0.0",
"@types/koa-favicon": "2.0.19",
"@types/koa-logger": "3.1.1",
"@types/koa-mount": "4.0.0",
"@types/koa-send": "4.1.2",
"@types/koa-views": "2.0.4",
"@types/koa__cors": "3.0.2",
"@types/koa__multer": "2.0.2",
"@types/koa__router": "8.0.4",
"@types/markdown-it": "12.0.1",
"@types/matter-js": "0.14.11",
"@types/mocha": "8.2.2",
"@types/node": "14.14.41",
"@types/node-fetch": "2.5.10",
"@types/nodemailer": "6.4.1",
"@types/glob": "7.1.4",
"@types/gulp": "4.0.9",
"@types/gulp-rename": "2.0.1",
"@types/is-url": "1.2.30",
"@types/js-yaml": "4.0.3",
"@types/jsdom": "16.2.13",
"@types/jsonld": "1.5.6",
"@types/katex": "0.11.1",
"@types/koa": "2.13.4",
"@types/koa__cors": "3.0.3",
"@types/koa__multer": "2.0.3",
"@types/koa__router": "8.0.8",
"@types/koa-bodyparser": "4.3.3",
"@types/koa-cors": "0.0.2",
"@types/koa-favicon": "2.0.21",
"@types/koa-logger": "3.1.2",
"@types/koa-mount": "4.0.1",
"@types/koa-send": "4.1.3",
"@types/koa-views": "7.0.0",
"@types/markdown-it": "12.2.3",
"@types/matter-js": "0.17.5",
"@types/mocha": "8.2.3",
"@types/node": "16.10.3",
"@types/node-fetch": "2.5.12",
"@types/nodemailer": "6.4.4",
"@types/nprogress": "0.2.0",
"@types/oauth": "0.9.1",
"@types/parse5": "6.0.0",
"@types/parse5": "6.0.1",
"@types/parsimmon": "1.10.6",
"@types/portscanner": "2.1.0",
"@types/pug": "2.0.4",
"@types/portscanner": "2.1.1",
"@types/pug": "2.0.5",
"@types/punycode": "2.1.0",
"@types/qrcode": "1.4.0",
"@types/qrcode": "1.4.1",
"@types/random-seed": "0.3.3",
"@types/ratelimiter": "3.4.1",
"@types/redis": "2.8.28",
"@types/rename": "1.0.2",
"@types/ratelimiter": "3.4.2",
"@types/redis": "2.8.32",
"@types/rename": "1.0.4",
"@types/request-stats": "3.0.0",
"@types/rimraf": "3.0.0",
"@types/rimraf": "3.0.2",
"@types/seedrandom": "2.4.28",
"@types/sharp": "0.28.0",
"@types/sinonjs__fake-timers": "6.0.2",
"@types/speakeasy": "2.0.5",
"@types/sharp": "0.29.2",
"@types/sinonjs__fake-timers": "6.0.4",
"@types/speakeasy": "2.0.6",
"@types/throttle-debounce": "2.1.0",
"@types/tinycolor2": "1.4.2",
"@types/tmp": "0.2.0",
"@types/uuid": "8.3.0",
"@types/web-push": "3.3.0",
"@types/tinycolor2": "1.4.3",
"@types/tmp": "0.2.1",
"@types/uuid": "8.3.1",
"@types/web-push": "3.3.2",
"@types/webpack": "5.28.0",
"@types/webpack-stream": "3.2.12",
"@types/websocket": "1.0.2",
"@types/ws": "7.4.1",
"@typescript-eslint/parser": "4.22.0",
"@vue/compiler-sfc": "3.0.11",
"@types/websocket": "1.0.4",
"@types/ws": "8.2.0",
"@typescript-eslint/parser": "5.0.0",
"@vue/compiler-sfc": "3.2.20",
"abort-controller": "3.0.0",
"apexcharts": "3.26.0",
"apexcharts": "3.28.3",
"autobind-decorator": "2.4.0",
"autosize": "4.0.2",
"autosize": "4.0.4",
"autwh": "0.1.0",
"aws-sdk": "2.887.0",
"aws-sdk": "2.1003.0",
"bcryptjs": "2.4.3",
"blurhash": "1.1.3",
"broadcast-channel": "3.5.3",
"bull": "3.22.0",
"blurhash": "1.1.4",
"broadcast-channel": "4.2.0",
"bull": "3.29.3",
"cacheable-lookup": "6.0.3",
"cafy": "15.2.1",
"cbor": "7.0.5",
"chalk": "4.1.0",
"chart.js": "2.9.4",
"cbor": "8.0.2",
"chalk": "4.1.2",
"chart.js": "3.5.1",
"chartjs-adapter-date-fns": "2.0.0",
"chartjs-plugin-zoom": "1.1.1",
"cli-highlight": "2.1.11",
"commander": "7.2.0",
"concurrently": "6.0.2",
"compare-versions": "3.6.0",
"concurrently": "6.3.0",
"content-disposition": "0.5.3",
"core-js": "3.10.1",
"crc-32": "1.2.0",
"css-loader": "5.2.1",
"cssnano": "5.0.1",
"css-loader": "6.4.0",
"cssnano": "5.0.8",
"date-fns": "2.25.0",
"dateformat": "4.5.1",
"diskusage": "1.1.3",
"escape-regexp": "0.0.1",
"eslint": "7.24.0",
"eslint-plugin-vue": "7.9.0",
"eslint": "8.0.1",
"eslint-plugin-vue": "7.19.1",
"eventemitter3": "4.0.7",
"feed": "4.2.2",
"file-type": "16.3.0",
"file-type": "16.5.3",
"fluent-ffmpeg": "2.1.2",
"glob": "7.1.6",
"glob": "7.2.0",
"got": "11.8.2",
"gulp": "4.0.2",
"gulp-cssnano": "2.1.3",
"gulp-rename": "2.0.0",
"gulp-replace": "1.0.0",
"gulp-terser": "2.0.1",
"gulp-replace": "1.1.3",
"gulp-terser": "2.1.0",
"gulp-tslint": "8.1.4",
"hard-source-webpack-plugin": "0.13.1",
"html-minifier": "4.0.0",
"http-proxy-agent": "4.0.1",
"hpagent": "0.1.2",
"http-signature": "1.3.5",
"https-proxy-agent": "5.0.0",
"idb-keyval": "5.0.5",
"idb-keyval": "5.1.3",
"insert-text-at-cursor": "0.3.0",
"is-root": "2.1.0",
"ip-cidr": "3.0.4",
"is-svg": "4.3.1",
"js-yaml": "4.1.0",
"jsdom": "16.5.3",
"jsdom": "16.7.0",
"json5": "2.2.0",
"json5-loader": "4.0.1",
"jsonld": "4.0.1",
"jsonld": "5.2.0",
"jsrsasign": "8.0.20",
"katex": "0.13.2",
"koa": "2.13.1",
"katex": "0.13.18",
"koa": "2.13.3",
"koa-bodyparser": "4.3.0",
"koa-favicon": "2.1.0",
"koa-json-body": "5.3.0",
@ -171,95 +169,92 @@
"koa-slow": "2.1.0",
"koa-views": "7.0.1",
"langmap": "0.0.16",
"lookup-dns-cache": "2.1.0",
"markdown-it": "12.0.5",
"markdown-it": "12.2.0",
"markdown-it-anchor": "7.1.0",
"matter-js": "0.17.1",
"mfm-js": "0.16.2",
"mocha": "8.3.2",
"moji": "0.5.1",
"mfm-js": "0.20.0",
"misskey-js": "0.0.6",
"mocha": "8.4.0",
"ms": "2.1.3",
"multer": "1.4.2",
"multer": "1.4.3",
"nested-property": "4.0.0",
"node-fetch": "2.6.1",
"nodemailer": "6.5.0",
"object-assign-deep": "0.4.0",
"nodemailer": "6.7.0",
"os-utils": "0.0.14",
"parse5": "6.0.1",
"pg": "8.6.0",
"pg": "8.7.1",
"portscanner": "2.2.0",
"postcss": "8.2.10",
"postcss-loader": "5.2.0",
"prismjs": "1.23.0",
"probe-image-size": "7.1.0",
"postcss": "8.3.9",
"postcss-loader": "6.2.0",
"prismjs": "1.25.0",
"private-ip": "2.3.0",
"probe-image-size": "7.2.1",
"promise-limit": "2.7.0",
"promise-sequential": "1.1.1",
"pug": "3.0.2",
"punycode": "2.1.1",
"pureimage": "0.3.2",
"pureimage": "0.3.5",
"qrcode": "1.4.4",
"random-seed": "0.3.0",
"ratelimiter": "3.4.1",
"re2": "1.15.9",
"reconnecting-websocket": "4.4.0",
"redis": "3.1.1",
"re2": "1.16.0",
"redis": "3.1.2",
"redis-lock": "0.1.4",
"reflect-metadata": "0.1.13",
"regenerator-runtime": "0.13.7",
"rename": "1.0.4",
"request-stats": "3.0.0",
"require-all": "3.0.0",
"rimraf": "3.0.2",
"rndstr": "1.0.0",
"s-age": "1.1.2",
"sass": "1.32.8",
"sass-loader": "11.0.1",
"sass": "1.43.2",
"sass-loader": "12.2.0",
"seedrandom": "3.0.5",
"sharp": "0.28.1",
"sharp": "0.29.1",
"speakeasy": "2.0.0",
"strict-event-emitter-types": "2.0.0",
"stringz": "2.1.0",
"style-loader": "2.0.0",
"summaly": "2.4.0",
"style-loader": "3.3.0",
"summaly": "2.4.1",
"syslog-pro": "1.0.0",
"systeminformation": "5.6.12",
"systeminformation": "5.9.7",
"syuilo-password-strength": "0.0.1",
"textarea-caret": "3.1.0",
"three": "0.117.1",
"throttle-debounce": "3.0.1",
"tinycolor2": "1.4.2",
"tmp": "0.2.1",
"ts-loader": "8.1.0",
"ts-node": "9.1.1",
"tsc-alias": "1.2.9",
"tsconfig-paths": "3.9.0",
"ts-loader": "9.2.6",
"ts-node": "10.3.0",
"tsc-alias": "1.3.10",
"tsconfig-paths": "3.11.0",
"tslint": "6.1.3",
"tslint-sonarts": "1.9.0",
"typeorm": "0.2.32",
"typescript": "4.2.4",
"twemoji-parser": "13.1.0",
"typeorm": "0.2.38",
"typescript": "4.4.4",
"ulid": "2.3.0",
"uuid": "8.3.2",
"v-debounce": "0.1.2",
"vanilla-tilt": "1.7.0",
"vue": "3.0.11",
"vue-color": "2.8.1",
"vue-json-pretty": "1.7.1",
"vue-loader": "16.1.2",
"vanilla-tilt": "1.7.2",
"vue": "3.2.20",
"vue-loader": "16.7.0",
"vue-prism-editor": "2.0.0-alpha.2",
"vue-router": "4.0.5",
"vue-style-loader": "4.1.3",
"vue-svg-loader": "0.17.0-beta.2",
"vuedraggable": "4.0.1",
"web-push": "3.4.4",
"webpack": "5.33.2",
"webpack-cli": "4.6.0",
"web-push": "3.4.5",
"webpack": "5.58.2",
"webpack-cli": "4.9.0",
"websocket": "1.0.34",
"ws": "7.4.4",
"ws": "8.2.3",
"xev": "2.0.1"
},
"devDependencies": {
"@types/chai": "4.2.15",
"@types/fluent-ffmpeg": "2.1.16",
"chai": "4.3.4",
"cross-env": "7.0.3"
"@redocly/openapi-core": "1.0.0-beta.54",
"@types/fluent-ffmpeg": "2.1.17",
"cross-env": "7.0.3",
"cypress": "8.5.0",
"start-server-and-test": "1.14.0"
}
}

View File

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

View File

@ -1,9 +0,0 @@
declare module 'lookup-dns-cache' {
import { LookupOneOptions, LookupAllOptions, LookupOptions, LookupAddress } from 'dns';
function lookup(hostname: string, family: number, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
function lookup(hostname: string, options: LookupOneOptions, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
function lookup(hostname: string, options: LookupAllOptions, callback: (err: NodeJS.ErrnoException | null, addresses: LookupAddress[]) => void): void;
function lookup(hostname: string, options: LookupOptions, callback: (err: NodeJS.ErrnoException | null, address: string | LookupAddress[], family: number) => void): void;
function lookup(hostname: string, callback: (err: NodeJS.ErrnoException | null, address: string, family: number) => void): void;
}

View File

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

View File

@ -2,8 +2,8 @@ import * as cluster from 'cluster';
import * as chalk from 'chalk';
import Xev from 'xev';
import Logger from '../services/logger';
import { program } from '../argv';
import Logger from '@/services/logger';
import { envOption } from '../env';
// for typeorm
import 'reflect-metadata';
@ -20,7 +20,7 @@ const ev = new Xev();
export default async function() {
process.title = `Misskey (${cluster.isMaster ? 'master' : 'worker'})`;
if (cluster.isMaster || program.disableClustering) {
if (cluster.isMaster || envOption.disableClustering) {
await masterMain();
if (cluster.isMaster) {
@ -28,7 +28,7 @@ export default async function() {
}
}
if (cluster.isWorker || program.disableClustering) {
if (cluster.isWorker || envOption.disableClustering) {
await workerMain();
}
@ -60,7 +60,7 @@ cluster.on('exit', worker => {
});
// Display detail of unhandled promise rejection
if (!program.quiet) {
if (!envOption.quiet) {
process.on('unhandledRejection', console.dir);
}

View File

@ -1,24 +1,31 @@
import * as fs from 'fs';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
import * as os from 'os';
import * as cluster from 'cluster';
import * as chalk from 'chalk';
import * as portscanner from 'portscanner';
import * as isRoot from 'is-root';
import { getConnection } from 'typeorm';
import Logger from '../services/logger';
import Logger from '@/services/logger';
import loadConfig from '@/config/load';
import { Config } from '@/config/types';
import { lessThan } from '../prelude/array';
import { program } from '../argv';
import { lessThan } from '@/prelude/array';
import { envOption } from '../env';
import { showMachineInfo } from '@/misc/show-machine-info';
import { initDb } from '../db/postgre';
const meta = require('../meta.json');
//const _filename = fileURLToPath(import.meta.url);
const _filename = __filename;
const _dirname = dirname(_filename);
const meta = JSON.parse(fs.readFileSync(`${_dirname}/../meta.json`, 'utf-8'));
const logger = new Logger('core', 'cyan');
const bootLogger = logger.createSubLogger('boot', 'magenta', false);
function greet() {
if (!program.quiet) {
if (!envOption.quiet) {
//#region Misskey logo
const v = `v${meta.version}`;
console.log(' _____ _ _ ');
@ -39,32 +46,26 @@ function greet() {
bootLogger.info(`Misskey v${meta.version}`, null, true);
}
function isRoot() {
// maybe process.getuid will be undefined under not POSIX environment (e.g. Windows)
return process.getuid != null && process.getuid() === 0;
}
/**
* Init master process
*/
export async function masterMain() {
let config!: Config;
// initialize app
try {
greet();
// initialize app
config = await init();
if (config.port == null || Number.isNaN(config.port)) {
bootLogger.error('The port is not configured. Please configure port.', null, true);
process.exit(1);
}
if (process.platform === 'linux' && isWellKnownPort(config.port) && !isRoot()) {
bootLogger.error('You need root privileges to listen on well-known port on Linux', null, true);
process.exit(1);
}
if (!await isPortAvailable(config.port)) {
bootLogger.error(`Port ${config.port} is already in use`, null, true);
process.exit(1);
}
showEnvironment();
await showMachineInfo(bootLogger);
showNodejsVersion();
config = loadConfigBoot();
await connectDb();
await validatePort(config);
} catch (e) {
bootLogger.error('Fatal error occurred during initialization', null, true);
process.exit(1);
@ -72,13 +73,13 @@ export async function masterMain() {
bootLogger.succ('Misskey initialized');
if (!program.disableClustering) {
if (!envOption.disableClustering) {
await spawnWorkers(config.clusterLimit);
}
bootLogger.succ(`Now listening on port ${config.port} on ${config.url}`, null, true);
if (!program.noDaemons) {
if (!envOption.noDaemons) {
require('../daemons/server-stats').default();
require('../daemons/queue-stats').default();
require('../daemons/janitor').default();
@ -89,14 +90,6 @@ const runningNodejsVersion = process.version.slice(1).split('.').map(x => parseI
const requiredNodejsVersion = [11, 7, 0];
const satisfyNodejsVersion = !lessThan(runningNodejsVersion, requiredNodejsVersion);
function isWellKnownPort(port: number): boolean {
return port < 1024;
}
async function isPortAvailable(port: number): Promise<boolean> {
return await portscanner.checkPortStatus(port, '127.0.0.1') === 'closed';
}
function showEnvironment(): void {
const env = process.env.NODE_ENV;
const logger = bootLogger.createSubLogger('env');
@ -110,14 +103,7 @@ function showEnvironment(): void {
logger.info(`You ${isRoot() ? '' : 'do not '}have root privileges`);
}
/**
* Init app
*/
async function init(): Promise<Config> {
showEnvironment();
await showMachineInfo(bootLogger);
function showNodejsVersion(): void {
const nodejsLogger = bootLogger.createSubLogger('nodejs');
nodejsLogger.info(`Version ${runningNodejsVersion.join('.')}`);
@ -126,7 +112,9 @@ async function init(): Promise<Config> {
nodejsLogger.error(`Node.js version is less than ${requiredNodejsVersion.join('.')}. Please upgrade it.`, null, true);
process.exit(1);
}
}
function loadConfigBoot(): Config {
const configLogger = bootLogger.createSubLogger('config');
let config;
@ -146,6 +134,10 @@ async function init(): Promise<Config> {
configLogger.succ('Loaded');
return config;
}
async function connectDb(): Promise<void> {
const dbLogger = bootLogger.createSubLogger('db');
// Try to connect to DB
@ -159,8 +151,29 @@ async function init(): Promise<Config> {
dbLogger.error(e);
process.exit(1);
}
}
return config;
async function validatePort(config: Config): Promise<void> {
const isWellKnownPort = (port: number) => port < 1024;
async function isPortAvailable(port: number): Promise<boolean> {
return await portscanner.checkPortStatus(port, '127.0.0.1') === 'closed';
}
if (config.port == null || Number.isNaN(config.port)) {
bootLogger.error('The port is not configured. Please configure port.', null, true);
process.exit(1);
}
if (process.platform === 'linux' && isWellKnownPort(config.port) && !isRoot()) {
bootLogger.error('You need root privileges to listen on well-known port on Linux', null, true);
process.exit(1);
}
if (!await isPortAvailable(config.port)) {
bootLogger.error(`Port ${config.port} is already in use`, null, true);
process.exit(1);
}
}
async function spawnWorkers(limit: number = 1) {

View File

@ -1,13 +1,19 @@
import { del, get, set } from '@client/scripts/idb-proxy';
import { reactive } from 'vue';
import { apiUrl } from '@client/config';
import { waiting } from '@client/os';
import { unisonReload } from '@client/scripts/unison-reload';
import { waiting, api, popup, popupMenu, success } from '@client/os';
import { unisonReload, reloadChannel } from '@client/scripts/unison-reload';
import { showSuspendedDialog } from './scripts/show-suspended-dialog';
import { i18n } from './i18n';
// TODO: 他のタブと永続化されたstateを同期
type Account = {
id: string;
token: string;
isModerator: boolean;
isAdmin: boolean;
isDeleted: boolean;
};
const data = localStorage.getItem('account');
@ -15,22 +21,57 @@ const data = localStorage.getItem('account');
// TODO: 外部からはreadonlyに
export const $i = data ? reactive(JSON.parse(data) as Account) : null;
export function signout() {
export async function signout() {
waiting();
localStorage.removeItem('account');
//#region Remove account
const accounts = await getAccounts();
accounts.splice(accounts.findIndex(x => x.id === $i.id), 1);
if (accounts.length > 0) await set('accounts', accounts);
else await del('accounts');
//#endregion
//#region Remove service worker registration
try {
if (navigator.serviceWorker.controller) {
const registration = await navigator.serviceWorker.ready;
const push = await registration.pushManager.getSubscription();
if (push) {
await fetch(`${apiUrl}/sw/unregister`, {
method: 'POST',
body: JSON.stringify({
i: $i.token,
endpoint: push.endpoint,
}),
});
}
}
if (accounts.length === 0) {
await navigator.serviceWorker.getRegistrations()
.then(registrations => {
return Promise.all(registrations.map(registration => registration.unregister()));
});
}
} catch (e) {}
//#endregion
document.cookie = `igi=; path=/`;
location.href = '/';
if (accounts.length > 0) login(accounts[0].token);
else unisonReload();
}
export function getAccounts() {
const accountsData = localStorage.getItem('accounts');
const accounts: { id: Account['id'], token: Account['token'] }[] = accountsData ? JSON.parse(accountsData) : [];
return accounts;
export async function getAccounts(): Promise<{ id: Account['id'], token: Account['token'] }[]> {
return (await get('accounts')) || [];
}
export function addAccount(id: Account['id'], token: Account['token']) {
const accounts = getAccounts();
export async function addAccount(id: Account['id'], token: Account['token']) {
const accounts = await getAccounts();
if (!accounts.some(x => x.id === id)) {
localStorage.setItem('accounts', JSON.stringify(accounts.concat([{ id, token }])));
await set('accounts', accounts.concat([{ id, token }]));
}
}
@ -43,17 +84,20 @@ function fetchAccount(token): Promise<Account> {
i: token
})
})
.then(res => res.json())
.then(res => {
// When failed to authenticate user
if (res.status !== 200 && res.status < 500) {
return signout();
if (res.error) {
if (res.error.id === 'a8c724b3-6e9c-4b46-b1a8-bc3ed6258370') {
showSuspendedDialog().then(() => {
signout();
});
} else {
signout();
}
} else {
res.token = token;
done(res);
}
// Parse response
res.json().then(i => {
i.token = token;
done(i);
});
})
.catch(fail);
});
@ -67,18 +111,96 @@ export function updateAccount(data) {
}
export function refreshAccount() {
fetchAccount($i.token).then(updateAccount);
return fetchAccount($i.token).then(updateAccount);
}
export async function login(token: Account['token']) {
export async function login(token: Account['token'], redirect?: string) {
waiting();
if (_DEV_) console.log('logging as token ', token);
const me = await fetchAccount(token);
localStorage.setItem('account', JSON.stringify(me));
addAccount(me.id, token);
await addAccount(me.id, token);
if (redirect) {
reloadChannel.postMessage('reload');
location.href = redirect;
return;
}
unisonReload();
}
export async function openAccountMenu(ev: MouseEvent) {
function showSigninDialog() {
popup(import('@client/components/signin-dialog.vue'), {}, {
done: res => {
addAccount(res.id, res.i);
success();
},
}, 'closed');
}
function createAccount() {
popup(import('@client/components/signup-dialog.vue'), {}, {
done: res => {
addAccount(res.id, res.i);
switchAccountWithToken(res.i);
},
}, 'closed');
}
async function switchAccount(account: any) {
const storedAccounts = await getAccounts();
const token = storedAccounts.find(x => x.id === account.id).token;
switchAccountWithToken(token);
}
function switchAccountWithToken(token: string) {
login(token);
}
const storedAccounts = await getAccounts().then(accounts => accounts.filter(x => x.id !== $i.id));
const accountsPromise = api('users/show', { userIds: storedAccounts.map(x => x.id) });
const accountItemPromises = storedAccounts.map(a => new Promise(res => {
accountsPromise.then(accounts => {
const account = accounts.find(x => x.id === a.id);
if (account == null) return res(null);
res({
type: 'user',
user: account,
action: () => { switchAccount(account); }
});
});
}));
popupMenu([...[{
type: 'link',
text: i18n.locale.profile,
to: `/@${ $i.username }`,
avatar: $i,
}, null, ...accountItemPromises, {
icon: 'fas fa-plus',
text: i18n.locale.addAccount,
action: () => {
popupMenu([{
text: i18n.locale.existingAccount,
action: () => { showSigninDialog(); },
}, {
text: i18n.locale.createAccount,
action: () => { createAccount(); },
}], ev.currentTarget || ev.target);
},
}, {
type: 'link',
icon: 'fas fa-users',
text: i18n.locale.manageAccounts,
to: `/settings/accounts`,
}]], ev.currentTarget || ev.target, {
align: 'left'
});
}
// このファイルに書きたくないけどここに書かないと何故かVeturが認識しない
declare module '@vue/runtime-core' {
interface ComponentCustomProperties {

View File

@ -10,9 +10,9 @@
</template>
<div class="dpvffvvy _monolithic_">
<div class="_section">
<MkTextarea v-model:value="comment">
<span>{{ $ts.details }}</span>
<template #desc>{{ $ts.fillAbuseReportDescription }}</template>
<MkTextarea v-model="comment">
<template #label>{{ $ts.details }}</template>
<template #caption>{{ $ts.fillAbuseReportDescription }}</template>
</MkTextarea>
</div>
<div class="_section">
@ -25,7 +25,7 @@
<script lang="ts">
import { defineComponent, markRaw } from 'vue';
import XWindow from '@client/components/ui/window.vue';
import MkTextarea from '@client/components/ui/textarea.vue';
import MkTextarea from '@client/components/form/textarea.vue';
import MkButton from '@client/components/ui/button.vue';
import * as os from '@client/os';

View File

@ -5,7 +5,8 @@
:cy="5 - (Math.cos(angle) * (5 - graduationsPadding))"
:r="i % 5 == 0 ? 0.125 : 0.05"
:fill="i % 5 == 0 ? majorGraduationColor : minorGraduationColor"
:key="i"/>
:key="i"
/>
<line
:x1="5 - (Math.sin(sAngle) * (sHandLengthRatio * handsTailLength))"
@ -13,7 +14,9 @@
:x2="5 + (Math.sin(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
:y2="5 - (Math.cos(sAngle) * ((sHandLengthRatio * 5) - handsPadding))"
:stroke="sHandColor"
stroke-width="0.05"/>
:stroke-width="thickness / 2"
stroke-linecap="round"
/>
<line
:x1="5 - (Math.sin(mAngle) * (mHandLengthRatio * handsTailLength))"
@ -21,7 +24,9 @@
:x2="5 + (Math.sin(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
:y2="5 - (Math.cos(mAngle) * ((mHandLengthRatio * 5) - handsPadding))"
:stroke="mHandColor"
stroke-width="0.1"/>
:stroke-width="thickness"
stroke-linecap="round"
/>
<line
:x1="5 - (Math.sin(hAngle) * (hHandLengthRatio * handsTailLength))"
@ -29,16 +34,24 @@
:x2="5 + (Math.sin(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
:y2="5 - (Math.cos(hAngle) * ((hHandLengthRatio * 5) - handsPadding))"
:stroke="hHandColor"
stroke-width="0.1"/>
:stroke-width="thickness"
stroke-linecap="round"
/>
</svg>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import * as tinycolor from 'tinycolor2';
import * as os from '@client/os';
export default defineComponent({
props: {
thickness: {
type: Number,
default: 0.1
}
},
data() {
return {
now: new Date(),

View File

@ -10,12 +10,12 @@
</li>
<li @click="chooseUser()" @keydown="onKeydown" tabindex="-1" class="choose">{{ $ts.selectUser }}</li>
</ol>
<ol class="hashtags" ref="suggests" v-if="hashtags.length > 0">
<ol class="hashtags" ref="suggests" v-else-if="hashtags.length > 0">
<li v-for="hashtag in hashtags" @click="complete(type, hashtag)" @keydown="onKeydown" tabindex="-1">
<span class="name">{{ hashtag }}</span>
</li>
</ol>
<ol class="emojis" ref="suggests" v-if="emojis.length > 0">
<ol class="emojis" ref="suggests" v-else-if="emojis.length > 0">
<li v-for="emoji in emojis" @click="complete(type, emoji.emoji)" @keydown="onKeydown" tabindex="-1">
<span class="emoji" v-if="emoji.isCustomEmoji"><img :src="$store.state.disableShowingAnimatedImages ? getStaticImageUrl(emoji.url) : emoji.url" :alt="emoji.emoji"/></span>
<span class="emoji" v-else-if="!$store.state.useOsNativeEmojis"><img :src="emoji.url" :alt="emoji.emoji"/></span>
@ -24,6 +24,11 @@
<span class="alias" v-if="emoji.aliasOf">({{ emoji.aliasOf }})</span>
</li>
</ol>
<ol class="mfmTags" ref="suggests" v-else-if="mfmTags.length > 0">
<li v-for="tag in mfmTags" @click="complete(type, tag)" @keydown="onKeydown" tabindex="-1">
<span class="tag">{{ tag }}</span>
</li>
</ol>
</div>
</template>
@ -35,6 +40,7 @@ import { twemojiSvgBase } from '@/misc/twemoji-base';
import { getStaticImageUrl } from '@client/scripts/get-static-image-url';
import { acct } from '@client/filters/user';
import * as os from '@client/os';
import { instance } from '@client/instance';
type EmojiDef = {
emoji: string;
@ -75,6 +81,38 @@ for (const x of lib) {
emjdb.sort((a, b) => a.name.length - b.name.length);
//#region Construct Emoji DB
const customEmojis = instance.emojis;
const emojiDefinitions: EmojiDef[] = [];
for (const x of customEmojis) {
emojiDefinitions.push({
name: x.name,
emoji: `:${x.name}:`,
url: x.url,
isCustomEmoji: true
});
if (x.aliases) {
for (const alias of x.aliases) {
emojiDefinitions.push({
name: alias,
aliasOf: x.name,
emoji: `:${x.name}:`,
url: x.url,
isCustomEmoji: true
});
}
}
}
emojiDefinitions.sort((a, b) => a.name.length - b.name.length);
const emojiDb = markRaw(emojiDefinitions.concat(emjdb));
//#endregion
const MFM_TAGS = ['tada', 'jelly', 'twitch', 'shake', 'spin', 'jump', 'bounce', 'flip', 'x2', 'x3', 'x4', 'font', 'blur', 'rainbow', 'sparkle'];
export default defineComponent({
props: {
type: {
@ -106,11 +144,6 @@ export default defineComponent({
type: Number,
required: true,
},
showing: {
type: Boolean,
required: true
},
},
emits: ['done', 'closed'],
@ -123,16 +156,8 @@ export default defineComponent({
hashtags: [],
emojis: [],
items: [],
mfmTags: [],
select: -1,
emojiDb: [] as EmojiDef[]
}
},
watch: {
showing() {
if (!this.showing) {
this.$emit('closed');
}
}
},
@ -144,36 +169,6 @@ export default defineComponent({
mounted() {
this.setPosition();
//#region Construct Emoji DB
const customEmojis = this.$instance.emojis;
const emojiDefinitions: EmojiDef[] = [];
for (const x of customEmojis) {
emojiDefinitions.push({
name: x.name,
emoji: `:${x.name}:`,
url: x.url,
isCustomEmoji: true
});
if (x.aliases) {
for (const alias of x.aliases) {
emojiDefinitions.push({
name: alias,
aliasOf: x.name,
emoji: `:${x.name}:`,
url: x.url,
isCustomEmoji: true
});
}
}
}
emojiDefinitions.sort((a, b) => a.name.length - b.name.length);
this.emojiDb = markRaw(emojiDefinitions.concat(emjdb));
//#endregion
this.textarea.addEventListener('keydown', this.onKeydown);
for (const el of Array.from(document.querySelectorAll('body *'))) {
@ -203,6 +198,13 @@ export default defineComponent({
complete(type, value) {
this.$emit('done', { type, value });
this.$emit('closed');
if (type === 'emoji') {
let recents = this.$store.state.recentlyUsedEmojis;
recents = recents.filter((e: any) => e !== value);
recents.unshift(value);
this.$store.set('recentlyUsedEmojis', recents.splice(0, 32));
}
},
setPosition() {
@ -229,7 +231,7 @@ export default defineComponent({
}
}
if (this.type == 'user') {
if (this.type === 'user') {
if (this.q == null) {
this.users = [];
this.fetching = false;
@ -255,7 +257,7 @@ export default defineComponent({
sessionStorage.setItem(cacheKey, JSON.stringify(users));
});
}
} else if (this.type == 'hashtag') {
} else if (this.type === 'hashtag') {
if (this.q == null || this.q == '') {
this.hashtags = JSON.parse(localStorage.getItem('hashtags') || '[]');
this.fetching = false;
@ -279,37 +281,41 @@ export default defineComponent({
});
}
}
} else if (this.type == 'emoji') {
} else if (this.type === 'emoji') {
if (this.q == null || this.q == '') {
this.emojis = this.emojiDb.filter(x => x.isCustomEmoji && !x.aliasOf).sort((a, b) => {
var textA = a.name.toUpperCase();
var textB = b.name.toUpperCase();
return (textA < textB) ? -1 : (textA > textB) ? 1 : 0;
});
// 最近使った絵文字をサジェスト
this.emojis = this.$store.state.recentlyUsedEmojis.map(emoji => emojiDb.find(e => e.emoji == emoji)).filter(x => x != null);
return;
}
const matched = [];
const max = 30;
this.emojiDb.some(x => {
emojiDb.some(x => {
if (x.name.startsWith(this.q) && !x.aliasOf && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
return matched.length == max;
});
if (matched.length < max) {
this.emojiDb.some(x => {
emojiDb.some(x => {
if (x.name.startsWith(this.q) && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
return matched.length == max;
});
}
if (matched.length < max) {
this.emojiDb.some(x => {
emojiDb.some(x => {
if (x.name.includes(this.q) && !matched.some(y => y.emoji == x.emoji)) matched.push(x);
return matched.length == max;
});
}
this.emojis = matched;
} else if (this.type === 'mfmTag') {
if (this.q == null || this.q == '') {
this.mfmTags = MFM_TAGS;
return;
}
this.mfmTags = MFM_TAGS.filter(tag => tag.startsWith(this.q));
}
},
@ -486,5 +492,11 @@ export default defineComponent({
margin: 0 0 0 8px;
}
}
> .mfmTags > li {
.name {
}
}
}
</style>

View File

@ -6,7 +6,7 @@
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { defineComponent, PropType } from 'vue';
type Captcha = {
render(container: string | Node, options: {
@ -32,14 +32,14 @@ declare global {
export default defineComponent({
props: {
provider: {
type: String,
type: String as PropType<CaptchaProvider>,
required: true,
},
sitekey: {
type: String,
required: true,
},
value: {
modelValue: {
type: String,
},
},
@ -51,19 +51,25 @@ export default defineComponent({
},
computed: {
loaded() {
return !!window[this.provider as CaptchaProvider];
variable(): string {
switch (this.provider) {
case 'hcaptcha': return 'hcaptcha';
case 'recaptcha': return 'grecaptcha';
}
},
src() {
loaded(): boolean {
return !!window[this.variable];
},
src(): string {
const endpoint = ({
hcaptcha: 'https://hcaptcha.com/1',
recaptcha: 'https://www.recaptcha.net/recaptcha',
} as Record<PropertyKey, unknown>)[this.provider];
} as Record<CaptchaProvider, string>)[this.provider];
return `${typeof endpoint == 'string' ? endpoint : 'about:invalid'}/api.js?render=explicit`;
return `${typeof endpoint === 'string' ? endpoint : 'about:invalid'}/api.js?render=explicit`;
},
captcha() {
return window[this.provider as CaptchaProvider] || {} as unknown as Captcha;
captcha(): Captcha {
return window[this.variable] || {} as unknown as Captcha;
},
},
@ -94,7 +100,7 @@ export default defineComponent({
methods: {
reset() {
this.captcha?.reset();
if (this.captcha?.reset) this.captcha.reset();
},
requestRender() {
if (this.captcha.render && this.$refs.captcha instanceof Element) {
@ -110,7 +116,7 @@ export default defineComponent({
}
},
callback(response?: string) {
this.$emit('update:value', typeof response == 'string' ? response : null);
this.$emit('update:modelValue', typeof response == 'string' ? response : null);
},
},
});

View File

@ -91,7 +91,7 @@ export default defineComponent({
width: 31px;
}
&:focus {
&:focus-visible {
&:after {
content: "";
pointer-events: none;

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